Bug 9600

Summary: [mach64] pci-rework
Product: xorg Reporter: George - <fufutos610>
Component: Driver/mach64Assignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: alexdeucher
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 9437    
Bug Blocks:    
Attachments:
Description Flags
mach64 pci-rework
none
mach64 pci-rework - try 1
none
mach64 pci-rework - try 2
none
mach64 pci-rework - try 3
none
mach64 pci-rework - try 4
none
mach64 pci-rework - try 5
none
mach64 pci-rework - try 6
none
mach64 pci-rework - try 7 none

Description George - 2007-01-10 09:37:34 UTC
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.
Comment 1 George - 2007-01-10 09:38:42 UTC
Created attachment 8351 [details]
mach64 pci-rework

tgz patchset
Comment 2 George - 2007-01-11 00:41:17 UTC
Another note:
* the mtrr entry for the FB was set up by DRI, so no write-combining from 
  pci-rework here for now...
Comment 3 George - 2007-01-15 06:50:07 UTC
Created attachment 8401 [details]
mach64 pci-rework - try 1

port to pci-rework HEAD.
Comment 4 George - 2007-01-19 12:57:41 UTC
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."
Comment 5 Michel Dänzer 2007-01-21 04:47:46 UTC
Why don't you go ahead and put these in a pci-rework branch?
Comment 6 George - 2007-01-21 10:45:37 UTC
(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.
Comment 7 George - 2007-02-05 09:49:54 UTC
Created attachment 8603 [details]
mach64 pci-rework - try 3

rebase to master.
Comment 8 Daniel Stone 2007-02-27 01:35:35 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 9 George - 2007-03-08 08:52:40 UTC
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.
Comment 10 George - 2007-03-13 12:29:31 UTC
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.
Comment 11 George - 2007-03-16 10:21:07 UTC
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.
Comment 12 George - 2007-03-21 10:58:06 UTC
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.
Comment 13 George - 2007-08-28 06:34:19 UTC
committed (6ff0645ecfe65727e8ef5d5e6215b4e03078e1a5).

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.