diff options
author | Rodolfo Giometti <giometti@linux.it> | 2006-08-05 15:14:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-06 11:57:47 -0400 |
commit | bb39e419740435b7fbb0314e376ba468be7db67a (patch) | |
tree | 43af0079ae65f952453fdc46e9bd67a49fcf0bd8 /drivers/video/au1100fb.c | |
parent | fd2d54300369690500fc9b1bac9440d2ee81913a (diff) |
[PATCH] au1100fb: Fix startup sequence
- fix up the start up sequence.
This new sequence allow you to correctly enable the LCD controller
even if the bootloader has already did it.
- fix up a wrong indentation issue.
Signed-off-by: Rodolfo Giometti <giometti@linux.it>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/au1100fb.c')
-rw-r--r-- | drivers/video/au1100fb.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c index 26086bf5fa80..f25d5d648333 100644 --- a/drivers/video/au1100fb.c +++ b/drivers/video/au1100fb.c | |||
@@ -156,7 +156,7 @@ int au1100fb_setmode(struct au1100fb_device *fbdev) | |||
156 | 156 | ||
157 | info->fix.visual = FB_VISUAL_TRUECOLOR; | 157 | info->fix.visual = FB_VISUAL_TRUECOLOR; |
158 | info->fix.line_length = info->var.xres_virtual << 1; /* depth=16 */ | 158 | info->fix.line_length = info->var.xres_virtual << 1; /* depth=16 */ |
159 | } | 159 | } |
160 | } else { | 160 | } else { |
161 | /* mono */ | 161 | /* mono */ |
162 | info->fix.visual = FB_VISUAL_MONO10; | 162 | info->fix.visual = FB_VISUAL_MONO10; |
@@ -169,16 +169,11 @@ int au1100fb_setmode(struct au1100fb_device *fbdev) | |||
169 | 169 | ||
170 | /* Determine BPP mode and format */ | 170 | /* Determine BPP mode and format */ |
171 | fbdev->regs->lcd_control = fbdev->panel->control_base; | 171 | fbdev->regs->lcd_control = fbdev->panel->control_base; |
172 | |||
173 | fbdev->regs->lcd_intenable = 0; | ||
174 | fbdev->regs->lcd_intstatus = 0; | ||
175 | |||
176 | fbdev->regs->lcd_horztiming = fbdev->panel->horztiming; | 172 | fbdev->regs->lcd_horztiming = fbdev->panel->horztiming; |
177 | |||
178 | fbdev->regs->lcd_verttiming = fbdev->panel->verttiming; | 173 | fbdev->regs->lcd_verttiming = fbdev->panel->verttiming; |
179 | |||
180 | fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base; | 174 | fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base; |
181 | 175 | fbdev->regs->lcd_intenable = 0; | |
176 | fbdev->regs->lcd_intstatus = 0; | ||
182 | fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys); | 177 | fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys); |
183 | 178 | ||
184 | if (panel_is_dual(fbdev->panel)) { | 179 | if (panel_is_dual(fbdev->panel)) { |
@@ -207,6 +202,8 @@ int au1100fb_setmode(struct au1100fb_device *fbdev) | |||
207 | 202 | ||
208 | /* Resume controller */ | 203 | /* Resume controller */ |
209 | fbdev->regs->lcd_control |= LCD_CONTROL_GO; | 204 | fbdev->regs->lcd_control |= LCD_CONTROL_GO; |
205 | mdelay(10); | ||
206 | au1100fb_fb_blank(VESA_NO_BLANKING, info); | ||
210 | 207 | ||
211 | return 0; | 208 | return 0; |
212 | } | 209 | } |