Re: [Linux 2.6.29-rc6] [drm:i915_set_status_page] *ERROR* can notioremap virtual address for G33 hw status page

From: Eric Anholt
Date: Mon Feb 23 2009 - 15:04:39 EST


On Mon, 2009-02-23 at 15:46 +0100, Maciej Rutecki wrote:
> 2.6.29-rc5 and 2.6.29-rc5-git6 work OK. In 2.6.29-rc6 XWindow (KDM)
> doesn't start, from dmesg:
>
> [ 18.170614] [drm] Initialized drm 1.1.0 20060810
> [ 18.247445] pci 0000:00:02.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
> [ 18.247455] pci 0000:00:02.0: setting latency timer to 64
> [ 18.249610] mtrr: type mismatch for d0000000,10000000 old:
> write-back new: write-combining
> [ 18.249621] [drm] MTRR allocation failed
> [ 18.249622] . Graphics performance may suffer.
> [ 18.249658] pci 0000:00:02.0: irq 27 for MSI/MSI-X
> [ 18.249691] [drm] Initialized i915 1.6.0 20080730 on minor 0
> [ 18.290152] mtrr: type mismatch for d0000000,10000000 old:
> write-back new: write-combining
> [ 18.567435] set status page addr 0x00043000
> [ 18.567463] [drm:i915_set_status_page] *ERROR* can not ioremap
> virtual address for G33 hw status page

The non-GEM G33 HWS support is wrong, and has been more or less broken
since inception (only now it's failing at startup instead of just being
slow). It's doing a mapping of the framebuffer when it should be using
a cached mapping of the page backing the framebuffer address.

For a quick fix, converting to ioremap_wc will shut the kernel up and
get us the old ioremap behavior (whatever the MTRR said, which happens
to be WC).

--
Eric Anholt
eric@xxxxxxxxxx eric.anholt@xxxxxxxxx


Attachment: signature.asc
Description: This is a digitally signed message part