[Fwd: [patch] fbcon cleanup (was Re: tgafb error)]

Jeff Garzik (jgarzik@pobox.com)
Thu, 19 Aug 1999 12:08:22 -0400


This is a multi-part message in MIME format.
--------------8B4182FC4FC4F1A9C613B6A0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Forwarded by request. Let me know if there are any comments or problems
with this approach.

The attached patch uses io_remap_page_range() in
drivers/video/fbmem.c:fb_mmap() instead of remap_page_range(), to clean
up the casting mess and ambiguities left around from historical fbcon
code.

io_remap_page_range() already existed on the Sparc archs, so I added it
to the other popular archs -- except mips and arm, which I know nothing
about.

Disclaimer: Patch not yet tested.

Regards,

Jeff

-- 
Any sufficiently advanced technology is indistinguishable from a rigged
demo.
	-- Andy Finkel
--------------8B4182FC4FC4F1A9C613B6A0
Content-Type: text/plain; charset=us-ascii;
 name="patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch"

diff -ur linux-2.3.14/drivers/video/S3triofb.c linux/drivers/video/S3triofb.c --- linux-2.3.14/drivers/video/S3triofb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/S3triofb.c Thu Aug 19 11:08:52 1999 @@ -446,11 +446,11 @@ s3trio_init(dp); address = 0xc6000000; s3trio_base = ioremap(address,64*1024*1024); - fb_fix.smem_start = (char *)address; + fb_fix.smem_start = address; fb_fix.type = FB_TYPE_PACKED_PIXELS; fb_fix.type_aux = 0; fb_fix.accel = FB_ACCEL_S3_TRIO64; - fb_fix.mmio_start = (char *)address+0x1000000; + fb_fix.mmio_start = address+0x1000000; fb_fix.mmio_len = 0x1000000; fb_fix.xpanstep = 1; diff -ur linux-2.3.14/drivers/video/acornfb.c linux/drivers/video/acornfb.c --- linux-2.3.14/drivers/video/acornfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/acornfb.c Thu Aug 19 11:08:52 1999 @@ -1037,7 +1037,7 @@ else display = &global_disp; - fix->smem_start = (char *)current_par.screen_base_p; + fix->smem_start = current_par.screen_base_p; fix->smem_len = current_par.screen_size; fix->type = display->type; fix->type_aux = display->type_aux; diff -ur linux-2.3.14/drivers/video/amifb.c linux/drivers/video/amifb.c --- linux-2.3.14/drivers/video/amifb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/amifb.c Thu Aug 19 11:08:52 1999 @@ -1981,7 +1981,7 @@ { memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, amifb_name); - fix->smem_start = (char *)videomemory_phys; + fix->smem_start = videomemory_phys; fix->smem_len = videomemorysize; #ifdef FBCON_HAS_MFB diff -ur linux-2.3.14/drivers/video/atyfb.c linux/drivers/video/atyfb.c --- linux-2.3.14/drivers/video/atyfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/atyfb.c Thu Aug 19 11:08:53 1999 @@ -1926,7 +1926,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, atyfb_name); - fix->smem_start = (char *)info->frame_buffer_phys; + fix->smem_start = info->frame_buffer_phys; fix->smem_len = (u32)info->total_vram; #ifdef __LITTLE_ENDIAN @@ -1943,19 +1943,19 @@ * Reg Block 1 (multimedia extensions) is at ati_regbase_phys-0x400 */ if (Gx == GX_CHIP_ID || Gx == CX_CHIP_ID) { - fix->mmio_start = (char *)info->ati_regbase_phys; + fix->mmio_start = info->ati_regbase_phys; fix->mmio_len = 0x400; fix->accel = FB_ACCEL_ATI_MACH64GX; } else if (Gx == CT_CHIP_ID || Gx == ET_CHIP_ID) { - fix->mmio_start = (char *)info->ati_regbase_phys; + fix->mmio_start = info->ati_regbase_phys; fix->mmio_len = 0x400; fix->accel = FB_ACCEL_ATI_MACH64CT; } else if (Gx == VT_CHIP_ID || Gx == VU_CHIP_ID || Gx == VV_CHIP_ID) { - fix->mmio_start = (char *)(info->ati_regbase_phys-0x400); + fix->mmio_start = info->ati_regbase_phys-0x400); fix->mmio_len = 0x800; fix->accel = FB_ACCEL_ATI_MACH64VT; } else { - fix->mmio_start = (char *)(info->ati_regbase_phys-0x400); + fix->mmio_start = info->ati_regbase_phys-0x400); fix->mmio_len = 0x800; fix->accel = FB_ACCEL_ATI_MACH64GT; } diff -ur linux-2.3.14/drivers/video/chipsfb.c linux/drivers/video/chipsfb.c --- linux-2.3.14/drivers/video/chipsfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/chipsfb.c Thu Aug 19 11:08:53 1999 @@ -549,7 +549,7 @@ int i; strcpy(p->fix.id, "C&T 65550"); - p->fix.smem_start = (char *) p->frame_buffer_phys; + p->fix.smem_start = p->frame_buffer_phys; // FIXME: Assumes 1MB frame buffer, but 65550 supports 1MB or 2MB. // * "3500" PowerBook G3 (the original PB G3) has 2MB. diff -ur linux-2.3.14/drivers/video/clgenfb.c linux/drivers/video/clgenfb.c --- linux-2.3.14/drivers/video/clgenfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/clgenfb.c Thu Aug 19 10:55:38 1999 @@ -31,7 +31,7 @@ * */ -#define CLGEN_VERSION "1.9.4.1" +#define CLGEN_VERSION "1.9.4.2" #include <linux/module.h> #include <linux/kernel.h> @@ -98,7 +98,6 @@ if(!(expr)) { \ printk( "Assertion failed! %s,%s,%s,line=%d\n",\ #expr,__FILE__,__FUNCTION__,__LINE__); \ - *(int*)0 = 0;\ } #else #define assert(expr) @@ -635,18 +634,18 @@ switch (_par->var.bits_per_pixel) { case 1: case 8: - fix->smem_start = (char *) _info->fbmem_phys; + fix->smem_start = _info->fbmem_phys; break; case 16: - fix->smem_start = (char *) _info->fbmem_phys + 1 * MB_; + fix->smem_start = _info->fbmem_phys + 1 * MB_; break; case 24: case 32: - fix->smem_start = (char *) _info->fbmem_phys + 2 * MB_; + fix->smem_start = _info->fbmem_phys + 2 * MB_; break; } } else { - fix->smem_start = (char *) _info->fbmem_phys; + fix->smem_start = _info->fbmem_phys; } /* monochrome: only 1 memory plane */ @@ -662,7 +661,7 @@ fix->line_length = _par->line_length; /* FIXME: map region at 0xB8000 if available, fill in here */ - fix->mmio_start = (char *) NULL; + fix->mmio_start = 0; fix->mmio_len = 0; fix->accel = FB_ACCEL_NONE; @@ -831,7 +830,7 @@ if (_par->var.yoffset > _par->var.yres_virtual - _par->var.yres) _par->var.yoffset = _par->var.yres_virtual - _par->var.yres - 1; - switch (var->bits_per_pixel) { + switch (_par->var.bits_per_pixel) { case 1: _par->line_length = _par->var.xres_virtual / 8; _par->visual = FB_VISUAL_MONO10; @@ -900,7 +899,8 @@ break; default: - assert (0); + DPRINTK("Unsupported bpp size: %d\n", _par->var.bits_per_pixel); + assert (FALSE); /* should never occur */ break; } @@ -951,7 +951,7 @@ bestclock (freq, &_par->freq, &_par->nom, &_par->den, &_par->div, maxclock); - _par->mclk = clgen_get_mclk (freq, var->bits_per_pixel, &_par->divMCLK); + _par->mclk = clgen_get_mclk (freq, _par->var.bits_per_pixel, &_par->divMCLK); xres = _par->var.xres; hfront = _par->var.right_margin; @@ -2326,7 +2326,7 @@ clgen_pci_probe_list[i].device, NULL); if (pdev) - *btype = clgen_pci_probe_list[i].btype; + *btype = clgen_pci_probe_list[i - 1].btype; DPRINTK ("EXIT, returning %p\n", pdev); return pdev; @@ -2485,7 +2485,7 @@ *key2_o = zorro_find (clgen_zorro_probe_list[i].key2, 0, 0); else *key2_o = 0; - *btype = clgen_zorro_probe_list[i].btype; + *btype = clgen_zorro_probe_list[i - 1].btype; printk (KERN_INFO "clgen: %s board detected; ", clgen_board_info[*btype].name); @@ -3277,7 +3277,7 @@ break; default: /* should never occur */ - assert (0); + assert (FALSE); break; } diff -ur linux-2.3.14/drivers/video/controlfb.c linux/drivers/video/controlfb.c --- linux-2.3.14/drivers/video/controlfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/controlfb.c Thu Aug 19 11:08:53 1999 @@ -998,7 +998,7 @@ { memset(fix, 0, sizeof(*fix)); strcpy(fix->id, "control"); - fix->mmio_start = (char *)p->control_regs_phys; + fix->mmio_start = p->control_regs_phys; fix->mmio_len = sizeof(struct control_regs); fix->type = FB_TYPE_PACKED_PIXELS; @@ -1010,7 +1010,7 @@ fix->xpanstep = 0; */ - fix->smem_start = (void *)(p->frame_buffer_phys + fix->smem_start = (p->frame_buffer_phys + control_reg_init[par->vmode-1]->offset[par->cmode]); fix->smem_len = p->total_vram - control_reg_init[par->vmode-1]->offset[par->cmode]; fix->visual = (par->cmode == CMODE_8) ? diff -ur linux-2.3.14/drivers/video/cyber2000fb.c linux/drivers/video/cyber2000fb.c --- linux-2.3.14/drivers/video/cyber2000fb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/cyber2000fb.c Thu Aug 19 11:08:53 1999 @@ -765,9 +765,9 @@ else display = &global_disp; - fix->smem_start = (char *)current_par.screen_base_p; + fix->smem_start = current_par.screen_base_p; fix->smem_len = current_par.screen_size; - fix->mmio_start = (char *)current_par.regs_base_p; + fix->mmio_start = current_par.regs_base_p; fix->mmio_len = 0x000c0000; fix->type = display->type; fix->type_aux = display->type_aux; diff -ur linux-2.3.14/drivers/video/cyberfb.c linux/drivers/video/cyberfb.c --- linux-2.3.14/drivers/video/cyberfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/cyberfb.c Thu Aug 19 11:08:53 1999 @@ -406,9 +406,9 @@ DPRINTK("ENTER\n"); memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, cyberfb_name); - fix->smem_start = (char*) CyberMem_phys; + fix->smem_start = CyberMem_phys; fix->smem_len = CyberSize; - fix->mmio_start = (char*) CyberRegs_phys; + fix->mmio_start = CyberRegs_phys; fix->mmio_len = 0x10000; fix->type = FB_TYPE_PACKED_PIXELS; diff -ur linux-2.3.14/drivers/video/dnfb.c linux/drivers/video/dnfb.c --- linux-2.3.14/drivers/video/dnfb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/dnfb.c Thu Aug 19 11:08:53 1999 @@ -169,7 +169,7 @@ { memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id,"Apollo Mono"); - fix->smem_start=(char*)(FRAME_BUFFER_START+IO_BASE); + fix->smem_start=FRAME_BUFFER_START+IO_BASE; fix->smem_len=FRAME_BUFFER_LEN; fix->type=FB_TYPE_PACKED_PIXELS; fix->type_aux=0; diff -ur linux-2.3.14/drivers/video/fbmem.c linux/drivers/video/fbmem.c --- linux-2.3.14/drivers/video/fbmem.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/fbmem.c Thu Aug 19 11:08:53 1999 @@ -473,7 +473,7 @@ fb->fb_get_fix(&fix, PROC_CONSOLE(info), info); /* frame buffer memory */ - start = (unsigned long)fix.smem_start; + start = fix.smem_start; len = (start & ~PAGE_MASK)+fix.smem_len; start &= PAGE_MASK; len = (len+~PAGE_MASK) & PAGE_MASK; @@ -483,7 +483,7 @@ fb->fb_get_var(&var, PROC_CONSOLE(info), info); if (var.accel_flags) return -EINVAL; - start = (unsigned long)fix.mmio_start; + start = fix.mmio_start; len = (start & ~PAGE_MASK)+fix.mmio_len; start &= PAGE_MASK; len = (len+~PAGE_MASK) & PAGE_MASK; @@ -524,7 +524,7 @@ #else #warning What do we have to do here?? #endif - if (remap_page_range(vma->vm_start, vma->vm_offset, + if (io_remap_page_range(vma->vm_start, vma->vm_offset, vma->vm_end - vma->vm_start, vma->vm_page_prot)) return -EAGAIN; return 0; diff -ur linux-2.3.14/drivers/video/fm2fb.c linux/drivers/video/fm2fb.c --- linux-2.3.14/drivers/video/fm2fb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/fm2fb.c Thu Aug 19 11:08:53 1999 @@ -415,13 +415,13 @@ fb_var = fb_var_modes[fm2fb_mode]; strcpy(fb_fix.id, is_fm ? "FrameMaster II" : "Rainbow II"); - fb_fix.smem_start = (char *)fm2fb_mem_phys; + fb_fix.smem_start = fm2fb_mem_phys; fb_fix.smem_len = FRAMEMASTER_REG; fb_fix.type = FB_TYPE_PACKED_PIXELS; fb_fix.type_aux = 0; fb_fix.visual = FB_VISUAL_TRUECOLOR; fb_fix.line_length = 768<<2; - fb_fix.mmio_start = (char *)fm2fb_reg_phys; + fb_fix.mmio_start = fm2fb_reg_phys; fb_fix.mmio_len = 8; fb_fix.accel = FB_ACCEL_NONE; diff -ur linux-2.3.14/drivers/video/g364fb.c linux/drivers/video/g364fb.c --- linux-2.3.14/drivers/video/g364fb.c Thu Aug 19 11:30:30 1999 +++ linux/drivers/video/g364fb.c Thu Aug 19 11:08:53 1999 @@ -345,7 +345,7 @@ fb_var.yres = yres; fb_fix.line_length = (xres / 8) * fb_var.bits_per_pixel; - fb_fix.smem_start = (char *)0x40000000; /* physical address */ + fb_fix.smem_start = 0x40000000; /* physical address */ /* get size of video memory; this is special for the JAZZ hardware */ mem = (r4030_read_reg32(JAZZ_R4030_CONFIG) >> 8) & 3; fb_fix.smem_len = (1 << (mem*2)) * 512 * 1024; @@ -355,7 +355,7 @@ fb_fix.xpanstep = 0; fb_fix.ypanstep = 1; fb_fix.ywrapstep = 0; - fb_fix.mmio_start = NULL; + fb_fix.mmio_start = 0; fb_fix.mmio_len = 0; fb_fix.accel = FB_ACCEL_NONE; diff -ur linux-2.3.14/drivers/video/hpfb.c linux/drivers/video/hpfb.c --- linux-2.3.14/drivers/video/hpfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/hpfb.c Thu Aug 19 11:08:53 1999 @@ -192,7 +192,7 @@ /* * X works, but screen wraps ... */ - fix->smem_start=(char *)fb_start; + fix->smem_start=fb_start; fix->smem_len=fb_size; fix->type = FB_TYPE_PACKED_PIXELS; fix->visual = FB_VISUAL_PSEUDOCOLOR; diff -ur linux-2.3.14/drivers/video/igafb.c linux/drivers/video/igafb.c --- linux-2.3.14/drivers/video/igafb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/igafb.c Thu Aug 19 11:08:53 1999 @@ -217,7 +217,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, igafb_name); - fix->smem_start = (char *)fb->frame_buffer; + fix->smem_start = fb->frame_buffer; fix->smem_len = fb->total_vram; fix->xpanstep = 0; fix->ypanstep = 0; diff -ur linux-2.3.14/drivers/video/imsttfb.c linux/drivers/video/imsttfb.c --- linux-2.3.14/drivers/video/imsttfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/imsttfb.c Thu Aug 19 11:08:53 1999 @@ -1797,9 +1797,9 @@ } sprintf(p->fix.id, "IMS TT (%s)", p->ramdac == IBM ? "IBM" : "TVP"); - p->fix.smem_start = (__u8 *)p->frame_buffer_phys; + p->fix.smem_start = p->frame_buffer_phys; p->fix.smem_len = p->total_vram; - p->fix.mmio_start = (__u8 *)p->dc_regs_phys; + p->fix.mmio_start = p->dc_regs_phys; p->fix.mmio_len = 0x1000; p->fix.accel = FB_ACCEL_IMS_TWINTURBO; p->fix.type = FB_TYPE_PACKED_PIXELS; diff -ur linux-2.3.14/drivers/video/macfb.c linux/drivers/video/macfb.c --- linux-2.3.14/drivers/video/macfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/macfb.c Thu Aug 19 11:08:53 1999 @@ -157,7 +157,7 @@ /* * fbmem.c accepts non page aligned mappings now! */ - fix->smem_start=(char *)mac_videobase; + fix->smem_start=mac_videobase; fix->smem_len=mac_videosize; fix->type = FB_TYPE_PACKED_PIXELS; if (mac_depth == 1) diff -ur linux-2.3.14/drivers/video/matroxfb.c linux/drivers/video/matroxfb.c --- linux-2.3.14/drivers/video/matroxfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/matroxfb.c Thu Aug 19 11:08:53 1999 @@ -4622,7 +4622,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id,"MATROX"); - fix->smem_start = (void*)ACCESS_FBINFO(video.base) + ACCESS_FBINFO(curr.ydstorg.bytes); + fix->smem_start = ACCESS_FBINFO(video.base) + ACCESS_FBINFO(curr.ydstorg.bytes); fix->smem_len = ACCESS_FBINFO(video.len_usable) - ACCESS_FBINFO(curr.ydstorg.bytes); fix->type = p->type; fix->type_aux = p->type_aux; @@ -4631,7 +4631,7 @@ fix->ypanstep = 1; fix->ywrapstep = 0; fix->line_length = p->line_length; - fix->mmio_start = (void*)ACCESS_FBINFO(mmio.base); + fix->mmio_start = ACCESS_FBINFO(mmio.base); fix->mmio_len = ACCESS_FBINFO(mmio.len); fix->accel = ACCESS_FBINFO(devflags.accelerator); return 0; Only in linux/drivers/video: modedb.c diff -ur linux-2.3.14/drivers/video/offb.c linux/drivers/video/offb.c --- linux-2.3.14/drivers/video/offb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/offb.c Thu Aug 19 11:08:53 1999 @@ -533,7 +533,7 @@ var->yres = var->yres_virtual = height; fix->line_length = pitch; - fix->smem_start = (char *)address; + fix->smem_start = address; fix->smem_len = pitch * height; fix->type = FB_TYPE_PACKED_PIXELS; fix->type_aux = 0; diff -ur linux-2.3.14/drivers/video/platinumfb.c linux/drivers/video/platinumfb.c --- linux-2.3.14/drivers/video/platinumfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/platinumfb.c Thu Aug 19 11:08:53 1999 @@ -837,9 +837,9 @@ { memset(fix, 0, sizeof(*fix)); strcpy(fix->id, "platinum"); - fix->smem_start = (void *) (info->frame_buffer_phys + 0x1000); + fix->smem_start = (info->frame_buffer_phys + 0x1000); fix->smem_len = (u32) info->total_vram - 0x1000; - fix->mmio_start = (char *) (info->platinum_regs_phys); + fix->mmio_start = (info->platinum_regs_phys); fix->mmio_len = 0x1000; fix->type = FB_TYPE_PACKED_PIXELS; fix->type_aux = 0; diff -ur linux-2.3.14/drivers/video/q40fb.c linux/drivers/video/q40fb.c --- linux-2.3.14/drivers/video/q40fb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/q40fb.c Thu Aug 19 11:08:53 1999 @@ -86,7 +86,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id,"Q40"); - fix->smem_start=(char*)q40_screen_addr; + fix->smem_start=q40_screen_addr; fix->smem_len=1024*1024; fix->type=FB_TYPE_PACKED_PIXELS; fix->type_aux=0; diff -ur linux-2.3.14/drivers/video/retz3fb.c linux/drivers/video/retz3fb.c --- linux-2.3.14/drivers/video/retz3fb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/retz3fb.c Thu Aug 19 11:08:53 1999 @@ -794,9 +794,9 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, retz3fb_name); - fix->smem_start = (char *)(zinfo->physfbmem); + fix->smem_start = zinfo->physfbmem; fix->smem_len = zinfo->fbsize; - fix->mmio_start = (char *)(zinfo->physregs); + fix->mmio_start = zinfo->physregs; fix->mmio_len = 0x00c00000; fix->type = FB_TYPE_PACKED_PIXELS; diff -ur linux-2.3.14/drivers/video/sgivwfb.c linux/drivers/video/sgivwfb.c --- linux-2.3.14/drivers/video/sgivwfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/sgivwfb.c Thu Aug 19 11:08:53 1999 @@ -501,7 +501,7 @@ { memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, sgivwfb_name); - fix->smem_start = (char *) sgivwfb_mem_phys; + fix->smem_start = sgivwfb_mem_phys; fix->smem_len = sgivwfb_mem_size; fix->type = FB_TYPE_PACKED_PIXELS; fix->type_aux = 0; @@ -517,7 +517,7 @@ fix->xpanstep = 0; fix->ypanstep = ypan; fix->line_length = get_line_length(var->xres_virtual, var->bits_per_pixel); - fix->mmio_start = (char *) DBE_REG_PHYS; + fix->mmio_start = DBE_REG_PHYS; fix->mmio_len = DBE_REG_SIZE; } diff -ur linux-2.3.14/drivers/video/tgafb.c linux/drivers/video/tgafb.c --- linux-2.3.14/drivers/video/tgafb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/tgafb.c Thu Aug 19 11:08:53 1999 @@ -328,9 +328,9 @@ fix->visual = FB_VISUAL_TRUECOLOR; fix->line_length = par->xres * (par->bits_per_pixel >> 3); - fix->smem_start = ioremap(fb_info.tga_fb_base); + fix->smem_start = fb_info.tga_fb_base; fix->smem_len = fix->line_length * par->yres; - fix->mmio_start = ioremap(fb_info.tga_regs_base); + fix->mmio_start = fb_info.tga_regs_base; fix->mmio_len = 0x1000; /* Is this sufficient? */ fix->xpanstep = fix->ypanstep = fix->ywrapstep = 0; fix->accel = FB_ACCEL_DEC_TGA; diff -ur linux-2.3.14/drivers/video/valkyriefb.c linux/drivers/video/valkyriefb.c --- linux-2.3.14/drivers/video/valkyriefb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/valkyriefb.c Thu Aug 19 11:08:53 1999 @@ -783,7 +783,7 @@ struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p) { - fix->smem_start = (void *)(p->frame_buffer_phys + 0x1000); + fix->smem_start = p->frame_buffer_phys + 0x1000; #if 1 fix->smem_len = valkyrie_vram_reqd(par->vmode, par->cmode); #else diff -ur linux-2.3.14/drivers/video/vesafb.c linux/drivers/video/vesafb.c --- linux-2.3.14/drivers/video/vesafb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/vesafb.c Thu Aug 19 11:08:53 1999 @@ -166,7 +166,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id,"VESA VGA"); - fix->smem_start=(char *) video_base; + fix->smem_start=video_base; fix->smem_len=video_size; fix->type = video_type; fix->visual = video_visual; diff -ur linux-2.3.14/drivers/video/vfb.c linux/drivers/video/vfb.c --- linux-2.3.14/drivers/video/vfb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/vfb.c Thu Aug 19 11:08:53 1999 @@ -507,7 +507,7 @@ { memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, vfb_name); - fix->smem_start = (char *)videomemory; + fix->smem_start = videomemory; fix->smem_len = videomemorysize; fix->type = FB_TYPE_PACKED_PIXELS; fix->type_aux = 0; diff -ur linux-2.3.14/drivers/video/vga16fb.c linux/drivers/video/vga16fb.c --- linux-2.3.14/drivers/video/vga16fb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/vga16fb.c Thu Aug 19 11:08:53 1999 @@ -158,7 +158,7 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id,"VGA16 VGA"); - fix->smem_start = (char *) 0xa0000; + fix->smem_start = 0xa0000; fix->smem_len = 65536; fix->type = FB_TYPE_VGA_PLANES; fix->visual = FB_VISUAL_PSEUDOCOLOR; diff -ur linux-2.3.14/drivers/video/virgefb.c linux/drivers/video/virgefb.c --- linux-2.3.14/drivers/video/virgefb.c Thu Aug 19 11:30:31 1999 +++ linux/drivers/video/virgefb.c Thu Aug 19 11:08:53 1999 @@ -441,19 +441,19 @@ memset(fix, 0, sizeof(struct fb_fix_screeninfo)); strcpy(fix->id, virgefb_name); if (cv3d_on_zorro2) { - fix->smem_start = (char*) CyberMem_phys; + fix->smem_start = CyberMem_phys; } else { switch (par->bpp) { case 8: - fix->smem_start = (char*) (CyberMem_phys + CYBMEM_OFFSET_8); + fix->smem_start = (CyberMem_phys + CYBMEM_OFFSET_8); break; case 16: - fix->smem_start = (char*) (CyberMem_phys + CYBMEM_OFFSET_16); + fix->smem_start = (CyberMem_phys + CYBMEM_OFFSET_16); break; } } fix->smem_len = CyberSize; - fix->mmio_start = (char*) CyberRegs_phys; + fix->mmio_start = CyberRegs_phys; fix->mmio_len = 0x10000; /* TODO: verify this for the CV64/3D */ fix->type = FB_TYPE_PACKED_PIXELS; diff -ur linux-2.3.14/include/asm-alpha/pgtable.h linux/include/asm-alpha/pgtable.h --- linux-2.3.14/include/asm-alpha/pgtable.h Thu Jul 29 16:37:22 1999 +++ linux/include/asm-alpha/pgtable.h Thu Aug 19 11:08:53 1999 @@ -621,4 +621,7 @@ #define PageSkip(page) (0) #define kern_addr_valid(addr) (1) +#define io_remap_page_range(start, busaddr, size, prot) \ + remap_page_range(start, virt_to_phys(ioremap(busaddr)), size, prot) + #endif /* _ALPHA_PGTABLE_H */ Only in linux-2.3.14/include/asm-arm: arch-a5k diff -ur linux-2.3.14/include/asm-i386/pgtable.h linux/include/asm-i386/pgtable.h --- linux-2.3.14/include/asm-i386/pgtable.h Mon Aug 9 15:42:02 1999 +++ linux/include/asm-i386/pgtable.h Thu Aug 19 11:08:53 1999 @@ -525,4 +525,6 @@ #define PageSkip(page) (0) #define kern_addr_valid(addr) (1) +#define io_remap_page_range remap_page_range + #endif /* _I386_PAGE_H */ diff -ur linux-2.3.14/include/asm-m68k/pgtable.h linux/include/asm-m68k/pgtable.h --- linux-2.3.14/include/asm-m68k/pgtable.h Mon Aug 9 15:27:31 1999 +++ linux/include/asm-m68k/pgtable.h Thu Aug 19 11:08:53 1999 @@ -777,4 +777,6 @@ #define PageSkip(page) (0) #define kern_addr_valid(addr) (1) +#define io_remap_page_range remap_page_range + #endif /* _M68K_PGTABLE_H */ diff -ur linux-2.3.14/include/asm-ppc/pgtable.h linux/include/asm-ppc/pgtable.h --- linux-2.3.14/include/asm-ppc/pgtable.h Sun Jul 25 16:45:25 1999 +++ linux/include/asm-ppc/pgtable.h Thu Aug 19 11:08:53 1999 @@ -647,5 +647,7 @@ #define PageSkip(page) (0) #define kern_addr_valid(addr) (1) +#define io_remap_page_range remap_page_range + #endif __ASSEMBLY__ #endif /* _PPC_PGTABLE_H */ diff -ur linux-2.3.14/include/linux/fb.h linux/include/linux/fb.h --- linux-2.3.14/include/linux/fb.h Thu Aug 19 11:30:32 1999 +++ linux/include/linux/fb.h Thu Aug 19 09:47:13 1999 @@ -83,7 +83,7 @@ struct fb_fix_screeninfo { char id[16]; /* identification string eg "TT Builtin" */ - char *smem_start; /* Start of frame buffer mem */ + unsigned long smem_start; /* Start of frame buffer mem */ /* (physical address) */ __u32 smem_len; /* Length of frame buffer mem */ __u32 type; /* see FB_TYPE_* */ @@ -93,7 +93,7 @@ __u16 ypanstep; /* zero if no hardware panning */ __u16 ywrapstep; /* zero if no hardware ywrap */ __u32 line_length; /* length of a line in bytes */ - char *mmio_start; /* Start of Memory Mapped I/O */ + unsigned long mmio_start; /* Start of Memory Mapped I/O */ /* (physical address) */ __u32 mmio_len; /* Length of Memory Mapped I/O */ __u32 accel; /* Type of acceleration available */

--------------8B4182FC4FC4F1A9C613B6A0--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/