diff options
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/aty/aty128fb.c | 10 | ||||
-rw-r--r-- | drivers/video/au1100fb.c | 18 |
2 files changed, 11 insertions, 17 deletions
diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c index 8b08121b390b..3e827e04a2aa 100644 --- a/drivers/video/aty/aty128fb.c +++ b/drivers/video/aty/aty128fb.c | |||
@@ -1913,9 +1913,6 @@ static int __devinit aty128_init(struct pci_dev *pdev, const struct pci_device_i | |||
1913 | u8 chip_rev; | 1913 | u8 chip_rev; |
1914 | u32 dac; | 1914 | u32 dac; |
1915 | 1915 | ||
1916 | if (!par->vram_size) /* may have already been probed */ | ||
1917 | par->vram_size = aty_ld_le32(CONFIG_MEMSIZE) & 0x03FFFFFF; | ||
1918 | |||
1919 | /* Get the chip revision */ | 1916 | /* Get the chip revision */ |
1920 | chip_rev = (aty_ld_le32(CONFIG_CNTL) >> 16) & 0x1F; | 1917 | chip_rev = (aty_ld_le32(CONFIG_CNTL) >> 16) & 0x1F; |
1921 | 1918 | ||
@@ -2028,9 +2025,6 @@ static int __devinit aty128_init(struct pci_dev *pdev, const struct pci_device_i | |||
2028 | 2025 | ||
2029 | aty128_init_engine(par); | 2026 | aty128_init_engine(par); |
2030 | 2027 | ||
2031 | if (register_framebuffer(info) < 0) | ||
2032 | return 0; | ||
2033 | |||
2034 | par->pm_reg = pci_find_capability(pdev, PCI_CAP_ID_PM); | 2028 | par->pm_reg = pci_find_capability(pdev, PCI_CAP_ID_PM); |
2035 | par->pdev = pdev; | 2029 | par->pdev = pdev; |
2036 | par->asleep = 0; | 2030 | par->asleep = 0; |
@@ -2040,6 +2034,9 @@ static int __devinit aty128_init(struct pci_dev *pdev, const struct pci_device_i | |||
2040 | aty128_bl_init(par); | 2034 | aty128_bl_init(par); |
2041 | #endif | 2035 | #endif |
2042 | 2036 | ||
2037 | if (register_framebuffer(info) < 0) | ||
2038 | return 0; | ||
2039 | |||
2043 | printk(KERN_INFO "fb%d: %s frame buffer device on %s\n", | 2040 | printk(KERN_INFO "fb%d: %s frame buffer device on %s\n", |
2044 | info->node, info->fix.id, video_card); | 2041 | info->node, info->fix.id, video_card); |
2045 | 2042 | ||
@@ -2089,7 +2086,6 @@ static int __devinit aty128_probe(struct pci_dev *pdev, const struct pci_device_ | |||
2089 | par = info->par; | 2086 | par = info->par; |
2090 | 2087 | ||
2091 | info->pseudo_palette = par->pseudo_palette; | 2088 | info->pseudo_palette = par->pseudo_palette; |
2092 | info->fix = aty128fb_fix; | ||
2093 | 2089 | ||
2094 | /* Virtualize mmio region */ | 2090 | /* Virtualize mmio region */ |
2095 | info->fix.mmio_start = reg_addr; | 2091 | info->fix.mmio_start = reg_addr; |
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c index a92a91fef16f..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; |
@@ -164,20 +164,16 @@ int au1100fb_setmode(struct au1100fb_device *fbdev) | |||
164 | } | 164 | } |
165 | 165 | ||
166 | info->screen_size = info->fix.line_length * info->var.yres_virtual; | 166 | info->screen_size = info->fix.line_length * info->var.yres_virtual; |
167 | info->var.rotate = ((fbdev->panel->control_base&LCD_CONTROL_SM_MASK) \ | ||
168 | >> LCD_CONTROL_SM_BIT) * 90; | ||
167 | 169 | ||
168 | /* Determine BPP mode and format */ | 170 | /* Determine BPP mode and format */ |
169 | fbdev->regs->lcd_control = fbdev->panel->control_base | | 171 | fbdev->regs->lcd_control = fbdev->panel->control_base; |
170 | ((info->var.rotate/90) << LCD_CONTROL_SM_BIT); | ||
171 | |||
172 | fbdev->regs->lcd_intenable = 0; | ||
173 | fbdev->regs->lcd_intstatus = 0; | ||
174 | |||
175 | fbdev->regs->lcd_horztiming = fbdev->panel->horztiming; | 172 | fbdev->regs->lcd_horztiming = fbdev->panel->horztiming; |
176 | |||
177 | fbdev->regs->lcd_verttiming = fbdev->panel->verttiming; | 173 | fbdev->regs->lcd_verttiming = fbdev->panel->verttiming; |
178 | |||
179 | fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base; | 174 | fbdev->regs->lcd_clkcontrol = fbdev->panel->clkcontrol_base; |
180 | 175 | fbdev->regs->lcd_intenable = 0; | |
176 | fbdev->regs->lcd_intstatus = 0; | ||
181 | fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys); | 177 | fbdev->regs->lcd_dmaaddr0 = LCD_DMA_SA_N(fbdev->fb_phys); |
182 | 178 | ||
183 | if (panel_is_dual(fbdev->panel)) { | 179 | if (panel_is_dual(fbdev->panel)) { |
@@ -206,6 +202,8 @@ int au1100fb_setmode(struct au1100fb_device *fbdev) | |||
206 | 202 | ||
207 | /* Resume controller */ | 203 | /* Resume controller */ |
208 | 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); | ||
209 | 207 | ||
210 | return 0; | 208 | return 0; |
211 | } | 209 | } |