Hi Linus,

Please pull the 'drm-next' branch from
ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next

This branch has a merge in it, due to conflicts with the Intel drm tree 
you already pulled. I've asked Eric to not send you direct pulls, he 
mentioned you said he should, but it really screws over my tree. I don't 
mind direct pulls outside the merge window as it usually smaller bug 
fixes, but during the merge window the chances of it getting messy like 
this tree has become just increase.

So highlights of this pull:
1. ATI R6/700 + RS600 DRM support added.
2. PowerPC 440 fixes for having resources > 32-bit on 32-bit CPU
3. radeon on sparc fixes, davem can play quake3 now.

Dave.

 drivers/gpu/drm/ati_pcigart.c           |   40 +-
 drivers/gpu/drm/drm_bufs.c              |  122 +-
 drivers/gpu/drm/drm_context.c           |    4 +-
 drivers/gpu/drm/drm_drv.c               |   88 +-
 drivers/gpu/drm/drm_edid.c              |  183 +-
 drivers/gpu/drm/drm_fops.c              |    1 +
 drivers/gpu/drm/drm_gem.c               |    2 +-
 drivers/gpu/drm/drm_info.c              |    6 +-
 drivers/gpu/drm/drm_ioc32.c             |    4 +
 drivers/gpu/drm/drm_memory.c            |    6 +-
 drivers/gpu/drm/drm_proc.c              |    1 -
 drivers/gpu/drm/drm_stub.c              |   93 +-
 drivers/gpu/drm/drm_sysfs.c             |   37 +-
 drivers/gpu/drm/drm_vm.c                |   32 +-
 drivers/gpu/drm/i810/i810_drv.h         |    4 +-
 drivers/gpu/drm/i830/i830_drv.h         |    4 +-
 drivers/gpu/drm/i915/i915_dma.c         |    2 +-
 drivers/gpu/drm/i915/i915_drv.c         |   38 +
 drivers/gpu/drm/i915/i915_gem.c         |    7 +-
 drivers/gpu/drm/mga/mga_dma.c           |   17 +-
 drivers/gpu/drm/mga/mga_drv.h           |    8 +-
 drivers/gpu/drm/r128/r128_cce.c         |    7 +-
 drivers/gpu/drm/radeon/Makefile         |    2 +-
 drivers/gpu/drm/radeon/r300_cmdbuf.c    |   11 +-
 drivers/gpu/drm/radeon/r300_reg.h       |    5 +
 drivers/gpu/drm/radeon/r600_cp.c        | 2253 +++
 drivers/gpu/drm/radeon/r600_microcode.h |23297 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/radeon/radeon_cp.c      |  522 +-
 drivers/gpu/drm/radeon/radeon_drv.c     |   22 +-
 drivers/gpu/drm/radeon/radeon_drv.h     |  635 +-
 drivers/gpu/drm/radeon/radeon_irq.c     |   14 +-
 drivers/gpu/drm/radeon/radeon_state.c   |   51 +-
 drivers/gpu/drm/savage/savage_bci.c     |    8 +-
 drivers/gpu/drm/via/via_drv.c           |    6 -
 include/drm/drmP.h                      |   68 +-
 include/drm/drm_crtc.h                  |    6 +-
 include/drm/drm_os_linux.h              |   19 +
 include/drm/drm_pciids.h                |  113 +
 include/drm/radeon_drm.h                |    5 +-
 39 files changed, 27309 insertions(+), 434 deletions(-)
 create mode 100644 drivers/gpu/drm/radeon/r600_cp.c
 create mode 100644 drivers/gpu/drm/radeon/r600_microcode.h

commit f23c20c83d523e5f8cda1f8f7ed52fe6afffbe29
Author: Ma Ling <ling...@intel.com>
Date:   Thu Mar 26 19:26:23 2009 +0800

    drm: detect hdmi monitor by hdmi identifier (v3)
    
    Sometime we need to communicate with HDMI monitor by sending audio or video
    info frame, so we have to know monitor type. However if user utilize 
