Subject: Re: [PATCH/RFC] powerpc: Fix mmap of PCI resource with hack for X

From: Ian Romanick <[email-masked]>
Date: Mon, 13 Nov 2006 18:15:28 -0800

David Miller wrote:
> From: Benjamin Herrenschmidt <[email-masked]>
> Date: Mon, 13 Nov 2006 19:16:30 +1100
> 
>> X is still broken when built 32 bits on machines where PCI MMIO can be
>> above 32 bits space unfortunately. It looks like somebody (DaveM ?)
>> hacked a fix in X to handle long long resources and had the good idea
>> to wrap it in #ifdef __sparc__ :-(
> 
> Sorry, it was the only 32/64 platform at the time that old X code was
> written and the X maintainers at the time were unbelievably anal :-/
> 
> So the gist of your change is that X isn't obtaining BAR values
> in the correct context on powerpc, and so you're going to hack up
> the "devices" files output to "help" X out.
> 
> This doesn't sound sane to me.

It doesn't sound terribly sane to me.  What's wrong with just opening
/sys/bus/pci/devices/*/resource[0-5]?  It seems like that solves all the
problems.

> What sounds better to me is that X does the right thing, which is
> obtain the BAR from the PCI config space to determine what values to
> pass in to /proc/bus/pci mmap() calls.  And if it wants raw addresses
> to pass in to /dev/mem mmap()'s on platforms where that works (ie. not
> Sparc, to begin with) it should obtain those values from the "devices"
> file which must be values suitable as /dev/mem offsets.
> 
> I strongly look forward to Ian's new X code, that is for sure :-)