diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c index ef45317c3f..e74e227e47 100644 --- a/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/lcd-jz4740.c | |||
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | static volatile bool lcd_is_on = false; | 35 | static volatile bool lcd_is_on = false; |
36 | static struct mutex lcd_mtx; | 36 | static struct mutex lcd_mtx; |
37 | static struct wakeup lcd_wkup; | 37 | static struct semaphore lcd_wkup; |
38 | static int lcd_count = 0; | 38 | static int lcd_count = 0; |
39 | 39 | ||
40 | void lcd_clock_enable(void) | 40 | void lcd_clock_enable(void) |
@@ -56,7 +56,7 @@ void lcd_init_device(void) | |||
56 | 56 | ||
57 | lcd_is_on = true; | 57 | lcd_is_on = true; |
58 | mutex_init(&lcd_mtx); | 58 | mutex_init(&lcd_mtx); |
59 | wakeup_init(&lcd_wkup); | 59 | semaphore_init(&lcd_wkup, 1, 0); |
60 | system_enable_irq(DMA_IRQ(DMA_LCD_CHANNEL)); | 60 | system_enable_irq(DMA_IRQ(DMA_LCD_CHANNEL)); |
61 | } | 61 | } |
62 | 62 | ||
@@ -118,7 +118,7 @@ void lcd_update_rect(int x, int y, int width, int height) | |||
118 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) |= DMAC_DCCSR_EN; /* Enable DMA channel */ | 118 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) |= DMAC_DCCSR_EN; /* Enable DMA channel */ |
119 | REG_DMAC_DCMD(DMA_LCD_CHANNEL) |= DMAC_DCMD_TIE; /* Enable DMA interrupt */ | 119 | REG_DMAC_DCMD(DMA_LCD_CHANNEL) |= DMAC_DCMD_TIE; /* Enable DMA interrupt */ |
120 | 120 | ||
121 | wakeup_wait(&lcd_wkup, TIMEOUT_BLOCK); /* Sleeping in lcd_update() should be safe */ | 121 | semaphore_wait(&lcd_wkup, TIMEOUT_BLOCK); /* Sleeping in lcd_update() should be safe */ |
122 | 122 | ||
123 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) &= ~DMAC_DCCSR_EN; /* Disable DMA channel */ | 123 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) &= ~DMAC_DCCSR_EN; /* Disable DMA channel */ |
124 | dma_disable(); | 124 | dma_disable(); |
@@ -145,7 +145,7 @@ void DMA_CALLBACK(DMA_LCD_CHANNEL)(void) | |||
145 | if (REG_DMAC_DCCSR(DMA_LCD_CHANNEL) & DMAC_DCCSR_TT) | 145 | if (REG_DMAC_DCCSR(DMA_LCD_CHANNEL) & DMAC_DCCSR_TT) |
146 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) &= ~DMAC_DCCSR_TT; | 146 | REG_DMAC_DCCSR(DMA_LCD_CHANNEL) &= ~DMAC_DCCSR_TT; |
147 | 147 | ||
148 | wakeup_signal(&lcd_wkup); | 148 | semaphore_release(&lcd_wkup); |
149 | } | 149 | } |
150 | 150 | ||
151 | /* Update the display. | 151 | /* Update the display. |