summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/ata.c5
-rw-r--r--firmware/drivers/ata_mmc.c4
-rw-r--r--firmware/drivers/button.c2
-rw-r--r--firmware/drivers/fmradio_i2c.c6
-rw-r--r--firmware/drivers/i2c.c6
-rw-r--r--firmware/drivers/lcd-16bit.c2
-rw-r--r--firmware/drivers/lcd-2bit-horz.c2
-rw-r--r--firmware/drivers/lcd-h100-remote.c7
-rw-r--r--firmware/drivers/lcd-h100.c4
-rw-r--r--firmware/drivers/lcd-player.c2
-rw-r--r--firmware/drivers/lcd-recorder.c4
-rwxr-xr-xfirmware/drivers/lcd-remote-2bit-vi.c7
12 files changed, 25 insertions, 26 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 8593eebea1..f57088504b 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -1932,11 +1932,12 @@ int ata_init(void)
1932 if (rc) 1932 if (rc)
1933 return -60 + rc; 1933 return -60 + rc;
1934 1934
1935 queue_init(&ata_queue); 1935 queue_init(&ata_queue, true);
1936 1936
1937 last_disk_activity = current_tick; 1937 last_disk_activity = current_tick;
1938 create_thread(ata_thread, ata_stack, 1938 create_thread(ata_thread, ata_stack,
1939 sizeof(ata_stack), ata_thread_name); 1939 sizeof(ata_stack), ata_thread_name
1940 IF_PRIO(, PRIORITY_SYSTEM));
1940 initialized = true; 1941 initialized = true;
1941 1942
1942 } 1943 }
diff --git a/firmware/drivers/ata_mmc.c b/firmware/drivers/ata_mmc.c
index b2e79c419a..6303ca2851 100644
--- a/firmware/drivers/ata_mmc.c
+++ b/firmware/drivers/ata_mmc.c
@@ -1182,9 +1182,9 @@ int ata_init(void)
1182 if (!last_mmc_status) 1182 if (!last_mmc_status)
1183 mmc_status = MMC_UNTOUCHED; 1183 mmc_status = MMC_UNTOUCHED;
1184#ifdef HAVE_HOTSWAP 1184#ifdef HAVE_HOTSWAP
1185 queue_init(&mmc_queue); 1185 queue_init(&mmc_queue, true);
1186 create_thread(mmc_thread, mmc_stack, 1186 create_thread(mmc_thread, mmc_stack,
1187 sizeof(mmc_stack), mmc_thread_name); 1187 sizeof(mmc_stack), mmc_thread_name IF_PRIO(, PRIORITY_SYSTEM));
1188#endif 1188#endif
1189 tick_add_task(mmc_tick); 1189 tick_add_task(mmc_tick);
1190 initialized = true; 1190 initialized = true;
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index daad4f17de..6536a34037 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -674,7 +674,7 @@ void button_init(void)
674 GPIOA_INT_CLR = GPIOA_INT_STAT; 674 GPIOA_INT_CLR = GPIOA_INT_STAT;
675 GPIOA_INT_EN = 0xff; 675 GPIOA_INT_EN = 0xff;
676#endif /* CONFIG_KEYPAD */ 676#endif /* CONFIG_KEYPAD */
677 queue_init(&button_queue); 677 queue_init(&button_queue, true);
678 button_read(); 678 button_read();
679 lastbtn = button_read(); 679 lastbtn = button_read();
680 tick_add_task(button_tick); 680 tick_add_task(button_tick);
diff --git a/firmware/drivers/fmradio_i2c.c b/firmware/drivers/fmradio_i2c.c
index 6f87e15b3e..62761b3aa7 100644
--- a/firmware/drivers/fmradio_i2c.c
+++ b/firmware/drivers/fmradio_i2c.c
@@ -317,8 +317,7 @@ static void fmradio_i2c_ack(int bit)
317 317
318 SCL_INPUT; /* Set the clock to input */ 318 SCL_INPUT; /* Set the clock to input */
319 while(!SCL) /* and wait for the slave to release it */ 319 while(!SCL) /* and wait for the slave to release it */
320 sleep_thread(); 320 sleep_thread(0);
321 wake_up_thread();
322 321
323 DELAY; 322 DELAY;
324 SCL_OUTPUT; 323 SCL_OUTPUT;
@@ -337,8 +336,7 @@ static int fmradio_i2c_getack(void)
337 SDA_INPUT; /* And set to input */ 336 SDA_INPUT; /* And set to input */
338 SCL_INPUT; /* Set the clock to input */ 337 SCL_INPUT; /* Set the clock to input */
339 while(!SCL) /* and wait for the slave to release it */ 338 while(!SCL) /* and wait for the slave to release it */
340 sleep_thread(); 339 sleep_thread(0);
341 wake_up_thread();
342 340
343 if (SDA) 341 if (SDA)
344 /* ack failed */ 342 /* ack failed */
diff --git a/firmware/drivers/i2c.c b/firmware/drivers/i2c.c
index 71cb9cf8b0..2b439c23ad 100644
--- a/firmware/drivers/i2c.c
+++ b/firmware/drivers/i2c.c
@@ -145,8 +145,7 @@ void i2c_ack(int bit)
145 145
146 SCL_INPUT; /* Set the clock to input */ 146 SCL_INPUT; /* Set the clock to input */
147 while(!SCL) /* and wait for the MAS to release it */ 147 while(!SCL) /* and wait for the MAS to release it */
148 sleep_thread(); 148 sleep_thread(1);
149 wake_up_thread();
150 149
151 DELAY; 150 DELAY;
152 SCL_OUTPUT; 151 SCL_OUTPUT;
@@ -168,8 +167,7 @@ int i2c_getack(void)
168 SDA_INPUT; /* And set to input */ 167 SDA_INPUT; /* And set to input */
169 SCL_INPUT; /* Set the clock to input */ 168 SCL_INPUT; /* Set the clock to input */
170 while(!SCL) /* and wait for the MAS to release it */ 169 while(!SCL) /* and wait for the MAS to release it */
171 sleep_thread(); 170 sleep_thread(1);
172 wake_up_thread();
173 171
174 if (SDA) 172 if (SDA)
175 /* ack failed */ 173 /* ack failed */
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index e6ae28bc19..47c02ea7b7 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -79,7 +79,7 @@ void lcd_init(void)
79 /* Call device specific init */ 79 /* Call device specific init */
80 lcd_init_device(); 80 lcd_init_device();
81 create_thread(scroll_thread, scroll_stack, 81 create_thread(scroll_thread, scroll_stack,
82 sizeof(scroll_stack), scroll_name); 82 sizeof(scroll_stack), scroll_name, PRIORITY_SYSTEM);
83} 83}
84 84
85/*** parameter handling ***/ 85/*** parameter handling ***/
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c
index 33f483d38d..dc49a37c8a 100644
--- a/firmware/drivers/lcd-2bit-horz.c
+++ b/firmware/drivers/lcd-2bit-horz.c
@@ -76,7 +76,7 @@ void lcd_init(void)
76 /* Call device specific init */ 76 /* Call device specific init */
77 lcd_init_device(); 77 lcd_init_device();
78 create_thread(scroll_thread, scroll_stack, 78 create_thread(scroll_thread, scroll_stack,
79 sizeof(scroll_stack), scroll_name); 79 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
80} 80}
81 81
82/*** parameter handling ***/ 82/*** parameter handling ***/
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index ed5816cebf..5db6d548ff 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -573,7 +573,7 @@ static void remote_tick(void)
573void lcd_remote_init(void) 573void lcd_remote_init(void)
574{ 574{
575 create_thread(scroll_thread, scroll_stack, 575 create_thread(scroll_thread, scroll_stack,
576 sizeof(scroll_stack), scroll_name); 576 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
577} 577}
578#else /* !SIMULATOR */ 578#else /* !SIMULATOR */
579 579
@@ -601,10 +601,11 @@ void lcd_remote_init(void)
601#endif 601#endif
602 lcd_remote_clear_display(); 602 lcd_remote_clear_display();
603 603
604 queue_clear(&remote_scroll_queue); /* no queue_init() -- private queue */ 604 /* private queue */
605 queue_init(&remote_scroll_queue, false);
605 tick_add_task(remote_tick); 606 tick_add_task(remote_tick);
606 create_thread(scroll_thread, scroll_stack, 607 create_thread(scroll_thread, scroll_stack,
607 sizeof(scroll_stack), scroll_name); 608 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
608} 609}
609 610
610/*** update functions ***/ 611/*** update functions ***/
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index 8407876d34..ada6f29216 100644
--- a/firmware/drivers/lcd-h100.c
+++ b/firmware/drivers/lcd-h100.c
@@ -144,7 +144,7 @@ void lcd_set_flip(bool yesno)
144void lcd_init(void) 144void lcd_init(void)
145{ 145{
146 create_thread(scroll_thread, scroll_stack, 146 create_thread(scroll_thread, scroll_stack,
147 sizeof(scroll_stack), scroll_name); 147 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
148} 148}
149#else 149#else
150 150
@@ -193,7 +193,7 @@ void lcd_init(void)
193 lcd_write_command(LCD_CNTL_ON_OFF | 1); /* LCD ON */ 193 lcd_write_command(LCD_CNTL_ON_OFF | 1); /* LCD ON */
194 194
195 create_thread(scroll_thread, scroll_stack, 195 create_thread(scroll_thread, scroll_stack,
196 sizeof(scroll_stack), scroll_name); 196 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
197} 197}
198 198
199/*** update functions ***/ 199/*** update functions ***/
diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c
index 16012470fa..050258d1f8 100644
--- a/firmware/drivers/lcd-player.c
+++ b/firmware/drivers/lcd-player.c
@@ -610,7 +610,7 @@ void lcd_init (void)
610 lcd_set_contrast(lcd_default_contrast()); 610 lcd_set_contrast(lcd_default_contrast());
611 611
612 create_thread(scroll_thread, scroll_stack, 612 create_thread(scroll_thread, scroll_stack,
613 sizeof(scroll_stack), scroll_name); 613 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
614} 614}
615 615
616void lcd_jump_scroll (int mode) /* 0=off, 1=once, ..., JUMP_SCROLL_ALWAYS */ 616void lcd_jump_scroll (int mode) /* 0=off, 1=once, ..., JUMP_SCROLL_ALWAYS */
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index 1987d9a3ed..e74cad7f03 100644
--- a/firmware/drivers/lcd-recorder.c
+++ b/firmware/drivers/lcd-recorder.c
@@ -232,7 +232,7 @@ void lcd_set_flip(bool yesno)
232void lcd_init(void) 232void lcd_init(void)
233{ 233{
234 create_thread(scroll_thread, scroll_stack, 234 create_thread(scroll_thread, scroll_stack,
235 sizeof(scroll_stack), scroll_name); 235 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
236} 236}
237#else 237#else
238 238
@@ -278,7 +278,7 @@ void lcd_init(void)
278 lcd_update(); 278 lcd_update();
279 279
280 create_thread(scroll_thread, scroll_stack, 280 create_thread(scroll_thread, scroll_stack,
281 sizeof(scroll_stack), scroll_name); 281 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
282} 282}
283 283
284/*** Update functions ***/ 284/*** Update functions ***/
diff --git a/firmware/drivers/lcd-remote-2bit-vi.c b/firmware/drivers/lcd-remote-2bit-vi.c
index 48f8b8a25f..bae2824050 100755
--- a/firmware/drivers/lcd-remote-2bit-vi.c
+++ b/firmware/drivers/lcd-remote-2bit-vi.c
@@ -1167,7 +1167,7 @@ static void scroll_thread(void)
1167void lcd_remote_init(void) 1167void lcd_remote_init(void)
1168{ 1168{
1169 create_thread(scroll_thread, scroll_stack, 1169 create_thread(scroll_thread, scroll_stack,
1170 sizeof(scroll_stack), scroll_name); 1170 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
1171} 1171}
1172#else 1172#else
1173void lcd_remote_init(void) 1173void lcd_remote_init(void)
@@ -1176,9 +1176,10 @@ void lcd_remote_init(void)
1176 lcd_remote_init_device(); 1176 lcd_remote_init_device();
1177 1177
1178 lcd_remote_clear_display(); 1178 lcd_remote_clear_display();
1179 queue_clear(&remote_scroll_queue); /* no queue_init() -- private queue */ 1179 /* private queue */
1180 queue_init(&remote_scroll_queue, false);
1180 tick_add_task(remote_tick); 1181 tick_add_task(remote_tick);
1181 create_thread(scroll_thread, scroll_stack, 1182 create_thread(scroll_thread, scroll_stack,
1182 sizeof(scroll_stack), scroll_name); 1183 sizeof(scroll_stack), scroll_name IF_PRIO(, PRIORITY_SYSTEM));
1183} 1184}
1184#endif 1185#endif