aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/via/global.c1
-rw-r--r--drivers/video/via/global.h1
-rw-r--r--drivers/video/via/viafbdev.c27
-rw-r--r--drivers/video/via/viafbdev.h1
4 files changed, 8 insertions, 22 deletions
diff --git a/drivers/video/via/global.c b/drivers/video/via/global.c
index 468be2425af3..1096fd5de2bf 100644
--- a/drivers/video/via/global.c
+++ b/drivers/video/via/global.c
@@ -46,7 +46,6 @@ int viafb_hotplug_refresh = 60;
46unsigned int viafb_second_offset; 46unsigned int viafb_second_offset;
47int viafb_second_size; 47int viafb_second_size;
48int viafb_primary_dev = None_Device; 48int viafb_primary_dev = None_Device;
49void __iomem *viafb_FB_MM;
50unsigned int viafb_second_xres = 640; 49unsigned int viafb_second_xres = 640;
51unsigned int viafb_second_yres = 480; 50unsigned int viafb_second_yres = 480;
52unsigned int viafb_second_virtual_xres; 51unsigned int viafb_second_virtual_xres;
diff --git a/drivers/video/via/global.h b/drivers/video/via/global.h
index 7543d5f7e309..11382e5daf35 100644
--- a/drivers/video/via/global.h
+++ b/drivers/video/via/global.h
@@ -77,7 +77,6 @@ extern int viafb_hotplug_Yres;
77extern int viafb_hotplug_bpp; 77extern int viafb_hotplug_bpp;
78extern int viafb_hotplug_refresh; 78extern int viafb_hotplug_refresh;
79extern int viafb_primary_dev; 79extern int viafb_primary_dev;
80extern void __iomem *viafb_FB_MM;
81extern struct fb_cursor viacursor; 80extern struct fb_cursor viacursor;
82 81
83extern unsigned int viafb_second_xres; 82extern unsigned int viafb_second_xres;
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index 0cd112a36901..86835ee41027 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -832,8 +832,7 @@ static void viafb_fillrect(struct fb_info *info,
832 /* Source Base Address */ 832 /* Source Base Address */
833 writel(0x0, viaparinfo->io_virt + VIA_REG_SRCBASE); 833 writel(0x0, viaparinfo->io_virt + VIA_REG_SRCBASE);
834 /* Destination Base Address */ 834 /* Destination Base Address */
835 writel(((unsigned long) (info->screen_base) - 835 writel((info->fix.smem_start - viafbinfo->fix.smem_start) >> 3,
836 (unsigned long) viafb_FB_MM) >> 3,
837 viaparinfo->io_virt + VIA_REG_DSTBASE); 836 viaparinfo->io_virt + VIA_REG_DSTBASE);
838 /* Pitch */ 837 /* Pitch */
839 pitch = (info->var.xres_virtual + 7) & ~7; 838 pitch = (info->var.xres_virtual + 7) & ~7;
@@ -887,12 +886,10 @@ static void viafb_copyarea(struct fb_info *info,
887 } 886 }
888 887
889 /* Source Base Address */ 888 /* Source Base Address */
890 writel(((unsigned long) (info->screen_base) - 889 writel((info->fix.smem_start - viafbinfo->fix.smem_start) >> 3,
891 (unsigned long) viafb_FB_MM) >> 3,
892 viaparinfo->io_virt + VIA_REG_SRCBASE); 890 viaparinfo->io_virt + VIA_REG_SRCBASE);
893 /* Destination Base Address */ 891 /* Destination Base Address */
894 writel(((unsigned long) (info->screen_base) - 892 writel((info->fix.smem_start - viafbinfo->fix.smem_start) >> 3,
895 (unsigned long) viafb_FB_MM) >> 3,
896 viaparinfo->io_virt + VIA_REG_DSTBASE); 893 viaparinfo->io_virt + VIA_REG_DSTBASE);
897 /* Pitch */ 894 /* Pitch */
898 pitch = (info->var.xres_virtual + 7) & ~7; 895 pitch = (info->var.xres_virtual + 7) & ~7;
@@ -951,8 +948,7 @@ static void viafb_imageblit(struct fb_info *info,
951 /* Source Base Address */ 948 /* Source Base Address */
952 writel(0x0, viaparinfo->io_virt + VIA_REG_SRCBASE); 949 writel(0x0, viaparinfo->io_virt + VIA_REG_SRCBASE);
953 /* Destination Base Address */ 950 /* Destination Base Address */
954 writel(((unsigned long) (info->screen_base) - 951 writel((info->fix.smem_start - viafbinfo->fix.smem_start) >> 3,
955 (unsigned long) viafb_FB_MM) >> 3,
956 viaparinfo->io_virt + VIA_REG_DSTBASE); 952 viaparinfo->io_virt + VIA_REG_DSTBASE);
957 /* Pitch */ 953 /* Pitch */
958 pitch = (info->var.xres_virtual + 7) & ~7; 954 pitch = (info->var.xres_virtual + 7) & ~7;
@@ -1170,7 +1166,7 @@ static int viafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
1170 } 1166 }
1171 } 1167 }
1172 1168
1173 memcpy(((struct viafb_par *)(info->par))->fbmem_virt + 1169 memcpy(viafbinfo->screen_base +
1174 ((struct viafb_par *)(info->par))->cursor_start, 1170 ((struct viafb_par *)(info->par))->cursor_start,
1175 cr_data->bak, CURSOR_SIZE); 1171 cr_data->bak, CURSOR_SIZE);
1176out: 1172out:
@@ -2073,11 +2069,9 @@ static int __devinit via_pci_probe(void)
2073 viafb_get_fb_info(&viaparinfo->fbmem, &viaparinfo->memsize); 2069 viafb_get_fb_info(&viaparinfo->fbmem, &viaparinfo->memsize);
2074 viaparinfo->fbmem_free = viaparinfo->memsize; 2070 viaparinfo->fbmem_free = viaparinfo->memsize;
2075 viaparinfo->fbmem_used = 0; 2071 viaparinfo->fbmem_used = 0;
2076 viaparinfo->fbmem_virt = ioremap_nocache(viaparinfo->fbmem, 2072 viafbinfo->screen_base = ioremap_nocache(viaparinfo->fbmem,
2077 viaparinfo->memsize); 2073 viaparinfo->memsize);
2078 viafbinfo->screen_base = (char *)viaparinfo->fbmem_virt; 2074 if (!viafbinfo->screen_base) {
2079
2080 if (!viaparinfo->fbmem_virt) {
2081 printk(KERN_INFO "ioremap failed\n"); 2075 printk(KERN_INFO "ioremap failed\n");
2082 return -ENOMEM; 2076 return -ENOMEM;
2083 } 2077 }
@@ -2110,7 +2104,6 @@ static int __devinit via_pci_probe(void)
2110 viafb_second_size * 1024 * 1024; 2104 viafb_second_size * 1024 * 1024;
2111 } 2105 }
2112 2106
2113 viafb_FB_MM = viaparinfo->fbmem_virt;
2114 tmpm = viafb_mode; 2107 tmpm = viafb_mode;
2115 tmpc = strsep(&tmpm, "x"); 2108 tmpc = strsep(&tmpm, "x");
2116 strict_strtoul(tmpc, 0, &default_xres); 2109 strict_strtoul(tmpc, 0, &default_xres);
@@ -2203,8 +2196,6 @@ static int __devinit via_pci_probe(void)
2203 viaparinfo1->memsize = viaparinfo->memsize - 2196 viaparinfo1->memsize = viaparinfo->memsize -
2204 viafb_second_offset; 2197 viafb_second_offset;
2205 viaparinfo->memsize = viafb_second_offset; 2198 viaparinfo->memsize = viafb_second_offset;
2206 viaparinfo1->fbmem_virt = viaparinfo->fbmem_virt +
2207 viafb_second_offset;
2208 viaparinfo1->fbmem = viaparinfo->fbmem + viafb_second_offset; 2199 viaparinfo1->fbmem = viaparinfo->fbmem + viafb_second_offset;
2209 2200
2210 viaparinfo1->fbmem_used = viaparinfo->fbmem_used; 2201 viaparinfo1->fbmem_used = viaparinfo->fbmem_used;
@@ -2226,8 +2217,6 @@ static int __devinit via_pci_probe(void)
2226 memcpy(viafbinfo1, viafbinfo, sizeof(struct fb_info)); 2217 memcpy(viafbinfo1, viafbinfo, sizeof(struct fb_info));
2227 viafbinfo1->screen_base = viafbinfo->screen_base + 2218 viafbinfo1->screen_base = viafbinfo->screen_base +
2228 viafb_second_offset; 2219 viafb_second_offset;
2229 viafbinfo1->fix.smem_start = viaparinfo1->fbmem;
2230 viafbinfo1->fix.smem_len = viaparinfo1->fbmem_free;
2231 2220
2232 default_var.xres = viafb_second_xres; 2221 default_var.xres = viafb_second_xres;
2233 default_var.yres = viafb_second_yres; 2222 default_var.yres = viafb_second_yres;
@@ -2289,7 +2278,7 @@ static void __devexit via_pci_remove(void)
2289 unregister_framebuffer(viafbinfo); 2278 unregister_framebuffer(viafbinfo);
2290 if (viafb_dual_fb) 2279 if (viafb_dual_fb)
2291 unregister_framebuffer(viafbinfo1); 2280 unregister_framebuffer(viafbinfo1);
2292 iounmap((void *)viaparinfo->fbmem_virt); 2281 iounmap((void *)viafbinfo->screen_base);
2293 iounmap(viaparinfo->io_virt); 2282 iounmap(viaparinfo->io_virt);
2294 2283
2295 viafb_delete_i2c_buss(viaparinfo); 2284 viafb_delete_i2c_buss(viaparinfo);
diff --git a/drivers/video/via/viafbdev.h b/drivers/video/via/viafbdev.h
index 92318770107e..e5a247c1bb91 100644
--- a/drivers/video/via/viafbdev.h
+++ b/drivers/video/via/viafbdev.h
@@ -38,7 +38,6 @@
38#define VERSION_MINOR 4 38#define VERSION_MINOR 4
39 39
40struct viafb_par { 40struct viafb_par {
41 void __iomem *fbmem_virt; /*framebuffer virtual memory address */
42 void __iomem *io_virt; /*iospace virtual memory address */ 41 void __iomem *io_virt; /*iospace virtual memory address */
43 unsigned int fbmem; /*framebuffer physical memory address */ 42 unsigned int fbmem; /*framebuffer physical memory address */
44 unsigned int memsize; /*size of fbmem */ 43 unsigned int memsize; /*size of fbmem */