HDMI-DVI adapter to connect DVI monitor, hardware detection will incorrectly 
show the monitor is HDMI. HDMI spec tell us that any device containing IEEE 
registration Identifier will be treated as HDMI device.  The patch intends to 
detect HDMI monitor by this rule.
    
    Signed-off-by: Ma Ling <ling...@intel.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit dba5ed0cd12d8db5c0d2e1c869c2a50c5bcf6743
Author: Dan Carpenter <erro...@gmail.com>
Date:   Fri Mar 27 13:34:28 2009 +0300

    drm: drm_fops.c unlock missing on error path
    
    drm_open_helper() from drm_fops.c had a missing mutex_unlock in a error
    path.
    
    This was caught by smatch (http://repo.or.cz/w/smatch.git/).  Compile
    tested.
    
    Signed-off-by: Dan Carpenter <erro...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit c972d750e4fa3bfee6e7d3635729bf8c9cbb8f0a
Author: Richard Kennedy <rich...@rsk.demon.co.uk>
Date:   Wed Mar 18 17:26:44 2009 +0000

    drm: reorder struct drm_ioctl_desc to save space on 64 bit builds
    
    shrinks drm_ioctl_desc from 24 bytes to 16 bytes by reordering members
    to remove padding.
    
    updates DRM_IOCTL_DEF macro to initialise structure members by name to
    handle the structure reorder.
    
    The applied patch reduces data used in drm.ko from 10440 to 9032
    
    Signed-off-by: Richard Kennedy <rich...@rsk.demon.co.uk>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 40fc6eab599d0087a75fc77eaaf04d769b667f6d
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Thu Mar 19 20:44:22 2009 -0400

    radeon: add some new pci ids
    
    This adds some new RS780 pci ids
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 167f3a04d7366d65c7fa9a92f0d604cdcf4a11ae
Author: Ma Ling <ling...@intel.com>
Date:   Fri Mar 20 14:09:48 2009 +0800

    drm: read EDID extensions from monitor
    
    Usually drm read basic EDID, that is enough for us, but since igital display
    were introduced i.e. HDMI monitor, sometime we need to interact with 
monitor by
    EDID extension information,
    
    EDID extensions include audio/video data block, speaker allocation and 
vendor specific data blocks.
    
    This patch intends to read EDID extensions from digital monitor for users.
    
    Signed-off-by: Ma Ling <ling...@intel.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 955a23eb3cfc773e71b05bb7a0a0938a9e1b2568
Author: Eric Anholt <e...@anholt.net>
Date:   Thu Mar 19 18:56:14 2009 -0700

    drm: Use a little stash on the stack to avoid kmalloc in most DRM ioctls.
    
    The kmalloc was taking up about 1.5% of the CPU on an ioctl-heavy workload
    (x11perf -aa10text on 965).  Initial results look like they have a
    corresponding improvement in performance for aa10text, but more numbers 
might
    not hurt.
    
    Thanks to ajax for pointing out this performance regression I'd introduced
    back in 2007.
    
    [airlied: well I introduced it sneakily inside Eric's patch]
    
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit af7ae351ad63a137ece86740dbe3f181d09d810f
Author: Maciej Cencora <m.cenc...@gmail.com>
Date:   Tue Mar 24 01:48:50 2009 +0100

    drm/radeon: add regs required for occlusion queries support
    
    [airlied: cleaned up slightly for drm-next]
    
    Signed-off-by: Maciej Cencora <m.cenc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit d008877550d8ca8c6878dd494e50c1b9209f38d4
Author: Dave Airlie <airl...@redhat.com>
Date:   Sat Mar 28 20:29:48 2009 -0400

    drm/i915: check the return value from the copy from user
    
    This produced a warning on my build, not sure why super-warning-man didn't
    notice this one, its much worse than the %z one.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 90f959bcb386da2c71613dcefc6a285e054a539e
Merge: 41f13fe... 07d43ba...
Author: Dave Airlie <airl...@redhat.com>
Date:   Sat Mar 28 20:22:18 2009 -0400

    drm: merge Linux master into HEAD
    
    Conflicts:
        drivers/gpu/drm/drm_info.c
        drivers/gpu/drm/drm_proc.c
        drivers/gpu/drm/i915/i915_gem_debugfs.c

commit 41f13fe81dd1b08723ab9f3fc3c7f29cfa81f1a5
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Mon Mar 16 15:37:02 2009 -0400

    drm/radeon: fix logic in r600_page_table_init() to match ati_gart
    
    This fixes page table init on rs600.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 06f0a488c1b642d3cd7769da66600e5148c3fad8
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Mar 13 09:35:32 2009 +1000

    drm/radeon: r600 ptes are 64-bit, cleanup cleanup function.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 03efb8853c35aff51c7b901bf412f32765fe0fd9
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Mar 10 18:36:38 2009 +1000

    drm/radeon: don't call irq changes on r600 suspend/resume
    
    Until we sort out r600 IRQs don't do this.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit d02f7fa77d97a28a4276939f35e44ae995ad13d7
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Mar 10 18:34:23 2009 +1000

    drm/radeon: fix r600 writeback across suspend/resume
    
    This update was done in mainline radeon, but not in the r600.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 6546bf6d6cbf1f9ac350fd278a1d937d4bb9ad06
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Mar 9 15:31:20 2009 +1000

    drm/radeon: fix r600 writeback setup.
    
    This fixes 2 bugs:
    1. the AGP calculation wasn't consistent with the PCI(E) calc for the
    RPTR_ADDR registers. This consolidates the writes and fixes it up.
    
    2. The scratch address was being incorrectly calculated, this breaks
    it out into a lot more linear steps.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 1847a549ac4db1272dea13d86331c492a2640b3b
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Mar 9 12:47:18 2009 +1000

    drm: fix warnings about new mappings in info code.
    
    This fixes up the warnings in the debugfs code that conflicted
    with the mapping fixups.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 8f497aade8df2a619eacda927a43ebe82167a84c
Author: Hannes Eder <han...@hanneseder.net>
Date:   Thu Mar 5 20:14:18 2009 +0100

    drm/radeon: NULL noise: drivers/gpu/drm/radeon/radeon_*.c
    
    Fix this sparse warning:
      drivers/gpu/drm/radeon/r600_cp.c:1811:52: warning: Using plain integer as 
NULL pointer
      drivers/gpu/drm/radeon/radeon_cp.c:1363:52: warning: Using plain integer 
as NULL pointer
      drivers/gpu/drm/radeon/radeon_state.c:1983:61: warning: Using plain 
integer as NULL pointer
    
    Signed-off-by: Hannes Eder <han...@hanneseder.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit a763d7dc0adb1159c1a52d43e566409da9fa59f0
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Mar 9 12:17:08 2009 +1000

    drm/radeon: fix r600 pci mapping calls.
    
    This realigns the r600 pci mapping calls with the ati pcigart ones,
    fixing the direction and using the correct interface.
    
    Suggested by Jerome Glisse.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 08932156cc2d4f8807dc5ca5c3d6ccd85080610a
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Sat Mar 7 18:21:21 2009 -0500

    drm/radeon: r6xx/r7xx: fix possible oops in r600_page_table_cleanup()
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 53c379e9462b59d4e166429ff064aaf0e7743795
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Mar 9 12:12:28 2009 +1000

    radeon: call the correct idle function, logic got inverted.
    
    This calls the correct idle function for the R600 and previous chips.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 800b69951174f7de294da575d7e7921041a7e783
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Fri Mar 6 11:47:54 2009 -0500

    drm/radeon: RS600: fix interrupt handling
    
    the checks weren't updated when RS600 support
    was added.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit a7d13ad0e2c1b0572492fd53ca1a090794e2f8e2
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Feb 26 10:15:24 2009 +1000

    drm/r600: fix rptr address along lines of previous fixes to radeon.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit eb1d91954ededc00ddcfb51e2626f114ff351524
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Feb 26 10:14:40 2009 +1000

    drm/r600: fixup r600 gart table accessor like ati_pcigart.c
    
    This attempts to fixup the r600 GART accessors so they work on other arches.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 6abf66018f7fe231720e50f9a47b142182388869
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Feb 26 10:13:47 2009 +1000

    drm/ati_pcigart: use memset_io to reset the memory
    
    Also don't setup pci_gart if we aren't going to need it.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 87f0da55353e23826a54bff57c457a13b97d18f1
Author: Dave Airlie <airl...@redhat.com>
Date:   Thu Feb 26 10:12:10 2009 +1000

    drm: add DRM_READ/WRITE64 wrappers around readq/writeq.
    
    The readq/writeq stuff is from Dave Miller, and he
    warns users to be careful about using these. Plans are only
    r600 to use it so far.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 8ced9c75160947d2235fba75de9413e087e1171a
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 25 17:02:19 2009 -0500

    radeon: add RS600 pci ids
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit c1556f71513f2e660fb2bbdc29344361b1ebff35
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 25 16:57:49 2009 -0500

    radeon: add support for rs600 GPUs
    
    RS600s are an AMD IGP for Intel CPUs, that look like RS690s from
    a lot of perspectives but look like r600s from a memory controller
    point of view.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 7659e9804b7a66047433182d86393d38ba4eff79
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Wed Feb 25 15:55:01 2009 -0500

    radeon: fix r600 AGP support
    
    This fixes the ioremap issues with r600 AGP.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 7335aafa30ecf39ede7f24bd2036dfbf4c25f269
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Tue Feb 24 17:13:42 2009 -0500

    radeon: add R6xx/R7xx pci ids
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit c05ce0834a268f7d18274847190f6ed826b99332
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Tue Feb 24 16:22:29 2009 -0500

    drm/radeon: add initial support for R6xx/R7xx GPUs
    
    This adds support for 2D/Xv acceleration in the X.org 2D driver,
    to the drm. It doesn't yet provide any 3D support hooks.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 80b3334a4d5c163ab35c560a21d2cdc39bb5d3f8
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Tue Feb 24 14:28:34 2009 -0500

    drm/radeon: add r6xx/r7xx microcode
    
    This uses the same microcode system as the current radeon code.
    
    It should be converted to the new microcode loader I suppose,
    though really I need a lot more proof of the worth of me maintaining
    firmware blobs externally.
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit befb73c2322923766df7e36b51f407dbdc047eab
Author: Alex Deucher <alexdeuc...@gmail.com>
Date:   Tue Feb 24 14:02:13 2009 -0500

    drm/radeon: prep for r6xx/r7xx support
    
    - add r6xx/r7xx regs and macros
    - add r6xx/r7xx chip families
    - fix register access for regs with offsets >= 0x10000
    
    Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 995e37cafb90f104395e015a9836cc459df1fc39
Author: Owain G. Ainsworth <o...@openbsd.org>
Date:   Fri Feb 20 08:30:19 2009 +0000

    i915/drm: Remove two redundant agp_chipset_flushes
    
    agp_chipset_flush() is for flushing the intel GMCH write cache via the
    IFP, these two uses are for when we're getting the object into the cpu
    READ domain, and thus should not be needed. This confused me when I was
    getting my head around the code.
    
    With thanks to airlied for helping me check my mental picture of how the
    flushes and clflushes are supposed to be used.
    
    Signed-off-by: Owain G. Ainsworth <o...@openbsd.org>
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 87ba7c663af0f34aa603a5bb448783a5ed64573f
Author: Chris Wilson <ch...@chris-wilson.co.uk>
Date:   Wed Feb 11 14:26:38 2009 +0000

    drm/i915: Display fence register state in debugfs i915_gem_fence_regs node.
    
    Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 97d479e77b8621cc6e1cb06eabe5a73390c8149c
Author: Eric Anholt <e...@anholt.net>
Date:   Tue Feb 17 23:53:41 2009 -0800

    drm/i915: Add information on pinning and fencing to the i915 list debug.
    
    This was inspired by a patch by Chris Wilson, though none of it applied in 
any
    way due to the debugfs work and I decided to change the formatting of the
    new information anyway.
    
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 30106f97a6029f94a8f13a1ace877c850cf5cd37
Author: Ben Gamari <bgam...@gmail.com>
Date:   Tue Feb 17 20:08:51 2009 -0500

    drm/i915: Consolidate gem object list dumping
    
    Here we eliminate a few functions in favor of using a single function
    to dump from all of the object lists.
    
    Signed-Off-By: Ben Gamari <bgam...@gmail.com>
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 955b12def42e83287c1bdb1411d99451753c1391
Author: Ben Gamari <bgam...@gmail.com>
Date:   Tue Feb 17 20:08:49 2009 -0500

    drm: Convert proc files to seq_file and introduce debugfs
    
    The old mechanism to formatting proc files is extremely ugly. The
    seq_file API was designed specifically for cases like this and greatly
    simplifies the process.
    
    Also, most of the files in /proc really don't belong there. This patch
    introduces the infrastructure for putting these into debugfs and exposes
    all of the proc files in debugfs as well.
    
    This contains the i915 hooks rewrite as well, to make bisectability better.
    
    Signed-off-by: Ben Gamari <bgam...@gmail.com>
    Signed-off-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit dd8d7cb49e6e61da96ca44174b063081892c4dc6
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Feb 20 13:28:59 2009 +1000

    drm/radeon: split busmaster enable out to a separate function
    
    this is just a code cleanup from the kms tree.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 4247ca942a16745da3d09c58996b276d02655a72
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Feb 20 13:28:34 2009 +1000

    drm/radeon: align ring writes to 16 dwords boundaries.
    
    On some radeon GPUs this appears to introduce another level of
    stability around interacting with the ring.
    
    Its pretty much what fglrx appears to do.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit cd00f95aff6b4cfeccb261fd4100cceb4f5270ea
Author: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Date:   Fri Feb 6 16:46:27 2009 +1100

    drm/radeon: Print PCI ID of cards when probing
    
    This is usedul when you have multiple cards to figure out which
    one is which minor.
    
    Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 09e40d65d0aa6680428143cda1a7bdc8846ee991
Author: David Miller <da...@davemloft.net>
Date:   Wed Feb 18 01:35:21 2009 -0800

    drm: Only use DRM_IOCTL_UPDATE_DRAW compat wrapper for compat X86.
    
    Only X86 32-bit uses a different alignment for "unsigned long long"
    than it's 64-bit counterpart.
    
    Therefore this compat translation is only correct, and only needed,
    when either CONFIG_X86 or CONFIG_IA64.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit 958a6f8ccb1964adc3eec84cf401c5baeb4fbca0
Author: David Miller <da...@davemloft.net>
Date:   Wed Feb 18 01:35:23 2009 -0800

    drm: radeon: Fix unaligned access in r300_scratch().
    
    In compat mode, the cmdbuf->buf 64-bit address cookie can
    potentially be only 32-bit aligned.  Dereferencing this as
    64-bit causes expensive unaligned traps on platforms like
    sparc64.
    
    Use get_unaligned() to fix.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit f1a2a9b6189f9f5c27672d4d32fec9492c6486b2
Author: David Miller <da...@davemloft.net>
Date:   Wed Feb 18 15:41:02 2009 -0800

    drm: Preserve SHMLBA bits in hash key for _DRM_SHM mappings.
    
    Platforms such as sparc64 have D-cache aliasing issues.  We
    cannot allow virtual mappings in different contexts to be such
    that two cache lines can be loaded for the same backing data.
    Updates to one cache line won't be seen by accesses to the other
    cache line.
    
    Code in sparc64 and other architectures solve this problem by
    making sure that all userland mappings of MAP_SHARED objects have
    the same virtual address base.  They implement this by keying
    off of the page offset, and using that to choose a suitably
    consistent virtual address for mmap() requests.
    
    Making things even worse, getting this wrong on sparc64 can result
    in hangs during DRM lock acquisition.  This is because, at least on
    UltraSPARC-III, normal loads consult the D-cache but atomics such
    as 'cas' (which is what cmpxchg() is implement using) only consult
    the L2 cache.  So if a D-cache alias is inserted, the load can
    see different data than the atomic, and we'll loop forever because
    the atomic compare-and-exchange will never complete successfully.
    
    So to make this all work properly, we need to make sure that the
    hash address computed by drm_map_handle() preserves the SHMLBA
    relevant bits, and that's what this patch does for _DRM_SHM mappings.
    
    As a historical note, many years ago this bug didn't exist because we
    used to just use the low 32-bits of the address as the hash and just
    hope for the best.  This preserved the SHMLBA bits properly.  But when
    the hashtab code was added to DRM, this was no longer the case.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@redhat.com>

commit d30333bbabb4a2cfad1f1a45c48a4e4d0065c1f6
Author: David Miller <da...@davemloft.net>
Date:   Sun Feb 15 01:08:07 2009 -0800

    drm: ati_pcigart: Fix limit check in drm_ati_pcigart_init().
    
    The variable 'max_pages' is ambiguous.  There are two concepts
    of "pages" being used in this function.
    
    First, we have ATI GART pages which are always 4096 bytes.
    Then, we have system pages which are of size PAGE_SIZE.
    
    Eliminate the confusion by creating max_ati_pages and
    max_real_pages.  Calculate and use them as appropriate.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 6abf6bb0ff90bb77f9429bd0d90fc841c358daf3
Author: David Miller <da...@davemloft.net>
Date:   Sat Feb 14 01:51:07 2009 -0800

    drm: radeon: Use surface for PCI GART table.
    
    This allocates a physical surface for the PCI GART table, this way no
    matter what other surface configurations exist the GART table will
    always be seen by the hardware properly.
    
    We encode the file pointer of the virtual surface allocate using a
    special cookie value, called PCIGART_FILE_PRIV.  On the last close, we
    release that surface.
    
    Just to be doubly safe, we run the pcigart table setup with the main
    surface control register clear.
    
    Based upon ideas from David Airlie and Ben Benjamin Herrenschmidt.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit e8a894372b4ea05dc266ba7d7a7634315b6230e8
Author: David Miller <da...@davemloft.net>
Date:   Thu Feb 12 02:15:44 2009 -0800

    drm: radeon: Fix calculation of RB_RPTR_ADDR in non-AGP case.
    
    The address needs to be a GART relative address, rather than a PCI
    DMA address.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit b266503072f824a82d585a6d41ebd591a2d7daa4
Author: David Miller <da...@davemloft.net>
Date:   Thu Feb 12 02:15:39 2009 -0800

    drm: radeon: Fix RADEON_*_EMITED defines.
    
    These are not supposed to be booleans, they are
    supposed to be bit masks.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit b07fa022ecf1e04fd0623877affe9e10bf45ac86
Author: David Miller <da...@davemloft.net>
Date:   Thu Feb 12 02:15:37 2009 -0800

    drm: radeon: Fix ring_rptr accesses.
    
    The memory behind ring_rptr can either be in ioremapped memory
    or a vmalloc() normal kernel memory buffer.
    
    However, the code unconditionally uses DRM_{READ,WRITE}32() (and thus
    readl() and writel()) to access it.
    
    Basically, if RADEON_IS_AGP then it's ioremap()'d memory else it's
    vmalloc'd memory.
    
    Adjust all of the ring_rptr access code as needed.
    
    While we're here, kill the 'scratch' pointer in drm_radeon_private.
    It's only used in the one place where it is initialized.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 296c6ae0e9b5ced1060b43a68b5f7e41a18509f6
Author: David Miller <da...@davemloft.net>
Date:   Thu Feb 12 02:15:34 2009 -0800

    drm: ati_pcigart: Need to use PCI_DMA_BIDIRECTIONAL.
    
    The buffers mapped by the PCI GART can be written to by the device,
    not just read.
    
    For example, this happens via the RB_RPTR writeback on Radeon.
    
    So we can't use PCI_DMA_TODEVICE else we'll get protection faults
    on IOMMU platforms.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 5a7aad9a559a5488cbef7aa3d4d96fc28220b8ae
Author: David Miller <da...@davemloft.net>
Date:   Thu Feb 12 02:15:27 2009 -0800

    drm: ati_pcigart: Do not access I/O MEM space using pointer derefs.
    
    The PCI GART table initialization code treats the GART table mapping
    unconditionally as a kernel virtual address.
    
    But it could be in the framebuffer, for example, and thus we're
    dealing with a PCI MEM space ioremap() cookie.  Treating that as a
    virtual address is illegal and will crash some system types (such as
    sparc64 where the ioremap() return value is actually a physical I/O
    address).
    
    So access the area correctly, using gart_info->gart_table_location as
    our guide.
    
    Signed-off-by: David S. Miller <da...@davemloft.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 8e1004580e0c862cb6bbe2ff8e496f846c54052f
Author: Kristian Høgsberg <k...@redhat.com>
Date:   Mon Jan 5 16:10:05 2009 -0500

    drm: Drop unused and broken dri_library_name sysfs attribute.
    
    The kernel shouldn't be in the business of telling user space which
    driver to load.  The kernel defers mapping PCI IDs to module names
    to user space and we should do the same for DRI drivers.
    
    And in fact, that's how it does work today.  Nothing uses the
    dri_library_name attribute, and the attribute is in fact broken.
    For intel devices, it falls back to the default behaviour of returning
    the kernel module name as the DRI driver name, which doesn't work for
    i965 devices.  Nobody has ever hit this problem or filed a bug about this.
    
    Signed-off-by: Kristian Høgsberg <k...@redhat.com>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 112b715e8e2f9ef7b96930888bb099ce10b4c3cc
Author: Kristian Høgsberg <k...@bitplanet.net>
Date:   Sun Jan 4 16:55:33 2009 -0500

    drm: claim PCI device when running in modesetting mode.
    
    Under kernel modesetting, we manage the device at all times, regardless
    of VT switching and X servers, so the only decent thing to do is to
    claim the PCI device.  In that case, we call the suspend/resume hooks
    directly from the pci driver hooks instead of the current class device 
detour.
    
    Signed-off-by: Kristian Høgsberg <k...@redhat.com>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit 41c2e75e60200a860a74b7c84a6375c105e7437f
Author: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Date:   Mon Feb 2 16:55:47 2009 +1100

    drm: Make drm_local_map use a resource_size_t offset
    
    This changes drm_local_map to use a resource_size for its "offset"
    member instead of an unsigned long, thus allowing 32-bit machines
    with a >32-bit physical address space to be able to store there
    their register or framebuffer addresses when those are above 4G,
    such as when using a PCI video card on a recent AMCC 440 SoC.
    
    This patch isn't as "trivial" as it sounds: A few functions needed
    to have some unsigned long/int changed to resource_size_t and a few
    printk's had to be adjusted.
    
    But also, because userspace isn't capable of passing such offsets,
    I had to modify drm_find_matching_map() to ignore the offset passed
    in for maps of type _DRM_FRAMEBUFFER or _DRM_REGISTERS.
    
    If we ever support multiple _DRM_FRAMEBUFFER or _DRM_REGISTERS maps
    for a given device, we might have to change that trick, but I don't
    think that happens on any current driver.
    
    Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit f77d390c9779c496aa5b99ec832996fb76bb1d13
Author: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Date:   Mon Feb 2 16:55:46 2009 +1100

    drm: Split drm_map and drm_local_map
    
    Once upon a time, the DRM made the distinction between the drm_map
    data structure exchanged with user space and the drm_local_map used
    in the kernel.
    
    For some reasons, while the BSD port still has that "feature", the
    linux part abused drm_map for kernel internal usage as the local
    map only existed as a typedef of the struct drm_map.
    
    This patch fixes it by declaring struct drm_local_map separately
    (though its content is currently identical to the userspace variant),
    and changing the kernel code to only use that, except when it's a
    user<->kernel interface (ie. ioctl).
    
    This allows subsequent changes to the in-kernel format
    
    I've also replaced the use of drm_local_map_t with struct drm_local_map
    in a couple of places. Mostly by accident but they are the same (the
    former is a typedef of the later) and I have some remote plans and
    half finished patch to completely kill the drm_local_map_t typedef
    so I left those bits in.
    
    Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
    Acked-by: Eric Anholt <e...@anholt.net>
    Signed-off-by: Dave Airlie <airl...@linux.ie>

commit d883f7f1b75c8dcafa891f7b9e69c5a2f0ff6d66
Author: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Date:   Mon Feb 2 16:55:45 2009 +1100

    drm: Use resource_size_t for drm_get_resource_{start, len}
    
    The DRM uses its own wrappers to obtain resources from PCI devices,
    which currently convert the resource_size_t into an unsigned long.
    
    This is broken on 32-bit platforms with >32-bit physical address
    space.
    
    This fixes them, along with a few occurences of unsigned long used
    to store such a resource in drivers.
    
    Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
    Signed-off-by: Dave Airlie <airl...@linux.ie>
------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to