aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodolfo Giometti <giometti@linux.it>2006-08-05 15:14:22 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-08-06 11:57:47 -0400
commitbb39e419740435b7fbb0314e376ba468be7db67a (patch)
tree43af0079ae65f952453fdc46e9bd67a49fcf0bd8
parentfd2d54300369690500fc9b1bac9440d2ee81913a (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>
-rw-r--r--drivers/video/au1100fb.c13
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}