The attached patchset ports the mach64 driver to the pci-rework branch of the
xserver, it is a continuation of bug #9437. Only mach64 has been ported, so the
first patch disables building r128, radeon for now.
Two notes for pci-rework:
* old mach64 cards put the MMIO registers in the same BAR as the FB (similar to
old savage I see), which prevents write-combining and imposing a performance
penalty on FB reads/writes.
* the offsets for the BIST line of the scanpci utility are of by 4.
Only tested on an ATI Rage Pro.
Created attachment 8351 [details]
* the mtrr entry for the FB was set up by DRI, so no write-combining from
pci-rework here for now...
Created attachment 8401 [details]
mach64 pci-rework - try 1
port to pci-rework HEAD.
Created attachment 8461 [details]
mach64 pci-rework - try 2
port to pci-rework HEAD.
pci-rework HEAD segfaults here (i386), it starts ok if I
Revert "Fix accidental commit (bug) in linuxOpenLegacy."
Revert "Fix domain insanity."
Why don't you go ahead and put these in a pci-rework branch?
(In reply to comment #5)
> Why don't you go ahead and put these in a pci-rework branch?
The xserver pci-rework branch and libpciaccess are probably in more flux than I
thought. There was some partial support recently for mapping sub-regions which
can make the conversion less intrusive. Lastly, bug #9437 has to be merged first.
Created attachment 8603 [details]
mach64 pci-rework - try 3
rebase to master.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Created attachment 9039 [details] [review]
mach64 pci-rework - try 4
I created a pci-rework branch and checked in the preparatory patches only in case people want to do the preparatory work for r128/radeon in that branch.
This is the conversion patch for mach64.
Created attachment 9125 [details] [review]
mach64 pci-rework - try 5
Rebase to master. Also, revert to using ATIChipID() in the ati wrapper as r128 and radeon do not convert pci id's to chip families during probe.
Created attachment 9186 [details] [review]
mach64 pci-rework - try 6
Convert to pci-rework, keeping source-code compatibility.
Uses source-code compatibility macros and touches only the probe functions and region mapping calls.
Created attachment 9252 [details] [review]
mach64 pci-rework - try 7
This ports the ati wrapper and atimisc to pci-rework.
I backtracked to using the old probe methods mainly because porting the ati wrapper to the new pci probe methods seems a bit awkward.