Messages in this thread Patches in this message | | | Date | Fri, 26 Aug 2005 01:45:09 +0800 | From | "Antonino A. Daplas" <> | Subject | Re: Linux-2.6.13-rc7 |
| |
Sebastian Kaergel wrote: > On Fri, 26 Aug 2005 00:23:40 +0800 > "Antonino A. Daplas" <adaplas@gmail.com> wrote: > >> Sebastian Kaergel wrote: >>> On Tue, 23 Aug 2005 22:08:13 -0700 (PDT) >>> Linus Torvalds <torvalds@osdl.org> wrote: >>> >>>> Sylvain Meyer: >>>> intelfb: Do not ioremap entire graphics aperture >> Probably this one. If vram is less than stolen size, intelfb >> will only ioremap the framebuffer memory, excluding the >> ringbuffer and the cursor memory. >> >> Try booting with video=intelfb:accel:0,nohwcursor:0. If you get >> a display, try this patch. >> >> CC'ed Sylvain. >> >> Signed-off-by: Antonino Daplas <adaplas@pol.net> >> --- > <patch snipped> > > Hi, > thanks for your quick reply, but it did not work. the screen remains > black when booting with video=intelfb:accel:0,{,no}hwcursor:0
Can you try the patch anyway?
If the patch does not fix your problem, can you revert the patches and see which is the culprit. I'm attaching those 2 patches.
Tony
> - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ >
drivers/video/intelfb/intelfbdrv.c: needs update Index: drivers/video/intelfb/intelfbdrv.c =================================================================== --- 0582536f492dc10e4849053d19fec93ca72e9bfe/drivers/video/intelfb/intelfbdrv.c (mode:100644) +++ uncommitted/drivers/video/intelfb/intelfbdrv.c (mode:100644) @@ -579,23 +579,6 @@ return -ENODEV; } - /* Map the fb and MMIO regions */ - dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache - (dinfo->aperture.physical, dinfo->aperture.size); - if (!dinfo->aperture.virtual) { - ERR_MSG("Cannot remap FB region.\n"); - cleanup(dinfo); - return -ENODEV; - } - dinfo->mmio_base = - (u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys, - INTEL_REG_SIZE); - if (!dinfo->mmio_base) { - ERR_MSG("Cannot remap MMIO region.\n"); - cleanup(dinfo); - return -ENODEV; - } - /* Get the chipset info. */ dinfo->pci_chipset = pdev->device; @@ -679,6 +662,26 @@ } /* Allocate memories (which aren't stolen) */ + /* Map the fb and MMIO regions */ + /* ioremap only up to the end of used aperture */ + dinfo->aperture.virtual = (u8 __iomem *)ioremap_nocache + (dinfo->aperture.physical, ((offset + dinfo->fb.offset) << 12) + + dinfo->fb.size); + if (!dinfo->aperture.virtual) { + ERR_MSG("Cannot remap FB region.\n"); + cleanup(dinfo); + return -ENODEV; + } + + dinfo->mmio_base = + (u8 __iomem *)ioremap_nocache(dinfo->mmio_base_phys, + INTEL_REG_SIZE); + if (!dinfo->mmio_base) { + ERR_MSG("Cannot remap MMIO region.\n"); + cleanup(dinfo); + return -ENODEV; + } + if (dinfo->accel) { if (!(dinfo->gtt_ring_mem = agp_allocate_memory(bridge, dinfo->ring.size >> 12,diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -643,8 +643,8 @@ fb_pan_display(struct fb_info *info, str int fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) { - int err; - + int err, flags = info->flags; + if (var->activate & FB_ACTIVATE_INV_MODE) { struct fb_videomode mode1, mode2; int ret = 0; @@ -697,7 +697,7 @@ fb_set_var(struct fb_info *info, struct !list_empty(&info->modelist)) err = fb_add_videomode(&mode, &info->modelist); - if (!err && info->flags & FBINFO_MISC_USEREVENT) { + if (!err && flags & FBINFO_MISC_USEREVENT) { struct fb_event event; int evnt = (var->activate & FB_ACTIVATE_ALL) ? FB_EVENT_MODE_CHANGE_ALL : | |