All of lore.kernel.org
 help / color / mirror / Atom feed
* (no subject)
@ 2009-09-29  3:52 Dave Airlie
  2009-09-29  4:26 ` [git pull] drm Dave Airlie
  0 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-09-29  3:52 UTC (permalink / raw)
  To: torvalds, linux-kernel, dri-devel


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 might seem a bit big and I did mean to get it to you last week,
but got distracted by X things. However its been fairly well tested.

The only new feature which I feel is important enough to let in now
as it shouldn't disrupt much, is to allow kms to resepct video= on the
cmdline and set the initial mode and turn individual connectors on/off.
(it contains one patch to fb to allow this, which I've sent past the
fbdev list already)
There are also some fixes for the EDID parser.

Otherwise its mostly radeon related:
radeon kms fixups and reogranising
r600 non-kms bug fixes.
radeon large kmalloc avoidance, we sometimes could try and do
a 64k kmalloc if the userspace submitted a large enough packet,
this could fail, I've avoided this by using 2 separate pages
to cache parts of the userspace buffer.

Dave.

 drivers/gpu/drm/drm_crtc.c                 |    1 +
 drivers/gpu/drm/drm_crtc_helper.c          |   88 ++++++-
 drivers/gpu/drm/drm_edid.c                 |   46 +++-
 drivers/gpu/drm/drm_fb_helper.c            |  235 +++++++++++++++++-
 drivers/gpu/drm/drm_modes.c                |    3 +-
 drivers/gpu/drm/i915/intel_fb.c            |    5 +-
 drivers/gpu/drm/radeon/.gitignore          |    3 +
 drivers/gpu/drm/radeon/avivod.h            |    9 -
 drivers/gpu/drm/radeon/r100.c              |  197 ++++++---------
 drivers/gpu/drm/radeon/r100_track.h        |   69 +++++-
 drivers/gpu/drm/radeon/r200.c              |   79 +++---
 drivers/gpu/drm/radeon/r300.c              |  137 ++++-------
 drivers/gpu/drm/radeon/r500_reg.h          |    3 +
 drivers/gpu/drm/radeon/r520.c              |  276 ++++++++++++--------
 drivers/gpu/drm/radeon/r520d.h             |  187 ++++++++++++++
 drivers/gpu/drm/radeon/r600.c              |   11 +-
 drivers/gpu/drm/radeon/r600_cs.c           |  186 +++++++++++---
 drivers/gpu/drm/radeon/radeon.h            |   76 ++++++-
 drivers/gpu/drm/radeon/radeon_asic.h       |   80 +++---
 drivers/gpu/drm/radeon/radeon_atombios.c   |    9 +-
 drivers/gpu/drm/radeon/radeon_connectors.c |   79 +++++--
 drivers/gpu/drm/radeon/radeon_cs.c         |  103 +++++++-
 drivers/gpu/drm/radeon/radeon_device.c     |   11 +-
 drivers/gpu/drm/radeon/radeon_drv.c        |    5 -
 drivers/gpu/drm/radeon/radeon_fb.c         |   26 ++-
 drivers/gpu/drm/radeon/radeon_kms.c        |   49 ----
 drivers/gpu/drm/radeon/radeon_reg.h        |    1 +
 drivers/gpu/drm/radeon/radeon_ttm.c        |    7 +-
 drivers/gpu/drm/radeon/rs600.c             |   20 +--
 drivers/gpu/drm/radeon/rs690.c             |    3 +-
 drivers/gpu/drm/radeon/rv515.c             |  364 +++++++++++++++++++--------
 drivers/gpu/drm/radeon/rv515d.h            |  385 +++++++++++++++++++++++++++-
 drivers/gpu/drm/radeon/rv770.c             |   11 +-
 drivers/video/fbmem.c                      |    2 +-
 include/drm/drm_crtc.h                     |   14 +-
 include/drm/drm_crtc_helper.h              |    4 +-
 include/drm/drm_fb_helper.h                |   24 ++
 37 files changed, 2117 insertions(+), 691 deletions(-)
 create mode 100644 drivers/gpu/drm/radeon/.gitignore
 create mode 100644 drivers/gpu/drm/radeon/r520d.h

commit f0ed1f655aa0375e2abba84cc4e8e6c853d48555
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Mon Sep 28 20:39:19 2009 +0200

    drm/radeon/kms: Convert R520 to new init path and associated cleanup
    
    Convert the r520 asic support to new init path, change are smaller than
    previous one as most of the architecture is now in place and more code
    sharing can happen btw various asics.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit d39c3b895876427c5083a936e00f3f5b7f0fc1b3
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Mon Sep 28 18:34:43 2009 +0200

    drm/radeon/kms: Convert RV515 to new init path and associated cleanup
    
    Convert the rv515 asic support to new init path also add an explanation
    in radeon.h about the new init path. There is also few cleanups
    associated with this change (others asic calling rv515 helper
    functions).
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit f4e45d02e4135043fe98bc21be38527c516ad990
Author: Mikael Pettersson <mikpe@it.uu.se>
Date:   Mon Sep 28 18:27:23 2009 +0200

    drm: fix radeon DRM warnings when !CONFIG_DEBUG_FS
    
    Compiling the radeon DRM driver with !CONFIG_DEBUG_FS
    throws the following warnings:
    
    drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_debugfs_init':
    drivers/gpu/drm/radeon/radeon_ttm.c:714: warning: unused variable 'i'
    drivers/gpu/drm/radeon/radeon_ttm.c: At top level:
    drivers/gpu/drm/radeon/radeon_ttm.c:692: warning: 'radeon_mem_types_list' defined but not used
    drivers/gpu/drm/radeon/radeon_ttm.c:693: warning: 'radeon_mem_types_names' defined but not used
    
    Fix: move these variables inside the #if defined(CONFIG_DEBUG_FS)
    block in radeon_ttm_debugsfs_init(), which is the only place using them.
    
    Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit bea1d35b8e1533ac493305b3efe04a4b7def8a7f
Author: Mikael Pettersson <mikpe@it.uu.se>
Date:   Mon Sep 28 18:26:25 2009 +0200

    drm: fix drm_fb_helper warning when !CONFIG_MAGIC_SYSRQ
    
    Compiling DRM throws the following warning if MAGIC_SYSRQ is disabled:
    
    drivers/gpu/drm/drm_fb_helper.c:101: warning: 'sysrq_drm_fb_helper_restore_op' defined but not used
    
    Fix: place sysrq_drm_fb_helper_restore_op and associated
    definitions inside #ifdef CONFIG_MAGIC_SYSRQ.
    
    Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 4c57edba4588ddba40017fbde3cd356e600bdf80
Author: Dave Airlie <airlied@linux.ie>
Date:   Mon Sep 28 15:37:25 2009 +1000

    drm/r600: fix memory leak introduced with 64k malloc avoidance fix.
    
    The legacy r600 path shares code, but doesn't share quite enough
    to get the freeing correct. Free the pages here also.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 74bf2ad508efa93db4254c9da9c7238da44e2c58
Author: Dave Airlie <airlied@linux.ie>
Date:   Mon Sep 28 15:31:10 2009 +1000

    drm/kms: make fb helper work for all drivers.
    
    This initialises the fb helper with the connector helper,
    so that the fb cmdline code works for intel as well.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 210bed8f827471e271f894fb99ee879a5d27cf30
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Sep 25 18:33:08 2009 -0400

    drm/radeon/r600: fix offset handling in CS parser
    
    Need add reloc offset to the offset in the actual
    packet.  Fixes use of the DRAW_INDEX packet by the 3D
    driver.
    
    [airlied: modified first one where idx_value == ib[idx+0]
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 2b5d6c538b48772ba3351b8a8eed096f7af8de5d
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Sep 25 17:32:14 2009 -0400

    drm/radeon/kms/r600: fix forcing pci mode on agp cards
    
    All we need to do on r6xx/r7xx is clear the RADEON_IS_AGP
    flag; the rest is handled in r600.c
    
    fixes fdo bug 23990:
    http://bugs.freedesktop.org/show_bug.cgi?id=23990
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit c5e617e2f84225a28823a3e19951273b9f59eb27
Author: Dave Airlie <airlied@linux.ie>
Date:   Sat Sep 26 09:03:39 2009 +1000

    drm/radeon/kms: fix for the extra pages copying.
    
    Thanks to Michel for pointing this out to me, this is
    why I need to get more sleep, over complicate this a bit.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 2f67c6e0220e5311bb14895d32852250b2d9652b
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Sep 25 16:35:11 2009 -0400

    drm/radeon/kms/r600: add support for vline relocs
    
    Provides support for anti-tearing functionality
    in the ddx.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 90ebd0655ac1a19e591f2fe8b9a871cc03cc3989
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Sep 25 16:39:24 2009 -0400

    drm/radeon/kms: fix some bugs in vline reloc
    
    - fix offset of NOP packet for parsing
    - fix p->idx increments
    - fix bad mask when updating crtc vline info
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 974b16e33ea626c9854f0f34fa5455a18822e159
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Sep 25 10:06:39 2009 -0400

    drm/radeon/kms/r600: clamp vram to aperture size
    
    r6xx and r7xx was missing this.  We don't support
    non-CPU accessible vram yet.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 8ef8678c8f6131ca5941fa387cd3939c68c4f36d
Author: Dave Airlie <airlied@linux.ie>
Date:   Sat Sep 26 06:39:00 2009 +1000

    drm/kms: protect against fb helper not being created.
    
    If drivers don't init the fb helper on the connector, the cmdline
    code won't work, but it shouldn't crash either.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit adea4796cfb9b74d340f9e32ba523fb61305d0b7
Author: Dave Airlie <airlied@linux.ie>
Date:   Fri Sep 25 14:23:47 2009 +1000

    drm/r600: get values from the passed in IB not the copy.
    
    this avoids reading back the IB on AGP, also it avoids
    the race where since we haven't fetched the page from the main IB
    and written it to the gpu one, reading back fetches 0.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 31edd4824ec42e7cba26498fbd35df6c66b098ba
Author: Amerigo Wang <amwang@redhat.com>
Date:   Wed Sep 23 04:24:05 2009 -0400

    drm: create gitignore file for radeon
    
    Got lots of untracked files after compiling.
    These files are generated, thus should be ignored by git.
    
    Signed-off-by: WANG Cong <amwang@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e3590096f7563c6e75b77336ab8775f9a168b0f6
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Sep 23 15:49:20 2009 +1000

    drm/radeon/kms: remove unneeded master create/destroy functions.
    
    We shouldn't need these at all in radeon kms mode.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d50ba256b5f1478e15accfcfda9b72fd7a661364
Author: Dave Airlie <airlied@linux.ie>
Date:   Wed Sep 23 14:44:08 2009 +1000

    drm/kms: start adding command line interface using fb.
    
    [note this requires an fb patch posted to linux-fbdev-devel already]
    
    This uses the normal video= command line option to control the kms
    output setup at boot time. It is used to override the autodetection
    done by kms.
    
    video= normally takes a framebuffer as the first parameter, in kms
    it will take a connector name, DVI-I-1, or LVDS-1 etc. If no output
    connector is specified the mode string will apply to all connectors.
    
    The mode specification used will match down the probed modes, and if
    no mode is found it will add a CVT mode that matches.
    
    video=1024x768 - all connectors match a 1024x768 mode or add a CVT on
    video=VGA-1:1024x768, VGA-1 connector gets mode only.
    
    The same strings as used in current fb modedb.c are used, except I've
    added three more letters, e, D, d, e = enable, D = enable Digital,
    d = disable, which allow a connector to be forced into a certain state.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f80330357284c908e1f67cc8b4d8e56a3e2f6fc6
Author: Dave Airlie <airlied@linux.ie>
Date:   Wed Sep 16 20:45:09 2009 +1000

    fb: change rules for global rules match.
    
    Having a : should be enough 'fb:' isn't really useful
    if the fb wants to a kms output ID.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 513bcb4655e68706594e45dfa1d4b181500110ba
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Sep 23 16:56:27 2009 +1000

    drm/radeon/kms: don't require up to 64k allocations. (v2)
    
    This avoids needing to do a kmalloc > PAGE_SIZE for the main
    indirect buffer chunk, it adds an accessor for all reads from
    the chunk and caches a single page at a time for subsequent
    reads.
    
    changes since v1:
    Use a two page pool which should be the most common case
    a single packet spanning > PAGE_SIZE will be hit, but I'm
    having trouble seeing anywhere we currently generate anything like that.
    hopefully proper short page copying at end
    added parser_error flag to set deep errors instead of having to test
    every ib value fetch.
    fixed bug in patch that went to list.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 35e4b7af21d77933abda3d41d1672589eb6c960c
Author: Dave Airlie <airlied@linux.ie>
Date:   Fri Sep 25 11:56:50 2009 +1000

    drm/radeon/kms: enable dac load detection by default.
    
    when I added the property I forgot to enable it.
    
    Thanks to soreau on #radeon for tracking it down.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4bbd4973703bf8a5f00f05eff30a99cd9814f37f
Author: Dave Airlie <airlied@linux.ie>
Date:   Fri Sep 25 08:56:12 2009 +1000

    drm/radeon/kms: enable r600 tv outputs.
    
    I never changed this back when I wrote tv-out support.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f066a17d9f8d0a20d01d1aa9badce7f43c7bd6ad
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Sep 23 17:31:21 2009 -0400

    drm/edid: Fix standard timing parse for EDID <= 1.2
    
    Aspect ratio code of 0 means 1:1 before EDID 1.3.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 93dc6c2b0d97a55508144073838e041140b206cd
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Sep 23 17:31:09 2009 -0400

    drm/edid: Detailed standard timing blocks have six timings, not five.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 23425caeebc2e06629ef04f6197543cfe3f7d7b2
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Sep 23 17:30:58 2009 -0400

    drm/edid: Ignore bad standard timings.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 083ae0560ab53b039aaa897b77458cbadf19050d
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Sep 23 17:30:45 2009 -0400

    drm/edid: const cleanup
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
  2009-09-29  3:52 Dave Airlie
@ 2009-09-29  4:26 ` Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-09-29  4:26 UTC (permalink / raw)
  To: torvalds, linux-kernel, dri-devel


Oops forgot subject
> 
> Please pull the 'drm-next' branch from
> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
> 
> This might seem a bit big and I did mean to get it to you last week,
> but got distracted by X things. However its been fairly well tested.
> 
> The only new feature which I feel is important enough to let in now
> as it shouldn't disrupt much, is to allow kms to resepct video= on the
> cmdline and set the initial mode and turn individual connectors on/off.
> (it contains one patch to fb to allow this, which I've sent past the
> fbdev list already)
> There are also some fixes for the EDID parser.
> 
> Otherwise its mostly radeon related:
> radeon kms fixups and reogranising
> r600 non-kms bug fixes.
> radeon large kmalloc avoidance, we sometimes could try and do
> a 64k kmalloc if the userspace submitted a large enough packet,
> this could fail, I've avoided this by using 2 separate pages
> to cache parts of the userspace buffer.
> 
> Dave.
> 
>  drivers/gpu/drm/drm_crtc.c                 |    1 +
>  drivers/gpu/drm/drm_crtc_helper.c          |   88 ++++++-
>  drivers/gpu/drm/drm_edid.c                 |   46 +++-
>  drivers/gpu/drm/drm_fb_helper.c            |  235 +++++++++++++++++-
>  drivers/gpu/drm/drm_modes.c                |    3 +-
>  drivers/gpu/drm/i915/intel_fb.c            |    5 +-
>  drivers/gpu/drm/radeon/.gitignore          |    3 +
>  drivers/gpu/drm/radeon/avivod.h            |    9 -
>  drivers/gpu/drm/radeon/r100.c              |  197 ++++++---------
>  drivers/gpu/drm/radeon/r100_track.h        |   69 +++++-
>  drivers/gpu/drm/radeon/r200.c              |   79 +++---
>  drivers/gpu/drm/radeon/r300.c              |  137 ++++-------
>  drivers/gpu/drm/radeon/r500_reg.h          |    3 +
>  drivers/gpu/drm/radeon/r520.c              |  276 ++++++++++++--------
>  drivers/gpu/drm/radeon/r520d.h             |  187 ++++++++++++++
>  drivers/gpu/drm/radeon/r600.c              |   11 +-
>  drivers/gpu/drm/radeon/r600_cs.c           |  186 +++++++++++---
>  drivers/gpu/drm/radeon/radeon.h            |   76 ++++++-
>  drivers/gpu/drm/radeon/radeon_asic.h       |   80 +++---
>  drivers/gpu/drm/radeon/radeon_atombios.c   |    9 +-
>  drivers/gpu/drm/radeon/radeon_connectors.c |   79 +++++--
>  drivers/gpu/drm/radeon/radeon_cs.c         |  103 +++++++-
>  drivers/gpu/drm/radeon/radeon_device.c     |   11 +-
>  drivers/gpu/drm/radeon/radeon_drv.c        |    5 -
>  drivers/gpu/drm/radeon/radeon_fb.c         |   26 ++-
>  drivers/gpu/drm/radeon/radeon_kms.c        |   49 ----
>  drivers/gpu/drm/radeon/radeon_reg.h        |    1 +
>  drivers/gpu/drm/radeon/radeon_ttm.c        |    7 +-
>  drivers/gpu/drm/radeon/rs600.c             |   20 +--
>  drivers/gpu/drm/radeon/rs690.c             |    3 +-
>  drivers/gpu/drm/radeon/rv515.c             |  364 +++++++++++++++++++--------
>  drivers/gpu/drm/radeon/rv515d.h            |  385 +++++++++++++++++++++++++++-
>  drivers/gpu/drm/radeon/rv770.c             |   11 +-
>  drivers/video/fbmem.c                      |    2 +-
>  include/drm/drm_crtc.h                     |   14 +-
>  include/drm/drm_crtc_helper.h              |    4 +-
>  include/drm/drm_fb_helper.h                |   24 ++
>  37 files changed, 2117 insertions(+), 691 deletions(-)
>  create mode 100644 drivers/gpu/drm/radeon/.gitignore
>  create mode 100644 drivers/gpu/drm/radeon/r520d.h
> 
> commit f0ed1f655aa0375e2abba84cc4e8e6c853d48555
> Author: Jerome Glisse <jglisse@redhat.com>
> Date:   Mon Sep 28 20:39:19 2009 +0200
> 
>     drm/radeon/kms: Convert R520 to new init path and associated cleanup
>     
>     Convert the r520 asic support to new init path, change are smaller than
>     previous one as most of the architecture is now in place and more code
>     sharing can happen btw various asics.
>     
>     Signed-off-by: Jerome Glisse <jglisse@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit d39c3b895876427c5083a936e00f3f5b7f0fc1b3
> Author: Jerome Glisse <jglisse@redhat.com>
> Date:   Mon Sep 28 18:34:43 2009 +0200
> 
>     drm/radeon/kms: Convert RV515 to new init path and associated cleanup
>     
>     Convert the rv515 asic support to new init path also add an explanation
>     in radeon.h about the new init path. There is also few cleanups
>     associated with this change (others asic calling rv515 helper
>     functions).
>     
>     Signed-off-by: Jerome Glisse <jglisse@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit f4e45d02e4135043fe98bc21be38527c516ad990
> Author: Mikael Pettersson <mikpe@it.uu.se>
> Date:   Mon Sep 28 18:27:23 2009 +0200
> 
>     drm: fix radeon DRM warnings when !CONFIG_DEBUG_FS
>     
>     Compiling the radeon DRM driver with !CONFIG_DEBUG_FS
>     throws the following warnings:
>     
>     drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_debugfs_init':
>     drivers/gpu/drm/radeon/radeon_ttm.c:714: warning: unused variable 'i'
>     drivers/gpu/drm/radeon/radeon_ttm.c: At top level:
>     drivers/gpu/drm/radeon/radeon_ttm.c:692: warning: 'radeon_mem_types_list' defined but not used
>     drivers/gpu/drm/radeon/radeon_ttm.c:693: warning: 'radeon_mem_types_names' defined but not used
>     
>     Fix: move these variables inside the #if defined(CONFIG_DEBUG_FS)
>     block in radeon_ttm_debugsfs_init(), which is the only place using them.
>     
>     Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit bea1d35b8e1533ac493305b3efe04a4b7def8a7f
> Author: Mikael Pettersson <mikpe@it.uu.se>
> Date:   Mon Sep 28 18:26:25 2009 +0200
> 
>     drm: fix drm_fb_helper warning when !CONFIG_MAGIC_SYSRQ
>     
>     Compiling DRM throws the following warning if MAGIC_SYSRQ is disabled:
>     
>     drivers/gpu/drm/drm_fb_helper.c:101: warning: 'sysrq_drm_fb_helper_restore_op' defined but not used
>     
>     Fix: place sysrq_drm_fb_helper_restore_op and associated
>     definitions inside #ifdef CONFIG_MAGIC_SYSRQ.
>     
>     Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit 4c57edba4588ddba40017fbde3cd356e600bdf80
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Mon Sep 28 15:37:25 2009 +1000
> 
>     drm/r600: fix memory leak introduced with 64k malloc avoidance fix.
>     
>     The legacy r600 path shares code, but doesn't share quite enough
>     to get the freeing correct. Free the pages here also.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 74bf2ad508efa93db4254c9da9c7238da44e2c58
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Mon Sep 28 15:31:10 2009 +1000
> 
>     drm/kms: make fb helper work for all drivers.
>     
>     This initialises the fb helper with the connector helper,
>     so that the fb cmdline code works for intel as well.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 210bed8f827471e271f894fb99ee879a5d27cf30
> Author: Alex Deucher <alexdeucher@gmail.com>
> Date:   Fri Sep 25 18:33:08 2009 -0400
> 
>     drm/radeon/r600: fix offset handling in CS parser
>     
>     Need add reloc offset to the offset in the actual
>     packet.  Fixes use of the DRAW_INDEX packet by the 3D
>     driver.
>     
>     [airlied: modified first one where idx_value == ib[idx+0]
>     
>     Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit 2b5d6c538b48772ba3351b8a8eed096f7af8de5d
> Author: Alex Deucher <alexdeucher@gmail.com>
> Date:   Fri Sep 25 17:32:14 2009 -0400
> 
>     drm/radeon/kms/r600: fix forcing pci mode on agp cards
>     
>     All we need to do on r6xx/r7xx is clear the RADEON_IS_AGP
>     flag; the rest is handled in r600.c
>     
>     fixes fdo bug 23990:
>     http://bugs.freedesktop.org/show_bug.cgi?id=23990
>     
>     Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit c5e617e2f84225a28823a3e19951273b9f59eb27
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Sat Sep 26 09:03:39 2009 +1000
> 
>     drm/radeon/kms: fix for the extra pages copying.
>     
>     Thanks to Michel for pointing this out to me, this is
>     why I need to get more sleep, over complicate this a bit.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 2f67c6e0220e5311bb14895d32852250b2d9652b
> Author: Alex Deucher <alexdeucher@gmail.com>
> Date:   Fri Sep 25 16:35:11 2009 -0400
> 
>     drm/radeon/kms/r600: add support for vline relocs
>     
>     Provides support for anti-tearing functionality
>     in the ddx.
>     
>     Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit 90ebd0655ac1a19e591f2fe8b9a871cc03cc3989
> Author: Alex Deucher <alexdeucher@gmail.com>
> Date:   Fri Sep 25 16:39:24 2009 -0400
> 
>     drm/radeon/kms: fix some bugs in vline reloc
>     
>     - fix offset of NOP packet for parsing
>     - fix p->idx increments
>     - fix bad mask when updating crtc vline info
>     
>     Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit 974b16e33ea626c9854f0f34fa5455a18822e159
> Author: Alex Deucher <alexdeucher@gmail.com>
> Date:   Fri Sep 25 10:06:39 2009 -0400
> 
>     drm/radeon/kms/r600: clamp vram to aperture size
>     
>     r6xx and r7xx was missing this.  We don't support
>     non-CPU accessible vram yet.
>     
>     Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
>     Signed-off-by: Dave Airlie <airlied@linux.ie>
> 
> commit 8ef8678c8f6131ca5941fa387cd3939c68c4f36d
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Sat Sep 26 06:39:00 2009 +1000
> 
>     drm/kms: protect against fb helper not being created.
>     
>     If drivers don't init the fb helper on the connector, the cmdline
>     code won't work, but it shouldn't crash either.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit adea4796cfb9b74d340f9e32ba523fb61305d0b7
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Fri Sep 25 14:23:47 2009 +1000
> 
>     drm/r600: get values from the passed in IB not the copy.
>     
>     this avoids reading back the IB on AGP, also it avoids
>     the race where since we haven't fetched the page from the main IB
>     and written it to the gpu one, reading back fetches 0.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 31edd4824ec42e7cba26498fbd35df6c66b098ba
> Author: Amerigo Wang <amwang@redhat.com>
> Date:   Wed Sep 23 04:24:05 2009 -0400
> 
>     drm: create gitignore file for radeon
>     
>     Got lots of untracked files after compiling.
>     These files are generated, thus should be ignored by git.
>     
>     Signed-off-by: WANG Cong <amwang@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit e3590096f7563c6e75b77336ab8775f9a168b0f6
> Author: Dave Airlie <airlied@redhat.com>
> Date:   Wed Sep 23 15:49:20 2009 +1000
> 
>     drm/radeon/kms: remove unneeded master create/destroy functions.
>     
>     We shouldn't need these at all in radeon kms mode.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit d50ba256b5f1478e15accfcfda9b72fd7a661364
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Wed Sep 23 14:44:08 2009 +1000
> 
>     drm/kms: start adding command line interface using fb.
>     
>     [note this requires an fb patch posted to linux-fbdev-devel already]
>     
>     This uses the normal video= command line option to control the kms
>     output setup at boot time. It is used to override the autodetection
>     done by kms.
>     
>     video= normally takes a framebuffer as the first parameter, in kms
>     it will take a connector name, DVI-I-1, or LVDS-1 etc. If no output
>     connector is specified the mode string will apply to all connectors.
>     
>     The mode specification used will match down the probed modes, and if
>     no mode is found it will add a CVT mode that matches.
>     
>     video=1024x768 - all connectors match a 1024x768 mode or add a CVT on
>     video=VGA-1:1024x768, VGA-1 connector gets mode only.
>     
>     The same strings as used in current fb modedb.c are used, except I've
>     added three more letters, e, D, d, e = enable, D = enable Digital,
>     d = disable, which allow a connector to be forced into a certain state.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit f80330357284c908e1f67cc8b4d8e56a3e2f6fc6
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Wed Sep 16 20:45:09 2009 +1000
> 
>     fb: change rules for global rules match.
>     
>     Having a : should be enough 'fb:' isn't really useful
>     if the fb wants to a kms output ID.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 513bcb4655e68706594e45dfa1d4b181500110ba
> Author: Dave Airlie <airlied@redhat.com>
> Date:   Wed Sep 23 16:56:27 2009 +1000
> 
>     drm/radeon/kms: don't require up to 64k allocations. (v2)
>     
>     This avoids needing to do a kmalloc > PAGE_SIZE for the main
>     indirect buffer chunk, it adds an accessor for all reads from
>     the chunk and caches a single page at a time for subsequent
>     reads.
>     
>     changes since v1:
>     Use a two page pool which should be the most common case
>     a single packet spanning > PAGE_SIZE will be hit, but I'm
>     having trouble seeing anywhere we currently generate anything like that.
>     hopefully proper short page copying at end
>     added parser_error flag to set deep errors instead of having to test
>     every ib value fetch.
>     fixed bug in patch that went to list.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 35e4b7af21d77933abda3d41d1672589eb6c960c
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Fri Sep 25 11:56:50 2009 +1000
> 
>     drm/radeon/kms: enable dac load detection by default.
>     
>     when I added the property I forgot to enable it.
>     
>     Thanks to soreau on #radeon for tracking it down.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 4bbd4973703bf8a5f00f05eff30a99cd9814f37f
> Author: Dave Airlie <airlied@linux.ie>
> Date:   Fri Sep 25 08:56:12 2009 +1000
> 
>     drm/radeon/kms: enable r600 tv outputs.
>     
>     I never changed this back when I wrote tv-out support.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit f066a17d9f8d0a20d01d1aa9badce7f43c7bd6ad
> Author: Adam Jackson <ajax@redhat.com>
> Date:   Wed Sep 23 17:31:21 2009 -0400
> 
>     drm/edid: Fix standard timing parse for EDID <= 1.2
>     
>     Aspect ratio code of 0 means 1:1 before EDID 1.3.
>     
>     Signed-off-by: Adam Jackson <ajax@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 93dc6c2b0d97a55508144073838e041140b206cd
> Author: Adam Jackson <ajax@redhat.com>
> Date:   Wed Sep 23 17:31:09 2009 -0400
> 
>     drm/edid: Detailed standard timing blocks have six timings, not five.
>     
>     Signed-off-by: Adam Jackson <ajax@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 23425caeebc2e06629ef04f6197543cfe3f7d7b2
> Author: Adam Jackson <ajax@redhat.com>
> Date:   Wed Sep 23 17:30:58 2009 -0400
> 
>     drm/edid: Ignore bad standard timings.
>     
>     Signed-off-by: Adam Jackson <ajax@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> commit 083ae0560ab53b039aaa897b77458cbadf19050d
> Author: Adam Jackson <ajax@redhat.com>
> Date:   Wed Sep 23 17:30:45 2009 -0400
> 
>     drm/edid: const cleanup
>     
>     Signed-off-by: Adam Jackson <ajax@redhat.com>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay 
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
> 
> 

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2011-02-04  5:11 ` Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2011-02-04  5:11 UTC (permalink / raw)
  To: torvalds; +Cc: DRI mailing list, linux-kernel


Hi Linus,

more across the board fixes, some from Chris for some regressions around 
device reset, a few AGP fixes, and Alex is still trying to get radeon PLLs 
into a state that works everwhere, along with an oops fix. One fix from 
Ben for a nouveau regression also.

I haven't pulled Keith's fix for the DPMS issue, I can't reproduce the 
problem on my hw, I suspect userspace needs to be a certain version as 
well for it to trigger, I've tried 3 different machines this afternoon, so 
hopefully if we get some positive feedback from testers we can pull it in 
then.

Dave.

The following changes since commit 1f0324caefd39985e9fe052fac97da31694db31e:

  Merge branch 'stable/bug-fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen (2011-01-28 12:24:34 +1000)

are available in the git repository at:

  ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-fixes

Alex Deucher (10):
      drm/radeon/kms: rv6xx+ thermal sensor fixes
      drm/radeon/kms: switch back to min->max pll post divider iteration
      drm/radeon/kms: add pll debugging output
      drm/radeon/kms: add new pll algo for avivo asics
      drm/radeon/kms: Enable new pll calculation for avivo+ asics
      drm/radeon: remove 0x4243 pci id
      drm/radeon/kms: add updated ib_execute function for evergreen
      drm/radeon/kms/evergreen: always set certain VGT regs at CP init
      drm/radeon/kms: fix s/r issues with bios scratch regs
      drm/radeon/kms: dynamically allocate power state space

Ben Skeggs (1):
      drm/nv50: fix display on 0x50

Chris Wilson (10):
      drm/i915/sdvo: If at first we don't succeed in reading the response, wait
      drm: Add an interface to reset the device
      drm/i915: Reset state after a GPU reset or resume
      drm/i915/crt: Force the initial probe after reset
      drm/i915: Reset crtc after resume
      drm: Don't switch fb when disabling an output
      drm: Simplify and defend later checks when disabling a crtc
      drm: Avoid leak of adjusted mode along quick set_mode paths
      drm/i915: Suppress spurious vblank interrupts
      drm/i915: Only bind to function 0 of the PCI device

Dave Airlie (2):
      Merge remote branch 'intel/drm-intel-fixes' of /ssd/git/drm-next into drm-fixes
      Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next into drm-fixes

Lucas Stach (1):
      drm/nouveau: correctly pair hwmon_init and hwmon_fini

Matt Turner (2):
      amd-k7-agp: remove non-x86 code
      Revert "agp: AMD AGP is used on UP1100 & UP1500 alpha boxen"

Randy Dunlap (1):
      gpu/stub: fix acpi_video build error, fix stub kconfig dependencies

Stefan Weil (1):
      drm/radeon: Fix wrong boolean operator

Stephen Kitt (1):
      agp: ensure GART has an address before enabling it

 drivers/char/agp/Kconfig                    |    2 +-
 drivers/char/agp/amd-k7-agp.c               |   19 ----
 drivers/char/agp/intel-agp.c                |   27 +++--
 drivers/gpu/drm/drm_crtc.c                  |   20 ++++
 drivers/gpu/drm/drm_crtc_helper.c           |   21 ++--
 drivers/gpu/drm/drm_irq.c                   |    7 +-
 drivers/gpu/drm/i915/i915_drv.c             |   10 ++
 drivers/gpu/drm/i915/i915_irq.c             |    8 +-
 drivers/gpu/drm/i915/intel_crt.c            |   10 ++
 drivers/gpu/drm/i915/intel_display.c        |   17 +++-
 drivers/gpu/drm/i915/intel_sdvo.c           |   46 +++++-----
 drivers/gpu/drm/nouveau/nouveau_pm.c        |    2 +-
 drivers/gpu/drm/nouveau/nv50_evo.c          |    3 +-
 drivers/gpu/drm/radeon/atombios_crtc.c      |   18 +++-
 drivers/gpu/drm/radeon/evergreen.c          |   41 ++++++--
 drivers/gpu/drm/radeon/evergreen_blit_kms.c |   10 ++-
 drivers/gpu/drm/radeon/evergreend.h         |    2 +
 drivers/gpu/drm/radeon/r600.c               |    8 +-
 drivers/gpu/drm/radeon/radeon.h             |   11 +-
 drivers/gpu/drm/radeon/radeon_asic.c        |    6 +-
 drivers/gpu/drm/radeon/radeon_asic.h        |    1 +
 drivers/gpu/drm/radeon/radeon_atombios.c    |   59 +++++++-----
 drivers/gpu/drm/radeon/radeon_combios.c     |   11 ++
 drivers/gpu/drm/radeon/radeon_display.c     |  132 +++++++++++++++++++++++++--
 drivers/gpu/drm/radeon/radeon_encoders.c    |    2 +-
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c |    6 +-
 drivers/gpu/drm/radeon/radeon_mode.h        |   23 +++--
 drivers/gpu/drm/radeon/radeon_pm.c          |    5 +-
 drivers/gpu/drm/radeon/rv770.c              |   19 +++--
 drivers/gpu/stub/Kconfig                    |    2 +
 include/drm/drmP.h                          |    2 +-
 include/drm/drm_crtc.h                      |    7 ++
 include/drm/drm_pciids.h                    |    1 -
 33 files changed, 400 insertions(+), 158 deletions(-)

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2011-02-04  5:11 ` Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2011-02-04  5:11 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, DRI mailing list


Hi Linus,

more across the board fixes, some from Chris for some regressions around 
device reset, a few AGP fixes, and Alex is still trying to get radeon PLLs 
into a state that works everwhere, along with an oops fix. One fix from 
Ben for a nouveau regression also.

I haven't pulled Keith's fix for the DPMS issue, I can't reproduce the 
problem on my hw, I suspect userspace needs to be a certain version as 
well for it to trigger, I've tried 3 different machines this afternoon, so 
hopefully if we get some positive feedback from testers we can pull it in 
then.

Dave.

The following changes since commit 1f0324caefd39985e9fe052fac97da31694db31e:

  Merge branch 'stable/bug-fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen (2011-01-28 12:24:34 +1000)

are available in the git repository at:

  ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-fixes

Alex Deucher (10):
      drm/radeon/kms: rv6xx+ thermal sensor fixes
      drm/radeon/kms: switch back to min->max pll post divider iteration
      drm/radeon/kms: add pll debugging output
      drm/radeon/kms: add new pll algo for avivo asics
      drm/radeon/kms: Enable new pll calculation for avivo+ asics
      drm/radeon: remove 0x4243 pci id
      drm/radeon/kms: add updated ib_execute function for evergreen
      drm/radeon/kms/evergreen: always set certain VGT regs at CP init
      drm/radeon/kms: fix s/r issues with bios scratch regs
      drm/radeon/kms: dynamically allocate power state space

Ben Skeggs (1):
      drm/nv50: fix display on 0x50

Chris Wilson (10):
      drm/i915/sdvo: If at first we don't succeed in reading the response, wait
      drm: Add an interface to reset the device
      drm/i915: Reset state after a GPU reset or resume
      drm/i915/crt: Force the initial probe after reset
      drm/i915: Reset crtc after resume
      drm: Don't switch fb when disabling an output
      drm: Simplify and defend later checks when disabling a crtc
      drm: Avoid leak of adjusted mode along quick set_mode paths
      drm/i915: Suppress spurious vblank interrupts
      drm/i915: Only bind to function 0 of the PCI device

Dave Airlie (2):
      Merge remote branch 'intel/drm-intel-fixes' of /ssd/git/drm-next into drm-fixes
      Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next into drm-fixes

Lucas Stach (1):
      drm/nouveau: correctly pair hwmon_init and hwmon_fini

Matt Turner (2):
      amd-k7-agp: remove non-x86 code
      Revert "agp: AMD AGP is used on UP1100 & UP1500 alpha boxen"

Randy Dunlap (1):
      gpu/stub: fix acpi_video build error, fix stub kconfig dependencies

Stefan Weil (1):
      drm/radeon: Fix wrong boolean operator

Stephen Kitt (1):
      agp: ensure GART has an address before enabling it

 drivers/char/agp/Kconfig                    |    2 +-
 drivers/char/agp/amd-k7-agp.c               |   19 ----
 drivers/char/agp/intel-agp.c                |   27 +++--
 drivers/gpu/drm/drm_crtc.c                  |   20 ++++
 drivers/gpu/drm/drm_crtc_helper.c           |   21 ++--
 drivers/gpu/drm/drm_irq.c                   |    7 +-
 drivers/gpu/drm/i915/i915_drv.c             |   10 ++
 drivers/gpu/drm/i915/i915_irq.c             |    8 +-
 drivers/gpu/drm/i915/intel_crt.c            |   10 ++
 drivers/gpu/drm/i915/intel_display.c        |   17 +++-
 drivers/gpu/drm/i915/intel_sdvo.c           |   46 +++++-----
 drivers/gpu/drm/nouveau/nouveau_pm.c        |    2 +-
 drivers/gpu/drm/nouveau/nv50_evo.c          |    3 +-
 drivers/gpu/drm/radeon/atombios_crtc.c      |   18 +++-
 drivers/gpu/drm/radeon/evergreen.c          |   41 ++++++--
 drivers/gpu/drm/radeon/evergreen_blit_kms.c |   10 ++-
 drivers/gpu/drm/radeon/evergreend.h         |    2 +
 drivers/gpu/drm/radeon/r600.c               |    8 +-
 drivers/gpu/drm/radeon/radeon.h             |   11 +-
 drivers/gpu/drm/radeon/radeon_asic.c        |    6 +-
 drivers/gpu/drm/radeon/radeon_asic.h        |    1 +
 drivers/gpu/drm/radeon/radeon_atombios.c    |   59 +++++++-----
 drivers/gpu/drm/radeon/radeon_combios.c     |   11 ++
 drivers/gpu/drm/radeon/radeon_display.c     |  132 +++++++++++++++++++++++++--
 drivers/gpu/drm/radeon/radeon_encoders.c    |    2 +-
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c |    6 +-
 drivers/gpu/drm/radeon/radeon_mode.h        |   23 +++--
 drivers/gpu/drm/radeon/radeon_pm.c          |    5 +-
 drivers/gpu/drm/radeon/rv770.c              |   19 +++--
 drivers/gpu/stub/Kconfig                    |    2 +
 include/drm/drmP.h                          |    2 +-
 include/drm/drm_crtc.h                      |    7 ++
 include/drm/drm_pciids.h                    |    1 -
 33 files changed, 400 insertions(+), 158 deletions(-)

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-16  1:19     ` Ben Skeggs
  2010-02-16 11:39       ` Christian Borntraeger
@ 2010-02-16 11:39       ` Christian Borntraeger
  1 sibling, 0 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-16 11:39 UTC (permalink / raw)
  To: bskeggs
  Cc: Dave Airlie, torvalds, dri-devel, linux-kernel, Maarten Maathuis,
	Marcin Slusarz

Am Dienstag 16 Februar 2010 02:19:37 schrieb Ben Skeggs:
> Ah, it appears the vbios delay opcodes got changed to use sleeps rather
> than delays at some point without me noticing.  Sent a patch to Dave
> changing the code to use a mutex instead for now.

Ok, I cherry-picked d9184fa97b6f48d399636e5e2669bc8419f9369e from for-airlied
The fix seems to work.

If you like you can add

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>

Christian

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-16  1:19     ` Ben Skeggs
@ 2010-02-16 11:39       ` Christian Borntraeger
  2010-02-16 11:39       ` Christian Borntraeger
  1 sibling, 0 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-16 11:39 UTC (permalink / raw)
  To: bskeggs; +Cc: Dave Airlie, linux-kernel, dri-devel, torvalds

Am Dienstag 16 Februar 2010 02:19:37 schrieb Ben Skeggs:
> Ah, it appears the vbios delay opcodes got changed to use sleeps rather
> than delays at some point without me noticing.  Sent a patch to Dave
> changing the code to use a mutex instead for now.

Ok, I cherry-picked d9184fa97b6f48d399636e5e2669bc8419f9369e from for-airlied
The fix seems to work.

If you like you can add

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>

Christian

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15 22:55   ` Christian Borntraeger
  2010-02-16  1:19     ` Ben Skeggs
@ 2010-02-16  1:19     ` Ben Skeggs
  2010-02-16 11:39       ` Christian Borntraeger
  2010-02-16 11:39       ` Christian Borntraeger
  1 sibling, 2 replies; 79+ messages in thread
From: Ben Skeggs @ 2010-02-16  1:19 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: Dave Airlie, torvalds, dri-devel, linux-kernel, Maarten Maathuis,
	Marcin Slusarz

On Mon, 2010-02-15 at 23:55 +0100, Christian Borntraeger wrote:
> Am Montag 15 Februar 2010 10:53:48 schrieb Christian Borntraeger:
> I think this regression is triggered by
> 
> commit 39c9bfb453b748ce220ceefacbe2a5c19fabf67b
> Author: Ben Skeggs <bskeggs@redhat.com>
> Date:   Tue Feb 9 10:22:29 2010 +1000
> 
>     drm/nv50: prevent multiple init tables being parsed at the same time
> 
> One possible solution is to replace the spinlock bios->lock with a mutex, 
> but there are others ways of fixing this BUG.
> 
> CCing Ben.
Ah, it appears the vbios delay opcodes got changed to use sleeps rather
than delays at some point without me noticing.  Sent a patch to Dave
changing the code to use a mutex instead for now.

Thanks,
Ben.
> 
> 
> 
> > [    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
> > [    2.175439] Modules linked in:                                                                                                                                           
> > [    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
> > [    2.175443] Call Trace:                                                                                                                                                  
> > [    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
> > [    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
> > [    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
> > [    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
> > [    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
> > [    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
> > [    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> > [    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
> > [    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> > [    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
> > [    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
> > [    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> > [    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
> > [    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> > [    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
> > [    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
> > [    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> > [    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> > [    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
> > [    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
> > [    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
> > [    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
> > [    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
> > [    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
> > [    2.186633] registered panic notifier                                                                                                                                    
> > [    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
> > ...
> > 



^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15 22:55   ` Christian Borntraeger
@ 2010-02-16  1:19     ` Ben Skeggs
  2010-02-16  1:19     ` Ben Skeggs
  1 sibling, 0 replies; 79+ messages in thread
From: Ben Skeggs @ 2010-02-16  1:19 UTC (permalink / raw)
  To: Christian Borntraeger; +Cc: Dave Airlie, linux-kernel, dri-devel, torvalds

On Mon, 2010-02-15 at 23:55 +0100, Christian Borntraeger wrote:
> Am Montag 15 Februar 2010 10:53:48 schrieb Christian Borntraeger:
> I think this regression is triggered by
> 
> commit 39c9bfb453b748ce220ceefacbe2a5c19fabf67b
> Author: Ben Skeggs <bskeggs@redhat.com>
> Date:   Tue Feb 9 10:22:29 2010 +1000
> 
>     drm/nv50: prevent multiple init tables being parsed at the same time
> 
> One possible solution is to replace the spinlock bios->lock with a mutex, 
> but there are others ways of fixing this BUG.
> 
> CCing Ben.
Ah, it appears the vbios delay opcodes got changed to use sleeps rather
than delays at some point without me noticing.  Sent a patch to Dave
changing the code to use a mutex instead for now.

Thanks,
Ben.
> 
> 
> 
> > [    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
> > [    2.175439] Modules linked in:                                                                                                                                           
> > [    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
> > [    2.175443] Call Trace:                                                                                                                                                  
> > [    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
> > [    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
> > [    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
> > [    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
> > [    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
> > [    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
> > [    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> > [    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
> > [    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> > [    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
> > [    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
> > [    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> > [    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
> > [    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> > [    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
> > [    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
> > [    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> > [    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> > [    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
> > [    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
> > [    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
> > [    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
> > [    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
> > [    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
> > [    2.186633] registered panic notifier                                                                                                                                    
> > [    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
> > ...
> > 



------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15  9:53 ` Christian Borntraeger
  2010-02-15 20:12   ` Marcin Slusarz
  2010-02-15 20:12   ` Marcin Slusarz
@ 2010-02-15 22:55   ` Christian Borntraeger
  2010-02-16  1:19     ` Ben Skeggs
  2010-02-16  1:19     ` Ben Skeggs
  2010-02-15 22:55   ` Christian Borntraeger
  3 siblings, 2 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-15 22:55 UTC (permalink / raw)
  To: Dave Airlie, Ben Skeggs
  Cc: torvalds, dri-devel, linux-kernel, Maarten Maathuis, Marcin Slusarz

Am Montag 15 Februar 2010 10:53:48 schrieb Christian Borntraeger:
I think this regression is triggered by

commit 39c9bfb453b748ce220ceefacbe2a5c19fabf67b
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Feb 9 10:22:29 2010 +1000

    drm/nv50: prevent multiple init tables being parsed at the same time

One possible solution is to replace the spinlock bios->lock with a mutex, 
but there are others ways of fixing this BUG.

CCing Ben.



> [    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
> [    2.175439] Modules linked in:                                                                                                                                           
> [    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
> [    2.175443] Call Trace:                                                                                                                                                  
> [    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
> [    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
> [    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
> [    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
> [    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
> [    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
> [    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> [    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
> [    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> [    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
> [    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
> [    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> [    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
> [    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> [    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
> [    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
> [    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> [    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> [    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
> [    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
> [    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
> [    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
> [    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
> [    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
> [    2.186633] registered panic notifier                                                                                                                                    
> [    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
> ...
> 

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15  9:53 ` Christian Borntraeger
                     ` (2 preceding siblings ...)
  2010-02-15 22:55   ` Christian Borntraeger
@ 2010-02-15 22:55   ` Christian Borntraeger
  3 siblings, 0 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-15 22:55 UTC (permalink / raw)
  To: Dave Airlie, Ben Skeggs; +Cc: torvalds, linux-kernel, dri-devel

Am Montag 15 Februar 2010 10:53:48 schrieb Christian Borntraeger:
I think this regression is triggered by

commit 39c9bfb453b748ce220ceefacbe2a5c19fabf67b
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Feb 9 10:22:29 2010 +1000

    drm/nv50: prevent multiple init tables being parsed at the same time

One possible solution is to replace the spinlock bios->lock with a mutex, 
but there are others ways of fixing this BUG.

CCing Ben.



> [    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
> [    2.175439] Modules linked in:                                                                                                                                           
> [    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
> [    2.175443] Call Trace:                                                                                                                                                  
> [    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
> [    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
> [    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
> [    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
> [    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
> [    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
> [    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> [    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
> [    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
> [    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
> [    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
> [    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> [    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
> [    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
> [    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
> [    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
> [    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> [    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
> [    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
> [    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
> [    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
> [    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
> [    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
> [    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
> [    2.186633] registered panic notifier                                                                                                                                    
> [    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
> ...
> 

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
@ 2010-02-15 22:13         ` Marcin Slusarz
  0 siblings, 0 replies; 79+ messages in thread
From: Marcin Slusarz @ 2010-02-15 22:13 UTC (permalink / raw)
  To: Maarten Maathuis
  Cc: Christian Borntraeger, Dave Airlie, torvalds, dri-devel,
	linux-kernel, nouveau

On Mon, Feb 15, 2010 at 09:39:00PM +0100, Maarten Maathuis wrote:
> The channel/context switch lock related patches (to the best of
> knowledge) haven't even gone outside the nouveau tree, so the initial
> damage isn't even there. At least not for the first path. As for the
> 2nd patch, that one was squished into the original patch for this pull
> iirc.

Ouch, you are right.
Sorry for the noise.

Marcin


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
@ 2010-02-15 22:13         ` Marcin Slusarz
  0 siblings, 0 replies; 79+ messages in thread
From: Marcin Slusarz @ 2010-02-15 22:13 UTC (permalink / raw)
  To: Maarten Maathuis
  Cc: Dave Airlie, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Christian Borntraeger,
	dri-devel-TtF/mJH4Jtrk1uMJSBkQmQ,
	torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b

On Mon, Feb 15, 2010 at 09:39:00PM +0100, Maarten Maathuis wrote:
> The channel/context switch lock related patches (to the best of
> knowledge) haven't even gone outside the nouveau tree, so the initial
> damage isn't even there. At least not for the first path. As for the
> 2nd patch, that one was squished into the original patch for this pull
> iirc.

Ouch, you are right.
Sorry for the noise.

Marcin

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15 20:39       ` Maarten Maathuis
  (?)
@ 2010-02-15 22:13       ` Marcin Slusarz
  -1 siblings, 0 replies; 79+ messages in thread
From: Marcin Slusarz @ 2010-02-15 22:13 UTC (permalink / raw)
  To: Maarten Maathuis
  Cc: Dave Airlie, nouveau, linux-kernel, Christian Borntraeger,
	dri-devel, torvalds

On Mon, Feb 15, 2010 at 09:39:00PM +0100, Maarten Maathuis wrote:
> The channel/context switch lock related patches (to the best of
> knowledge) haven't even gone outside the nouveau tree, so the initial
> damage isn't even there. At least not for the first path. As for the
> 2nd patch, that one was squished into the original patch for this pull
> iirc.

Ouch, you are right.
Sorry for the noise.

Marcin


------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
@ 2010-02-15 20:39       ` Maarten Maathuis
  0 siblings, 0 replies; 79+ messages in thread
From: Maarten Maathuis @ 2010-02-15 20:39 UTC (permalink / raw)
  To: Marcin Slusarz
  Cc: Christian Borntraeger, Dave Airlie, torvalds, dri-devel,
	linux-kernel, nouveau

The channel/context switch lock related patches (to the best of
knowledge) haven't even gone outside the nouveau tree, so the initial
damage isn't even there. At least not for the first path. As for the
2nd patch, that one was squished into the original patch for this pull
iirc.

Maarten.

On Mon, Feb 15, 2010 at 9:12 PM, Marcin Slusarz
<marcin.slusarz@gmail.com> wrote:
> On Mon, Feb 15, 2010 at 10:53:48AM +0100, Christian Borntraeger wrote:
>> Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:
>>
>> Dave,
>>
>> I just updated from to rc8 and got the a scheduling while atomic warning in
>> nouveau. (see below).
>
> Linus' tree is missing two fixes:
>
> drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
> drm/nouveau: spin_lock_init after memset'ing the bios struct
>
> The first one fixes your bug.
>
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88
>
> If they won't go into 2.6.33, they are perfect candidates for -stable.
>
> Marcin
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
@ 2010-02-15 20:39       ` Maarten Maathuis
  0 siblings, 0 replies; 79+ messages in thread
From: Maarten Maathuis @ 2010-02-15 20:39 UTC (permalink / raw)
  To: Marcin Slusarz
  Cc: Dave Airlie, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Christian Borntraeger,
	dri-devel-TtF/mJH4Jtrk1uMJSBkQmQ,
	torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b

The channel/context switch lock related patches (to the best of
knowledge) haven't even gone outside the nouveau tree, so the initial
damage isn't even there. At least not for the first path. As for the
2nd patch, that one was squished into the original patch for this pull
iirc.

Maarten.

On Mon, Feb 15, 2010 at 9:12 PM, Marcin Slusarz
<marcin.slusarz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> On Mon, Feb 15, 2010 at 10:53:48AM +0100, Christian Borntraeger wrote:
>> Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:
>>
>> Dave,
>>
>> I just updated from to rc8 and got the a scheduling while atomic warning in
>> nouveau. (see below).
>
> Linus' tree is missing two fixes:
>
> drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
> drm/nouveau: spin_lock_init after memset'ing the bios struct
>
> The first one fixes your bug.
>
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88
>
> If they won't go into 2.6.33, they are perfect candidates for -stable.
>
> Marcin
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15 20:12   ` Marcin Slusarz
@ 2010-02-15 20:39     ` Maarten Maathuis
  2010-02-15 20:39       ` Maarten Maathuis
  1 sibling, 0 replies; 79+ messages in thread
From: Maarten Maathuis @ 2010-02-15 20:39 UTC (permalink / raw)
  To: Marcin Slusarz
  Cc: Dave Airlie, nouveau, linux-kernel, Christian Borntraeger,
	dri-devel, torvalds

The channel/context switch lock related patches (to the best of
knowledge) haven't even gone outside the nouveau tree, so the initial
damage isn't even there. At least not for the first path. As for the
2nd patch, that one was squished into the original patch for this pull
iirc.

Maarten.

On Mon, Feb 15, 2010 at 9:12 PM, Marcin Slusarz
<marcin.slusarz@gmail.com> wrote:
> On Mon, Feb 15, 2010 at 10:53:48AM +0100, Christian Borntraeger wrote:
>> Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:
>>
>> Dave,
>>
>> I just updated from to rc8 and got the a scheduling while atomic warning in
>> nouveau. (see below).
>
> Linus' tree is missing two fixes:
>
> drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
> drm/nouveau: spin_lock_init after memset'ing the bios struct
>
> The first one fixes your bug.
>
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
> http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88
>
> If they won't go into 2.6.33, they are perfect candidates for -stable.
>
> Marcin
>

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15  9:53 ` Christian Borntraeger
@ 2010-02-15 20:12   ` Marcin Slusarz
  2010-02-15 20:39     ` Maarten Maathuis
  2010-02-15 20:39       ` Maarten Maathuis
  2010-02-15 20:12   ` Marcin Slusarz
                     ` (2 subsequent siblings)
  3 siblings, 2 replies; 79+ messages in thread
From: Marcin Slusarz @ 2010-02-15 20:12 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: Dave Airlie, torvalds, dri-devel, linux-kernel, nouveau,
	Maarten Maathuis

On Mon, Feb 15, 2010 at 10:53:48AM +0100, Christian Borntraeger wrote:
> Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:
> 
> Dave,
> 
> I just updated from to rc8 and got the a scheduling while atomic warning in
> nouveau. (see below).

Linus' tree is missing two fixes:

drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
drm/nouveau: spin_lock_init after memset'ing the bios struct

The first one fixes your bug.

http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88

If they won't go into 2.6.33, they are perfect candidates for -stable.

Marcin

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-15  9:53 ` Christian Borntraeger
  2010-02-15 20:12   ` Marcin Slusarz
@ 2010-02-15 20:12   ` Marcin Slusarz
  2010-02-15 22:55   ` Christian Borntraeger
  2010-02-15 22:55   ` Christian Borntraeger
  3 siblings, 0 replies; 79+ messages in thread
From: Marcin Slusarz @ 2010-02-15 20:12 UTC (permalink / raw)
  To: Christian Borntraeger
  Cc: Dave Airlie, nouveau, linux-kernel, dri-devel, torvalds

On Mon, Feb 15, 2010 at 10:53:48AM +0100, Christian Borntraeger wrote:
> Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:
> 
> Dave,
> 
> I just updated from to rc8 and got the a scheduling while atomic warning in
> nouveau. (see below).

Linus' tree is missing two fixes:

drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
drm/nouveau: spin_lock_init after memset'ing the bios struct

The first one fixes your bug.

http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88

If they won't go into 2.6.33, they are perfect candidates for -stable.

Marcin

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-11  4:20 Dave Airlie
  2010-02-15  9:53 ` Christian Borntraeger
@ 2010-02-15  9:53 ` Christian Borntraeger
  2010-02-15 20:12   ` Marcin Slusarz
                     ` (3 more replies)
  1 sibling, 4 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-15  9:53 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, dri-devel, linux-kernel

Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:

Dave,

I just updated from to rc8 and got the a scheduling while atomic warning in
nouveau. (see below).

...
[    0.298265] [drm] Initialized drm 1.1.0 20060810                                                                                                                         
[    0.298409] nouveau 0000:01:00.0: power state changed by ACPI to D0                                                                                                      
[    0.298420] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16                                                                                             
[    0.298426] nouveau 0000:01:00.0: setting latency timer to 64                                                                                                            
[    0.301746] [drm] nouveau 0000:01:00.0: failed to evaluate _DSM: 5                                                                                                       
[    0.303750] ACPI: Battery Slot [BAT0] (battery present)                                                                                                                  
[    0.304515] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x084c00a2)                                                                                    
[    0.305534] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN                                                                                        
[    0.382604] [drm] nouveau 0000:01:00.0: ... appears to be valid                                                                                                          
[    0.382607] [drm] nouveau 0000:01:00.0: BIT BIOS found                                                                                                                   
[    0.382609] [drm] nouveau 0000:01:00.0: Bios version 60.84.51.00                                                                                                         
[    0.382613] [drm] nouveau 0000:01:00.0: TMDS table revision 2.0 not currently supported                                                                                  
[    0.382614] [drm] nouveau 0000:01:00.0: BIT table 'd' not found                                                                                                          
[    0.382616] [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 4.0                                                                                    
[    0.382619] [drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x40 5 14 2                                                                                            
[    0.382621] [drm] nouveau 0000:01:00.0:   0: 0x00000040: type 0x40 idx 0 tag 0xff                                                                                        
[    0.382623] [drm] nouveau 0000:01:00.0:   1: 0x00000100: type 0x00 idx 1 tag 0xff                                                                                        
[    0.382626] [drm] nouveau 0000:01:00.0:   2: 0x00001231: type 0x31 idx 2 tag 0x07                                                                                        
[    0.382628] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 01000323 00010034                                                                                               
[    0.382630] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02811300 00000028                                                                                               
[    0.382632] [drm] nouveau 0000:01:00.0: Raw DCB entry 2: 02822312 00010030                                                                                               
[    0.382633] [drm] nouveau 0000:01:00.0: Raw DCB entry 3: 0000000e 00000000                                                                                               
[    0.382641] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xDEBB                                                                                      
[    0.420125] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xE208                                                                                      
[    0.453350] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xEC55                                                                                      
[    0.453358] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xED47                                                                                      
[    0.460091] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xEF7A                                                                                      
[    0.460093] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xEFDF                                                                                        
[    0.483353] [drm] nouveau 0000:01:00.0: 0xEFDF: Condition still not met after 20ms, skipping following opcodes                                                           
[    0.483360] [drm] nouveau 0000:01:00.0: 0xD01A: parsing output script 0                                                                                                  
[    0.483362] [drm] nouveau 0000:01:00.0: 0xD190: parsing output script 0                                                                                                  
[    0.600743] [TTM] Zone  kernel: Available graphics memory: 1993568 kiB.                                                                                                  
[    0.600755] [drm] nouveau 0000:01:00.0: 256 MiB VRAM                                                                                                                     
[    0.632525] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)                                                                                                          
[    0.632531] mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining                                                                               
[    0.632541] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxprog                                                                                 
[    0.632545] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxvals                                                                                 
[    0.632801] [drm] nouveau 0000:01:00.0: Allocating FIFO number 1                                                                                                         
[    0.640758] [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 1                                                                                        
[    0.641523] [drm] nouveau 0000:01:00.0: Detected a LVDS output                                                                                                           
[    0.641527] [drm] nouveau 0000:01:00.0: Detected a DAC output                                                                                                            
[    0.641529] [drm] nouveau 0000:01:00.0: Detected a TMDS output                                                                                                           
[    0.641531] [drm] nouveau 0000:01:00.0: Detected a LVDS connector                                                                                                        
[    0.741133] [drm] nouveau 0000:01:00.0: Detected a VGA connector                                                                                                         
[    0.741222] [drm] nouveau 0000:01:00.0: Detected a DVI-D connector                                                                                                       
[    2.173573] [drm] nouveau 0000:01:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff88013b9c5800                                                                          
[    2.175406] [drm] nouveau 0000:01:00.0: 0xD01E: parsing output script 1                                                                                                  
[    2.175431] [drm] nouveau 0000:01:00.0: 0xCEC7: parsing clock script 0                                                                                                   
[    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
[    2.175439] Modules linked in:                                                                                                                                           
[    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
[    2.175443] Call Trace:                                                                                                                                                  
[    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
[    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
[    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
[    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
[    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
[    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
[    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
[    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
[    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
[    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
[    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
[    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
[    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
[    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
[    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
[    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
[    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
[    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
[    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
[    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
[    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
[    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
[    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
[    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
[    2.186633] registered panic notifier                                                                                                                                    
[    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
...

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2010-02-11  4:20 Dave Airlie
@ 2010-02-15  9:53 ` Christian Borntraeger
  2010-02-15  9:53 ` Christian Borntraeger
  1 sibling, 0 replies; 79+ messages in thread
From: Christian Borntraeger @ 2010-02-15  9:53 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, linux-kernel, dri-devel

Am Donnerstag 11 Februar 2010 05:20:07 schrieb Dave Airlie:

Dave,

I just updated from to rc8 and got the a scheduling while atomic warning in
nouveau. (see below).

...
[    0.298265] [drm] Initialized drm 1.1.0 20060810                                                                                                                         
[    0.298409] nouveau 0000:01:00.0: power state changed by ACPI to D0                                                                                                      
[    0.298420] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16                                                                                             
[    0.298426] nouveau 0000:01:00.0: setting latency timer to 64                                                                                                            
[    0.301746] [drm] nouveau 0000:01:00.0: failed to evaluate _DSM: 5                                                                                                       
[    0.303750] ACPI: Battery Slot [BAT0] (battery present)                                                                                                                  
[    0.304515] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x084c00a2)                                                                                    
[    0.305534] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN                                                                                        
[    0.382604] [drm] nouveau 0000:01:00.0: ... appears to be valid                                                                                                          
[    0.382607] [drm] nouveau 0000:01:00.0: BIT BIOS found                                                                                                                   
[    0.382609] [drm] nouveau 0000:01:00.0: Bios version 60.84.51.00                                                                                                         
[    0.382613] [drm] nouveau 0000:01:00.0: TMDS table revision 2.0 not currently supported                                                                                  
[    0.382614] [drm] nouveau 0000:01:00.0: BIT table 'd' not found                                                                                                          
[    0.382616] [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 4.0                                                                                    
[    0.382619] [drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x40 5 14 2                                                                                            
[    0.382621] [drm] nouveau 0000:01:00.0:   0: 0x00000040: type 0x40 idx 0 tag 0xff                                                                                        
[    0.382623] [drm] nouveau 0000:01:00.0:   1: 0x00000100: type 0x00 idx 1 tag 0xff                                                                                        
[    0.382626] [drm] nouveau 0000:01:00.0:   2: 0x00001231: type 0x31 idx 2 tag 0x07                                                                                        
[    0.382628] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 01000323 00010034                                                                                               
[    0.382630] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02811300 00000028                                                                                               
[    0.382632] [drm] nouveau 0000:01:00.0: Raw DCB entry 2: 02822312 00010030                                                                                               
[    0.382633] [drm] nouveau 0000:01:00.0: Raw DCB entry 3: 0000000e 00000000                                                                                               
[    0.382641] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xDEBB                                                                                      
[    0.420125] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xE208                                                                                      
[    0.453350] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xEC55                                                                                      
[    0.453358] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xED47                                                                                      
[    0.460091] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xEF7A                                                                                      
[    0.460093] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xEFDF                                                                                        
[    0.483353] [drm] nouveau 0000:01:00.0: 0xEFDF: Condition still not met after 20ms, skipping following opcodes                                                           
[    0.483360] [drm] nouveau 0000:01:00.0: 0xD01A: parsing output script 0                                                                                                  
[    0.483362] [drm] nouveau 0000:01:00.0: 0xD190: parsing output script 0                                                                                                  
[    0.600743] [TTM] Zone  kernel: Available graphics memory: 1993568 kiB.                                                                                                  
[    0.600755] [drm] nouveau 0000:01:00.0: 256 MiB VRAM                                                                                                                     
[    0.632525] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)                                                                                                          
[    0.632531] mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining                                                                               
[    0.632541] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxprog                                                                                 
[    0.632545] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxvals                                                                                 
[    0.632801] [drm] nouveau 0000:01:00.0: Allocating FIFO number 1                                                                                                         
[    0.640758] [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 1                                                                                        
[    0.641523] [drm] nouveau 0000:01:00.0: Detected a LVDS output                                                                                                           
[    0.641527] [drm] nouveau 0000:01:00.0: Detected a DAC output                                                                                                            
[    0.641529] [drm] nouveau 0000:01:00.0: Detected a TMDS output                                                                                                           
[    0.641531] [drm] nouveau 0000:01:00.0: Detected a LVDS connector                                                                                                        
[    0.741133] [drm] nouveau 0000:01:00.0: Detected a VGA connector                                                                                                         
[    0.741222] [drm] nouveau 0000:01:00.0: Detected a DVI-D connector                                                                                                       
[    2.173573] [drm] nouveau 0000:01:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff88013b9c5800                                                                          
[    2.175406] [drm] nouveau 0000:01:00.0: 0xD01E: parsing output script 1                                                                                                  
[    2.175431] [drm] nouveau 0000:01:00.0: 0xCEC7: parsing clock script 0                                                                                                   
[    2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002                                                                                                       
[    2.175439] Modules linked in:                                                                                                                                           
[    2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27                                                                                              
[    2.175443] Call Trace:                                                                                                                                                  
[    2.175451]  [<ffffffff815dcdea>] ? schedule+0x86a/0x880                                                                                                                 
[    2.175454]  [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0                                                                                                                 
[    2.175456]  [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250                                                                                                         
[    2.175460]  [<ffffffff81068570>] ? process_timeout+0x0/0x10                                                                                                             
[    2.175462]  [<ffffffff81069068>] ? msleep+0x18/0x30                                                                                                                     
[    2.175466]  [<ffffffff812d48d1>] ? init_time+0x51/0x90                                                                                                                  
[    2.175468]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
[    2.175470]  [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0                                                                                                            
[    2.175472]  [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0                                                                                                          
[    2.175474]  [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0                                                                                                
[    2.175476]  [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500                                                                                           
[    2.175480]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
[    2.175483]  [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410                                                                                              
[    2.175485]  [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410                                                                                                
[    2.175487]  [<ffffffff8107047b>] ? worker_thread+0x16b/0x250                                                                                                            
[    2.175490]  [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30                                                                                                    
[    2.175492]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
[    2.175494]  [<ffffffff81070310>] ? worker_thread+0x0/0x250                                                                                                              
[    2.175496]  [<ffffffff81073dbe>] ? kthread+0x8e/0xa0                                                                                                                    
[    2.175499]  [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10                                                                                                        
[    2.175501]  [<ffffffff81073d30>] ? kthread+0x0/0xa0                                                                                                                     
[    2.175503]  [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10                                                                                                        
[    2.182407] Console: switching to colour frame buffer device 240x75                                                                                                      
[    2.186632] fb0: nouveaufb frame buffer device                                                                                                                           
[    2.186633] registered panic notifier                                                                                                                                    
[    2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0  
...

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
--

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2010-02-11  4:20 Dave Airlie
  2010-02-15  9:53 ` Christian Borntraeger
  2010-02-15  9:53 ` Christian Borntraeger
  0 siblings, 2 replies; 79+ messages in thread
From: Dave Airlie @ 2010-02-11  4:20 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 5473 bytes --]


Hi Linus,

vmware + nouveau staging fixes are the bulk of this.

one vgaarb patch that I found in mmtom but can't find in my inbox for some 
reason ah well better late than never.

radeon: fix the Kconfig msg to be more explicit, and some oops crashers
in the presence of bad bioses, along with a get rid of stupid white 
borders on fbcon patch.

The following changes since commit e28cab42f384745c8a947a9ccd51e4aae52f5d51:
  Linus Torvalds (1):
        Merge branch 'i2c-for-linus' of git://git.kernel.org/.../jdelvare/staging

are available in the git repository at:

  ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-linus

Andy Getzendanner (1):
      vgaarb: fix incorrect dereference of userspace pointer.

Ben Skeggs (5):
      drm/nouveau: fix non-vram notifier blocks
      drm/nv40: make INIT_COMPUTE_MEM a NOP, just like nv50
      drm/nouveau: make dp auxch xfer len check for reads only
      drm/nv50: prevent multiple init tables being parsed at the same time
      drm/nv50: disregard dac outputs in nv50_sor_dpms()

Dave Airlie (7):
      drm/radeon/kms: change Kconfig text to reflect the new option.
      drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector.
      drm/radeon/kms: add quirk for VGA without DDC on rv730 XFX card.
      drm/radeon/kms: fix screen clearing before fbcon.
      Merge remote branch 'nouveau/for-airlied' of nouveau-2.6
      drm/radeon/kms: retry auxch on 0x20 timeout value.
      Merge branch 'drm-radeon-linus' of ../drm-next

Francisco Jerez (1):
      drm/nouveau: Fixup semaphores on pre-nv50 cards.

Jakob Bornecrantz (2):
      drm/vmwgfx: Report propper framebuffer_{max|min}_{width|height}
      drm/vmwgfx: Drop scanout flag compat and add execbuf ioctl parameter members. Bumps major.

Julia Lawall (1):
      drivers/gpu/drm/nouveau/nouveau_grctx.c: correct NULL test

Luca Barbieri (1):
      drm/nouveau: call ttm_bo_wait with the bo lock held to prevent hang

Maarten Maathuis (4):
      drm/nv50: align size of buffer object to the right boundaries.
      drm/nv50: avoid unloading pgraph context when ctxprog is running
      drm/nv50: delete ramfc object after disabling fifo, not before
      drm/nv50: make the pgraph irq handler loop like the pre-nv50 version

Marcin Kościelnicki (4):
      drm/nouveau: Add module options to disable acceleration.
      drm/nouveau: Add getparam to get available PGRAPH units.
      drm/nouveau: Fix fbcon on mixed pre-NV50 + NV50 multicard.
      drm/nouveau: Add proper vgaarb support.

Marcin Slusarz (1):
      drm/nouveau: move dereferences after null checks

Matthew Garrett (1):
      nouveau: fix state detection with switchable graphics

Pauli Nieminen (1):
      drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine.

Rafał Miłecki (1):
      drm/radeon/kms: suspend and resume audio stuff

Thomas Hellstrom (2):
      drm/vmwgfx: Update the user-space interface.
      drm/vmwgfx: Fix a circular locking dependency bug.

 drivers/gpu/drm/nouveau/nouveau_acpi.c      |   12 +-
 drivers/gpu/drm/nouveau/nouveau_bios.c      |   19 ++--
 drivers/gpu/drm/nouveau/nouveau_bios.h      |    2 +
 drivers/gpu/drm/nouveau/nouveau_bo.c        |   10 +-
 drivers/gpu/drm/nouveau/nouveau_channel.c   |    7 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c |    7 +-
 drivers/gpu/drm/nouveau/nouveau_dp.c        |   10 +-
 drivers/gpu/drm/nouveau/nouveau_drv.c       |   10 ++-
 drivers/gpu/drm/nouveau/nouveau_drv.h       |    2 +
 drivers/gpu/drm/nouveau/nouveau_fbcon.c     |   40 +++++++-
 drivers/gpu/drm/nouveau/nouveau_fbcon.h     |    6 +
 drivers/gpu/drm/nouveau/nouveau_gem.c       |    2 +
 drivers/gpu/drm/nouveau/nouveau_grctx.c     |    4 +-
 drivers/gpu/drm/nouveau/nouveau_irq.c       |  155 ++++++++++++++++-----------
 drivers/gpu/drm/nouveau/nouveau_notifier.c  |   13 ++-
 drivers/gpu/drm/nouveau/nouveau_object.c    |    3 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h       |    1 +
 drivers/gpu/drm/nouveau/nouveau_sgdma.c     |    7 +-
 drivers/gpu/drm/nouveau/nouveau_state.c     |   49 +++++++--
 drivers/gpu/drm/nouveau/nv04_fbcon.c        |    9 +-
 drivers/gpu/drm/nouveau/nv50_crtc.c         |   11 ++-
 drivers/gpu/drm/nouveau/nv50_fbcon.c        |    9 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c         |    9 +-
 drivers/gpu/drm/nouveau/nv50_graph.c        |   10 ++-
 drivers/gpu/drm/nouveau/nv50_sor.c          |    1 +
 drivers/gpu/drm/radeon/Kconfig              |   12 ++-
 drivers/gpu/drm/radeon/atombios_dp.c        |   10 ++-
 drivers/gpu/drm/radeon/r600.c               |    8 ++
 drivers/gpu/drm/radeon/r600_audio.c         |    3 +-
 drivers/gpu/drm/radeon/radeon_atombios.c    |    9 ++
 drivers/gpu/drm/radeon/radeon_benchmark.c   |   55 ++++++----
 drivers/gpu/drm/radeon/radeon_connectors.c  |   20 ++--
 drivers/gpu/drm/radeon/radeon_display.c     |   11 ++-
 drivers/gpu/drm/radeon/radeon_fb.c          |    2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |   11 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c        |   17 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c       |    6 +
 drivers/gpu/drm/vmwgfx/vmwgfx_irq.c         |   13 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c         |    8 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c    |   16 +---
 drivers/gpu/vga/vgaarb.c                    |    2 +-
 include/drm/nouveau_drm.h                   |    1 +
 include/drm/vmwgfx_drm.h                    |   20 +++-
 43 files changed, 402 insertions(+), 230 deletions(-)

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2010-02-11  4:20 Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2010-02-11  4:20 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, dri-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 5596 bytes --]


Hi Linus,

vmware + nouveau staging fixes are the bulk of this.

one vgaarb patch that I found in mmtom but can't find in my inbox for some 
reason ah well better late than never.

radeon: fix the Kconfig msg to be more explicit, and some oops crashers
in the presence of bad bioses, along with a get rid of stupid white 
borders on fbcon patch.

The following changes since commit e28cab42f384745c8a947a9ccd51e4aae52f5d51:
  Linus Torvalds (1):
        Merge branch 'i2c-for-linus' of git://git.kernel.org/.../jdelvare/staging

are available in the git repository at:

  ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-linus

Andy Getzendanner (1):
      vgaarb: fix incorrect dereference of userspace pointer.

Ben Skeggs (5):
      drm/nouveau: fix non-vram notifier blocks
      drm/nv40: make INIT_COMPUTE_MEM a NOP, just like nv50
      drm/nouveau: make dp auxch xfer len check for reads only
      drm/nv50: prevent multiple init tables being parsed at the same time
      drm/nv50: disregard dac outputs in nv50_sor_dpms()

Dave Airlie (7):
      drm/radeon/kms: change Kconfig text to reflect the new option.
      drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector.
      drm/radeon/kms: add quirk for VGA without DDC on rv730 XFX card.
      drm/radeon/kms: fix screen clearing before fbcon.
      Merge remote branch 'nouveau/for-airlied' of nouveau-2.6
      drm/radeon/kms: retry auxch on 0x20 timeout value.
      Merge branch 'drm-radeon-linus' of ../drm-next

Francisco Jerez (1):
      drm/nouveau: Fixup semaphores on pre-nv50 cards.

Jakob Bornecrantz (2):
      drm/vmwgfx: Report propper framebuffer_{max|min}_{width|height}
      drm/vmwgfx: Drop scanout flag compat and add execbuf ioctl parameter members. Bumps major.

Julia Lawall (1):
      drivers/gpu/drm/nouveau/nouveau_grctx.c: correct NULL test

Luca Barbieri (1):
      drm/nouveau: call ttm_bo_wait with the bo lock held to prevent hang

Maarten Maathuis (4):
      drm/nv50: align size of buffer object to the right boundaries.
      drm/nv50: avoid unloading pgraph context when ctxprog is running
      drm/nv50: delete ramfc object after disabling fifo, not before
      drm/nv50: make the pgraph irq handler loop like the pre-nv50 version

Marcin Kościelnicki (4):
      drm/nouveau: Add module options to disable acceleration.
      drm/nouveau: Add getparam to get available PGRAPH units.
      drm/nouveau: Fix fbcon on mixed pre-NV50 + NV50 multicard.
      drm/nouveau: Add proper vgaarb support.

Marcin Slusarz (1):
      drm/nouveau: move dereferences after null checks

Matthew Garrett (1):
      nouveau: fix state detection with switchable graphics

Pauli Nieminen (1):
      drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine.

Rafał Miłecki (1):
      drm/radeon/kms: suspend and resume audio stuff

Thomas Hellstrom (2):
      drm/vmwgfx: Update the user-space interface.
      drm/vmwgfx: Fix a circular locking dependency bug.

 drivers/gpu/drm/nouveau/nouveau_acpi.c      |   12 +-
 drivers/gpu/drm/nouveau/nouveau_bios.c      |   19 ++--
 drivers/gpu/drm/nouveau/nouveau_bios.h      |    2 +
 drivers/gpu/drm/nouveau/nouveau_bo.c        |   10 +-
 drivers/gpu/drm/nouveau/nouveau_channel.c   |    7 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c |    7 +-
 drivers/gpu/drm/nouveau/nouveau_dp.c        |   10 +-
 drivers/gpu/drm/nouveau/nouveau_drv.c       |   10 ++-
 drivers/gpu/drm/nouveau/nouveau_drv.h       |    2 +
 drivers/gpu/drm/nouveau/nouveau_fbcon.c     |   40 +++++++-
 drivers/gpu/drm/nouveau/nouveau_fbcon.h     |    6 +
 drivers/gpu/drm/nouveau/nouveau_gem.c       |    2 +
 drivers/gpu/drm/nouveau/nouveau_grctx.c     |    4 +-
 drivers/gpu/drm/nouveau/nouveau_irq.c       |  155 ++++++++++++++++-----------
 drivers/gpu/drm/nouveau/nouveau_notifier.c  |   13 ++-
 drivers/gpu/drm/nouveau/nouveau_object.c    |    3 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h       |    1 +
 drivers/gpu/drm/nouveau/nouveau_sgdma.c     |    7 +-
 drivers/gpu/drm/nouveau/nouveau_state.c     |   49 +++++++--
 drivers/gpu/drm/nouveau/nv04_fbcon.c        |    9 +-
 drivers/gpu/drm/nouveau/nv50_crtc.c         |   11 ++-
 drivers/gpu/drm/nouveau/nv50_fbcon.c        |    9 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c         |    9 +-
 drivers/gpu/drm/nouveau/nv50_graph.c        |   10 ++-
 drivers/gpu/drm/nouveau/nv50_sor.c          |    1 +
 drivers/gpu/drm/radeon/Kconfig              |   12 ++-
 drivers/gpu/drm/radeon/atombios_dp.c        |   10 ++-
 drivers/gpu/drm/radeon/r600.c               |    8 ++
 drivers/gpu/drm/radeon/r600_audio.c         |    3 +-
 drivers/gpu/drm/radeon/radeon_atombios.c    |    9 ++
 drivers/gpu/drm/radeon/radeon_benchmark.c   |   55 ++++++----
 drivers/gpu/drm/radeon/radeon_connectors.c  |   20 ++--
 drivers/gpu/drm/radeon/radeon_display.c     |   11 ++-
 drivers/gpu/drm/radeon/radeon_fb.c          |    2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h         |   11 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c        |   17 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c       |    6 +
 drivers/gpu/drm/vmwgfx/vmwgfx_irq.c         |   13 +--
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c         |    8 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c    |   16 +---
 drivers/gpu/vga/vgaarb.c                    |    2 +-
 include/drm/nouveau_drm.h                   |    1 +
 include/drm/vmwgfx_drm.h                    |   20 +++-
 43 files changed, 402 insertions(+), 230 deletions(-)

[-- Attachment #2: Type: text/plain, Size: 254 bytes --]

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev

[-- Attachment #3: Type: text/plain, Size: 161 bytes --]

--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2010-01-11  4:52 Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2010-01-11  4:52 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 26385 bytes --]


Hi Linus,

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

This contains 3 trees:
core: two KMS fixes, one for a regression I found with Fedora's plymouth
on my r100 laptop with an 8-bpp console, the other for unwanted outputs
lighting up on resume.

radeon kms: a regression fix since we added host data flushing support
some users reported r300s dying under load, this change fixes that, along
with better s/r support for gpus with sideport RAM, along with eDP
support (needed for new imacs to display anything). Also we sync'ed the
whitespace in ObjectID.h with all the other copies to make syncing them
with AMD's master copy easier, its not kernel compliant but it is a lot
easier to work with for AMD.

nouveau: scattering of fixes from the nouveau upstream tree.

Dave.

 drivers/gpu/drm/drm_crtc.c                 |    1 +
 drivers/gpu/drm/drm_crtc_helper.c          |   26 +-
 drivers/gpu/drm/drm_fb_helper.c            |    9 +-
 drivers/gpu/drm/drm_irq.c                  |    5 +-
 drivers/gpu/drm/nouveau/Kconfig            |    5 +-
 drivers/gpu/drm/nouveau/nouveau_bo.c       |  243 ++++++---
 drivers/gpu/drm/nouveau/nouveau_channel.c  |   47 +--
 drivers/gpu/drm/nouveau/nouveau_dma.c      |   34 +-
 drivers/gpu/drm/nouveau/nouveau_dma.h      |   10 +-
 drivers/gpu/drm/nouveau/nouveau_drv.h      |   72 ++-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c    |   19 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.h    |    1 +
 drivers/gpu/drm/nouveau/nouveau_fence.c    |    2 +-
 drivers/gpu/drm/nouveau/nouveau_gem.c      |   33 +-
 drivers/gpu/drm/nouveau/nouveau_irq.c      |    1 +
 drivers/gpu/drm/nouveau/nouveau_mem.c      |   87 +++
 drivers/gpu/drm/nouveau/nouveau_object.c   |    2 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h      |   16 +-
 drivers/gpu/drm/nouveau/nouveau_state.c    |   27 +-
 drivers/gpu/drm/nouveau/nouveau_ttm.c      |   30 +-
 drivers/gpu/drm/nouveau/nv04_dac.c         |   35 +-
 drivers/gpu/drm/nouveau/nv04_fbcon.c       |   41 +-
 drivers/gpu/drm/nouveau/nv04_fifo.c        |   34 ++
 drivers/gpu/drm/nouveau/nv04_graph.c       |  159 +++---
 drivers/gpu/drm/nouveau/nv10_fb.c          |   32 +-
 drivers/gpu/drm/nouveau/nv10_graph.c       |   28 +-
 drivers/gpu/drm/nouveau/nv17_tv.c          |  115 ++++-
 drivers/gpu/drm/nouveau/nv20_graph.c       |   61 +--
 drivers/gpu/drm/nouveau/nv40_fb.c          |   53 ++-
 drivers/gpu/drm/nouveau/nv40_graph.c       |  116 ++---
 drivers/gpu/drm/nouveau/nv50_display.c     |   17 +
 drivers/gpu/drm/nouveau/nv50_fbcon.c       |   23 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c        |    6 +-
 drivers/gpu/drm/radeon/Makefile            |    5 +
 drivers/gpu/drm/radeon/ObjectID.h          |  801 +++++++++++++++-------------
 drivers/gpu/drm/radeon/atombios_dp.c       |    6 +-
 drivers/gpu/drm/radeon/mkregtable.c        |    4 +-
 drivers/gpu/drm/radeon/r100.c              |   23 +-
 drivers/gpu/drm/radeon/r300.c              |   17 +-
 drivers/gpu/drm/radeon/r420.c              |   41 ++-
 drivers/gpu/drm/radeon/r520.c              |    1 +
 drivers/gpu/drm/radeon/r600.c              |   21 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c     |    4 +-
 drivers/gpu/drm/radeon/radeon.h            |    9 +-
 drivers/gpu/drm/radeon/radeon_agp.c        |    6 +-
 drivers/gpu/drm/radeon/radeon_asic.h       |   12 -
 drivers/gpu/drm/radeon/radeon_atombios.c   |   41 ++-
 drivers/gpu/drm/radeon/radeon_combios.c    |   14 +
 drivers/gpu/drm/radeon/radeon_connectors.c |   23 +-
 drivers/gpu/drm/radeon/radeon_display.c    |    7 +-
 drivers/gpu/drm/radeon/radeon_encoders.c   |   14 +-
 drivers/gpu/drm/radeon/radeon_gem.c        |    2 -
 drivers/gpu/drm/radeon/radeon_irq_kms.c    |   10 +-
 drivers/gpu/drm/radeon/radeon_legacy_tv.c  |   14 +-
 drivers/gpu/drm/radeon/radeon_mode.h       |   26 -
 drivers/gpu/drm/radeon/radeon_object.c     |    5 +-
 drivers/gpu/drm/radeon/reg_srcs/r420       |  795 +++++++++++++++++++++++++++
 drivers/gpu/drm/radeon/reg_srcs/rs600      |   68 +++-
 drivers/gpu/drm/radeon/reg_srcs/rv515      |    6 +
 drivers/gpu/drm/radeon/rs400.c             |    2 +
 drivers/gpu/drm/radeon/rs600.c             |   10 +-
 drivers/gpu/drm/radeon/rs690.c             |    2 +
 drivers/gpu/drm/radeon/rv515.c             |    1 +
 drivers/gpu/drm/radeon/rv770.c             |    3 +-
 include/drm/drm_mode.h                     |    1 +
 65 files changed, 2411 insertions(+), 973 deletions(-)
 create mode 100644 drivers/gpu/drm/radeon/reg_srcs/r420

commit f22d6ddaeb8126623d62c828a4d4a96dfc4cbc5c
Merge: 0c9d2c4 40c2298
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:43:16 2010 +1000

    Merge branch 'for-airlied' of /ssd/git/drm-nouveau-next into drm-linus
    
    * 'for-airlied' of /ssd/git/drm-nouveau-next: (28 commits)
      drm/nv04: Fix set_operation software method.
      drm/nouveau: initialise DMA tracking parameters earlier
      drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
      drm/nv04: differentiate between nv04/nv05
      drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
      drm/nv50: prevent a possible ctxprog hang
      drm/nouveau: have ttm's fault handler called directly
      drm/nv50: restore correct cache1 get/put address on fifoctx load
      drm/nouveau: create function for "dealing" with gpu lockup
      drm/nouveau: remove unused nouveau_channel_idle() function
      drm/nouveau: fix handling of fbcon colours in 8bpp
      drm/nv04: Context switching fixes.
      drm/nouveau: Use the software object for fencing.
      drm/nouveau: Allocate a per-channel instance of NV_SW.
      drm/nv50: make the blocksize depend on vram size
      drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
      drm/nouveau: Don't skip card take down on nv0x.
      drm/nouveau: Implement nv42-nv43 TV load detection.
      drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
      drm/nv50: fix fillrect color
      ...

commit 0c9d2c418aa4a45534943c4c9a1c8dda82d3b481
Merge: 94fd163 804c755
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:42:58 2010 +1000

    Merge remote branch 'korg/drm-radeon-next' into drm-linus
    
    * korg/drm-radeon-next:
      drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
      drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
      drm: Avoid calling vblank function is vblank wasn't initialized
      drm/radeon: mkregtable.c: close a file before exit
      drm/radeon/kms: Make sure we release AGP device if we acquired it
      drm/radeon/kms: Schedule host path read cache flush through the ring V2
      drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
      drm/radeon/kms: detect sideport memory on IGP chips
      drm/radeon: fix a couple of array index errors
      drm/radeon/kms: add support for eDP (embedded DisplayPort)
      drm: Add eDP connector type
      drm/radeon/kms: pull in the latest upstream ObjectID.h changes
      drm/radeon/kms: whitespace changes to ObjectID.h
      drm/radeon/kms: fix typo in atom connector type handling

commit 40c2298bdcc8b766a39964c44e9a74d16aa95d53
Author: Marcin Kościelnicki <koriakin@0x04.net>
Date:   Sun Jan 10 17:09:14 2010 +0000

    drm/nv04: Fix set_operation software method.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit c63834e1db41b59d6c7bfb1d2a549c027a42a877
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jan 8 10:57:39 2010 +1000

    drm/nouveau: initialise DMA tracking parameters earlier
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 400f14ac4ef02b2f77c9d0e3ad7d66e2f6c8e663
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jan 8 10:53:40 2010 +1000

    drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
    
    Some upcoming G80 DMA changes will depend on this, but it's split out for
    bisectibility just in case it causes some unexpected issues.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit cc6e496587502057af02139931736b0b7a49f637
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Thu Jan 7 13:47:57 2010 +1000

    drm/nv04: differentiate between nv04/nv05
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit d6126c5c8b2019658aadc9754dca80a7573dbff5
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Wed Jan 6 04:02:45 2010 +0100

    drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
    
    Currently Nouveau will unvalidate all buffers if it is forced to wait on
    one, and then start revalidating from the beginning.  While doing so, it
    destroys the operation fence, causing nouveau_fence_emit to crash.
    
    This patch fixes this bug by taking the fence object out of validate_op
    and creating it just before emit.  The fence pointer is initialized to 0
    and unref'ed unconditionally.
    
    In addition to fixing the bug, this prevents its reintroduction and
    simplifies the code.
    
    Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit dc8d76cac942e7344a72ad18afb90fa46cf20bb4
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Wed Jan 6 12:00:02 2010 +1000

    drm/nv50: prevent a possible ctxprog hang
    
    The below is mainly an educated guess at what's going on, docs would
    sure be handy...  NVIDIA? :P
    
    It appears it's possible for a ctxprog to run even while a GPU exception
    is pending.  The GF8 and up ctxprogs appear to have a small snippet of
    code which detects this, and stalls the ctxprog until it's been handled,
    which essentially looks like:
    
    	if (r2 & 0x00008000) {
    		r0 |= 0x80000000;
    		while (r0 & 0x80000000) {}
    	}
    
    I don't know of any way that flag would get cleared unless the driver
    intervenes (and indeed, in the cases I've seen the hang, nothing steps
    in to automagically clear it for us).  This patch causes the driver to
    clear the flag during the PGRAPH IRQ handler.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 1959ca80e1f88b82c1cb7227f437910768ab0c94
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 15:52:20 2010 +1000

    drm/nouveau: have ttm's fault handler called directly
    
    There's no good reason for us to have our own anymore, this is left over
    from an early port to these TTM interfaces.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit a908b96c22883f967e4ddf5aa5b35e3b4a0629a5
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Jan 5 09:41:05 2010 +1000

    drm/nv50: restore correct cache1 get/put address on fifoctx load
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit c03ec7f91fcf20af177dbc728d518fb462bad42d
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Mon Jan 4 19:25:09 2010 +0100

    drm/nouveau: create function for "dealing" with gpu lockup
    
    It's mostly a cleanup, but in nv50_fbcon_accel_init gpu lockup
    message was printed, but HWACCEL_DISBALED flag was not set.
    
    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit e9dd8e11edfff5e348f3dcfd152a70c5da921126
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 12:53:01 2010 +1000

    drm/nouveau: remove unused nouveau_channel_idle() function
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 7de3643f938af910bef4c1f800176a3ebdc29502
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 09:10:55 2010 +1000

    drm/nouveau: fix handling of fbcon colours in 8bpp
    
    Depending on the visual, the colours handed to us in fillrect() can either be
    an actual colour, or an index into the pseudo-palette.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit ea911a1cf4f9c5bef18ff399ee2e2ec77792b650
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 14:39:46 2009 +0100

    drm/nv04: Context switching fixes.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit a5027ccd3c1abe190d2b84a2d7e40d5f099e48a7
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 02:09:36 2009 +0100

    drm/nouveau: Use the software object for fencing.
    
    This should avoid a race condition on nv0x, if we're doing it with
    actual PGRAPH objects and a there's a fence within the FIFO DMA fetch
    area when a context switch kicks in.
    
    In that case we get an ILLEGAL_MTHD interrupt as expected, but the
    values in PGRAPH_TRAPPED_ADDR aren't calculated correctly and they're
    almost useless (e.g. you can see ILLEGAL_MTHDs for the now inactive
    channel, with a wrong offset/data pair).
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit ca4362adb4c01807dfcf3f2b3152a7ee36f0d1ca
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 02:42:45 2009 +0100

    drm/nouveau: Allocate a per-channel instance of NV_SW.
    
    It will be useful for various synchronization purposes, mostly stolen
    from "[PATCH] drm/nv50: synchronize user channel after buffer object
    move on kernel channel" by Maarten Maathuis.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 0a2d090f99c9686e5107ed59533fc4210a9a47d1
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Sat Dec 26 21:46:36 2009 +0100

    drm/nv50: make the blocksize depend on vram size
    
    - This should be better than what we have now.
    - I'm less sure about the non power of two path.
    
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

commit c2b82924bda0c3de2b49bd3a4d8b6725721820bc
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Fri Dec 25 18:51:17 2009 +0100

    drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
    
    - Aligning to block size should ensure that the extra size is enough.
    - Using roundup, because not all sizes are powers of two.
    
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

commit 8f71c29e442e013212a98e2b37eb1074c4d1134f
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Tue Dec 22 18:24:09 2009 +0100

    drm/nouveau: Don't skip card take down on nv0x.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit b7f7e41b895afd110d1f5121161fd401eccd98c9
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Dec 17 18:57:44 2009 +0100

    drm/nouveau: Implement nv42-nv43 TV load detection.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 02076da97a15bbf7477bffed71d02f726de2afc2
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Dec 17 18:52:44 2009 +0100

    drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit e55ca7e68efc7c2d320cd9975ebc5e0fd27debf0
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Mon Dec 21 23:00:41 2009 +0100

    drm/nv50: fix fillrect color
    
    struct fb_fillrect->color is not a color, but index into pseudo_palette
    array
    
    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit fbe36a7a069267b82b7b82a66d79a4406cfa90b2
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Dec 21 12:16:52 2009 +1000

    drm/nv50: ignore vbios table's claim to the contrary if EDID says >8bpc
    
    Should fix dim panel issues reported on Dell M6400/M6500.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit aeca15e596eba284c727049d0b9b855b13c48856
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:03:28 2009 +0100

    drm/nouveau: Drop redundant placement initialization.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 69a18c328b762eaec3f8ca3af8c7cbf10b536bf8
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:05:38 2009 +0100

    drm/nouveau: No need to force evict=true when swapping evicted BOs back in.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit c6af6053be60840dcbb037c3798557cbf71cbb08
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:05:00 2009 +0100

    drm/nouveau: Fix "general protection fault" in the flipd/flips eviction path.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 73cb9276fd189c19558a97600456bd13fa5debe8
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 12:27:11 2009 +0100

    drm/i2c/ch7006: Drop build time dependency to nouveau.
    
    This partially reverts e4b41066, as this driver is intended to be
    useful with any KMS driver for suitable hardware. The missing build
    dependency that commit workarounded was DRM_KMS_HELPER.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 287c1532145b63d394060d46c0309b123b862345
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Fri Dec 11 16:51:09 2009 +0100

    drm/nouveau: Make the MM aware of pre-G80 tiling.
    
    This commit has also the following 3 bugfix commits squashed into it from
    the nouveau git tree:
    
    drm/nouveau: Fix up the tiling alignment restrictions for nv1x.
    drm/nouveau: Fix up the nv2x tiling alignment restrictions.
    drm/nv50: fix align typo for g9x
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 0d87c100312ce75d9bb75a456d8a542e84a1722f
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 12:12:27 2009 +0100

    drm/nouveau: Pre-G80 tiling support.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 617e234b01757698ed5f8c9a5fbf12717b76e371
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sun Dec 13 20:07:42 2009 +0100

    drm/nouveau: Add cache_flush/pull fifo engine functions.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 94fd163d86b049842856864cdeac318131ec576d
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:20:55 2010 +1000

    drm: reduce WARN_ON to a printk.
    
    Lots of ppl keep thinking this is an oops, it was just a warning for
    me to see, just make it a printk now.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 509c7d83c3b18a50a0bd02afa43c8ee3c7605bc9
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Jan 8 09:27:08 2010 +1000

    drm/kms/fb: check for depth changes from userspace for resizing.
    
    If userspace (plymouth in this case) asks for a deeper depth,
    refuse it as well due to lack of resizing.
    
    This fixes an issue since < 32MB cards went to 8bpp and plymouth
    crashes on startup.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 89347bb8ef2d0af1ae8d847b7df91e9f04eccf2a
Author: David John <davidjon@xenontk.org>
Date:   Thu Dec 31 12:00:46 2009 +0530

    drm: Keep disabled outputs disabled after suspend / resume
    
    With the current DRM code, an output that has been powered off
    from userspace will automatically power back on when resuming
    from suspend. This patch fixes this behaviour.
    
    Tested only with the Intel i915 driver on an Intel GM45 Express
    chipset.
    
    Signed-off-by: David John <davidjon@xenontk.org>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 804c7559e9376c3ba78ae15a30337b1e24f8ae80
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Jan 8 15:58:49 2010 -0500

    drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
    
    - r4xx/rs6xx: add support for extended pixel shader
    instruction/temp regs
    - r5xx: add SM3 regs
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 003e69f9862bcda89a75c27750efdbc17ac02945
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:14 2010 +0100

    drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
    
    If for any reason we haven't installed handler we shouldn't try to
    enable IRQ/MSI on the hw so we don't get unhandled IRQ/MSI which
    makes the kernel sad.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e77cef9c2d87db835ad9d70cde4a9b00b0ca2262
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:13 2010 +0100

    drm: Avoid calling vblank function is vblank wasn't initialized
    
    In some case vblank might not be initialized and we shouldn't
    try to use associated function. This patch make sure this is
    the case. It also export drm_vblank_cleanup so driver can cleanup
    vblank if for any reason IRQ/MSI is not working.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 059d233f9c1183ed2f59d631e4daf486060e880d
Author: Alexander Beregalov <a.beregalov@gmail.com>
Date:   Thu Jan 7 02:59:31 2010 +0300

    drm/radeon: mkregtable.c: close a file before exit
    
    Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d0269ed8580b492df75dafb011dc51a1390bf200
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 16:08:32 2010 +0100

    drm/radeon/kms: Make sure we release AGP device if we acquired it
    
    In some case we weren't releasing the AGP device at module unloading.
    This leaded to unfunctional AGP at next module load. This patch make
    sure we release the AGP bus if we acquire it.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit cafe6609d6dc0a6a278f9fdbb59ce4d761a35ddd
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 12:39:21 2010 +0100

    drm/radeon/kms: Schedule host path read cache flush through the ring V2
    
    R300 family will hard lockup if host path read cache flush is
    done through MMIO to HOST_PATH_CNTL. But scheduling same flush
    through ring seems harmless. This patch remove the hdp_flush
    callback and add a flush after each fence emission which means
    a flush after each IB schedule. Thus we should have same behavior
    without the hard lockup.
    
    Tested on R100,R200,R300,R400,R500,R600,R700 family.
    
    V2: Adjust fence counts in r600_blit_prepare_copy()
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 62cdc0c20663ef840a94850892517b2b7f584904
Author: Corbin Simpson <MostAwesomeDude@gmail.com>
Date:   Wed Jan 6 19:28:48 2010 +0100

    drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
    
    Long story short, this fixes sporadic hardlocks with my rv410 during
    times of intense 2D acceleration (Flash on Fx3).
    
    V2: Fix indentation and move errata_fini to suspend function so we
    don't leak scratch register over suspend/resume cycle.
    V3: Move scratch_reg to asic specific structure (aim is to slowly
        move stuff to asic specific structure and avoid poluting
        radeon_device struct with asic specific variables)
    
    Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 06b6476d6b291473d0928ed242158a001d50c0f0
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Jan 5 11:27:29 2010 -0500

    drm/radeon/kms: detect sideport memory on IGP chips
    
    This detects if the sideport memory is enabled and
    if it is VRAM is evicted on suspend/resume.
    
    This should fix s/r issues on some IGPs.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fc9a89f97e532152ae614d5ce717b81c8f8b0e91
Author: Darren Jenkins <darrenrjenkins@gmail.com>
Date:   Thu Jan 7 01:35:21 2010 -0500

    drm/radeon: fix a couple of array index errors
    
    There are a couple of array overruns, and some associated confusion in
    the code.
    This is just a wild guess at what the code should actually look like.
    
    Coverity CID: 13305 13306
    
    agd5f: fix up the original intent of the timing code
    
    Signed-off-by: Darren Jenkins <darrenrjenkins@gmail.com>
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 196c58d21fc47fbabab6a98e23e5a6335f717e44
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 14:22:32 2010 -0500

    drm/radeon/kms: add support for eDP (embedded DisplayPort)
    
    This is displayport used for internal connections such
    as laptop panels and systems with integrated monitors.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7970e677accb676f15e11468c60cb93ae477a513
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 13:47:47 2010 -0500

    drm: Add eDP connector type
    
    Add a new connector type for eDP (embedded displayport)
    
    eDP is more or less the same as DP but there are some
    cases when you might want to handle it separately.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f0f480adcb6c44e76186c6d3036e06ed7e7e0202
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 11:39:07 2010 -0500

    drm/radeon/kms: pull in the latest upstream ObjectID.h changes
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a7bc115fffb69a55cf2c332567ea6908d9026f22
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 11:35:48 2010 -0500

    drm/radeon/kms: whitespace changes to ObjectID.h
    
    Makes it easier to keep in sync with ddx and the upstream
    AMD versions.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a5899fcc189e9357873ddf26d5e6e7e6ff84c2f4
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 14:19:47 2010 -0500

    drm/radeon/kms: fix typo in atom connector type handling
    
    Also remove the problematic enums that were unused
    remnants from the ddx.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2010-01-11  4:52 Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2010-01-11  4:52 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel, dri-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 27065 bytes --]


Hi Linus,

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

This contains 3 trees:
core: two KMS fixes, one for a regression I found with Fedora's plymouth
on my r100 laptop with an 8-bpp console, the other for unwanted outputs
lighting up on resume.

radeon kms: a regression fix since we added host data flushing support
some users reported r300s dying under load, this change fixes that, along
with better s/r support for gpus with sideport RAM, along with eDP
support (needed for new imacs to display anything). Also we sync'ed the
whitespace in ObjectID.h with all the other copies to make syncing them
with AMD's master copy easier, its not kernel compliant but it is a lot
easier to work with for AMD.

nouveau: scattering of fixes from the nouveau upstream tree.

Dave.

 drivers/gpu/drm/drm_crtc.c                 |    1 +
 drivers/gpu/drm/drm_crtc_helper.c          |   26 +-
 drivers/gpu/drm/drm_fb_helper.c            |    9 +-
 drivers/gpu/drm/drm_irq.c                  |    5 +-
 drivers/gpu/drm/nouveau/Kconfig            |    5 +-
 drivers/gpu/drm/nouveau/nouveau_bo.c       |  243 ++++++---
 drivers/gpu/drm/nouveau/nouveau_channel.c  |   47 +--
 drivers/gpu/drm/nouveau/nouveau_dma.c      |   34 +-
 drivers/gpu/drm/nouveau/nouveau_dma.h      |   10 +-
 drivers/gpu/drm/nouveau/nouveau_drv.h      |   72 ++-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c    |   19 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.h    |    1 +
 drivers/gpu/drm/nouveau/nouveau_fence.c    |    2 +-
 drivers/gpu/drm/nouveau/nouveau_gem.c      |   33 +-
 drivers/gpu/drm/nouveau/nouveau_irq.c      |    1 +
 drivers/gpu/drm/nouveau/nouveau_mem.c      |   87 +++
 drivers/gpu/drm/nouveau/nouveau_object.c   |    2 +-
 drivers/gpu/drm/nouveau/nouveau_reg.h      |   16 +-
 drivers/gpu/drm/nouveau/nouveau_state.c    |   27 +-
 drivers/gpu/drm/nouveau/nouveau_ttm.c      |   30 +-
 drivers/gpu/drm/nouveau/nv04_dac.c         |   35 +-
 drivers/gpu/drm/nouveau/nv04_fbcon.c       |   41 +-
 drivers/gpu/drm/nouveau/nv04_fifo.c        |   34 ++
 drivers/gpu/drm/nouveau/nv04_graph.c       |  159 +++---
 drivers/gpu/drm/nouveau/nv10_fb.c          |   32 +-
 drivers/gpu/drm/nouveau/nv10_graph.c       |   28 +-
 drivers/gpu/drm/nouveau/nv17_tv.c          |  115 ++++-
 drivers/gpu/drm/nouveau/nv20_graph.c       |   61 +--
 drivers/gpu/drm/nouveau/nv40_fb.c          |   53 ++-
 drivers/gpu/drm/nouveau/nv40_graph.c       |  116 ++---
 drivers/gpu/drm/nouveau/nv50_display.c     |   17 +
 drivers/gpu/drm/nouveau/nv50_fbcon.c       |   23 +-
 drivers/gpu/drm/nouveau/nv50_fifo.c        |    6 +-
 drivers/gpu/drm/radeon/Makefile            |    5 +
 drivers/gpu/drm/radeon/ObjectID.h          |  801 +++++++++++++++-------------
 drivers/gpu/drm/radeon/atombios_dp.c       |    6 +-
 drivers/gpu/drm/radeon/mkregtable.c        |    4 +-
 drivers/gpu/drm/radeon/r100.c              |   23 +-
 drivers/gpu/drm/radeon/r300.c              |   17 +-
 drivers/gpu/drm/radeon/r420.c              |   41 ++-
 drivers/gpu/drm/radeon/r520.c              |    1 +
 drivers/gpu/drm/radeon/r600.c              |   21 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c     |    4 +-
 drivers/gpu/drm/radeon/radeon.h            |    9 +-
 drivers/gpu/drm/radeon/radeon_agp.c        |    6 +-
 drivers/gpu/drm/radeon/radeon_asic.h       |   12 -
 drivers/gpu/drm/radeon/radeon_atombios.c   |   41 ++-
 drivers/gpu/drm/radeon/radeon_combios.c    |   14 +
 drivers/gpu/drm/radeon/radeon_connectors.c |   23 +-
 drivers/gpu/drm/radeon/radeon_display.c    |    7 +-
 drivers/gpu/drm/radeon/radeon_encoders.c   |   14 +-
 drivers/gpu/drm/radeon/radeon_gem.c        |    2 -
 drivers/gpu/drm/radeon/radeon_irq_kms.c    |   10 +-
 drivers/gpu/drm/radeon/radeon_legacy_tv.c  |   14 +-
 drivers/gpu/drm/radeon/radeon_mode.h       |   26 -
 drivers/gpu/drm/radeon/radeon_object.c     |    5 +-
 drivers/gpu/drm/radeon/reg_srcs/r420       |  795 +++++++++++++++++++++++++++
 drivers/gpu/drm/radeon/reg_srcs/rs600      |   68 +++-
 drivers/gpu/drm/radeon/reg_srcs/rv515      |    6 +
 drivers/gpu/drm/radeon/rs400.c             |    2 +
 drivers/gpu/drm/radeon/rs600.c             |   10 +-
 drivers/gpu/drm/radeon/rs690.c             |    2 +
 drivers/gpu/drm/radeon/rv515.c             |    1 +
 drivers/gpu/drm/radeon/rv770.c             |    3 +-
 include/drm/drm_mode.h                     |    1 +
 65 files changed, 2411 insertions(+), 973 deletions(-)
 create mode 100644 drivers/gpu/drm/radeon/reg_srcs/r420

commit f22d6ddaeb8126623d62c828a4d4a96dfc4cbc5c
Merge: 0c9d2c4 40c2298
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:43:16 2010 +1000

    Merge branch 'for-airlied' of /ssd/git/drm-nouveau-next into drm-linus
    
    * 'for-airlied' of /ssd/git/drm-nouveau-next: (28 commits)
      drm/nv04: Fix set_operation software method.
      drm/nouveau: initialise DMA tracking parameters earlier
      drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
      drm/nv04: differentiate between nv04/nv05
      drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
      drm/nv50: prevent a possible ctxprog hang
      drm/nouveau: have ttm's fault handler called directly
      drm/nv50: restore correct cache1 get/put address on fifoctx load
      drm/nouveau: create function for "dealing" with gpu lockup
      drm/nouveau: remove unused nouveau_channel_idle() function
      drm/nouveau: fix handling of fbcon colours in 8bpp
      drm/nv04: Context switching fixes.
      drm/nouveau: Use the software object for fencing.
      drm/nouveau: Allocate a per-channel instance of NV_SW.
      drm/nv50: make the blocksize depend on vram size
      drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
      drm/nouveau: Don't skip card take down on nv0x.
      drm/nouveau: Implement nv42-nv43 TV load detection.
      drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
      drm/nv50: fix fillrect color
      ...

commit 0c9d2c418aa4a45534943c4c9a1c8dda82d3b481
Merge: 94fd163 804c755
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:42:58 2010 +1000

    Merge remote branch 'korg/drm-radeon-next' into drm-linus
    
    * korg/drm-radeon-next:
      drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
      drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
      drm: Avoid calling vblank function is vblank wasn't initialized
      drm/radeon: mkregtable.c: close a file before exit
      drm/radeon/kms: Make sure we release AGP device if we acquired it
      drm/radeon/kms: Schedule host path read cache flush through the ring V2
      drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
      drm/radeon/kms: detect sideport memory on IGP chips
      drm/radeon: fix a couple of array index errors
      drm/radeon/kms: add support for eDP (embedded DisplayPort)
      drm: Add eDP connector type
      drm/radeon/kms: pull in the latest upstream ObjectID.h changes
      drm/radeon/kms: whitespace changes to ObjectID.h
      drm/radeon/kms: fix typo in atom connector type handling

commit 40c2298bdcc8b766a39964c44e9a74d16aa95d53
Author: Marcin Kościelnicki <koriakin@0x04.net>
Date:   Sun Jan 10 17:09:14 2010 +0000

    drm/nv04: Fix set_operation software method.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit c63834e1db41b59d6c7bfb1d2a549c027a42a877
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jan 8 10:57:39 2010 +1000

    drm/nouveau: initialise DMA tracking parameters earlier
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 400f14ac4ef02b2f77c9d0e3ad7d66e2f6c8e663
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Jan 8 10:53:40 2010 +1000

    drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
    
    Some upcoming G80 DMA changes will depend on this, but it's split out for
    bisectibility just in case it causes some unexpected issues.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit cc6e496587502057af02139931736b0b7a49f637
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Thu Jan 7 13:47:57 2010 +1000

    drm/nv04: differentiate between nv04/nv05
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit d6126c5c8b2019658aadc9754dca80a7573dbff5
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Wed Jan 6 04:02:45 2010 +0100

    drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
    
    Currently Nouveau will unvalidate all buffers if it is forced to wait on
    one, and then start revalidating from the beginning.  While doing so, it
    destroys the operation fence, causing nouveau_fence_emit to crash.
    
    This patch fixes this bug by taking the fence object out of validate_op
    and creating it just before emit.  The fence pointer is initialized to 0
    and unref'ed unconditionally.
    
    In addition to fixing the bug, this prevents its reintroduction and
    simplifies the code.
    
    Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit dc8d76cac942e7344a72ad18afb90fa46cf20bb4
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Wed Jan 6 12:00:02 2010 +1000

    drm/nv50: prevent a possible ctxprog hang
    
    The below is mainly an educated guess at what's going on, docs would
    sure be handy...  NVIDIA? :P
    
    It appears it's possible for a ctxprog to run even while a GPU exception
    is pending.  The GF8 and up ctxprogs appear to have a small snippet of
    code which detects this, and stalls the ctxprog until it's been handled,
    which essentially looks like:
    
    	if (r2 & 0x00008000) {
    		r0 |= 0x80000000;
    		while (r0 & 0x80000000) {}
    	}
    
    I don't know of any way that flag would get cleared unless the driver
    intervenes (and indeed, in the cases I've seen the hang, nothing steps
    in to automagically clear it for us).  This patch causes the driver to
    clear the flag during the PGRAPH IRQ handler.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 1959ca80e1f88b82c1cb7227f437910768ab0c94
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 15:52:20 2010 +1000

    drm/nouveau: have ttm's fault handler called directly
    
    There's no good reason for us to have our own anymore, this is left over
    from an early port to these TTM interfaces.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit a908b96c22883f967e4ddf5aa5b35e3b4a0629a5
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Jan 5 09:41:05 2010 +1000

    drm/nv50: restore correct cache1 get/put address on fifoctx load
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit c03ec7f91fcf20af177dbc728d518fb462bad42d
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Mon Jan 4 19:25:09 2010 +0100

    drm/nouveau: create function for "dealing" with gpu lockup
    
    It's mostly a cleanup, but in nv50_fbcon_accel_init gpu lockup
    message was printed, but HWACCEL_DISBALED flag was not set.
    
    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit e9dd8e11edfff5e348f3dcfd152a70c5da921126
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 12:53:01 2010 +1000

    drm/nouveau: remove unused nouveau_channel_idle() function
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 7de3643f938af910bef4c1f800176a3ebdc29502
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Jan 4 09:10:55 2010 +1000

    drm/nouveau: fix handling of fbcon colours in 8bpp
    
    Depending on the visual, the colours handed to us in fillrect() can either be
    an actual colour, or an index into the pseudo-palette.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit ea911a1cf4f9c5bef18ff399ee2e2ec77792b650
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 14:39:46 2009 +0100

    drm/nv04: Context switching fixes.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit a5027ccd3c1abe190d2b84a2d7e40d5f099e48a7
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 02:09:36 2009 +0100

    drm/nouveau: Use the software object for fencing.
    
    This should avoid a race condition on nv0x, if we're doing it with
    actual PGRAPH objects and a there's a fence within the FIFO DMA fetch
    area when a context switch kicks in.
    
    In that case we get an ILLEGAL_MTHD interrupt as expected, but the
    values in PGRAPH_TRAPPED_ADDR aren't calculated correctly and they're
    almost useless (e.g. you can see ILLEGAL_MTHDs for the now inactive
    channel, with a wrong offset/data pair).
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit ca4362adb4c01807dfcf3f2b3152a7ee36f0d1ca
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sat Dec 26 02:42:45 2009 +0100

    drm/nouveau: Allocate a per-channel instance of NV_SW.
    
    It will be useful for various synchronization purposes, mostly stolen
    from "[PATCH] drm/nv50: synchronize user channel after buffer object
    move on kernel channel" by Maarten Maathuis.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 0a2d090f99c9686e5107ed59533fc4210a9a47d1
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Sat Dec 26 21:46:36 2009 +0100

    drm/nv50: make the blocksize depend on vram size
    
    - This should be better than what we have now.
    - I'm less sure about the non power of two path.
    
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

commit c2b82924bda0c3de2b49bd3a4d8b6725721820bc
Author: Maarten Maathuis <madman2003@gmail.com>
Date:   Fri Dec 25 18:51:17 2009 +0100

    drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
    
    - Aligning to block size should ensure that the extra size is enough.
    - Using roundup, because not all sizes are powers of two.
    
    Signed-off-by: Maarten Maathuis <madman2003@gmail.com>

commit 8f71c29e442e013212a98e2b37eb1074c4d1134f
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Tue Dec 22 18:24:09 2009 +0100

    drm/nouveau: Don't skip card take down on nv0x.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit b7f7e41b895afd110d1f5121161fd401eccd98c9
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Dec 17 18:57:44 2009 +0100

    drm/nouveau: Implement nv42-nv43 TV load detection.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 02076da97a15bbf7477bffed71d02f726de2afc2
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Thu Dec 17 18:52:44 2009 +0100

    drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit e55ca7e68efc7c2d320cd9975ebc5e0fd27debf0
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date:   Mon Dec 21 23:00:41 2009 +0100

    drm/nv50: fix fillrect color
    
    struct fb_fillrect->color is not a color, but index into pseudo_palette
    array
    
    Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit fbe36a7a069267b82b7b82a66d79a4406cfa90b2
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Dec 21 12:16:52 2009 +1000

    drm/nv50: ignore vbios table's claim to the contrary if EDID says >8bpc
    
    Should fix dim panel issues reported on Dell M6400/M6500.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit aeca15e596eba284c727049d0b9b855b13c48856
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:03:28 2009 +0100

    drm/nouveau: Drop redundant placement initialization.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 69a18c328b762eaec3f8ca3af8c7cbf10b536bf8
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:05:38 2009 +0100

    drm/nouveau: No need to force evict=true when swapping evicted BOs back in.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit c6af6053be60840dcbb037c3798557cbf71cbb08
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 19:05:00 2009 +0100

    drm/nouveau: Fix "general protection fault" in the flipd/flips eviction path.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 73cb9276fd189c19558a97600456bd13fa5debe8
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 12:27:11 2009 +0100

    drm/i2c/ch7006: Drop build time dependency to nouveau.
    
    This partially reverts e4b41066, as this driver is intended to be
    useful with any KMS driver for suitable hardware. The missing build
    dependency that commit workarounded was DRM_KMS_HELPER.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 287c1532145b63d394060d46c0309b123b862345
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Fri Dec 11 16:51:09 2009 +0100

    drm/nouveau: Make the MM aware of pre-G80 tiling.
    
    This commit has also the following 3 bugfix commits squashed into it from
    the nouveau git tree:
    
    drm/nouveau: Fix up the tiling alignment restrictions for nv1x.
    drm/nouveau: Fix up the nv2x tiling alignment restrictions.
    drm/nv50: fix align typo for g9x
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 0d87c100312ce75d9bb75a456d8a542e84a1722f
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Wed Dec 16 12:12:27 2009 +0100

    drm/nouveau: Pre-G80 tiling support.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 617e234b01757698ed5f8c9a5fbf12717b76e371
Author: Francisco Jerez <currojerez@riseup.net>
Date:   Sun Dec 13 20:07:42 2009 +0100

    drm/nouveau: Add cache_flush/pull fifo engine functions.
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>

commit 94fd163d86b049842856864cdeac318131ec576d
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jan 11 14:20:55 2010 +1000

    drm: reduce WARN_ON to a printk.
    
    Lots of ppl keep thinking this is an oops, it was just a warning for
    me to see, just make it a printk now.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 509c7d83c3b18a50a0bd02afa43c8ee3c7605bc9
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Jan 8 09:27:08 2010 +1000

    drm/kms/fb: check for depth changes from userspace for resizing.
    
    If userspace (plymouth in this case) asks for a deeper depth,
    refuse it as well due to lack of resizing.
    
    This fixes an issue since < 32MB cards went to 8bpp and plymouth
    crashes on startup.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 89347bb8ef2d0af1ae8d847b7df91e9f04eccf2a
Author: David John <davidjon@xenontk.org>
Date:   Thu Dec 31 12:00:46 2009 +0530

    drm: Keep disabled outputs disabled after suspend / resume
    
    With the current DRM code, an output that has been powered off
    from userspace will automatically power back on when resuming
    from suspend. This patch fixes this behaviour.
    
    Tested only with the Intel i915 driver on an Intel GM45 Express
    chipset.
    
    Signed-off-by: David John <davidjon@xenontk.org>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 804c7559e9376c3ba78ae15a30337b1e24f8ae80
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Jan 8 15:58:49 2010 -0500

    drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
    
    - r4xx/rs6xx: add support for extended pixel shader
    instruction/temp regs
    - r5xx: add SM3 regs
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 003e69f9862bcda89a75c27750efdbc17ac02945
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:14 2010 +0100

    drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
    
    If for any reason we haven't installed handler we shouldn't try to
    enable IRQ/MSI on the hw so we don't get unhandled IRQ/MSI which
    makes the kernel sad.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e77cef9c2d87db835ad9d70cde4a9b00b0ca2262
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 15:39:13 2010 +0100

    drm: Avoid calling vblank function is vblank wasn't initialized
    
    In some case vblank might not be initialized and we shouldn't
    try to use associated function. This patch make sure this is
    the case. It also export drm_vblank_cleanup so driver can cleanup
    vblank if for any reason IRQ/MSI is not working.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 059d233f9c1183ed2f59d631e4daf486060e880d
Author: Alexander Beregalov <a.beregalov@gmail.com>
Date:   Thu Jan 7 02:59:31 2010 +0300

    drm/radeon: mkregtable.c: close a file before exit
    
    Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d0269ed8580b492df75dafb011dc51a1390bf200
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 16:08:32 2010 +0100

    drm/radeon/kms: Make sure we release AGP device if we acquired it
    
    In some case we weren't releasing the AGP device at module unloading.
    This leaded to unfunctional AGP at next module load. This patch make
    sure we release the AGP bus if we acquire it.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit cafe6609d6dc0a6a278f9fdbb59ce4d761a35ddd
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Jan 7 12:39:21 2010 +0100

    drm/radeon/kms: Schedule host path read cache flush through the ring V2
    
    R300 family will hard lockup if host path read cache flush is
    done through MMIO to HOST_PATH_CNTL. But scheduling same flush
    through ring seems harmless. This patch remove the hdp_flush
    callback and add a flush after each fence emission which means
    a flush after each IB schedule. Thus we should have same behavior
    without the hard lockup.
    
    Tested on R100,R200,R300,R400,R500,R600,R700 family.
    
    V2: Adjust fence counts in r600_blit_prepare_copy()
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 62cdc0c20663ef840a94850892517b2b7f584904
Author: Corbin Simpson <MostAwesomeDude@gmail.com>
Date:   Wed Jan 6 19:28:48 2010 +0100

    drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
    
    Long story short, this fixes sporadic hardlocks with my rv410 during
    times of intense 2D acceleration (Flash on Fx3).
    
    V2: Fix indentation and move errata_fini to suspend function so we
    don't leak scratch register over suspend/resume cycle.
    V3: Move scratch_reg to asic specific structure (aim is to slowly
        move stuff to asic specific structure and avoid poluting
        radeon_device struct with asic specific variables)
    
    Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 06b6476d6b291473d0928ed242158a001d50c0f0
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Jan 5 11:27:29 2010 -0500

    drm/radeon/kms: detect sideport memory on IGP chips
    
    This detects if the sideport memory is enabled and
    if it is VRAM is evicted on suspend/resume.
    
    This should fix s/r issues on some IGPs.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fc9a89f97e532152ae614d5ce717b81c8f8b0e91
Author: Darren Jenkins <darrenrjenkins@gmail.com>
Date:   Thu Jan 7 01:35:21 2010 -0500

    drm/radeon: fix a couple of array index errors
    
    There are a couple of array overruns, and some associated confusion in
    the code.
    This is just a wild guess at what the code should actually look like.
    
    Coverity CID: 13305 13306
    
    agd5f: fix up the original intent of the timing code
    
    Signed-off-by: Darren Jenkins <darrenrjenkins@gmail.com>
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 196c58d21fc47fbabab6a98e23e5a6335f717e44
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 14:22:32 2010 -0500

    drm/radeon/kms: add support for eDP (embedded DisplayPort)
    
    This is displayport used for internal connections such
    as laptop panels and systems with integrated monitors.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7970e677accb676f15e11468c60cb93ae477a513
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 13:47:47 2010 -0500

    drm: Add eDP connector type
    
    Add a new connector type for eDP (embedded displayport)
    
    eDP is more or less the same as DP but there are some
    cases when you might want to handle it separately.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f0f480adcb6c44e76186c6d3036e06ed7e7e0202
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 11:39:07 2010 -0500

    drm/radeon/kms: pull in the latest upstream ObjectID.h changes
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a7bc115fffb69a55cf2c332567ea6908d9026f22
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 11:35:48 2010 -0500

    drm/radeon/kms: whitespace changes to ObjectID.h
    
    Makes it easier to keep in sync with ddx and the upstream
    AMD versions.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a5899fcc189e9357873ddf26d5e6e7e6ff84c2f4
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Jan 7 14:19:47 2010 -0500

    drm/radeon/kms: fix typo in atom connector type handling
    
    Also remove the problematic enums that were unused
    remnants from the ddx.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

[-- Attachment #2: Type: text/plain, Size: 390 bytes --]

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 

[-- Attachment #3: Type: text/plain, Size: 161 bytes --]

--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 15:28                       ` Linus Torvalds
@ 2009-12-11 17:49                         ` Jeff Garzik
  0 siblings, 0 replies; 79+ messages in thread
From: Jeff Garzik @ 2009-12-11 17:49 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Alan Cox, Stephane Marchesin, Maarten Maathuis, Xavier Bestel,
	Dave Airlie, linux-kernel, dri-devel

On 12/11/2009 10:28 AM, Linus Torvalds wrote:
>
>
> On Fri, 11 Dec 2009, Jeff Garzik wrote:
>>
>> F11 uses nouveau here.  It is actually a pain to get 'nv' going as an
>> alternate -- bugs have been filed.  Makes kernel dev more difficult for me.  I
>> was actually told, by Fedora people, that I should be hacking on the Fedora
>> (rpm-based) kernel, rather than a 100% upstream kernel like I have been
>> hacking/booting for the past decade, as a result of this setup (needing
>> nouveau kernel support, thus needing Fedora rather than upstream kernel).
>
> Btw, for all my ranting (and maybe Alan is right, and I'm ranting at the
> wrong people - it's just that the actual driver authors aren't the ones
> that violated any rules), I do have to give kudos for the fact that the
> F12 situation seems to be much better.
>
> These days, what you can do is basically do all development (assuming it's
> not nouveau development) in the upstream kernel, and then you just have a
> separate 'nouveau' git tree (or branch) that you pull in the nouvea stuff
> into.
>
> That tree/branch will be a mess of random merges-of-the-day, but you'll
> never push it out to anybody anyway, so nobody cares. And building that
> messy merge tree will get you a working setup without any extra steps - a
> simple "make modules_install ; make install" will JustWork(tm).

At the outset, I was hoping for an even more straightforward solution: 
"if nouveau kernel mod not present, fall back to nv"  That would work 
without any kernel modifications at all.

But the answer came back as "if you run Fedora, run a Fedora kernel, 
otherwise don't expect anything to work"  My experience directly 
contradicts claims of "upstream first" policy, both in code and attitude.

I am looking into doing the git tree merge you suggest right now....  I 
didn't know that was an option, given ongoing API changes.  That would 
make my life quite a bit easier.  As you note, anything graphics is 
_glacially_ slow due to vesa fallback, when using a 100% upstream kernel.

	Jeff



^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 10:28                     ` Jeff Garzik
  2009-12-11 10:46                       ` Dave Airlie
@ 2009-12-11 15:28                       ` Linus Torvalds
  2009-12-11 17:49                         ` Jeff Garzik
  1 sibling, 1 reply; 79+ messages in thread
From: Linus Torvalds @ 2009-12-11 15:28 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Alan Cox, Stephane Marchesin, Maarten Maathuis, Xavier Bestel,
	Dave Airlie, linux-kernel, dri-devel



On Fri, 11 Dec 2009, Jeff Garzik wrote:
> 
> F11 uses nouveau here.  It is actually a pain to get 'nv' going as an
> alternate -- bugs have been filed.  Makes kernel dev more difficult for me.  I
> was actually told, by Fedora people, that I should be hacking on the Fedora
> (rpm-based) kernel, rather than a 100% upstream kernel like I have been
> hacking/booting for the past decade, as a result of this setup (needing
> nouveau kernel support, thus needing Fedora rather than upstream kernel).

Btw, for all my ranting (and maybe Alan is right, and I'm ranting at the 
wrong people - it's just that the actual driver authors aren't the ones 
that violated any rules), I do have to give kudos for the fact that the 
F12 situation seems to be much better.

These days, what you can do is basically do all development (assuming it's 
not nouveau development) in the upstream kernel, and then you just have a 
separate 'nouveau' git tree (or branch) that you pull in the nouvea stuff 
into.

That tree/branch will be a mess of random merges-of-the-day, but you'll 
never push it out to anybody anyway, so nobody cares. And building that 
messy merge tree will get you a working setup without any extra steps - a 
simple "make modules_install ; make install" will JustWork(tm).

So it's much more straightforward than it used to be (you had that 
separate tree that you could build modules in), you can basically build 
things exactly the same way you are supposed to do things _anyway_ if you 
have experimental branches etc and want to build in a temporary merged 
tree (even if you're not actually ready to merge it all and still want to 
keep the branches separate).

Of course, it's a good thing that it's easier in F12, because in F11 if 
you forgot to build the nouveau stuff, it would just fall back on the VESA 
FB setup - you had a working system, it was just very slow X. You could 
then build the nouveau modules you forgot about, and re-start X.

That "oops, I forgot" case seems to no longer work at all in F12 - if I 
build without Nouveau on my nvidia machine, the kernel will boot, but I 
will have neither working X _nor_ a working text login. So there's no way 
to even build the modules and fix it up - you have just to re-boot back 
into an old kernel. Very annoying for bisection.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 12:45                         ` tytso
@ 2009-12-11 12:50                           ` Alan Cox
  0 siblings, 0 replies; 79+ messages in thread
From: Alan Cox @ 2009-12-11 12:50 UTC (permalink / raw)
  To: tytso
  Cc: Dave Airlie, David Miller, torvalds, stephane.marchesin,
	madman2003, xavier.bestel, airlied, linux-kernel, dri-devel

On Fri, 11 Dec 2009 07:45:41 -0500
tytso@mit.edu wrote:

> On Fri, Dec 11, 2009 at 08:20:57PM +1000, Dave Airlie wrote:
> > 
> > Well the main thing was I wasn't mean to discuss possible legal issues
> > and still don't have permission, you know as well as I do once lawyers are
> > involved you have to keep out of things until they deal with them.
> 
> The thing which really surprises me is that if there are legally
> dubious issues, why on *earth* did Red Hat allow Fedora to ship said
> code?

The thing which really surprises me is that if there are legal questions
involved why on *earth* do people keep asking them on public mailing
lists when they know the lawyers views/opinions/decisions will not be
publishable there ?

Ted, you of all people know that if you want to get an answer that isn't
the way to get it.

Alan

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 10:20                       ` Dave Airlie
@ 2009-12-11 12:45                         ` tytso
  2009-12-11 12:50                           ` Alan Cox
  0 siblings, 1 reply; 79+ messages in thread
From: tytso @ 2009-12-11 12:45 UTC (permalink / raw)
  To: Dave Airlie
  Cc: David Miller, alan, torvalds, stephane.marchesin, madman2003,
	xavier.bestel, airlied, linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 08:20:57PM +1000, Dave Airlie wrote:
> 
> Well the main thing was I wasn't mean to discuss possible legal issues
> and still don't have permission, you know as well as I do once lawyers are
> involved you have to keep out of things until they deal with them.

The thing which really surprises me is that if there are legally
dubious issues, why on *earth* did Red Hat allow Fedora to ship said
code?

						- Ted

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 10:28                     ` Jeff Garzik
@ 2009-12-11 10:46                       ` Dave Airlie
  2009-12-11 15:28                       ` Linus Torvalds
  1 sibling, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-12-11 10:46 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: Alan Cox, Linus Torvalds, Stephane Marchesin, Maarten Maathuis,
	Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 8:28 PM, Jeff Garzik <jeff@garzik.org> wrote:
> On 12/11/2009 04:18 AM, Alan Cox wrote:
>>
>> F11 certainly shipped some bits of it for 2D support. I am not sure if
>> F10 shipped a purely userspace set up. Neither had it enabled as the
>> default driver - they used "nv" or "vesa" depending upon the card.
>
> F11 uses nouveau here.  It is actually a pain to get 'nv' going as an
> alternate -- bugs have been filed.  Makes kernel dev more difficult for me.
>  I was actually told, by Fedora people, that I should be hacking on the
> Fedora (rpm-based) kernel, rather than a 100% upstream kernel like I have
> been hacking/booting for the past decade, as a result of this setup (needing
> nouveau kernel support, thus needing Fedora rather than upstream kernel).

It wouldn't have helped the ABI was broken between F11 and now, so you'd be
in the same boat putting this code upstream via staging in no way
means you can run
it with the F11 userspace or ongoing even with the F12 one.

Dave.

>
>        Jeff
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  9:18                   ` Alan Cox
  2009-12-11  9:34                     ` David Miller
@ 2009-12-11 10:28                     ` Jeff Garzik
  2009-12-11 10:46                       ` Dave Airlie
  2009-12-11 15:28                       ` Linus Torvalds
  1 sibling, 2 replies; 79+ messages in thread
From: Jeff Garzik @ 2009-12-11 10:28 UTC (permalink / raw)
  To: Alan Cox
  Cc: Linus Torvalds, Stephane Marchesin, Maarten Maathuis,
	Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

On 12/11/2009 04:18 AM, Alan Cox wrote:
> F11 certainly shipped some bits of it for 2D support. I am not sure if
> F10 shipped a purely userspace set up. Neither had it enabled as the
> default driver - they used "nv" or "vesa" depending upon the card.

F11 uses nouveau here.  It is actually a pain to get 'nv' going as an 
alternate -- bugs have been filed.  Makes kernel dev more difficult for 
me.  I was actually told, by Fedora people, that I should be hacking on 
the Fedora (rpm-based) kernel, rather than a 100% upstream kernel like I 
have been hacking/booting for the past decade, as a result of this setup 
(needing nouveau kernel support, thus needing Fedora rather than 
upstream kernel).

	Jeff



^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11 10:02                 ` Stephane Marchesin
@ 2009-12-11 10:24                   ` Andy Walls
  0 siblings, 0 replies; 79+ messages in thread
From: Andy Walls @ 2009-12-11 10:24 UTC (permalink / raw)
  To: Stephane Marchesin
  Cc: Alan Cox, Linus Torvalds, Maarten Maathuis, Xavier Bestel,
	Dave Airlie, linux-kernel, dri-devel

On Fri, 2009-12-11 at 11:02 +0100, Stephane Marchesin wrote:
> On Fri, Dec 11, 2009 at 00:58, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

> > It's really simple: if you want to merge it *you* pull it and sign it off.
> > If you aren't prepared to do that then ask why Fedora should, its not
> > their code either.

> So what, if someone outside RedHat is ok to sign it off, it can go
> into staging? If it's that simple I don't mind signing it off
> (including the dubious bits), I can take the blame if that helps
> things move forward.

Could not a NAK by the author stop that?

Regards,
Andy


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  9:34                     ` David Miller
  2009-12-11 10:15                       ` Andy Walls
@ 2009-12-11 10:20                       ` Dave Airlie
  2009-12-11 12:45                         ` tytso
  1 sibling, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-12-11 10:20 UTC (permalink / raw)
  To: David Miller
  Cc: alan, torvalds, stephane.marchesin, madman2003, xavier.bestel,
	airlied, linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 7:34 PM, David Miller <davem@davemloft.net> wrote:
> From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> Date: Fri, 11 Dec 2009 09:18:43 +0000
>
>> However the fundamental point stands. The only people who can sign it off
>> are the people who wrote it. Those are the rules. Red Hat didn't write the
>> code, Red Hat cannot sign it off however much you rant at them. You also
>> previously said you don't want to merge stuff when the authors don't want
>> it merged.
>
> I agree with a lot of what you say.
>
> However, one point remains is that we were told, by Dave Airlie, that
> they didn't want this code merged because the one person being paid to
> work on it "would be overwhelmed" if the code went upstream.
>
> I distinctly remember this being mentioned at the kernel summit.
>
> And you know what?  That kind of excuse pisses me off too :-)

Well the main thing was I wasn't mean to discuss possible legal issues
and still don't have permission, you know as well as I do once lawyers are
involved you have to keep out of things until they deal with them.

but yes it is a side effect of upstreaming this code that other
distros will start
to place time demands on people who Red Hat employ but we were
starting to see that anyways without upstreaming. It would be have
been really nice
if some of the distros would start to put their money behind what they
want to ship instead of rhetoric[1].

Dave.

[1] http://www.markshuttleworth.com/archives/95

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  9:34                     ` David Miller
@ 2009-12-11 10:15                       ` Andy Walls
  2009-12-11 10:20                       ` Dave Airlie
  1 sibling, 0 replies; 79+ messages in thread
From: Andy Walls @ 2009-12-11 10:15 UTC (permalink / raw)
  To: David Miller
  Cc: alan, torvalds, stephane.marchesin, madman2003, xavier.bestel,
	airlied, linux-kernel, dri-devel

On Fri, 2009-12-11 at 01:34 -0800, David Miller wrote:
> From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> Date: Fri, 11 Dec 2009 09:18:43 +0000

> > You also
> > previously said you don't want to merge stuff when the authors don't want
> > it merged.

> However, one point remains is that we were told, by Dave Airlie, that
> they didn't want this code merged because the one person being paid to
> work on it "would be overwhelmed" if the code went upstream.
> 
> I distinctly remember this being mentioned at the kernel summit.

That reason for not merging seems to fall squarely in the "authors don't
want it merged" category.

Your point does highlight, though, that it is worth talking to the
author directly to understand the obstacles, as Alan mentioned.

Regards,
Andy


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 23:58               ` Alan Cox
  2009-12-11  0:09                 ` Linus Torvalds
@ 2009-12-11 10:02                 ` Stephane Marchesin
  2009-12-11 10:24                   ` Andy Walls
  1 sibling, 1 reply; 79+ messages in thread
From: Stephane Marchesin @ 2009-12-11 10:02 UTC (permalink / raw)
  To: Alan Cox
  Cc: Linus Torvalds, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 00:58, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>> But not only is Fedora not following the rules,
>
> You changed the rules. You require a Signed-off-by:. Fedora can no more
> add a signed off by than you can. It's not their code nor Red Hat's code
> any more than they "own" the kernel because they pay someone to work on
> it.
>
>> See above. It's not you. It's Fedora. If Fedora hadn't merged Nouveau and
>> shipped it, I wouldn't care.
>
> And zillions of Nvidia users would have been worse off.
>
> It's really simple: if you want to merge it *you* pull it and sign it off.
> If you aren't prepared to do that then ask why Fedora should, its not
> their code either.
>

So what, if someone outside RedHat is ok to sign it off, it can go
into staging? If it's that simple I don't mind signing it off
(including the dubious bits), I can take the blame if that helps
things move forward.

Stephane

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  9:18                   ` Alan Cox
@ 2009-12-11  9:34                     ` David Miller
  2009-12-11 10:15                       ` Andy Walls
  2009-12-11 10:20                       ` Dave Airlie
  2009-12-11 10:28                     ` Jeff Garzik
  1 sibling, 2 replies; 79+ messages in thread
From: David Miller @ 2009-12-11  9:34 UTC (permalink / raw)
  To: alan
  Cc: torvalds, stephane.marchesin, madman2003, xavier.bestel, airlied,
	linux-kernel, dri-devel

From: Alan Cox <alan@lxorguk.ukuu.org.uk>
Date: Fri, 11 Dec 2009 09:18:43 +0000

> However the fundamental point stands. The only people who can sign it off
> are the people who wrote it. Those are the rules. Red Hat didn't write the
> code, Red Hat cannot sign it off however much you rant at them. You also
> previously said you don't want to merge stuff when the authors don't want
> it merged.

I agree with a lot of what you say.

However, one point remains is that we were told, by Dave Airlie, that
they didn't want this code merged because the one person being paid to
work on it "would be overwhelmed" if the code went upstream.

I distinctly remember this being mentioned at the kernel summit.

And you know what?  That kind of excuse pisses me off too :-)

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:09                 ` Linus Torvalds
  2009-12-11  0:20                   ` "C. Bergström"
  2009-12-11  0:21                   ` Dave Airlie
@ 2009-12-11  9:18                   ` Alan Cox
  2009-12-11  9:34                     ` David Miller
  2009-12-11 10:28                     ` Jeff Garzik
  2 siblings, 2 replies; 79+ messages in thread
From: Alan Cox @ 2009-12-11  9:18 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Stephane Marchesin, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel

> I realize that you have some emotional attachments to Red Hat, but ask 
> yourself (and answer honestly): what would you think if some random other 
> distro was packaging tens of thousands of lines of kernel code and not 
> apparently working at trying to get them upstream?

Like Ubuntu does for a load of stuff and did for years ? I'd like to see
stuff get upstream yes. The point you seem to be missing is you are
ranting at the wrong people. I want to see it upstream too, but if you
must shout at people do it productively at the right target.

I would be cross if they were controlling and hiding it, but its sitting
in a public repository, its maintained by a collection of people one of
whom happens to work for Red Hat and anyone can grab it. It's vastly
easier to get hold of than the userspace for some of the stuff in kernel.

However the fundamental point stands. The only people who can sign it off
are the people who wrote it. Those are the rules. Red Hat didn't write the
code, Red Hat cannot sign it off however much you rant at them. You also
previously said you don't want to merge stuff when the authors don't want
it merged. If you like I can also dig out some Torvalds quotes about not
wanting to dictate to distros.

If you want to progress this then

- Starting talking to the project *authors*
- Help them decide what to do about the firmware stuff
- If need be get the Linux Foundation, Red Hat and other relevant lawyers
  and people on a phone call with you so that legal issues can get
  discussed and you can shout at them as necessary too.

I am not privy to what the lawyers think on this one. But I'd bet that
the only way you'll get a full answer is in conjunction with lawyers
speaking to lawyers, and the only way you'll get a sign off is when the
lawyers say "yes". Anything else would be rather irresponsible.

> And it's possible that other distros are doing the same thing. I happen to 
> know that Fedora does it (and has been doing it for at least a year), 
> because I happen to have an Intel development machine that runs Fedora and 

F11 certainly shipped some bits of it for 2D support. I am not sure if
F10 shipped a purely userspace set up. Neither had it enabled as the
default driver - they used "nv" or "vesa" depending upon the card.

> was shipped by Intel with an nVidia card (and has a power supply that 
> craps out if you don't use several hundred watts of power, so I can't 
> change it to something more power-efficient - seriously).

Alan

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:32                     ` Linus Torvalds
  2009-12-11  0:47                       ` Dave Airlie
@ 2009-12-11  1:34                       ` Kyle McMartin
  1 sibling, 0 replies; 79+ messages in thread
From: Kyle McMartin @ 2009-12-11  1:34 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: C. Bergstr?m, linux-kernel, dri-devel

On Thu, Dec 10, 2009 at 04:32:56PM -0800, Linus Torvalds wrote:
> > "patches welcome"
> 
> The problem is that I have never even heard a Red Hat or Fedora person 
> actually acknoledge that yes, they should be trying to upstream it.
> 
> Have Red Hat and Fedora just decided that "upstream first" simply doesn't 
> matter any more? Because quite frankly, that was kind of the feeling I 
> came away with from the Kernel summit.
> 

Well, given that none of the Fedora kernel people were able to attend
this year for a variety of reasons, this is an interesting revelation to
me, I wasn't aware I thought this.

I, for one, would very much like nouveau to be upstream. It would
certainly make my life easier not having to worry about subtlely
breaking graphics adapters I can't test whenever we rebase to new git
changes in the DRM. Thankfully Ben and Dave have been ninja at dealing
with it, otherwise I probably would have punted it by now.

> It's like they _want_ to keep it internal.
>

regards, Kyle


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:32                     ` Linus Torvalds
@ 2009-12-11  0:47                       ` Dave Airlie
  2009-12-11  1:34                       ` Kyle McMartin
  1 sibling, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-12-11  0:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: "C. Bergström", linux-kernel, dri-devel

2009/12/11 Linus Torvalds <torvalds@linux-foundation.org>:
>
>
> On Thu, 10 Dec 2009, "C. Bergström" wrote:
>>
>> Thanks for the rather lengthly explanation, but in case you missed what people
>> are trying to say here..
>>
>> With all due respect Linus..
>>
>> "patches welcome"
>
> The problem is that I have never even heard a Red Hat or Fedora person
> actually acknoledge that yes, they should be trying to upstream it.

<Red Hat hat on>
<Fedora hat on>
We are trying to upstream nouveau.
<Fedora hat off>
<Red Hat hat off>

<DRM maintainer hat on>
The core DRM changes to support nouveau were but ugly, and shared
with radeon and vmware, we need to wait for VMware to re-write them.
VMware have rewritten them and they are upstream since radeon KMS
got merged into staging.
<DRM maintainer hat off>

<nouveau reviewer hat on>
The ctxprogs are legally dubious, we need to wait for Red Hat lawyers
to give us some direction, we can involve other lawyers but more
lawyers doesn't always help these things go faster.
<nouveau reviewer hat off>

<Dave hat on>
nvidia guys are laughing at us.
<Dave hat off>

Dave.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:21                   ` Dave Airlie
@ 2009-12-11  0:45                     ` Linus Torvalds
  0 siblings, 0 replies; 79+ messages in thread
From: Linus Torvalds @ 2009-12-11  0:45 UTC (permalink / raw)
  To: Dave Airlie
  Cc: Alan Cox, Stephane Marchesin, Maarten Maathuis, Xavier Bestel,
	Dave Airlie, linux-kernel, dri-devel



On Fri, 11 Dec 2009, Dave Airlie wrote:
> 
> I'm going to see what Ben can do with a firmware loader and the ctxprogs,
> we can send a patch that contains all the other bits of the driver, however
> since the ctxprogs aren't currently something we can add Signed-off-by to,
> someone else will have to endeavour to provide them some other way.

Hey, thanks. This was actually the first time I got the feeling that you 
acknowledged that we should strive for it to be merged at all. I literally 
feel better for just that.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:20                   ` "C. Bergström"
@ 2009-12-11  0:32                     ` Linus Torvalds
  2009-12-11  0:47                       ` Dave Airlie
  2009-12-11  1:34                       ` Kyle McMartin
  0 siblings, 2 replies; 79+ messages in thread
From: Linus Torvalds @ 2009-12-11  0:32 UTC (permalink / raw)
  To: "C. Bergström"; +Cc: linux-kernel, dri-devel



On Thu, 10 Dec 2009, "C. Bergström" wrote:
>   
> Thanks for the rather lengthly explanation, but in case you missed what people
> are trying to say here..
> 
> With all due respect Linus..
> 
> "patches welcome"

The problem is that I have never even heard a Red Hat or Fedora person 
actually acknoledge that yes, they should be trying to upstream it.

Have Red Hat and Fedora just decided that "upstream first" simply doesn't 
matter any more? Because quite frankly, that was kind of the feeling I 
came away with from the Kernel summit.

It's like they _want_ to keep it internal.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:09                 ` Linus Torvalds
  2009-12-11  0:20                   ` "C. Bergström"
@ 2009-12-11  0:21                   ` Dave Airlie
  2009-12-11  0:45                     ` Linus Torvalds
  2009-12-11  9:18                   ` Alan Cox
  2 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-12-11  0:21 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Alan Cox, Stephane Marchesin, Maarten Maathuis, Xavier Bestel,
	Dave Airlie, linux-kernel, dri-devel

>
> I realize that you have some emotional attachments to Red Hat, but ask
> yourself (and answer honestly): what would you think if some random other
> distro was packaging tens of thousands of lines of kernel code and not
> apparently working at trying to get them upstream?

Lots of distros do this all the time, you just don't have any hardware
or care about it.
If you didn't have an nvidia box you wouldn't care about this either.
If I send you
an LIRC remote will you bitch about LIRC not being upstream and
Fedora/Ubuntu/everyone
else shipping it?

>
> Dave claims it's only been going on for a few months, but quite frankly,
> we all know better. The nouveau kernel modules have been shipped for a lot
> longer than just F12.

No I know exactly how long we've had the code in Fedora, it predates both
mine and Ben's employment at Red Hat. But it doesn't change the fact
the code has only in the last 2-3 months gotten to a stage where the core
DRM code was able to support it, mainly due to radeon KMS work being
pushed. Previous nouveau drivers shipped were either UMS with an API
that nobody wanted upstream, or KMS with a reliance on a core DRM feature
that no-one wanted upstream. We've been resolving those issues first,
while hoping the lawyers could deal with ctxprogs, guess we moved faster
than them.

I'm going to see what Ben can do with a firmware loader and the ctxprogs,
we can send a patch that contains all the other bits of the driver, however
since the ctxprogs aren't currently something we can add Signed-off-by to,
someone else will have to endeavour to provide them some other way.

Dave.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-11  0:09                 ` Linus Torvalds
@ 2009-12-11  0:20                   ` "C. Bergström"
  2009-12-11  0:32                     ` Linus Torvalds
  2009-12-11  0:21                   ` Dave Airlie
  2009-12-11  9:18                   ` Alan Cox
  2 siblings, 1 reply; 79+ messages in thread
From: "C. Bergström" @ 2009-12-11  0:20 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, dri-devel

Linus Torvalds wrote:
> On Thu, 10 Dec 2009, Alan Cox wrote:
>   
>>> But not only is Fedora not following the rules, 
>>>       
>> You changed the rules. You require a Signed-off-by:. Fedora can no more
>> add a signed off by than you can. It's not their code nor Red Hat's code
>> any more than they "own" the kernel because they pay someone to work on
>> it.
>>     
>
> You're avoiding the point: they are shipping it, they are paying for (at 
> least some) development, and they seem to not even want to face the issue.
>
> Sign-offs aren't some new feature that took Red Hat people by surprise. 
> The "get it merged upstream first" didn't change in any way from it: it 
> just codified existing practice - of _course_ everybody expects copyrights 
> to be honored and clear.
>
>   
>> It's really simple: if you want to merge it *you* pull it and sign it off.
>> If you aren't prepared to do that then ask why Fedora should, its not
>> their code either.
>>     
>
> I'm not shipping it. They are. That's the difference.
>
> I realize that you have some emotional attachments to Red Hat, but ask 
> yourself (and answer honestly): what would you think if some random other 
> distro was packaging tens of thousands of lines of kernel code and not 
> apparently working at trying to get them upstream?
>
> Dave claims it's only been going on for a few months, but quite frankly, 
> we all know better. The nouveau kernel modules have been shipped for a lot 
> longer than just F12.
>
> And it's possible that other distros are doing the same thing. I happen to 
> know that Fedora does it (and has been doing it for at least a year), 
> because I happen to have an Intel development machine that runs Fedora and 
> was shipped by Intel with an nVidia card (and has a power supply that 
> craps out if you don't use several hundred watts of power, so I can't 
> change it to something more power-efficient - seriously).
>   
Thanks for the rather lengthly explanation, but in case you missed what 
people are trying to say here..

With all due respect Linus..

"patches welcome"


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 23:58               ` Alan Cox
@ 2009-12-11  0:09                 ` Linus Torvalds
  2009-12-11  0:20                   ` "C. Bergström"
                                     ` (2 more replies)
  2009-12-11 10:02                 ` Stephane Marchesin
  1 sibling, 3 replies; 79+ messages in thread
From: Linus Torvalds @ 2009-12-11  0:09 UTC (permalink / raw)
  To: Alan Cox
  Cc: Stephane Marchesin, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel



On Thu, 10 Dec 2009, Alan Cox wrote:
>
> > But not only is Fedora not following the rules, 
> 
> You changed the rules. You require a Signed-off-by:. Fedora can no more
> add a signed off by than you can. It's not their code nor Red Hat's code
> any more than they "own" the kernel because they pay someone to work on
> it.

You're avoiding the point: they are shipping it, they are paying for (at 
least some) development, and they seem to not even want to face the issue.

Sign-offs aren't some new feature that took Red Hat people by surprise. 
The "get it merged upstream first" didn't change in any way from it: it 
just codified existing practice - of _course_ everybody expects copyrights 
to be honored and clear.

> It's really simple: if you want to merge it *you* pull it and sign it off.
> If you aren't prepared to do that then ask why Fedora should, its not
> their code either.

I'm not shipping it. They are. That's the difference.

I realize that you have some emotional attachments to Red Hat, but ask 
yourself (and answer honestly): what would you think if some random other 
distro was packaging tens of thousands of lines of kernel code and not 
apparently working at trying to get them upstream?

Dave claims it's only been going on for a few months, but quite frankly, 
we all know better. The nouveau kernel modules have been shipped for a lot 
longer than just F12.

And it's possible that other distros are doing the same thing. I happen to 
know that Fedora does it (and has been doing it for at least a year), 
because I happen to have an Intel development machine that runs Fedora and 
was shipped by Intel with an nVidia card (and has a power supply that 
craps out if you don't use several hundred watts of power, so I can't 
change it to something more power-efficient - seriously).

		Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 23:37             ` Linus Torvalds
  2009-12-10 23:50               ` Dave Airlie
@ 2009-12-10 23:58               ` Alan Cox
  2009-12-11  0:09                 ` Linus Torvalds
  2009-12-11 10:02                 ` Stephane Marchesin
  1 sibling, 2 replies; 79+ messages in thread
From: Alan Cox @ 2009-12-10 23:58 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Stephane Marchesin, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel

> But not only is Fedora not following the rules, 

You changed the rules. You require a Signed-off-by:. Fedora can no more
add a signed off by than you can. It's not their code nor Red Hat's code
any more than they "own" the kernel because they pay someone to work on
it.

> See above. It's not you. It's Fedora. If Fedora hadn't merged Nouveau and 
> shipped it, I wouldn't care.

And zillions of Nvidia users would have been worse off.

It's really simple: if you want to merge it *you* pull it and sign it off.
If you aren't prepared to do that then ask why Fedora should, its not
their code either.

Alan

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 23:37             ` Linus Torvalds
@ 2009-12-10 23:50               ` Dave Airlie
  2009-12-10 23:58               ` Alan Cox
  1 sibling, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-12-10 23:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Stephane Marchesin, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 9:37 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
>
> On Thu, 10 Dec 2009, Stephane Marchesin wrote:
>>
>> I'm not sure why people are arguing so much over this, given that no
>> nouveau devs were at the kernel summit, and we only heard rumours
>> afterwards that there were complaints about us not being ready for
>> merging.
>
> The thing is, my complaint is not about whatever external driver project.
>
> We have those all the time. I'm not complaining about Nouveau people.
>
> I'm pissed off at distribution people. For years now, distributions have
> talked about "upstream first", because of the disaster and fragmentation
> that was Linux-2.4. And most of them do it, and have been fairly good
> about it.
>
> But not only is Fedora not following the rules, I know that Fedora people
> are actively making excuses about not following the rules. I know Red Hat
> actually employs (full-time or part-time I have no idea) some Nouveau
> dveloper, and by that point Red Hat should also man up and admit that they
> need to make "merge upstream" be a priority for them.
>
> See? I'm not complaining about _you_. I'm complaining about Fedora and Red
> Hat.
>
>> If you have issues to raise about nouveau, please raise them on the
>> nouveau, mesa or dri lists, at least some time before starting to
>> complain. I must say I didn't think such a big issue was going on
>> here, that's the problem with rumours.
>
> See above. It's not you. It's Fedora. If Fedora hadn't merged Nouveau and
> shipped it, I wouldn't care.
>
> Or rather, I probably still -would- care, but I would care because nVidia
> hardware is common, and I like open source drivers. But I wouldn't be
> disappointed and pissed off.
>
> And this has been going on for a _loong_ time now. Fedora has been
> shipping Nouveau for about a year now, I think.

Its been shipping it for 2-3 years now, nouveau was a userspace X.org
driver with a normal drm, we never wanted to upstream that but we need
to get some exposure on it before the KMS effort took place. In my opinion
barring the legal issue, nouveau has only been in an upstreamable state
for about 2-3 months now, since it relied on a lot of core infrastructure
we upstreamed with radeon KMS. So the delay isn't as major as you seem
to think. The core TTM infrastructure we based radeon and nouveau on in F10,
and F11 wasn't in any state suitable for upstream, however we felt it would
help to expose the modesetting pieces to users before then to get them tested
independent of the core DRM status. So Red Hat have been putting a lot of
time and effort into upstreaming this driver, however until the ctxprog issues
is resolved to our satisfaction, no Red Hat employee can add a Signed-off-by
to this code. Why this doesn't affect Fedora so far is because its an
open question
with our lawyers, if they decide that we need to pull this from Fedora we will,
until they do we are living with the status quo.

Dave.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 19:53           ` Stephane Marchesin
@ 2009-12-10 23:37             ` Linus Torvalds
  2009-12-10 23:50               ` Dave Airlie
  2009-12-10 23:58               ` Alan Cox
  0 siblings, 2 replies; 79+ messages in thread
From: Linus Torvalds @ 2009-12-10 23:37 UTC (permalink / raw)
  To: Stephane Marchesin
  Cc: Maarten Maathuis, Xavier Bestel, Dave Airlie, linux-kernel, dri-devel



On Thu, 10 Dec 2009, Stephane Marchesin wrote:
> 
> I'm not sure why people are arguing so much over this, given that no
> nouveau devs were at the kernel summit, and we only heard rumours
> afterwards that there were complaints about us not being ready for
> merging.

The thing is, my complaint is not about whatever external driver project.

We have those all the time. I'm not complaining about Nouveau people.

I'm pissed off at distribution people. For years now, distributions have 
talked about "upstream first", because of the disaster and fragmentation 
that was Linux-2.4. And most of them do it, and have been fairly good 
about it.

But not only is Fedora not following the rules, I know that Fedora people 
are actively making excuses about not following the rules. I know Red Hat 
actually employs (full-time or part-time I have no idea) some Nouveau 
dveloper, and by that point Red Hat should also man up and admit that they 
need to make "merge upstream" be a priority for them.

See? I'm not complaining about _you_. I'm complaining about Fedora and Red 
Hat.

> If you have issues to raise about nouveau, please raise them on the
> nouveau, mesa or dri lists, at least some time before starting to
> complain. I must say I didn't think such a big issue was going on
> here, that's the problem with rumours.

See above. It's not you. It's Fedora. If Fedora hadn't merged Nouveau and 
shipped it, I wouldn't care.

Or rather, I probably still -would- care, but I would care because nVidia 
hardware is common, and I like open source drivers. But I wouldn't be 
disappointed and pissed off.

And this has been going on for a _loong_ time now. Fedora has been 
shipping Nouveau for about a year now, I think.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 16:47     ` Alan Cox
@ 2009-12-10 21:49       ` Ingo Molnar
  0 siblings, 0 replies; 79+ messages in thread
From: Ingo Molnar @ 2009-12-10 21:49 UTC (permalink / raw)
  To: Alan Cox
  Cc: Xavier Bestel, Linus Torvalds, Dave Airlie, linux-kernel, dri-devel


* Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

> > Last time they were asked that, they wanted to be free of changing their
> > kernel/userspace interface before upstreaming.
> 
> So put it in staging with a note to that effect. That'll also get it 
> more exposure and review.

Well, arguably that particular idea should have come from the people 
maintaining that area of code. There's this one missing driver which 
covers (more or less) like 40%-50% of the PC market, that's a glaringly 
significant issue, isnt it? It doesnt get any more significant, does it?

	Ingo

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 20:35             ` Will Dyson
@ 2009-12-10 21:12               ` Pekka Paalanen
  0 siblings, 0 replies; 79+ messages in thread
From: Pekka Paalanen @ 2009-12-10 21:12 UTC (permalink / raw)
  To: Will Dyson
  Cc: Linus Torvalds, Dave Airlie, Xavier Bestel, linux-kernel, dri-devel

On Thu, 10 Dec 2009 15:35:08 -0500
Will Dyson <will.dyson@gmail.com> wrote:

> This seems similar to the unfortunate situation with the b43
> wireless card firmware. Broadcom refuses to provide the firmware
> under a redistributable license (or even as files separate from
> their proprietary drivers). This did not stop b43 from being
> included in Linux. Distributions have dealt with it by providing
> a script that downloads the proprietary driver and extracts the
> firmware from it to files in /lib/firmware.
> 
> Do you think that a similar solution for nouveau would be legally
> problematic? Or is the issue technical, since you mention that the
> ctxprogs were obtained by mmiotrace, instead of a more
> straightforward extraction from the binary driver blobs?

It is definitely a lot harder than a script that just downloads
something. It would have to:
- download the proprietary driver
- install it and load it into the kernel
- activate mmiotrace (if it even is compiled in)
- reconfigure and start X and quit
- analyse the mmiotrace log to extract the ctxprog and ctxvals
- undo all the proprietary setup

I cannot comment on the legal side, but the practise sounds too
cumbersome.


Thanks.

-- 
Pekka Paalanen
http://www.iki.fi/pq/

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 19:49           ` Pekka Paalanen
@ 2009-12-10 20:35             ` Will Dyson
  2009-12-10 21:12               ` Pekka Paalanen
  0 siblings, 1 reply; 79+ messages in thread
From: Will Dyson @ 2009-12-10 20:35 UTC (permalink / raw)
  To: Pekka Paalanen
  Cc: Linus Torvalds, Dave Airlie, Xavier Bestel, linux-kernel, dri-devel

On Thu, Dec 10, 2009 at 2:49 PM, Pekka Paalanen <pq@iki.fi> wrote:

> The big question is what we call ctxprogs: binary blobs that are
> clearly executable, running somewhere in the GPU. No-one seems
> to know, if those are copyrightable, or if they can be redistributed.
> In their current form, they have been recorded from the nvidia
> proprietary driver using mmiotrace, and copied verbatim for each
> card type.
>
> Would you be willing to pull that kind of stuff into Linux?
>
> I would not even dare sending them to the Linux firmware
> repository, since they have some license requirements, too.

This seems similar to the unfortunate situation with the b43 wireless
card firmware. Broadcom refuses to provide the firmware under a
redistributable license (or even as files separate from their
proprietary drivers). This did not stop b43 from being included in
Linux. Distributions have dealt with it by providing a script that
downloads the proprietary driver and extracts the firmware from it to
files in /lib/firmware.

Do you think that a similar solution for nouveau would be legally
problematic? Or is the issue technical, since you mention that the
ctxprogs were obtained by mmiotrace, instead of a more straightforward
extraction from the binary driver blobs?

-- 
Will Dyson

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
                             ` (5 preceding siblings ...)
  2009-12-10 19:49           ` Pekka Paalanen
@ 2009-12-10 19:53           ` Stephane Marchesin
  2009-12-10 23:37             ` Linus Torvalds
  6 siblings, 1 reply; 79+ messages in thread
From: Stephane Marchesin @ 2009-12-10 19:53 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

On Thu, Dec 10, 2009 at 19:42, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
>
> On Thu, 10 Dec 2009, Maarten Maathuis wrote:
>>
>> You assume that Red Hat has full control over the project, which i
>> don't think is the case. The reason it isn't in staging yet (as far as
>> i know) is because of some questions over the copyright of some
>> (essential) microcode. Either the question needs to be answered, or it
>> has to be reverse engineered to the point that it's possible to
>> generate it.
>
> I think people are just making up excuses, as evidenced by the fact that
> you're quoting a different excuse than I've heard before.
>
> The fact is, if there are license questions, then Fedora had better not be
> distributing the code either. And they clearly are.
>
> And don't tell me about "full control". There's absolutely full control
> over it being included or not.
>
> When I brought this up at the kernel summit, there were various other
> random excuses. I think one of them was that it wasn't part of an official
> Fedora release (which is sure as hell not true at least as of Fedora 12).
>
> I've heard the "but it's hard to merge" excuse too - which I also know is
> bullshit, because I can look at the git tree Fedora apparently uses, and
> it merges without any conflicts what-so-ever.
>
> The most common excuse is the "oh, but it might change" crap. But that's
> not even a very good excuse to start with, and it's what staging is for
> anyway.
>
> Somebody even made the crazy comment that "but Fedora isn't a real
> distribution, so it doesn't need to follow the rules everybody agreed to
> several _years_ ago wrt merging stuff to mainline".
>
> I _think_ that last one was meant as a joke. But it's damn hard to tell,
> because the ones that are apparently sincere are equally crazy. People
> just seem to make up total crap to make excuses for something that
> everybody knows is wrong.
>

I'm not sure why people are arguing so much over this, given that no
nouveau devs were at the kernel summit, and we only heard rumours
afterwards that there were complaints about us not being ready for
merging.

If you have issues to raise about nouveau, please raise them on the
nouveau, mesa or dri lists, at least some time before starting to
complain. I must say I didn't think such a big issue was going on
here, that's the problem with rumours.

Stephane (nouveau founder).

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
                             ` (4 preceding siblings ...)
  2009-12-10 19:37           ` Dave Airlie
@ 2009-12-10 19:49           ` Pekka Paalanen
  2009-12-10 20:35             ` Will Dyson
  2009-12-10 19:53           ` Stephane Marchesin
  6 siblings, 1 reply; 79+ messages in thread
From: Pekka Paalanen @ 2009-12-10 19:49 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Dave Airlie, dri-devel, linux-kernel, Xavier Bestel

On Thu, 10 Dec 2009 10:42:46 -0800 (PST)
Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Thu, 10 Dec 2009, Maarten Maathuis wrote:
> > 
> > You assume that Red Hat has full control over the project,
> > which i don't think is the case. The reason it isn't in staging
> > yet (as far as i know) is because of some questions over the
> > copyright of some (essential) microcode. Either the question
> > needs to be answered, or it has to be reverse engineered to the
> > point that it's possible to generate it.
> 
> I think people are just making up excuses, as evidenced by the
> fact that you're quoting a different excuse than I've heard
> before.

That is because priorities change. The ABI has not seen changes
for some time now, so it's probably not an issue anymore. And it
is not an issue for staging. The other issue has become more
important. That said, there are features that likely require
revising the ABI at some point, and we know about those already.

> The fact is, if there are license questions, then Fedora had
> better not be distributing the code either. And they clearly are.

I've no idea how they pulled that, but I have not heard anyone
say that there are *no* legal issues at all.

> I've heard the "but it's hard to merge" excuse too - which I also
> know is bullshit, because I can look at the git tree Fedora
> apparently uses, and it merges without any conflicts what-so-ever.

No-one has said that about Nouveau, have they?

> The most common excuse is the "oh, but it might change" crap. But
> that's not even a very good excuse to start with, and it's what
> staging is for anyway.

Yes, and to my understanding Nouveau is past that excuse. People
just like to quote what they heard last.

The big question is what we call ctxprogs: binary blobs that are
clearly executable, running somewhere in the GPU. No-one seems
to know, if those are copyrightable, or if they can be redistributed.
In their current form, they have been recorded from the nvidia
proprietary driver using mmiotrace, and copied verbatim for each
card type.

Would you be willing to pull that kind of stuff into Linux?

I would not even dare sending them to the Linux firmware
repository, since they have some license requirements, too.

-- 
Pekka Paalanen
http://www.iki.fi/pq/

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 19:37           ` Dave Airlie
@ 2009-12-10 19:45             ` Roland Dreier
  0 siblings, 0 replies; 79+ messages in thread
From: Roland Dreier @ 2009-12-10 19:45 UTC (permalink / raw)
  To: Dave Airlie
  Cc: Linus Torvalds, Maarten Maathuis, Xavier Bestel, Dave Airlie,
	linux-kernel, dri-devel


 > If someone has time to take the nouveau patches and convert all the dubious
 > pieces of code to firmware loader interface and set it up so the main code
 > can be merged upstream and the firmware left to one side and someone
 > else can possibly redistribute the firmware then it might happen quicker.

I don't have any nvidia hardware.  Someone send me an ion netbook and
I'll take care of converting nouveau to firmware loader  :)

 - R.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
                             ` (3 preceding siblings ...)
  2009-12-10 19:36           ` Jesse Barnes
@ 2009-12-10 19:37           ` Dave Airlie
  2009-12-10 19:45             ` Roland Dreier
  2009-12-10 19:49           ` Pekka Paalanen
  2009-12-10 19:53           ` Stephane Marchesin
  6 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-12-10 19:37 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

On Fri, Dec 11, 2009 at 4:42 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
>
> On Thu, 10 Dec 2009, Maarten Maathuis wrote:
>>
>> You assume that Red Hat has full control over the project, which i
>> don't think is the case. The reason it isn't in staging yet (as far as
>> i know) is because of some questions over the copyright of some
>> (essential) microcode. Either the question needs to be answered, or it
>> has to be reverse engineered to the point that it's possible to
>> generate it.
>
> I think people are just making up excuses, as evidenced by the fact that
> you're quoting a different excuse than I've heard before.
>
> The fact is, if there are license questions, then Fedora had better not be
> distributing the code either. And they clearly are.

Alan mentioned this at KS, Fedora shipping something and RH taking
responsibility or something going upstream to you and then into multiple
other distros that aren't RH controlled are completely different questions
from the lawyers point of view. At the moment we cannot provide a Signed-off
version of nouveau, I don't think you are willing to accept stuff
without Signed-off-by's
unless something has changed recently.

>
> And don't tell me about "full control". There's absolutely full control
> over it being included or not.

While its not Red Hat's decision, we pay one of the nouveau developers
to work on it, but the project consists of a lot more than him, and RH generally
doesn't order upstreams to do stuff they aren't comfortable with.

If someone has time to take the nouveau patches and convert all the dubious
pieces of code to firmware loader interface and set it up so the main code
can be merged upstream and the firmware left to one side and someone
else can possibly redistribute the firmware then it might happen quicker.

Dave.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
                             ` (2 preceding siblings ...)
  2009-12-10 19:28           ` Alan Cox
@ 2009-12-10 19:36           ` Jesse Barnes
  2009-12-10 19:37           ` Dave Airlie
                             ` (2 subsequent siblings)
  6 siblings, 0 replies; 79+ messages in thread
From: Jesse Barnes @ 2009-12-10 19:36 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Dave Airlie, dri-devel, linux-kernel, Xavier Bestel

On Thu, 10 Dec 2009 10:42:46 -0800 (PST)
Linus Torvalds <torvalds@linux-foundation.org> wrote:
> I _think_ that last one was meant as a joke. But it's damn hard to
> tell, because the ones that are apparently sincere are equally crazy.
> People just seem to make up total crap to make excuses for something
> that everybody knows is wrong.

Heh.  I was only half-kidding.  My point was that Fedora (for the
purposes of graphics at least) is more like an individual developer's
(or small group's) work tree that just happens to be available
publicly.  If you think of it that way, it kind of makes sense that
some changes it includes aren't pushed upstream right away.

But I fully admit it's a bogus excuse and a fairly cheap shot at
Fedora. :)

-- 
Jesse Barnes, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
  2009-12-10 19:13           ` Pekka Enberg
  2009-12-10 19:13           ` Robert Noland
@ 2009-12-10 19:28           ` Alan Cox
  2009-12-10 19:36           ` Jesse Barnes
                             ` (3 subsequent siblings)
  6 siblings, 0 replies; 79+ messages in thread
From: Alan Cox @ 2009-12-10 19:28 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

> The fact is, if there are license questions, then Fedora had better not be 
> distributing the code either. And they clearly are.

Their choice, but it's not their project - they are just chosing to
import it.

> I've heard the "but it's hard to merge" excuse too - which I also know is 
> bullshit, because I can look at the git tree Fedora apparently uses, and 
> it merges without any conflicts what-so-ever.

So merge it - it's your call as the maintainer of the master tree - or put
it in staging and dike out the microcode - which is firmware tree stuff
*anyway*

Alan

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
  2009-12-10 19:13           ` Pekka Enberg
@ 2009-12-10 19:13           ` Robert Noland
  2009-12-10 19:28           ` Alan Cox
                             ` (4 subsequent siblings)
  6 siblings, 0 replies; 79+ messages in thread
From: Robert Noland @ 2009-12-10 19:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Dave Airlie, dri-devel, linux-kernel, Xavier Bestel

On Thu, 2009-12-10 at 10:42 -0800, Linus Torvalds wrote:
> The fact is, if there are license questions, then Fedora had better
> not be 
> distributing the code either. And they clearly are.

This was the issue that prevented me from merging/shipping it with
FreeBSD 8.0.  Without getting foundation lawyers involved, it appears
rather questionable.

robert.

-- 
Robert Noland <rnoland@2hip.net>
2Hip Networks


^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 18:42         ` Linus Torvalds
@ 2009-12-10 19:13           ` Pekka Enberg
  2009-12-10 19:13           ` Robert Noland
                             ` (5 subsequent siblings)
  6 siblings, 0 replies; 79+ messages in thread
From: Pekka Enberg @ 2009-12-10 19:13 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Maarten Maathuis, Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

Hi Linus,

On Thu, 10 Dec 2009, Maarten Maathuis wrote:
>> You assume that Red Hat has full control over the project, which i
>> don't think is the case. The reason it isn't in staging yet (as far as
>> i know) is because of some questions over the copyright of some
>> (essential) microcode. Either the question needs to be answered, or it
>> has to be reverse engineered to the point that it's possible to
>> generate it.

On Thu, Dec 10, 2009 at 8:42 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> I think people are just making up excuses, as evidenced by the fact that
> you're quoting a different excuse than I've heard before.

AFAICT, the "problem" here is that the guys running the nouveau
project are simply not interested in merging the damn thing. I guess
at some point one of us just needs to grab the code and send it to
Greg for inclusion in -staging?

                        Pekka

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 17:40       ` Maarten Maathuis
@ 2009-12-10 18:42         ` Linus Torvalds
  2009-12-10 19:13           ` Pekka Enberg
                             ` (6 more replies)
  0 siblings, 7 replies; 79+ messages in thread
From: Linus Torvalds @ 2009-12-10 18:42 UTC (permalink / raw)
  To: Maarten Maathuis; +Cc: Xavier Bestel, Dave Airlie, linux-kernel, dri-devel



On Thu, 10 Dec 2009, Maarten Maathuis wrote:
> 
> You assume that Red Hat has full control over the project, which i
> don't think is the case. The reason it isn't in staging yet (as far as
> i know) is because of some questions over the copyright of some
> (essential) microcode. Either the question needs to be answered, or it
> has to be reverse engineered to the point that it's possible to
> generate it.

I think people are just making up excuses, as evidenced by the fact that 
you're quoting a different excuse than I've heard before.

The fact is, if there are license questions, then Fedora had better not be 
distributing the code either. And they clearly are.

And don't tell me about "full control". There's absolutely full control 
over it being included or not. 

When I brought this up at the kernel summit, there were various other 
random excuses. I think one of them was that it wasn't part of an official 
Fedora release (which is sure as hell not true at least as of Fedora 12). 

I've heard the "but it's hard to merge" excuse too - which I also know is 
bullshit, because I can look at the git tree Fedora apparently uses, and 
it merges without any conflicts what-so-ever.

The most common excuse is the "oh, but it might change" crap. But that's 
not even a very good excuse to start with, and it's what staging is for 
anyway.

Somebody even made the crazy comment that "but Fedora isn't a real 
distribution, so it doesn't need to follow the rules everybody agreed to 
several _years_ ago wrt merging stuff to mainline".

I _think_ that last one was meant as a joke. But it's damn hard to tell, 
because the ones that are apparently sincere are equally crazy. People 
just seem to make up total crap to make excuses for something that 
everybody knows is wrong.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 16:24     ` Linus Torvalds
@ 2009-12-10 17:40       ` Maarten Maathuis
  2009-12-10 18:42         ` Linus Torvalds
  0 siblings, 1 reply; 79+ messages in thread
From: Maarten Maathuis @ 2009-12-10 17:40 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Xavier Bestel, Dave Airlie, linux-kernel, dri-devel

On Thu, Dec 10, 2009 at 5:24 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
>
> On Thu, 10 Dec 2009, Xavier Bestel wrote:
>>
>> Last time they were asked that, they wanted to be free of changing their
>> kernel/userspace interface before upstreaming.
>
> I've heard all the excuses. If it isn't ready, they shouldn't ship it to
> millions of people. And if it's ready, they should work on merging it.

You assume that Red Hat has full control over the project, which i
don't think is the case. The reason it isn't in staging yet (as far as
i know) is because of some questions over the copyright of some
(essential) microcode. Either the question needs to be answered, or it
has to be reverse engineered to the point that it's possible to
generate it.

>
> No excuses.
>
>                        Linus
>
> ------------------------------------------------------------------------------
> Return on Information:
> Google Enterprise Search pays you back
> Get the facts.
> http://p.sf.net/sfu/google-dev2dev
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 15:40   ` Xavier Bestel
  2009-12-10 16:24     ` Linus Torvalds
@ 2009-12-10 16:47     ` Alan Cox
  2009-12-10 21:49       ` Ingo Molnar
  1 sibling, 1 reply; 79+ messages in thread
From: Alan Cox @ 2009-12-10 16:47 UTC (permalink / raw)
  To: Xavier Bestel; +Cc: Linus Torvalds, Dave Airlie, linux-kernel, dri-devel

> Last time they were asked that, they wanted to be free of changing their
> kernel/userspace interface before upstreaming.

So put it in staging with a note to that effect. That'll also get it more
exposure and review.

Alan

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 15:40   ` Xavier Bestel
@ 2009-12-10 16:24     ` Linus Torvalds
  2009-12-10 17:40       ` Maarten Maathuis
  2009-12-10 16:47     ` Alan Cox
  1 sibling, 1 reply; 79+ messages in thread
From: Linus Torvalds @ 2009-12-10 16:24 UTC (permalink / raw)
  To: Xavier Bestel; +Cc: Dave Airlie, linux-kernel, dri-devel



On Thu, 10 Dec 2009, Xavier Bestel wrote:
> 
> Last time they were asked that, they wanted to be free of changing their
> kernel/userspace interface before upstreaming.

I've heard all the excuses. If it isn't ready, they shouldn't ship it to 
millions of people. And if it's ready, they should work on merging it. 

No excuses.

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10 15:17 ` Linus Torvalds
@ 2009-12-10 15:40   ` Xavier Bestel
  2009-12-10 16:24     ` Linus Torvalds
  2009-12-10 16:47     ` Alan Cox
  0 siblings, 2 replies; 79+ messages in thread
From: Xavier Bestel @ 2009-12-10 15:40 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Dave Airlie, linux-kernel, dri-devel

On Thu, 2009-12-10 at 07:17 -0800, Linus Torvalds wrote:
> 
> On Thu, 10 Dec 2009, Dave Airlie wrote:
> > 
> > The biggest missing feature [ ... ]
> 
> No, the biggest missing feature is that Fedora is _still_ shipping 
> Nouveau, and I'm _still_ not seeing Red Hat people actively trying to get 
> it merged into mainline.
> 
> What the _hell_ is going on?

Last time they were asked that, they wanted to be free of changing their
kernel/userspace interface before upstreaming.

	Xav




^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-12-10  6:17 Dave Airlie
@ 2009-12-10 15:17 ` Linus Torvalds
  2009-12-10 15:40   ` Xavier Bestel
  0 siblings, 1 reply; 79+ messages in thread
From: Linus Torvalds @ 2009-12-10 15:17 UTC (permalink / raw)
  To: Dave Airlie; +Cc: dri-devel, linux-kernel



On Thu, 10 Dec 2009, Dave Airlie wrote:
> 
> The biggest missing feature [ ... ]

No, the biggest missing feature is that Fedora is _still_ shipping 
Nouveau, and I'm _still_ not seeing Red Hat people actively trying to get 
it merged into mainline.

What the _hell_ is going on?

			Linus

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2009-12-10  6:17 Dave Airlie
  2009-12-10 15:17 ` Linus Torvalds
  0 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-12-10  6:17 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 107796 bytes --]


Hi Linus,

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

Highlights:
core: pageflipping ioctl, lots of EDID fixes from Fedora, fbdev helper 
fixes, move DisplayPort i2c helper from Intel to core, kms dirty region 
ioctl added.
AGP: fix to Intel AGP driver to clear GTT properly on startup
Intel: Ironlake support, Pineview support, Overlay support,

TTM: add support for vmwgfx driver which will go in staging, rework the 
validation APIs to allow better placement flexibility

Radeon KMS: Major bulk of changes, add DisplayPort support to KMS driver,
R600 IRQ support (requires out of tree firmware), IRQ mitigation support,
encoder cloninng support, external TMDS chip support, lots of 
suspend/resume fixes, new PLL algo for r500+ from AMD, digital output 
hotplug detection support (required for DisplayPort), radeon object 
handling rework to avoid numerous locking issues.

The biggest missing feature from the Radeon KMS driver before we can
probably mark it not-staging is some sort of power management support,
this is being worked on, but is a hairy problem, but lots of people
have cards that run hot or with full fan and it would be nice to do 
something about it. However we will probably remove the staging bit before
2.6.33 goes live.

Also VMware have submitted a driver to go into staging to drive their
virtual GPU, that we should probably merge via Greg before the windows 
closes.

Dave.

 drivers/char/agp/intel-agp.c                       |  103 +-
 drivers/gpu/drm/Makefile                           |    2 +-
 drivers/gpu/drm/drm_crtc.c                         |  176 +++-
 drivers/gpu/drm/drm_crtc_helper.c                  |    5 +-
 .../{i915/intel_dp_i2c.c => drm_dp_i2c_helper.c}   |   76 +-
 drivers/gpu/drm/drm_drv.c                          |   42 +-
 drivers/gpu/drm/drm_edid.c                         |  328 +++--
 drivers/gpu/drm/drm_fb_helper.c                    |   23 +-
 drivers/gpu/drm/drm_fops.c                         |  112 ++-
 drivers/gpu/drm/drm_irq.c                          |  130 ++-
 drivers/gpu/drm/drm_mm.c                           |  110 ++-
 drivers/gpu/drm/drm_modes.c                        |   28 +-
 drivers/gpu/drm/drm_stub.c                         |   15 +
 drivers/gpu/drm/i915/Makefile                      |    2 +-
 drivers/gpu/drm/i915/dvo_ch7017.c                  |    9 +-
 drivers/gpu/drm/i915/dvo_ch7xxx.c                  |   16 +-
 drivers/gpu/drm/i915/dvo_ivch.c                    |   37 +-
 drivers/gpu/drm/i915/dvo_sil164.c                  |   20 +-
 drivers/gpu/drm/i915/dvo_tfp410.c                  |   34 +-
 drivers/gpu/drm/i915/i915_debugfs.c                |  120 ++-
 drivers/gpu/drm/i915/i915_dma.c                    |   40 +-
 drivers/gpu/drm/i915/i915_drv.c                    |    1 +
 drivers/gpu/drm/i915/i915_drv.h                    |   80 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  114 ++-
 drivers/gpu/drm/i915/i915_gem_tiling.c             |    6 +-
 drivers/gpu/drm/i915/i915_irq.c                    |  163 ++-
 drivers/gpu/drm/i915/i915_opregion.c               |   92 ++-
 drivers/gpu/drm/i915/i915_reg.h                    |   71 +-
 drivers/gpu/drm/i915/i915_suspend.c                |   86 +-
 drivers/gpu/drm/i915/intel_bios.c                  |  137 ++-
 drivers/gpu/drm/i915/intel_bios.h                  |   17 +
 drivers/gpu/drm/i915/intel_crt.c                   |   50 +-
 drivers/gpu/drm/i915/intel_display.c               | 1036 ++++++++++-----
 drivers/gpu/drm/i915/intel_dp.c                    |  162 ++-
 drivers/gpu/drm/i915/intel_drv.h                   |   44 +
 drivers/gpu/drm/i915/intel_fb.c                    |    7 +-
 drivers/gpu/drm/i915/intel_hdmi.c                  |   55 +-
 drivers/gpu/drm/i915/intel_i2c.c                   |   21 +-
 drivers/gpu/drm/i915/intel_lvds.c                  |  140 ++-
 drivers/gpu/drm/i915/intel_overlay.c               | 1416 ++++++++++++++++++++
 drivers/gpu/drm/i915/intel_sdvo.c                  |   14 +-
 drivers/gpu/drm/i915/intel_tv.c                    |   58 +-
 drivers/gpu/drm/radeon/Makefile                    |    2 +-
 drivers/gpu/drm/radeon/atom.c                      |   33 +-
 drivers/gpu/drm/radeon/atom.h                      |    2 +
 drivers/gpu/drm/radeon/atombios.h                  |    2 +-
 drivers/gpu/drm/radeon/atombios_crtc.c             |   59 +-
 drivers/gpu/drm/radeon/atombios_dp.c               |  790 +++++++++++
 drivers/gpu/drm/radeon/r100.c                      |  245 +++-
 drivers/gpu/drm/radeon/r100_track.h                |   10 +-
 drivers/gpu/drm/radeon/r300.c                      |   33 +-
 drivers/gpu/drm/radeon/r420.c                      |   25 +-
 drivers/gpu/drm/radeon/r500_reg.h                  |    2 +
 drivers/gpu/drm/radeon/r520.c                      |    8 +-
 drivers/gpu/drm/radeon/r600.c                      | 1147 +++++++++++++++-
 drivers/gpu/drm/radeon/r600_blit_kms.c             |   34 +-
 drivers/gpu/drm/radeon/r600d.h                     |  212 +++-
 drivers/gpu/drm/radeon/radeon.h                    |  165 ++-
 drivers/gpu/drm/radeon/radeon_asic.h               |   70 +
 drivers/gpu/drm/radeon/radeon_atombios.c           |  332 ++++--
 drivers/gpu/drm/radeon/radeon_benchmark.c          |   36 +-
 drivers/gpu/drm/radeon/radeon_clocks.c             |   23 +-
 drivers/gpu/drm/radeon/radeon_combios.c            |  688 ++++++++--
 drivers/gpu/drm/radeon/radeon_connectors.c         |  194 +++-
 drivers/gpu/drm/radeon/radeon_cp.c                 |   45 +-
 drivers/gpu/drm/radeon/radeon_cs.c                 |   13 +-
 drivers/gpu/drm/radeon/radeon_device.c             |   62 +-
 drivers/gpu/drm/radeon/radeon_display.c            |  145 ++-
 drivers/gpu/drm/radeon/radeon_drv.c                |    4 +
 drivers/gpu/drm/radeon/radeon_drv.h                |    1 -
 drivers/gpu/drm/radeon/radeon_encoders.c           |  276 +++--
 drivers/gpu/drm/radeon/radeon_fb.c                 |   72 +-
 drivers/gpu/drm/radeon/radeon_fence.c              |   47 +-
 drivers/gpu/drm/radeon/radeon_fixed.h              |   17 +
 drivers/gpu/drm/radeon/radeon_gart.c               |   42 +-
 drivers/gpu/drm/radeon/radeon_gem.c                |  104 +-
 drivers/gpu/drm/radeon/radeon_i2c.c                |  182 ++-
 drivers/gpu/drm/radeon/radeon_irq_kms.c            |   61 +-
 drivers/gpu/drm/radeon/radeon_kms.c                |   42 +-
 drivers/gpu/drm/radeon/radeon_legacy_crtc.c        |  104 ++-
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c    |  125 +-
 drivers/gpu/drm/radeon/radeon_mode.h               |  149 ++-
 drivers/gpu/drm/radeon/radeon_object.c             |  560 +++-----
 drivers/gpu/drm/radeon/radeon_object.h             |  157 ++-
 drivers/gpu/drm/radeon/radeon_pm.c                 |    6 +-
 drivers/gpu/drm/radeon/radeon_reg.h                |   60 +-
 drivers/gpu/drm/radeon/radeon_ring.c               |   67 +-
 drivers/gpu/drm/radeon/radeon_test.c               |   55 +-
 drivers/gpu/drm/radeon/radeon_ttm.c                |   94 +-
 drivers/gpu/drm/radeon/rs400.c                     |   17 +-
 drivers/gpu/drm/radeon/rs600.c                     |  236 +++-
 drivers/gpu/drm/radeon/rs600d.h                    |  112 ++-
 drivers/gpu/drm/radeon/rs690.c                     |   57 +-
 drivers/gpu/drm/radeon/rv515.c                     |   24 +-
 drivers/gpu/drm/radeon/rv770.c                     |   79 +-
 drivers/gpu/drm/ttm/Makefile                       |    3 +-
 drivers/gpu/drm/ttm/ttm_bo.c                       |  545 ++++----
 drivers/gpu/drm/ttm/ttm_bo_util.c                  |    1 +
 drivers/gpu/drm/ttm/ttm_bo_vm.c                    |    7 +-
 drivers/gpu/drm/ttm/ttm_execbuf_util.c             |  117 ++
 drivers/gpu/drm/ttm/ttm_lock.c                     |  311 +++++
 drivers/gpu/drm/ttm/ttm_memory.c                   |   16 +-
 drivers/gpu/drm/ttm/ttm_object.c                   |  452 +++++++
 drivers/gpu/drm/ttm/ttm_tt.c                       |    1 +
 include/drm/drm.h                                  |   65 +-
 include/drm/drmP.h                                 |   87 +-
 include/drm/drm_crtc.h                             |   47 +-
 .../i915/intel_dp.h => include/drm/drm_dp_helper.h |   74 +-
 include/drm/drm_edid.h                             |    8 +
 include/drm/drm_mm.h                               |   35 +
 include/drm/drm_mode.h                             |   80 ++-
 include/drm/drm_os_linux.h                         |    2 +-
 include/drm/i915_drm.h                             |   78 +-
 include/drm/mga_drm.h                              |    2 +-
 include/drm/radeon_drm.h                           |    2 +-
 include/drm/ttm/ttm_bo_api.h                       |   56 +-
 include/drm/ttm/ttm_bo_driver.h                    |   37 +-
 include/drm/ttm/ttm_execbuf_util.h                 |  107 ++
 include/drm/ttm/ttm_lock.h                         |  247 ++++
 include/drm/ttm/ttm_memory.h                       |    1 +
 include/drm/ttm/ttm_object.h                       |  267 ++++
 include/drm/via_drm.h                              |    2 +-
 122 files changed, 12028 insertions(+), 2947 deletions(-)
 rename drivers/gpu/drm/{i915/intel_dp_i2c.c => drm_dp_i2c_helper.c} (79%)
 create mode 100644 drivers/gpu/drm/i915/intel_overlay.c
 create mode 100644 drivers/gpu/drm/radeon/atombios_dp.c
 create mode 100644 drivers/gpu/drm/ttm/ttm_execbuf_util.c
 create mode 100644 drivers/gpu/drm/ttm/ttm_lock.c
 create mode 100644 drivers/gpu/drm/ttm/ttm_object.c
 rename drivers/gpu/drm/i915/intel_dp.h => include/drm/drm_dp_helper.h (70%)
 create mode 100644 include/drm/ttm/ttm_execbuf_util.h
 create mode 100644 include/drm/ttm/ttm_lock.h
 create mode 100644 include/drm/ttm/ttm_object.h

commit 4361e52ad0372e6fd2240a2207b49a4de1f45ca9
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Dec 10 15:59:32 2009 +1000

    drm/radeon/kms: fix warning about cur_placement being uninitialised.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 115a5c2ba0aac55e1bac390f271c818c3cbfa1fb
Merge: 0b5e8db fb53f86
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Dec 10 15:47:57 2009 +1000

    Merge remote branch 'korg/drm-radeon-next' of into drm-linus
    
    This merges some TTM overhauls to allow us to do better object placement
    for certain radeon GPUs that need scanout+cursor within range of each other,
    along with an API change to not return ERESTART to userspace, but to use
    ERESTARTSYS properly internally and have it convert to EINTR and catch that
    correctly. Also lots of radeon fixes across the board.

commit 0b5e8db639de032bd4febbb0a5b1cd2c19bac26d
Merge: 7b0a9e8 4f8d619
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Dec 10 15:44:11 2009 +1000

    Merge remote branch 'anholt/drm-intel-next' into drm-linus
    
    Pull more Intel changes in, especially one to init the GTT properly

commit fb53f8621a3fab88776ae2450a1f3afc7920231b
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 21:55:10 2009 +0100

    drm/ttm: Print debug information on memory manager when eviction fails
    
    This add helper function to print information on eviction placements
    and memory manager status when eviction fails to allocate memory
    space.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 99d7e48e8cb867f303439ad40e995e203841bd94
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 21:55:09 2009 +0100

    drm: Add memory manager debug function
    
    drm_mm_debug_table will print the memory manager state
    in table allowing to give a snapshot of the manager at
    given point in time. Usefull for debugging.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 550e2d9270e2f0a10c3b063899f70e4cca25fe72
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Dec 9 14:15:38 2009 +1000

    drm/radeon/kms: restore surface registers on resume.
    
    On resume on my rv530 laptop surface cntl was left disabled, so
    wierd stuff would happen with rendering to a tiled front buffer.
    
    This checks if the surface regs are assigned to bos and reprograms
    the surface registers on resume using the same path that clears
    them all on init.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 779720a3209849be202ac36a811e934865c50971
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Dec 9 19:31:44 2009 -0500

    drm/radeon/kms/r600/r700: fallback gracefully on ucode failure
    
    Sent the wrong patch earlier.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7cb7d1d7b650c9764c8a1b00e2b43d932acde779
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 22:14:27 2009 +0100

    drm/ttm: Initialize eviction placement in case the driver callback doesn't
    
    This would allow to catch driver callback error of not properly
    setting the eviction placement structure.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit cf0fe4566dcc0c5bd9b7da8c9a53e712593db118
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 18:21:55 2009 +0100

    drm/radeon/kms: cleanup structure and module if initialization fails
    
    This would allow us to properly unload others module like TTM if
    initialization fails after we initiliazed TTM structure.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit eaa5fd1a66fefd7cc918d80250d66fa48b10b81f
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 21:57:37 2009 +0100

    drm/radeon/kms: actualy set the eviction placements we choose
    
    Stupid bug, somehow copying the eviction placements into the
    result structure was missing.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 4a04a844ba0c09b5641bf2ebd9f9517aa76e52fb
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Wed Dec 9 17:39:16 2009 +0100

    drm/radeon/kms: Fix NULL ptr dereference
    
    radeon_atombios_fini might be call while there is not valid
    atombios structure allocated, thus test for a not null ptr
    before trying to access this structure.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit b27b63750d912e80d61d2120c4a1664062d0f808
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Dec 9 17:44:25 2009 -0500

    drm/radeon/kms/avivo: add support for new pll selection algo
    
    Supported on all AVIVO-based asics.
    Can be disabled via the new_pll module parameter:
    new_pll=0 - disable
    new_pll=1 - enable
    enabled by default
    
    [airlied: fixed to use do_div]
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 69b3b5e59bc763c30d0098ae4bbe1225c0e82a04
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Dec 9 14:40:06 2009 -0500

    drm/radeon/kms/avivo: fix some bugs in the display bandwidth setup
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 2e7b6f7fa62d92d941c626f8ae45f5cd75a52d55
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Dec 9 15:32:23 2009 +1000

    drm/radeon/kms: fix return value from fence function.
    
    We only want to return here for errors, the wait functions return
    a positive timeout otherwise, which gets back to userspace and
    causes X to crash here.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 5cc6fbab9da5680e7e5d2507d0f0c2c52ff18031
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Mon Dec 7 18:36:19 2009 +0100

    drm/radeon: Remove tests for -ERESTART from the TTM code.
    
    Also sets affected TTM calls up to not wait interruptible, since
    that would cause an in-kernel spin until the TTM call succeeds, since
    the Radeon code does not return to user-space when a signal is received.
    
    Modifies interruptible fence waits to return -ERESTARTSYS rather than
    -EBUSY when interrupted by a signal, since that's the (yet undocumented)
    semantics required by the TTM sync object hooks.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 98ffc4158e12008102cb6ae242a7fc46f9243f0d
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Mon Dec 7 18:36:18 2009 +0100

    drm/ttm: Have the TTM code return -ERESTARTSYS instead of -ERESTART.
    
    Return -ERESTARTSYS instead of -ERESTART when interrupted by a signal.
    The -ERESTARTSYS is converted to an -EINTR by the kernel signal layer
    before returned to user-space.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 312ea8da049a1830aa50c6e00002e50e30df476e
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Mon Dec 7 15:52:58 2009 +0100

    drm/radeon/kms: Convert radeon to new TTM validation API (V2)
    
    This convert radeon to use new TTM validation API, it doesn't
    really take advantage of it beside in the eviction case.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ca262a9998d46196750bb19a9dc4bd465b170ff7
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Tue Dec 8 15:33:32 2009 +0100

    drm/ttm: Rework validation & memory space allocation (V3)
    
    This change allow driver to pass sorted memory placement,
    from most prefered placement to least prefered placement.
    In order to avoid long function prototype a structure is
    used to gather memory placement informations such as range
    restriction (if you need a buffer to be in given range).
    Range restriction is determined by fpfn & lpfn which are
    the first page and last page number btw which allocation
    can happen. If those fields are set to 0 ttm will assume
    buffer can be put anywhere in the address space (thus it
    avoids putting a burden on the driver to always properly
    set those fields).
    
    This patch also factor few functions like evicting first
    entry of lru list or getting a memory space. This avoid
    code duplication.
    
    V2: Change API to use placement flags and array instead
        of packing placement order into a quadword.
    V3: Make sure we set the appropriate mem.placement flag
        when validating or allocation memory space.
    
    [Pending Thomas Hellstrom further review but okay
    from preliminary review so far].
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a2e68e92d384d37c8cc6bb7206d43b1eb9bc3f08
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Mon Dec 7 15:52:56 2009 +0100

    drm: Add search/get functions to get a block in a specific range
    
    These are required for changes to TTM.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit cf2f05d30dacab32e6866347be6cbfa4030b33b7
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 15:45:13 2009 +1000

    drm/radeon/kms: fix avivo tiling regression since radeon object rework
    
    The object rework moved the tiling flag setup around wrongly,
    so tiling we getting setup then overwritten by fb format.
    
    Fixes regression with drm-radeon-next on rv530 laptop tiling test.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4f8d619cc3ab805aa1726c1dfe196a0705b955bd
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Dec 8 22:12:06 2009 +0000

    drm/i915: Remove a debugging printk from hangcheck
    
    A residual bare printk survived the merger of the hang detector, remove
    this debugging left-over.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit d3f420d1089169fb48366e1aa750bdd92db0a04b
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 8 14:30:49 2009 -0500

    drm/radeon/kms: make sure i2c id matches
    
    Entries in the i2c table aren't always ordered
    by id.  This allows us to remove some quirks
    that are no longer needed.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 279b215ecb8acc735c01ac89b1aa28c4a27dcafa
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 8 14:07:03 2009 -0500

    drm/radeon/kms: make sure ss id matches
    
    entries in the ss table aren't always ordered
    by id.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 390d0bbe88b3ef00c28086076d791533407f298e
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 8 12:48:20 2009 -0500

    drm/radeon/kms: connector fixes
    
    - Don't add dac load detection property to DVI-D
    - Make sure i2c info is valid before adding DP aux chan bus
    - Don't create scaling_mode_property twice
    - fix typo that prevented coherent and load detection from working
    - add coherent prop to DP (for dp->dvi adapters)
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ec42a6e7dcfc2e9a92fad1c132bc9e110fafeb3f
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 15:58:08 2009 +1000

    drm/ttm: fix memory leak noticed by kmemleak.
    
    If we don't need the zone we need to free it.
    
    Acked-By: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit b16d9acbdb97452d1418420e069acf7381ef10bb
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Dec 9 11:23:42 2009 +0800

    drm: disable all the possible outputs/crtcs before entering KMS mode
    
    Sometimes we will use a crtc for integerated LVDS, which is different with
    that assigned by BIOS. If we want to get flicker-free transitions,
    then we could read out the current state for it and set our current state
    accordingly.
    
    But it is true that if we aren't reading current state out, we do need
    to turn everything off before modesetting.  Otherwise the clocks can get very
    angry and we get things worse than a flicker at boot.
    In fact we also do the similar thing in UMS mode. We will disable all the
    possible outputs/crtcs for the first modesetting.
    
    So we disable all the possible outputs/crtcs before entering the KMS mode.
    Before we configure connector/encoder/crtc, the function of
    drm_helper_disable_unused_function can disable all the possible outputs/crtcs.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Rafal Milecki <zajec5@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7e8b60faea972604c315634cff62d44803731ea9
Author: Andrew Lutomirski <luto@mit.edu>
Date:   Sun Nov 8 13:49:51 2009 -0500

    drm/i915: restore render clock gating on resume
    
    Rather than restoring just a few clock gating registers on resume,
    just reinitialize the whole thing.
    
    Signed-off-by: Andy Lutomirski <luto@mit.edu>
    [anholt: Fixed up for RC6 support landed since the patch was written]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 7b0a9e8302522d5f7bb7fab6b8a3c8ce8181609c
Merge: 3f838fc d4877cf
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 14:29:15 2009 +1000

    Merge remote branch 'korg/drm-radeon-dp' into drm-linus
    
    This merges the radeon KMS DisplayPort and hotplug detect support.
    
    Tested on RV635 DP card with a Dell 2408 monitor.
    
    Conflicts:
    	drivers/gpu/drm/drm_fb_helper.c

commit 3f838fc50c0dcdc993c24f6f5da0cda1228fc276
Merge: 3ff9916 22dd501
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 14:06:07 2009 +1000

    Merge remote branch 'korg/drm-radeon-next' into drm-linus
    
    This merges all the radeon changes that weren't reliant on core-next.

commit 3ff99164f67aae78a2bd2313f65ad55bddb1ffea
Merge: 1bd049f f2b115e
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 14:03:47 2009 +1000

    Merge remote branch 'anholt/drm-intel-next' into drm-linus
    
    This merges the upstream Intel tree and fixes up numerous conflicts
    due to patches merged into Linus tree later in -rc cycle.
    
    Conflicts:
    	drivers/char/agp/intel-agp.c
    	drivers/gpu/drm/drm_dp_i2c_helper.c
    	drivers/gpu/drm/i915/i915_irq.c
    	drivers/gpu/drm/i915/i915_suspend.c

commit 1bd049fa895f9c6743f38b52ce14775f5a31ea63
Merge: 22763c5 b0a007d
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 13:52:41 2009 +1000

    Merge branch 'drm-core-next' into drm-linus
    
    Bring all core drm changes into 2.6.32 tree and resolve
    the conflict that occurs.
    
    Conflicts:
    	drivers/gpu/drm/drm_fb_helper.c

commit b0a007dc27d8d3ff3db07b3ea997323d9330f770
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Dec 8 11:15:10 2009 +1000

    drm/kms: fix fb cmap allocation to use modeset->crtc not crtc
    
    crtc may be undefined at this point.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d4877cf2293f5463f531769fd12300cb3417c778
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 16:56:37 2009 -0500

    drm/radeon/kms: enable hpd support
    
    This enabled interrupt driven hpd support for all
    radeon chips.  Assuming the hpd pin is wired up
    correctly, the driver will generate uevents on
    digital monitor connect and disconnect and retrain
    DP monitors automatically.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 429770b3e39999c4d025fbcb9959502adc3989d8
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 15:26:55 2009 -0500

    drm/radeon/kms: add asic callbacks for hpd
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e0df1ac5c2cf346f4cc335025734978a4d747aa0
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 15:12:21 2009 -0500

    drm/radeon/kms: add hpd support for r6xx/r7xx/rs780/rs880 asics
    
    This just adds the functionality, it's not hooked up
    yet.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit dcfdd4083509f9c46b1e92c58c062d50da50580e
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 15:04:19 2009 -0500

    drm/radeon/kms: add hpd support for r5xx/rs600/rs690/rs740 asics
    
    This just adds the functionality, it's not hooked up
    yet.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 05a05c506f52041daa511f4899b63d21c9457474
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 14:53:41 2009 -0500

    drm/radeon/kms: add hpd support for r1xx-r4xx asics
    
    This just adds the functionality, it's not hooked up
    yet.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit b500f68045058454549f5f8553110ef086d8d06b
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Dec 3 13:08:53 2009 -0500

    drm/radeon/kms: add regs and irq tracking bits for hpd
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit eed45b30cd1423f8dc10b4312700773cac13c1c8
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 14:45:27 2009 -0500

    drm/radeon/kms: get HPD info for connectors
    
    This populates the connectors with HPD (Hot Plug Detect)
    information.  This will be used in subsequent patches
    for automatic digital monitor connect/disconnect handling.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 53c1e09fea4cf3fc0ec1f735a5fcab78c43cb55d
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Nov 27 13:14:37 2009 -0500

    drm/radeon/kms: clean up DP debugging
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 9fa05c98d69eb77c82e59b5e434ca63bba230ba0
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Nov 27 13:01:46 2009 -0500

    drm/radeon/kms: fix DP detect
    
    only return connected if there is actually a
    monitor connected.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e8696330e2a95e1b5872550dcf3ed04aecaf96b3
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 26 08:57:23 2009 +1000

    drm/radeon/kms: drop unused array to fix warning.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 58682f107ad5178e47a45af3af1851442d05d7fc
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 26 08:56:35 2009 +1000

    drm/radeon/kms: do dp link training at dpms on time not mode set.
    
    This moves the radeon DP link training call to happen when we
    dpms on the encoder not when we set the mode.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 5fbfce7fc906c4a9e3d5e0872e5d6affaca54761
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 26 08:55:18 2009 +1000

    drm/radeon/kms: make displayport work by reorganising vsemph setup.
    
    This fix reorganises the initial DP link training slightly, and
    actually makes DP work under kms here.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 54d9cb47dd6a754e434e5adeccb3a1e2835594fd
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 26 08:49:17 2009 +1000

    drm/radeon/kms/dp: fix return in dpcd retrival.
    
    Not returning here caused us to get a display port version of 0 for everything
    this caused power up to not get sent which ends up in a black screen.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ffd09c648a76a1cf96872c033e98d4730f9b10a4
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 24 16:13:23 2009 -0500

    drm/radeon/kms: free aux channel i2c adapter on destroy
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 5801ead6bd6bddf5505d6eab55f84d8ee8106cd8
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 24 13:32:59 2009 -0500

    drm/radeon/kms: add support for DP modesetting
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f92a8b6758bdc0f277c4f42aa7d736a205ac9ded
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 23 18:40:40 2009 -0500

    drm/radeon/kms: handle dp sinks in atom encoder/transmitter tables
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4143e919ea999c9356ae4f71b5a3a80e075290d5
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 23 18:02:35 2009 -0500

    drm/radeon/kms: store sink type in atom dig connector
    
    This will be used laster when the encoder and transmitters
    are set up.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 6a93cb250a60af1bb7b4070949f8546a2fdc52ef
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 23 17:39:28 2009 -0500

    drm/radeon/kms: i2c reorg
    
    - keep the atom i2c id in the i2c rec
    - fix gpio regs for GPIO and MDGPIO on pre-avivo chips
    - track whether the i2c line is hw capable
    - track whether the i2c line uses the multimedia i2c block
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 1a66c95a64c9ae0bc8382254f544b24b23f498ec
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Nov 20 19:40:13 2009 -0500

    drm/radeon/kms: DP fixes and cleanup from the ddx
    
    - dpcp -> dpcd
    - fix up dig encoder routing
    - aux transaction table takes delay in 10 usec units
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 746c1aa4d100f7441423050f34be79f401fbf7d4
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 07:07:28 2009 +1000

    drm/radeon/kms: initial radeon displayport porting
    
    This is enough to retrieve EDID and DPCP.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 5618ca6abc2d6f475b258badc017a5254cf43d1b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 2 15:15:30 2009 +0000

    drm/i915: Set the error code after failing to insert new offset into mm ht.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: stable@kernel.org
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit fcffb947668073fd9c47da33f8e72add7f62163d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Dec 2 16:48:57 2009 +0000

    drm/i915: Report purgeable status in buffer lists.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit fc61901373987ad61851ed001fe971f3ee8d96a3
Author: David Woodhouse <dwmw2@infradead.org>
Date:   Wed Dec 2 11:00:05 2009 +0000

    agp/intel-agp: Clear entire GTT on startup
    
    Some BIOSes fail to initialise the GTT, which will cause DMA faults when
    the IOMMU is enabled. We need to clear the whole thing to point at the
    scratch page, not just the part that Linux is going to use.
    
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    [anholt: Note that this may also help with stability in the presence of
    driver bugs, by not drawing to memory we don't own]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 447aeb907e417e0e837b4a4026d5081c88b6e8ca
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 09:25:45 2009 +1000

    drm/ttm: fix unreachable code.
    
    None of the in-tree drivers use user objects yet so this wasn't hitting
    us.
    
    Stanse found unreachable code in ttm_bo_add_ttm:
    http://decibel.fi.muni.cz/~xslaby/stanse/error.cgi?db=32&id=714#l238
    
    Reported-by: Jiri Slaby <jirislaby@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ab2c0672984f7f7ebec6d5f615fd5a6ebad26f3d
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 4 10:55:24 2009 +1000

    drm/intel: refactor DP i2c support and DP common header to drm helper
    
    Both radeon and nouveau can re-use this code so move it up a level
    so they can. However the hw interfaces for aux ch are different
    enough that the code to translate from mode, address, bytes
    to actual hw interfaces isn't generic, so move that code into the
    Intel driver.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 22dd50133ab7548adb23e86c302d6e8b75817e8c
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Sun Dec 6 19:45:17 2009 -0500

    drm/radeon/kms: fix vram setup on rs600/rs690/rs740
    
    Don't remap vram to 0 on IGP chips.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f2b115e69d46344ae7afcaad5823496d2a0d8650
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:14:42 2009 -0500

    drm/i915: Fix product names and #defines
    
    IGD* isn't a useful name.  Replace with the codenames, as sourced from
    pci.ids.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    [anholt: Fixed up for merge with pineview/ironlake changes]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 2a008d0ccde4ce59a2714e132d5f86a0771e6422
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 16:35:57 2009 -0500

    drm/radeon/kms: more r4xx lvds fixes
    
    Grab pll ref div from regs at driver init.  r4xx seems very
    picky about the dividers for the pll driving lvds.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 92cde00cbaf3236ef7ea9bd4f0b43c8c4a3f507f
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 10:55:12 2009 -0500

    drm/radeon/kms/legacy: set common regs to sane value
    
    The DDX and radeonfb always set these regs to a sane value.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 6b02af1c1f35550ce1a9873841fe9c50b1613591
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Fri Dec 4 10:40:41 2009 -0500

    drm/radeon/kms/legacy: set overscan regs on modeset
    
    These can end up with garbage otherwise.
    
    fixes rh bug 537140
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d904ef9b00a4473af16766e99f17bdbb5f0fde65
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Nov 17 06:29:46 2009 +1000

    drm/radeon/kms: add support to atom parser for FB read/write
    
    FB read/write really doesn't need to access the actual VRAM, we
    can just use a scratch area. This is required for using atom displayport
    calls later.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 107f517b8f2a9d5858e640bc046606b1cff14bb5
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:14:41 2009 -0500

    agp/intel: Fix product names and #defines
    
    IGD* isn't a useful name.  Replace with the codenames, as sourced
    from pci.ids.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit f84676185368e36c6bc0eeab87ab73ed39042648
Merge: 22dd501 447aeb9
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 8 07:03:55 2009 +1000

    Merge remote branch 'origin/drm-core-next' into test
    
    Conflicts:
    	drivers/gpu/drm/drm_fb_helper.c

commit ffb4728095b030f0885ea8e0907ee4ac57b130ee
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Dec 7 11:34:08 2009 +0000

    drm/i915: Drop a some common DRM_ERROR()
    
    These are handled by the error return being propagated to user-space and
    do not any add any information to the original error, so are useless.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 85364905f9ae12d19cb34099257d493e5d9a0c4e
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Dec 3 09:52:43 2009 -0800

    drm/i915: warn if Pineview CxSR can't be enabled
    
    If we don't detect a supported memory configuration, we can't enable
    CxSR.  Warn the user in this case so they can file a bug.

commit 22fd0fab3b512b5fcb4fd0b0668deeaa701511f9
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Dec 2 13:42:53 2009 -0800

    drm/i915: pageflip fixes
    
    This patch brings the tree up to date with some fixes that were in a
    more recent version of the page flipping patch you applied.  It fixes
    pre-965 flip support, removes a leftover hack that forced alignment,
    and initializes the pipe & plane CRTC mappings.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 85bb0c377f259100d049937e30c85f7a8dea0fa0
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 6 21:46:28 2009 +0100

    drm: Export symbols needed for the vmwgfx driver.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4bfd75cb08a362cb1df35dc6a5032d12843c6d87
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 6 21:46:27 2009 +0100

    drm/ttm: Export symbols needed for the vmwgfx driver.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit c078aa2fc4d8e022c3b611e07b25ff77afdf9b73
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 6 21:46:26 2009 +0100

    drm/ttm: Add TTM execbuf utilities.
    
    Utilities to reserve, unreserve and fence a list of TTM
    buffer objects in a deadlock-safe manner.
    
    Used by the vmwgfx driver.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4aff1013f5e4ae08a24155c029a2c5e1a7929de6
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 6 21:46:25 2009 +0100

    drm/ttm: Add ttm lock functionality.
    
    This is intended to be used by ttm-aware drivers to
    1) Block clients to inactive masters when
    they try to validate buffers for GPU use.
    2) Optionally block clients to the current master when
    there is thrashing due to GPU memory shortage.
    
    Used by the vmwgfx driver.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 88071539a3f5195f9e9dae38a3e35b3ce4b9f9fc
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Sun Dec 6 21:46:24 2009 +0100

    drm/ttm: Add user-space objects.
    
    Add objects needed for user-space to maintain reference counts on ttm objects.
    This is used by the vmwgfx driver which allows user-space to maintain
    map-counts on dma buffers, lock-counts on the ttm lock and ref-counts on
    gpu surfaces, gpu contexts and dma buffer.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 64bffd03756249e11b8651ccf33ac3a50a93ed4c
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Dec 7 13:29:51 2009 +1000

    drm/radeon/kms: fix RS600 MC setup.
    
    Again we try to put VRAM at 0, and it didn't work on this chipset,
    reports of corrupt RAM appeared on irc and bugzilla.
    
    Fix the vram location according to what the BIOS setup, I'm not 100%
    sure we don't need the same thing on rs690/rs780/rs880, we probably
    should do it there just in case as its what the DDX does.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4f15d24adb39803ba7b9363d0bb5dd714a6706f6
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Sat Dec 5 17:55:37 2009 -0500

    drm/radeon/kms: fix up gart setup on rs600
    
    Set up rs600 gart like r600:
    - set gart system aperture to vram
    - inside gart system aperture is unmapped*
    - outside gart system aperture is mapped*
    
    *mapped refers to memory handled by page tables
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit aa1a750ecb3412f69fe34081b249aa978154f360
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 4 11:51:34 2009 +1000

    drm/radeon/kms: quirk for Gigabyte RV515 card, DVI+VGA not 2xDVI.
    
    Similiar to other quirks for RV515, this card has no second DVI port.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 0088dbdb809e8799cb8f26da5ac64b15201fa99d
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Dec 3 16:28:02 2009 -0500

    drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 722f29434e72188b2d20f9b41f4b5952073ed568
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Dec 3 16:18:19 2009 -0500

    drm/radeon/kms: fix vram setup on rs600
    
    also fix up rs690 mem width.
    
    should fix fdo bug 25408
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 8de21525439e6b5bb8d8c81e49094d867bf82f6d
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Dec 3 12:15:54 2009 -0500

    drm/radeon/kms: fix legacy crtc2 dpms
    
    noticed by Matthijs Kooijman on fdo bug 22140
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 500b758725314ab1b5316eb0caa5b0fa26740e6b
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Dec 2 11:46:52 2009 -0500

    drm/radeon/kms: handle vblanks properly with dpms on
    
    avivo chips
    
    Copied from pre-avivo code.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4e3f9b78ff917cc5c833858fdb5d96bc262e0bf3
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 1 14:49:50 2009 -0500

    drm/radeon/kms: Add quirk for HIS X1300 board
    
    Board is DVI+VGA, not DVI+DVI
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4c4f5413c3208da7621cd29baac1fbdca89181b2
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Wed Dec 2 00:59:37 2009 -0500

    drm/radeon/kms: don't use bios dividers for lvds on r4xx
    
    R4xx cards don't have lvds pll dividers since they use atom.
    
    should fix rh bug 541562
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d684076627a4561ea698bf7652a1a1baabdcdbdc
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Tue Nov 10 22:26:21 2009 +0100

    drm/radeon/kms: fix ring info in debugfs on r600+
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Acked-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 93e7de7b37cb6c75032007e5b84e1305f1705485
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Wed Nov 4 23:34:10 2009 +0100

    drm/radeon/kms: fix typo in define: engine -> memory
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit c142c3e5e3e826bdeca77062ec44be558ff2f6b9
Author: Rafał Miłecki <zajec5@gmail.com>
Date:   Fri Nov 6 11:38:34 2009 +0100

    drm/radeon/kms/pm: fix typos
    
    Unit typo noticed by taiu on IRC
    
    Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 01d01ba947670cf58f22119fc126fdf39078f6ba
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 4 10:18:02 2009 +1000

    drm/mm: fixup typo in debug functions.
    
    Free and used were reversed.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 884840aa3ce3214259e69557be5b4ce0d781ffa4
Author: Jakob Bornecrantz <jakob@vmware.com>
Date:   Thu Dec 3 23:25:47 2009 +0000

    drm: Add dirty ioctl and property
    
    This commit adds a ioctl and property to allow userspace
    to notify the kernel that a framebuffer has changed. Instead
    of snooping the command stream this allows finer grained
    tracking of which areas have changed.
    
    The primary user for this functionality is virtual hardware
    like the vmware svga device, but also Xen hardware likes to
    be notify. There is also real hardware like DisplayLink and
    DisplayPort that might take advantage of this ioctl.
    
    Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit c3a73ba13bac7fd96030f39202b2d37fb19c46a6
Author: Martin Michlmayr <tbm@cyrius.com>
Date:   Thu Nov 19 16:29:45 2009 +0000

    drm/ttm: Fix build failure due to missing struct page
    
    drm/ttm fails to build on MIPS because "struct page" is not known:
    | In file included from drivers/gpu/drm/ttm/ttm_memory.c:28:
    | include/drm/ttm/ttm_memory.h:154: warning: 'struct page' declared inside parameter list
    | include/drm/ttm/ttm_memory.h:154: warning: its scope is only this definition or declaration, which is probably not what you want
    | include/drm/ttm/ttm_memory.h:156: warning: 'struct page' declared inside parameter list
    | drivers/gpu/drm/ttm/ttm_memory.c:540: error: conflicting types for 'ttm_mem_global_alloc_page'
    | include/drm/ttm/ttm_memory.h:154: error: previous declaration of 'ttm_mem_global_alloc_page' was here
    | drivers/gpu/drm/ttm/ttm_memory.c:561: error: conflicting types for 'ttm_mem_global_free_page'
    | include/drm/ttm/ttm_memory.h:156: error: previous declaration of 'ttm_mem_global_free_page' was here
    
    Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
    Cc: stable@kernel.org
    Acked-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 46a79fa08a9a890a12cf9ec3ce51800911a907bf
Author: Dan Carpenter <error27@gmail.com>
Date:   Sat Nov 28 12:30:32 2009 +0200

    drm/ttm: fix small memory leak in ttm_memory.c
    
    I moved the allocation until after the check for (si->totalhigh == 0).
    
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Acked-By:  Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 1a95916f5465ad6c91398f17924949db7e0b5c36
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Dec 2 12:13:48 2009 -0500

    drm: Add compatibility #ifdefs for *BSD
    
    This let's use use the linux drm headers as the canonical source for
    libdrm on all platforms.
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 862302ffe422378a5213f558fc5cdf62c37050a9
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Wed Dec 2 18:15:25 2009 +0000

    drm: Add support for drm master_[set|drop] callbacks.
    
    The vmwgfx driver has a per master rw lock around TTM, to guarantee
    mutual exclusion when needed.
    
    This is typically when all evictable buffers are evicted due to
    
    1) vt switch
    2) master switch
    3) suspend / resume.
    
    In the multi-master case, on master switch the new master takes the
    previously active master lock in write mode, and then evicts all
    buffers. Any clients to previous masters will then block on that lock
    when trying to validate a buffer. fbdev also acts as a virtual master
    wrt this.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 9340d8cfeacd16cef1cbe94527f7baaed7640669
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:44:40 2009 -0500

    drm/edid: Decode 3-byte CVT codes from EDID 1.4
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 2dbdc52c8162291aa7541b8ba6e1c1587f50c1dd
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:44:39 2009 -0500

    drm/edid: Add new detailed block types from EDID 1.4
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 07a5e6324abacad56a8e7bcb44dd404e84f75f57
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:44:38 2009 -0500

    drm/edid: Add DMT modes to the pool if the monitor is GTF-capable
    
    See also: http://bugzilla.redhat.com/539785
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7ac96a9cb4982140e206bf3b58236efb2498ab3f
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:44:37 2009 -0500

    drm/modes: Add drm_mode_hsync()
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 9cf00977da092096c7a983276dad8b3002d23a99
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Dec 3 17:44:36 2009 -0500

    drm/edid: Unify detailed block parsing between base and extension blocks
    
    Also fix an embarassing bug in standard timing subblock parsing that
    would result in an infinite loop.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 6e36595a2131e7ed5ee2674be54b2713ba7f0490
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Dec 2 10:03:34 2009 +0800

    drm/i915: Declare the new VBT parsing functions as static
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 652af9d74e1a3a10bb10f0d8e8f42ddac26bbc1a
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Dec 2 10:03:33 2009 +0800

    drm/i915: Add the missing clonemask for display port on Ironlake
    
    Add the missing clonemask for display port on Ironlake.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    cc: stable@kernel.org
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit f24bc39facc1e74eb989908106fe9f6d375ae16e
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Dec 2 10:03:32 2009 +0800

    drm/i915: fix the incorrect condition judgement in dp_is_present_in_vbt
    
    We were always looking for the PORT_IDPB entry.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 4c7886791264f03428d5424befb1b96f08fc90f4
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Fri Nov 20 14:29:23 2009 +0100

    drm/radeon/kms: Rework radeon object handling
    
    The locking & protection of radeon object was somewhat messy.
    This patch completely rework it to now use ttm reserve as a
    protection for the radeon object structure member. It also
    shrink down the various radeon object structure by removing
    field which were redondant with the ttm information. Last it
    converts few simple functions to inline which should with
    performances.
    
    airlied: rebase on top of r600 and other changes.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 1614f8b17b8cc3ad143541d41569623d30dbc9ec
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 1 16:04:56 2009 +1000

    drm/radeon/kms: add irq mitigation code for sw interrupt.
    
    We really don't need to process every irq that comes in, we only
    really want to do SW irq processing when we are actually waiting for
    a fence to pass. I'm not 100% sure this is race free esp on non-MSI systems
    so it needs some testing.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d8f60cfc93452d0554f6a701aa8e3236cbee4636
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 1 13:43:46 2009 -0500

    drm/radeon/kms: Add support for interrupts on r6xx/r7xx chips (v3)
    
    This enables the use of interrupts on r6xx/r7xx hardware.
    Interrupts are implemented via a ring buffer.  The GPU adds
    interrupts vectors to the ring and the host reads them off
    in the interrupt handler.  The interrupt controller requires
    firmware like the CP.  This firmware must be installed and
    accessble to the firmware loader for interrupts to function.
    
    MSIs don't seem to work on my RS780.  They work fine on all
    my discrete cards.  I'm not sure about other RS780s or
    RS880s.  I've disabled MSIs on RS780 and RS880, but it would
    probably be worth checking on some other systems.
    
    v2 - fix some checkpatch.pl problems;
         re-read the disp int status reg if we restart the ih;
    
    v3 - remove the irq handler if r600_irq_init() fails;
         remove spinlock in r600_ih_ring_fini();
         move ih rb overflow check to r600_get_ih_wptr();
         move irq ack to separate function;
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 50dafba685c0f12c23d315820370b32d9ba64db7
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 1 15:02:17 2009 +1000

    drm/radeon/kms: call correct atom table for digital output dpms.
    
    found while working on displayport.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ee2215f0b269f4c460807e3f827665eb7049aa34
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Thu Nov 26 15:58:36 2009 +0100

    drm/radeon/kms: Don't overwrite crtc_gen_cntl or crtc_gen_cntl2
    
    Don't overwritte  crtc_gen_cntl or crtc_gen_cntl2 or we may loose the
    cursor. This especialy happen when changing video mode. Fix bugs:
    https://bugzilla.redhat.com/show_bug.cgi?id=529146
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ed160143c6967e89aee05b0685e73c4103bb3e38
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Dec 1 14:12:14 2009 -0500

    drm/radeon/kms: add tv standard property to tv connectors
    
    Lets user select tv-standard.  The property was there,
    just not hooked up.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 72542d77058bd45ccafd1e15ed3c70349fe3277b
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 1 14:06:31 2009 +1000

    drm/radeon/kms: ignore unposted GPUs with no BIOS.
    
    If we find a GPU but we can't find its BIOS and it isn't posted,
    then ignore it.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4b30b87042aa71ed8682e4df622a10456796fccd
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Dec 1 09:13:40 2009 +1000

    drm/radeon/kms: fix divide by 0 in clocks code
    
    If the chip isn't initialised properly this can happen.
    also fix return value in combios clocks function.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7dde8a19656ddec769b609e8b5662aa7243b8b6a
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 30 01:40:24 2009 -0500

    drm/radeon/kms/atom: pull misc mode info for lvds from bios tables
    
    sync polarity, etc.  This will likely fix LVDS problems
    on some laptops.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 30256a3f6b646f6c6ab7276a97b40792faac5f1d
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Mon Nov 30 17:47:59 2009 +0100

    drm/radeon/kms: Disable agp only if we are dealing with an AGP GPU
    
    On IGP if you pass option agpmode=-1 you would overwrite the set_page
    function callback with improper function which endup in non functioning
    hw. This patch will disable agp when giving agpmode=-1 parameter only
    if we are dealing with an AGP GPU.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ec51efa9b2b8ff10b535a853c293e85bada886e4
Author: Pierre Ossman <pierre@ossman.eu>
Date:   Mon Nov 30 21:15:44 2009 +0100

    drm/radeon/kms: Disable both CRTCs during mode switch
    
    Reconfiguring one CRTC whilst another is running can cause a hang under
    some circumstances. Unfortunately we haven't pinpointed exactly what those
    circumstances are, so disable all CRTCs for every mode switch.
    
    Signed-off-by: Pierre Ossman <pierre@ossman.eu>
    Acked-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 32f48ffea91008a27b99aab7a68a3443559d83fb
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 30 01:54:16 2009 -0500

    drm/radeon/kms: fix LVDS setup on r4xx
    
    R4xx mobility chips use atombios, which does not store
    the LVDS_GEN_CNTL parameter setup like combios.  Rather,
    it's configured in LVDSEncoderControl.  As such,
    LVDS_GEN_CNTL is set wrong when on resume.  Call
    LVDSEncoderControl to set it properly.
    
    Should fix fdo bug 25336
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 23956dfa82eab95931aab5fa9886c1e96c41e4dc
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Nov 23 12:01:09 2009 +1000

    drm/radeon/kms: add HDP flushing for all GPUs.
    
    rendercheck under kms on r600s was failing due to HDP flushing not happening.
    
    This adds HDP flushing to the object wait function for r100->r700 families.
    
    rendercheck passes basic tests on r600 with this change.
    
    Acked-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 38e1492130c42ac806ffd8b21ccf64eb1c997d10
Author: Michel Dänzer <daenzer@vmware.com>
Date:   Wed Aug 5 00:19:51 2009 +0200

    drm/radeon: Give userspace more accurate information about available memory.
    
    This patch varies from the original and just removes memory for kernel
    pinned objects.
    
    Signed-off-by: Michel Dänzer <daenzer@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 47381156a8f0d793bacfa346cc4cc515399525f7
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Nov 18 13:39:34 2009 +1000

    drm/radeon/kms: pick 8bpp console when 32MB or less VRAM
    
    making the pinned console smaller gives X a bit more room to play with.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 1f3b6a45f0805690269a7a9d265cbbc2f15b6c6e
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Oct 13 14:10:37 2009 +1000

    drm/radeon/kms: add support for encoder cloning.
    
    The RN50 really needs this since its a single crtc card,
    however other gpus may benefit from it as well.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 2de3b4841f67a15c7b8e820b84dd6b7cc41370da
Author: Jerome Glisse <jglisse@redhat.com>
Date:   Tue Nov 17 14:08:55 2009 -0800

    drm/radeon/kms: fix oops when set_base is call with no FB
    
    Just do nothing if crct_set_base() is called with no FB.
    
    The oops happens when the user switches between X & vt or in some case
    when changing mode.
    
    Signed-off-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fd874ad0a0dcf715333a3f3564c6486a3a90bb22
Author: Alex Deucher <alex@hp.localdomain>
Date:   Mon Nov 16 18:33:51 2009 -0500

    drm/radeon/kms: add quirk for MSI S270
    
    doesn't have a tv-out port
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 71407c46fecb82c542b6209f021d38a2901969a3
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 17 15:44:01 2009 -0500

    drm/radeon/kms: deal with connectors sourced to the same encoder
    
    Some systems have multiple connectors connected to the same encoder;
    e.g., DVI and HDMI connected to the same encoder with the same ddc
    line. Since we expose connectors as xrandr outputs, randr treats them
    separately which results in it trying to source the same encoder to
    different crtcs. If we have an HDMI and DVI-D port on the same encoder,
    pick the one to be considered connected based on the edid (HDMI if edid
    indicates HDMI, DVI otherwise).
    
    Should fix fdo bug 25150
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 3e5f8ff3a9f4e7a71c5371b2122b32faf31c563a
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 17 17:12:10 2009 -0500

    drm/radeon/kms: add quirk for Acer laptop
    
    DVI-I port is actually DVI-D
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 80297e87bc9728a6ce559063fc4c117eba1f955a
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Nov 12 14:55:14 2009 -0500

    drm/radeon/kms: rework scaler handling
    
    Keep requested scaler type in radeon_encoder
    and the actual scaler type used in radeon_crtc.
    This prevents us from enabling the scaler when it's
    not required (i.e., the requested mode is the native
    mode).  Also, always set the adjusted mode equal
    to the native mode for lvds.
    
    Should fix:
    https://bugzilla.redhat.com/show_bug.cgi?id=522271
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Acked-by: Jerome Glisse <jglisse@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fe6890c3e8019cf1cebce60a86c19180359d3292
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Nov 12 14:01:36 2009 -0500

    drm/radeon/kms: fix typo in legacy internal tmds mode fixup
    
    Call to set active device was missing.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 17e15b0c719b5ec0b344d3ebe3787b48315a0218
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 5 15:36:53 2009 +1000

    drm/radeon/kms: AGP systems need PCI bus mastering enabled
    
    We might not hit this yet, but when if we do any sort of writeback
    we really need to enable PCI bus mastering on these systems from
    what I can see.
    
    This enables PCI BM on all radeons that require it.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fcec570b27a47e428a9bfc8572ae4c7c230d0488
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 10 21:25:07 2009 -0500

    drm/radeon/kms: add support for external tmds on legacy boards
    
    This enables initialization of external tmds chips on pre-atom
    and mac systems.  Macs are untested.  Also, some macs have single
    link tmds chips while others have dual link tmds chips.  We need
    to figure out which ones have which.
    
    This gets external TMDS working on my RS485 and RV380.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 9b9fe72488a3a637e0550cc888e3f7a8f70e521e
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 10 15:59:44 2009 -0500

    drm/radeon/kms: clean up i2c
    
    - Change reg/mask names to match what we use internally
    and in the bios
    - Clarify how i2c over gpio on radeon actually works
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ab1e9ea08f1e94639b2d21a6bde5b55d31b1deee
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Thu Nov 5 18:27:30 2009 -0500

    drm/radeon/kms: dont't pass a radeon_connector to radeon_i2c_do_lock()
    
    We need this for supporting things other than ddc on i2c.
    
    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f0217c42c9ab3d772e543f635ce628b9478f70b6
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Dec 1 11:56:30 2009 -0800

    drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup.
    
    This is a sync of a fix I made in the old UMS code.  If the BIOS uses
    the GMBUS and doesn't clear that setup, then our bit-banging I2C can
    fail, leading to monitors not being detected.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit d09c23de9f967a7b7dcee0ffc57222ddbd821aba
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Nov 6 15:39:56 2009 +0800

    drm/i915: Add 30ms delay to make SDVO TV detection reliable.
    
    Without this, on some boots the TV wouldn't be detected.  Testing
    showed 15ms to be insufficient.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=24290
    https://bugs.freedesktop.org/show_bug.cgi?id=20785
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Tested-by: Yan Seiner <yan@seiner.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 04b2d218001bdddb41b84c9f78d6bb3cd3b5b31c
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Fri Nov 6 08:39:18 2009 -0500

    drm/i915: Fix typo in ioctl struct name.
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 778c902640530371a169ad1c03566e7c51b09874
Author: Li Peng <peng.li@linux.intel.com>
Date:   Mon Nov 9 12:51:22 2009 +0800

    drm/i915: Fix sync to vblank when VGA output is turned off
    
    In current vblank-wait implementation, if we turn off VGA output,
    drm_wait_vblank will still wait on the disabled pipe until timeout,
    because vblank on the pipe is assumed be enabled. This would cause
    slow system response on some system such as moblin.
    
    This patch resolve the issue by adding a drm helper function
    drm_vblank_off which explicitly clear vblank_enabled[crtc], wake up
    any waiting queue and save last vblank counter before turning off
    crtc. It also slightly change drm_vblank_get to ensure that we will
    will return immediately if trying to wait on a disabled pipe.
    
    Signed-off-by: Li Peng <peng.li@intel.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    [anholt: hand-applied for conflicts with overlay changes]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 27dfaf4f5825a119305db1bc63bef30ed400e376
Author: Adam Jackson <ajax@redhat.com>
Date:   Fri Nov 20 13:22:44 2009 +0800

    drm/i915: disable the interrupt hotplug for integrated TV output
    
    Otherwise, I'd get stuck in a loop where (afaict) output scan would
    trigger a TV interrupt, which would trigger a scan, etc.  TV load
    detection not being the fastest thing in the world, X would process
    requests very slowly.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=24404
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Acked-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 28cf798f5a9bd894ee90b27667b0d36b4933ae23
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 30 01:08:56 2009 +0000

    drm/i915: Don't update the render-clock for every bo.
    
    Only update the render-clock on transition from busy to idle and vice
    versa, or else we burn a significant percentage of the cpu just rewriting
    the register -- not quite as power-friendly as intended ;-)
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 38b3037ee47fbd65a36bc7c39f60a900fbbe3b8e
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Nov 24 10:07:00 2009 -0500

    drm/i915: Fix LVDS presence check
    
    Assume that either the presence of an LVDS entry in the VBT or an ACPI
    lid device indicates an LVDS device.  ACPI lid alone is not sufficient.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 05dd8f973f895692dd33c95e87c0e69aa0e7a93b
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Dec 1 09:25:23 2009 -0800

    drm/i915: Fix warning introduced with the page flipping ioctl.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit e9560f7cb20722e0e7db46bbb6f43c2194a238d5
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Nov 19 10:49:07 2009 -0800

    drm/i915: add GETPARAM request for page flipping
    
    Add a GETPARAM request for checking if page flipping is supported.
    Useful for the 2D driver to enable the flipping path.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 7bd4d7be5c8c35a401b1589201e5d43a64d3f05b
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Nov 19 10:50:22 2009 -0800

    drm: use page flip event to signal flip completion
    
    We don't actually know which frame number the flip will complete on, so
    userspace needs a specific flip notification to tell it when the last flip
    completed.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Acked-by: Kristian Høgsberg <krh@bitplanet.net>

commit 6b95a207c1fd552e7d017837c5eaf1b0173a48c9
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Nov 18 11:25:18 2009 -0500

    drm/i915: Add intel implementation of the pageflip ioctl
    
    Acked-by: Jakob Bornecrantz <jakob@vmware.com>
    Acked-by: Thomas Hellström <thomas@shipmail.org>
    Review-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Jesse "Orange Smoothie" Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit f40d6817a5c2bf84f5fe7b5d1a83f1e8f8669951
Merge: 103a196 46557be
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Dec 1 09:01:54 2009 -0800

    Merge remote branch 'airlied/drm-next' into drm-intel-next

commit 103a196f4224dc6872081305cf7f82ebf67aa7bd
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date:   Fri Nov 27 11:44:36 2009 +0800

    drm/i915: PineView only has LVDS and CRT ports
    
    PineView only has 2 ports for LVDS and CRT. Don't enable other
    ports for it.
    
    Cc: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit c35614380d5c956bfda20eab2755b2f5a7d6f1e7
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:48 2009 +0800

    drm/i915: Don't set up the TV port if it isn't in the BIOS table.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 7cf4f69d3f4511f443473954456cb91d5514756d
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:47 2009 +0800

    drm/i915: Don't set up the LVDS if it isn't in the BIOS device table.
    
    We not only check the device type, but also check the addin_offset. If the
    addin_offset is zero, it won't be initialized.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    [anholt: hand-applied due to conflicts]

commit ae266c98f580a9ba5e0bfdb1d1f0f70ab3cd807f
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:46 2009 +0800

    drm/i915: Don't set up DP ports that aren't in the BIOS device table.
    
    Use the child device array to decide whether the given DP output should be
    initialized. If the given DP port can't be found in child device array,
    it is not present and won't be initialized.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit fc816655236cd9da162356e96e74c7cfb0834d92
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:45 2009 +0800

    drm/i915: Don't set up HDMI ports that aren't in the BIOS device table.
    
    Use the child device array to decide whether the given HDMI output should be
    initialized. If the given HDMI port can't be found in child device array,
    it is not present and won't be initialized.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 6363ee6f496eb7e3b3f78dc105e522c7b496089b
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Tue Nov 24 09:48:44 2009 +0800

    drm/i915: parse child device from VBT
    
    On some laptops there is no HDMI/DP. But the xrandr still reports
    several disconnected HDMI/display ports. In such case the user will be
    confused.
     >DVI1 disconnected (normal left inverted right x axis y axis)
     >DP1 disconnected (normal left inverted right x axis y axis)
     >DVI2 disconnected (normal left inverted right x axis y axis)
     >DP2 disconnected (normal left inverted right x axis y axis)
     >DP3 disconnected (normal left inverted right x axis y axis)
    
    This patch set is to use the child device parsed in VBT to decide whether
    the HDMI/DP/LVDS/TV should be initialized.
    
    Parse the child device from VBT.
    
    The device class type is also added for LFP, TV, HDMI, DP output.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=22785
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit c1b5dea097258b3d3d570d5ccc8f4bf5accb3f29
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Nov 11 12:19:18 2009 -0500

    drm/i915: Disable pwrctx before unpin and free
    
    Otherwise the chip may scribble over free memory.
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 69341a5e01897714f968b7dccb94f57137acf45f
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Nov 11 12:19:17 2009 -0500

    drm/i915: Hold struct_mutex while unreffing pwrctx object
    
    This also extends the mutex to cover fbc disabling, which is safe.
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 33db679b4ee94e5a55abb439a87905d76739095a
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Nov 11 12:19:16 2009 -0500

    drm/i915: Unregister i915_wedged debugfs entry using the right key
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 29874f44fbcbc24b231b42c9956f8f9de9407231
Author: Shaohua Li <shaohua.li@intel.com>
Date:   Wed Nov 18 15:15:02 2009 +0800

    drm/i915: fix gpio register detection logic for BIOS without VBT
    
    if no VBT is present, crt_ddc_bus will be left at 0, and cause us
    to use that for the GPIO register offset. That's never a valid register
    offset, so let the "undefined" value be 0 instead of -1.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    [anholt: clarified the commit message a bit]

commit d271817baecbccb47da0d9f28c285a0dae8a06b7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 27 13:06:56 2009 +0000

    drm/i915: Avoid NULL dereference with component_only tv_modes
    
    In commit d2d9f2324, the guard for a valid video mode was removed. This
    caused the regression:
    
      kernel crash during kms graphic boot on Intel GM4500 platform
      https://bugzilla.redhat.com/show_bug.cgi?id=540218
    
    This patches changes the logic slightly not to rely on a coupled
    variable, but to just check whether the video_modes is valid before
    dereferencing.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Zhenyu Wang <zhenyu.z.wang@intel.com>
    [ickle: Actually reference the correct bug report]
    Acked-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 9bedb9743fd906e4160468663ee6e1bbdc4412b8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Nov 30 15:55:49 2009 +0100

    drm/i915: fixup interrupted overlay switch off calls
    
    When switching to interruptible sleeps in the overlay code, I've
    forgotten to recover from interruptions at one site.  This
    resulted in the overlay still running when it should have been
    switched off. This in turn caused a hang on resume because it
    tried to disable the (not-running) overlay in preparation for the
    resume modeset.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=24980
    Tested-by: maximlevitsky@gmail.com
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 12ca45fea91cfbb09df828bea958b47348caee6d
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sat Apr 25 10:08:26 2037 +0200

    drm/i915: overlay: extract some duplicated code
    
    I've suspected some bug there wrt to suspend, but that was not
    the case. Clean up the code anyway.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 26444877812fb2a2b9301b0b3702fdf9f9e06e4b
Author: Shaohua Li <shaohua.li@intel.com>
Date:   Wed Oct 14 17:19:28 2009 +0800

    drm/i915: remove Pineview EOS protection support
    
    HW guys have an evaluation about the impact about EOS, and say the impact
    is quite small, so they have removed EOS detection support. This patch
    removes EOS feature.
    
    revert commit 043029655816ed4cfc2ed247020ef97e5d637392
    directly reverting it gives a hunk error, so please use this one.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    [anholt: fixed up commit message for update that the feature's really gone]

commit 311089d3d372c6f2b01a6d8a5ed7fcbcd9ad7621
Author: Shaohua Li <shaohua.li@intel.com>
Date:   Thu Nov 26 14:22:41 2009 +0800

    drm/i915: use msleep for intel_wait_for_vblank
    
    20ms delay is quite big and the routine isn't called in atomic context.
    better use msleep to let other tasks run. This can reduce cpu time used
    by Xorg, so potentially boost boot.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 1991bdfaf5897b6fbfdc7dce81508f7cbc044768
Author: Shaohua Li <shaohua.li@intel.com>
Date:   Tue Nov 17 17:19:23 2009 +0800

    drm/i915: handle failure path correctly for lvds
    
    In failure path, make sure encoder is cleaned up, otherwise there
    is a kernel oops.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 1b3c7a47f993bf9ab6c4c7cc3bbf5588052b58f4
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date:   Wed Nov 25 13:09:38 2009 +0800

    drm/i915: Fix LVDS stability issue on Ironlake
    
    In disable sequence, all output ports on PCH have to be disabled
    before PCH transcoder, but LVDS port was left always enabled. This
    one fixes that by disable LVDS port properly during pipe disable
    process, and resolved stability issue seen on Ironlake. Also move
    panel fitting disable time just after pipe disable to align with
    the spec.
    
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 4215866059b126590aceddfe9f846595b0c1f458
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Nov 20 11:24:18 2009 +0800

    drm/i915: Restore the DPLL calculation logic for 9xx platform
    
    The DPLL calculation logic for 9xx platform is changed in:
    commit 652c393a3368af84359da37c45afc35a91144960
    Author: Jesse Barnes <jbarnes@virtuousgeek.org>
    Date:   Mon Aug 17 13:31:43 2009 -0700
    
        drm/i915: add dynamic clock frequency control
    
    Maybe we will get the different M/N/P combination with that by using the
    previous dpll calculation logic.
    
    So restore the DPLL calculation logic for 9xx platform.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit d1fcea6a529d22212b324f26cd660c85b289a026
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Nov 20 11:24:17 2009 +0800

    drm/i915: Check whether the LVDS downclock is found in VBT
    
    Enumerate the LVDS panel timing info entry list in VBT to check whether
    the LVDS downclock is found. If found, the downclock is also used to switch
    dynamically between low and high frequency for LVDS.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 18f9ed12f8c977e25d65a16af8e8d73f72417ba1
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Nov 20 03:24:16 2009 +0000

    drm/i915: Enable LVDS downclock feature through EDID.
    
    If more than one mode with the same resolution defined in EDID has different
    refresh rate, it is thought that the downclock is found for LVDS.
    We will program the different FPx0/1 register so that we can select dynamically
    between the low and high frequency.
    
    On the g4x platform we will use the CxSR feature to switch the different
    refresh rate if the LVDS downclock feature is supported.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit c8e0f93a381d1d76135e567f13a4418fce66fd95
Author: Eric Anholt <eric@anholt.net>
Date:   Sun Nov 22 03:49:37 2009 +0100

    drm/i915: Replace a calloc followed by copying data over it with malloc.
    
    Execbufs involve quite a bit of payload, to the extent that cache misses
    show up in the profiles here, and a suspicion that some of those cachelines
    may get evicted and then reloaded in the subsequent copy.
    
    This is still abstracted like drm_calloc_large since we want to check for
    size overflow, and because we want to choose between kmalloc and vmalloc
    on the fly.  cairo's interface for malloc-with-calloc's-args was used as
    the model.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 9632b41f00cc2fb2846569cc99dbeef78e5c94a0
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Nov 23 14:23:07 2009 -0500

    drm/modes: Fall back to 1024x768 instead of 800x600
    
    This matches the X server's fallback modes when using RANDR 1.2.
    
    See also: http://bugzilla.redhat.com/538761
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 862b89c069cafded4e31029be511f2e0b58d9c5f
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Nov 23 14:23:06 2009 -0500

    drm/edid: Fix up partially corrupted headers
    
    We'll still fail the block if it fails the EDID checksum though.
    
    See also: http://bugzilla.redhat.com/534120
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 47ee4ccf745ea88ee1aadcf5895d91af3b73ea64
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Nov 23 14:23:05 2009 -0500

    drm/edid: Retry EDID fetch up to four times
    
    This matches the X server's retry logic.  Note that we'll only retry if
    we get a DDC response but fail validation; legitimately disconnected
    outputs will bomb out early.
    
    See also: http://bugzilla.redhat.com/532957
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f985dedb57bae741b4326415f72fe1a1e556563b
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Nov 23 14:23:04 2009 -0500

    drm/modes: Limit fallback modes to 60Hz
    
    See also: http://bugzilla.redhat.com/514600
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 3bea21b64c0e3f380814de990ef57ff1f08dbf95
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Wed Nov 4 09:43:00 2009 +0100

    drm/kms: allocate framebuffer cmap
    
    Without an allocated colormap, FBIOGETCMAP fails.  This would make
    programs restore an all-black colormap ("links -g") or fail to work
    altogether ("mplayer -vo fbdev2").
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7a654158bdf9dc318fd451fbf606ed100d6ba25f
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Wed Nov 4 09:42:56 2009 +0100

    drm: set the type of the drm_framebuffer::fbdev field
    
    The fbdev field of the drm_framebuffer structure is always used to store
    a pointer to a fb_info, so there is no reason for it to be void*.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit cda6be1ce27d721a88cb90543a1e6d0f41baeaa4
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Wed Nov 4 09:42:52 2009 +0100

    drm/fb: fix FBIOGET/PUT_VSCREENINFO pixel clock handling
    
    When the framebuffer driver does not publish detailed timing information
    for the current video mode, the correct value for the pixclock field is
    zero, not -1.
    
    Since pixclock is actually unsigned, the value -1 would be interpreted
    as 4294967295 picoseconds (i.e., about 4 milliseconds) by
    register_framebuffer() and userspace programs.
    
    This patch allows X.org's fbdev driver to work.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 731b5a15a3b1474a41c2ca29b4c32b0f21bc852e
Author: James Simmons <jsimmons@infradead.org>
Date:   Thu Oct 29 20:39:07 2009 +0000

    drm/kms: properly handle fbdev blanking
    
    I examined several fbdev drivers and foudn the blanking code in
    drm_fb_helper to be wrong. This patch fixes the fbdev blanking to behave
    like other fbdev drivers.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 46557bef3f3834ac33031c7be27d39d90d507442
Merge: 4efc50d d91d8a3
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Nov 18 10:09:55 2009 +1000

    Merge branch 'drm-core-next' of ../linux-2.6 into drm-next

commit d91d8a3f88059d93e34ac70d059153ec69a9ffc7
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Tue Nov 17 12:43:55 2009 -0500

    drm/kms: add page flipping ioctl
    
    This adds a page flipping ioctl to the KMS API.  The ioctl takes an fb ID
    and a ctrc ID and flips the crtc to the given fb at the next vblank.
    The ioctl returns immediately but the flip doesn't happen until after
    any rendering that's currently queued up against the new framebuffer
    is done.  After submitting a page flip, any execbuffer involving the
    old front buffer will block until the flip is completed.
    
    Optionally, a vblank event can be generated when the swap eventually
    happens.
    
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit dad07ca71719598bc990dbdbeda763d15a10e98b
Author: Andres Salomon <dilinger@collabora.co.uk>
Date:   Tue Nov 17 14:41:25 2009 -0800

    drm: check return values in drm_version
    
    In drm_version, actually check the results from function calls so that
    we're not potentially passing garbage back to userspace.
    
    Signed-off-by: Andres Salomon <dilinger@collabora.co.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 140a45fc3253746e1e42feafc63509df5d90889e
Author: Andres Salomon <dilinger@collabora.co.uk>
Date:   Tue Nov 17 14:41:24 2009 -0800

    drm: replace DRM_COPY macro w/ a function
    
    Don't inline it; the compiler can figure it out.  Comments added that are
    based upon my interpretation of the code.  Hopefully they're correct. :)
    
    Signed-off-by: Andres Salomon <dilinger@collabora.co.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 156822f7175d9ceb9d7e808502d3c5de8841e047
Author: Andres Salomon <dilinger@collabora.co.uk>
Date:   Tue Nov 17 14:41:23 2009 -0800

    drm: kill more unused DRM macros
    
    There are a few more macros in drmP.h that are unused; DRM_GET_PRIV_SAREA,
    DRM_ARRAY_SIZE, and DRM_WAITCOUNT can go away completely.
    
    Unfortunately, DRM_COPY is still used in one place, but we can at least
    move it to where it's used.  It's an awful looking macro..
    
    [akpm: fix overeagerness]
    Signed-off-by: Andres Salomon <dilinger@collabora.co.uk>
    Cc: Dave Airlie <airlied@linux.ie>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 420a457088669e055e767dfb8468909cd1799cf9
Author: Andres Salomon <dilinger@collabora.co.uk>
Date:   Tue Nov 17 14:41:23 2009 -0800

    drm: kill some unused DRM_PROC macros from drmP.h
    
    i915_gem_proc.c appears to have been the last user of the DRM_PROC_*
    macros, and it has gone away.  The macros should die as well.
    
    Signed-off-by: Andres Salomon <dilinger@collabora.co.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4a9216453c8537a7f43a3b1708509b9dd271dc9f
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Tue Nov 10 08:21:25 2009 +0000

    drm: when queuing an event with NEXTONMISS, return queued sequence to userspace
    
    If we queue a vblank event but miss it, we should return the actual
    sequence number we queued to userspace, so its event handling function
    will know which event to look for.
    
    Acked-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit c9a9c5e02aedc1a2815877b0268f886d2640b771
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Sat Sep 12 04:33:34 2009 +1000

    drm: Add async event synchronization for drmWaitVblank
    
    This patch adds a new flag to the drmWaitVblank ioctl, which asks the drm
    to return immediately and notify userspace when the specified vblank sequence
    happens by sending an event back on the drm fd.
    
    The event mechanism works with the other flags supported by the ioctls,
    specifically, the vblank sequence can be specified relatively or absolutely,
    and works for primary and seconday crtc.
    
    The signal field of the vblank request is used to provide user data,
    which will be sent back to user space in the vblank event.
    
    Signed-off-by: Kristian Høgsberg <krh@redhat.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4efc50d697ed8d9a91f0005d922907a7b6c9290d
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Tue Nov 10 08:21:25 2009 +0000

    drm: when queuing an event with NEXTONMISS, return queued sequence to userspace
    
    If we queue a vblank event but miss it, we should return the actual
    sequence number we queued to userspace, so its event handling function
    will know which event to look for.
    
    Acked-by: Kristian Høgsberg <krh@bitplanet.net>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fe625f137d28d1ebe22a71ee064ffab2841055a5
Merge: 6782cc7 7433874
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Nov 6 14:33:40 2009 +1000

    Merge branch 'drm-next' of ../drm-2.6 into drm-next

commit 6782cc7b615ae5f028783992b7fe43b53e4e786f
Merge: 4fe9676 a3fa632
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Nov 6 13:47:54 2009 +1000

    Merge branch 'drm-next' of ../drm-2.6 into drm-next

commit 5b8f0be0dce012d190a53d55240fe3fde6306476
Merge: 43bcd61 4fe9676
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Nov 5 15:04:06 2009 -0800

    Merge remote branch 'airlied/drm-next' into drm-intel-next

commit 43bcd61fae05fc6062b4f117c5adb1a72c9f8c57
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Nov 3 09:03:34 2009 +0000

    drm/i915: fix get_core_clock_speed for G33 class desktop chips
    
    Somehow the case for G33 got dropped while porting from ums code.
    This made a 400MHz chip into a 133MHz one which resulted in the
    unnecessary enabling of double wide pipe mode which in turn
    screwed up the overlay code.
    
    Nothing else (than the overlay code) seems to be affected.
    
    This fixes fdo.org bug #24835
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit c650156af34bffa3d3a62c9fe26eee595aab3fd1
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date:   Tue Nov 3 18:57:21 2009 +0000

    drm/i915: Add display hotplug event on Ironlake
    
    Enable display hotplug irqs from Ibex Peak (PCH).
    
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 01c66889c14aa163c49355b3be2ccfb214500599
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Wed Oct 28 05:10:00 2009 +0000

    drm/i915: Add ACPI OpRegion support for Ironlake
    
    Add the support of ACPI opregion on Ironlake so that the backlight
    brightness can be adjusted by using ACPI interface
       >/sys/class/backlight/acpi_video0/brightness
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Tested-by: Zhao Yakui <yakui.zhao@intel.com>
    [zhenyuw: cleanups, fix typo for checking GSE irq and convert to
    current irq handling logic.]
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 1dc7546d1a73664e5d117715b214bea9cae5951c
Author: Jesse Barnes <jbarnes@jbarnes-x200.(none)>
Date:   Mon Oct 19 10:08:17 2009 +0900

    drm/i915: enable self-refresh on 965
    
    Need to calculate the SR watermark and enable it.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit a4f45cf178f0d0ad4e516e020818b5f1c00e3d63
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Mon Oct 19 14:35:30 2009 -0400

    drm/i915: Support 30 bit depth modes
    
    Signed-off-by: Kristian Høgsberg <krh@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit f3cd474bb235f2331c1a6f579bdbf892386e5c7c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 13 22:20:20 2009 +0100

    drm/i915: debugfs interface to manually reset the GPU
    
    Create a /debug/dri/%d/i915_wedged file to display the current wedged
    status, and to enable setting that value. On an i965, this will also
    trigger a GPU reset.
    
    Useful in order to attempt to recover from some error conditions that
    are not currently caught by the automatic hang detection code.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit aed5f1dc264e2bc87e8656dd6945e4b1e72ebdbc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Oct 14 13:40:04 2009 +0100

    drm/i915: Use a single thread workqueue
    
    Our work is serialised so allocating per-cpu workqueues is overkill and
    a waste of resources.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit d0c3b04ae953fd3bf69f9b1430c22608d2d3b90d
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Oct 9 11:39:43 2009 +0800

    drm/i915: Replace DRM_DEBUG with DRM_DEBUG_KMS in DVO output code.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 3e0f27ed75369298176abdf2fbe59116b6587a56
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Oct 13 12:23:22 2009 -0700

    drm/i915: Enable the SDVO debug code, which is now under DEBUG_KMS.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 28c97730c36e06d5ba0c442156eb2154347cc3fe
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Oct 9 11:39:41 2009 +0800

    drm/i915: Replace DRM_DEBUG with DRM_DEBUG_KMS
    
    Replace the DRM_DEBUG with DRM_DEBUG_KMS in output device code.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 44d98a614267c81a04ba9c7a0427c3a628985b7d
Author: Zhao Yakui <yakui.zhao@intel.com>
Date:   Fri Oct 9 11:39:40 2009 +0800

    drm/i915: Replace DRM_DEBUG with DRM_DEBUG_DRIVER
    
    Replace the DRM_DEBUG with DRM_DEBUG_DRIVER in generic i915 driver.
    Then the debug info can be obtained by adding the boot option of
    "drm.debug=0x02".
    
    At the same time the debug info in increase/decrease clock is also
    printed by using DRM_DEBUG_DRIVER instead of DRM_DEBUG_KMS.
    
    Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 5c5a4359fe392b52b444134877fc4002be542b42
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sun Oct 4 15:00:36 2009 +0200

    drm/i915: overlay: kill one more unnecessary uninterruptible sleep
    
    I've simply overlooked one case in the conversion to interruptible
    sleeps. Rectify this.
    
    Also delete a leftover debug printk.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 1df4b35b61df27fc5b173fe2789d976e40e1dc22
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:38 2009 +0200

    drm/i915: kill i915_lp_ring_sync
    
    It's not needed anymore.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 03f77ea5972e6a2363152aec692744cac824daba
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:37 2009 +0200

    drm/i915: implement interruptible sleeps in the overlay code
    
    At least for the common case of userspace ioctls. When doing a
    modeset operation, the wait is still uninterruptible. But considering
    that failing to turn off the overlay when switching off the crtc it's
    running on hangs the chip, it doesn't complicate matters _very_
    much. There's just an unkillable X in addition to a black screen.
    BUG() about it and explain in the code.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 5a5a0c64a99d7542c48c99d1a8bbb49e665842be
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:36 2009 +0200

    drm/i915: implement fastpath for overlay flip waiting
    
    As long as the gpu can keep up, neither the cpu (waiting for gpu)
    nore the gpu (waiting for vblank to do an overlay flip) stalls.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 240a2d12dfff98f8fa1332dc8424284d96f0801e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:35 2009 +0200

    drm/i915: fully switch off overlay when not in use
    
    Now that the cache flushing of the memory based overlay regs works,
    we can safely switch off the overlay. Beforehand it was only disabled
    (like in userspace).
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 02e792fbaadb75dec8e476a05b610e49908fc6a4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:34 2009 +0200

    drm/i915: implement drmmode overlay support v4
    
    This implements intel overlay support for kms via a device-specific
    ioctl. Thomas Hellstrom brought up the idea of a general ioctl (on
    dri-devel). We've reached the conclusion that such an infrastructure
    only makes sense when multiple kms overlay implementations exists,
    which atm don't (and it doesn't look like this is gonna change).
    
    Open issues:
    - Runs in sync with the gpu, i.e. unnecessary waiting. I've decided
      to wait on this because the hw tends to hang when changing something
      in this area. I left some dummy functions as infrastructure.
    - polyphase filtering uses a static table.
    - uses uninterruptible sleeps. Unfortunately the alternatives may
      unnecessarily wedged the hw if/when we timeout too early (and
      userspace only overloaded the batch buffers with stuff worth a few
      secs of gpu time).
    
    Changes since v1:
    - fix off-by-one misconception on my side. This fixes fullscreen
      playback.
    Changes since v2:
    - add underrun detection as spec'ed for i965.
    - flush caches properly, fixing visual corruptions.
    Changes since v4:
    - fix up cache flushing of overlay memory regs.
    - killed require_pipe_a logic - it hangs the chip.
    
    Tested-By: diego.abelenda@gmail.com (on a 865G)
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [anholt: Resolved against the MADVISE ioctl going in before this one]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit f0f8a9cecea322b215600d96cf0c1eb08343a4e9
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:33 2009 +0200

    drm/i915: kill superflous IS_I855 macro
    
    It is identical to I85X. Use that one instead.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    [anholt: fix conflicts against the display function pointer stuff]
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 48764bf43f746113fc77877d7e80f2df23ca4cbb
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:32 2009 +0200

    drm/i915: add i915_lp_ring_sync helper
    
    This just waits until the hw passed the current ring position with
    cmd execution. This slightly changes the existing i915_wait_request
    function to make uninterruptible waiting possible - no point in
    returning to userspace while mucking around with the overlay, that
    piece of hw is just too fragile.
    
    Also replace a magic 0 with the symbolic constant (and kill the then
    superflous comment) while I was looking at the code.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 7a9c906094de8b3dc227de448019dbc386cd25d4
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Sep 15 22:57:31 2009 +0200

    drm: make drm_mode_object_find typesafe
    
    I've wasted half a day hunting a bug that could easily be spotted by
    gcc. Prevent this from reoccurring.
    
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 97f5ab6651a996ecefed73e41684422f3b29d9a8
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Oct 8 10:16:48 2009 -0700

    drm/i915: add render standby support
    
    Render standy allows the GPU to power down the render unit when idle.
    In order for this to work, it needs a page of graphics memory to save
    state.  This patch allocates that page and enables the feature on
    supported chipsets.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>

commit 4fe9676d1ae6639b5749140eba052261d363366b
Merge: 273fad2 e29649d
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 5 08:28:54 2009 +1000

    Merge branch 'drm-next' of ../drm-2.6 into drm-next

commit 273fad2b8248e7eea8fba39555434223dd9216a4
Merge: c182be3 ea1495a
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Oct 28 16:08:41 2009 +1000

    Merge branch 'drm-next' of ../drm-2.6 into drm-next

commit c182be37ed7cb04c344501b88b8fdb747016e6cf
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Sat Sep 12 04:33:34 2009 +1000

    drm: Add async event synchronization for drmWaitVblank
    
    This patch adds a new flag to the drmWaitVblank ioctl, which asks the drm
    to return immediately and notify userspace when the specified vblank sequence
    happens by sending an event back on the drm fd.
    
    The event mechanism works with the other flags supported by the ioctls,
    specifically, the vblank sequence can be specified relatively or absolutely,
    and works for primary and seconday crtc.
    
    The signal field of the vblank request is used to provide user data,
    which will be sent back to user space in the vblank event.
    
    Signed-off-by: Kristian Høgsberg <krh@redhat.com>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 0a5c1e61dbaceb6ce56281a3128a6912b0dcd043
Author: Robert Noland <rnoland@2hip.net>
Date:   Tue Oct 20 07:23:07 2009 -0500

    drm/radeon: A bit of cleanup work on radeon_freelist_get()
    
    Fix the main loop to search all buffers before sleeping.
    Remove dead code
    
    Signed-off-by: Robert Noland <rnoland@2hip.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2009-02-09  8:30 Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-02-09  8:30 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 10867 bytes --]


Hi Linus,

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

This fixes some regressions and also a number of bugs in the Intel KMS and 
GEM code. Sorry its a bit bigger than I like sending, but I got backlogged 
with real life stuff and kept pushing this off.

I've got at least two more things to get fixed, Intel has a lockdep issue 
and I'm waiting for Eric to get back from travelling to confirm the fix is 
correct, and we have a radeon regression on susp/resume which I think is 
vblank related. This should fix your vblank issue and the CONFIG_FB fix 
from Ingo.

Dave.

 drivers/gpu/drm/Kconfig                |    2 +-
 drivers/gpu/drm/drm_irq.c              |    1 +
 drivers/gpu/drm/drm_memory.c           |    7 +-
 drivers/gpu/drm/i915/i915_dma.c        |   47 ++-
 drivers/gpu/drm/i915/i915_drv.c        |    1 -
 drivers/gpu/drm/i915/i915_drv.h        |    8 +
 drivers/gpu/drm/i915/i915_gem.c        |   83 ++-
 drivers/gpu/drm/i915/i915_gem_tiling.c |   91 ++++-
 drivers/gpu/drm/i915/i915_irq.c        |   13 +
 drivers/gpu/drm/i915/i915_reg.h        |   10 +-
 drivers/gpu/drm/i915/intel_display.c   |   20 +-
 drivers/gpu/drm/i915/intel_drv.h       |    1 +
 drivers/gpu/drm/i915/intel_lvds.c      |   49 +--
 drivers/gpu/drm/i915/intel_sdvo.c      |  870 ++++++++++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_sdvo_regs.h |  404 +++++++++++++++-
 drivers/gpu/drm/radeon/radeon_cp.c     |    6 +-
 drivers/video/Kconfig                  |    6 +-
 include/drm/i915_drm.h                 |    2 +
 18 files changed, 1428 insertions(+), 193 deletions(-)

commit d2f59357700487a8b944f4f7777d1e97cf5ea2ed
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Feb 5 16:03:34 2009 +0100

    drm/i915: select framebuffer support automatically
    
    Migration helper.
    
    The i915 driver recently added a 'depends on FB' rule to its
    Kconfig entry - which silently turns off DRM_I915 if someone
    has a working config but no CONFIG_FB selected, and upgrades
    to the latest upstream kernel.
    
    Norbert Preining reported this problem:
    
       Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=12599
       Subject     : dri /dev node disappeared with 2.6.29-rc1
    
    So change it to "select FB", which auto-selects framebuffer
    support. This way the driver keeps working, regardless of
    whether FB was enabled before or not.
    
    Kconfig select's of interactive options can be problematic to
    dependencies and can cause build breakages - but in this case
    it's safe because it's a leaf entry with no dependencies of its
    own.
    
    ( There is some minor circular dependency fallout as FB_I810
      and FB_INTEL also used 'depends on FB' constructs - update
      those to "select FB" too. )
    
    Reported-by: Norbert Preining <preining@logic.at>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 9880b7a527ffbb52f65c2de0a8d4eea86e24775e
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Feb 6 10:22:41 2009 -0800

    drm/i915: add get_vblank_counter function for GM45
    
    As discussed in the long thread about vblank related timeouts, it turns out
    GM45 has different frame count registers than previous chips.  This patch
    adds support for them, which prevents us from waiting on really stale
    sequence values in drm_wait_vblank (which rather than returning immediately
    ends up timing out or getting interrupted).
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 14d200c5e5bd19219d930bbb9a5a22758c8f5bec
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Feb 6 13:04:49 2009 -0800

    drm/i915: capture last_vblank count at IRQ uninstall time too
    
    In dc1336ff4fe08ae7cfe8301bfd7f0b2cfd31d20a (set vblank enable flag correctly
    across IRQ uninstall), we made sure drivers that uninstall their interrupt
    handler set the vblank enabled flag correctly, so that when interrupts are
    re-enabled, vblank interrupts & counts work as expected.  However I missed the
    last_vblank field:  it needs to be updated as well, otherwise, at the next
    drm_update_vblank_count we'll end up comparing a current count to a stale
    one (the last one captured by the disable function), which may trigger the
    wraparound handling, leading to a jumpy counter and hangs in drm_wait_vblank.
    
    The jumpy counter can prevent the DRM_WAIT_ON from returning success if the
    difference between the current count and the requested count is greater than
    2^23, leading to timeouts or hangs, if the ioctl is restarted in a loop (as
    is the case in libdrm < 2.4.4).
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Acked-by: Michel Dänzer <michel@daenzer.net>
    Tested-by: Timo Aaltonen <tjaalton@cc.hut.fi>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7d8d58b23fd01e60ed44d8d8c10b2df86e638faa
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Feb 4 14:15:10 2009 +0000

    drm/i915: Unlock mutex on i915_gem_fault() error path
    
    If we failed to allocate a new fence register we would return
    VM_FAULT_SIGBUS without relinquishing the lock.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 122ee2a63bc49d21f402f6b6d2208306cdcc98c1
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Feb 3 12:10:21 2009 -0800

    drm/i915: Quiet the message on get/setparam ioctl with an unknown value.
    
    Getting an unknown get/setparam used to be more significant back when they
    didn't change much.  However, now that we're in the git world we're using
    them instead of a monotonic version number to signal feature availability,
    so clients ask about unknown params on older kernels more often.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 565dcd4635f4f8c0ac4dee38a5625bc325799b1e
Author: Paul Collins <paul@burly.ondioline.org>
Date:   Wed Feb 4 23:05:41 2009 +1300

    drm/i915: skip LVDS initialization on Apple Mac Mini
    
    The Apple Mac Mini falsely reports LVDS.  Use DMI to check whether we
    are running on a Mac Mini, and skip LVDS initialization if that proves
    to be the case.
    
    Signed-off-by: Paul Collins <paul@ondioline.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit e2f0ba97d60e59fe5c6237851933a9c38a8f9a24
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Mon Feb 2 15:11:52 2009 -0800

    drm/i915: sync SDVO code with stable userland modesetting driver
    
    Pull in an update from the 2D driver (hopefully the last one, future work
    should be done here and pulled back into xf86-video-intel as needed).
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 72daad40dc0be179e0dc85c17d5dc1e850b5e8e4
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jan 30 21:10:22 2009 +0000

    drm/i915: Unref the object after failing to set tiling mode.
    
    Cleanup the object reference on the error paths.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 0f973f27888e4664b253ab2cf69c67c2eb80ab1b
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Mon Jan 26 17:10:45 2009 -0800

    drm/i915: add fence register management to execbuf
    
    Adds code to set up fence registers at execbuf time on pre-965 chips as
    necessary.  Also fixes up a few bugs in the pre-965 tile register support
    (get_order != ffs).  The number of fences available to the kernel defaults
    to the hw limit minus 3 (for legacy X front/back/depth), but a new parameter
    allows userspace to override that as needed.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit d9ddcb96e05cfbadf3dbf66859bcaf5eae25af0b
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Jan 27 10:33:49 2009 -0800

    drm/i915: Return error from i915_gem_object_get_fence_reg() when failing.
    
    Previously, the caller would continue along without knowing that the
    function failed, resulting in potential mis-rendering.  Right now vm_fault
    just returns SIGBUS in that case, and we may need to disable signal handling
    to avoid that happening.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit ab657db12d7020629f26f30d287558a8d0e32b41
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 23 12:57:47 2009 -0800

    drm/i915: Set up an MTRR covering the GTT at driver load.
    
    We'd love to just be using PAT, but even on chips with PAT it gets disabled
    sometimes due to an errata.  It would probably be better to have pat_enabled
    exported and only bother with this when !pat_enabled.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 725e30ad6601d7fe443d9215d6331758a9d7e0c8
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 22 13:01:02 2009 -0800

    drm/i915: Skip SDVO/HDMI init when the chipset tells us it's not present.
    
    This saves startup time from probing SDVO, and saves setting up HDMI outputs
    on G4X devices that don't have them.
    
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit e806b4957412bf472d826bd8cc571da041248799
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jan 22 09:56:58 2009 -0800

    drm/i915: Suppress GEM teardown on X Server exit in KMS mode.
    
    Fixes hangs when starting X for the second time.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 9b8d5a124f133fe9a75397d20b874844a2e3d7e9
Author: Dave Airlie <airlied@linux.ie>
Date:   Sat Feb 7 11:15:41 2009 +1000

    drm/radeon: fix ioremap conflict with AGP mappings
    
    this solves a regression from
    http://bugzilla.kernel.org/show_bug.cgi?id=12441
    
    Reported-by: Daniel Vetter <daniel@ffwll.ch>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ac048e1734699dd98f4bdf4daf2b9592d4a4d38e
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Feb 3 19:05:12 2009 +1000

    i915: fix unneeded locking in i915 LVDS get modes code.
    
    This code is always called under the lock from the higher layers,
    so need to go locking it here.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-10 23:51             ` Richard Purdie
@ 2009-01-16  6:53               ` Brice Goglin
  0 siblings, 0 replies; 79+ messages in thread
From: Brice Goglin @ 2009-01-16  6:53 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Dave Airlie, Dave Airlie, dri-devel, linux-kernel

Richard Purdie wrote:
> On Sun, 2009-01-11 at 09:04 +1000, Dave Airlie wrote:
>> Does the attached patch work?
> 
> If its fixed to compile, it fixes the problem. I don't know if your
> making this against some other tree or it was just a typo so I've
> attached the fixed version that worked for me below.

Richard's fixed patch fixes a similar hang here with 2.6.29-rc1,
Xserver 1.5.3 and intel 2.6.0 as soon as I start a GLX program.

Thanks.
Brice


> [PATCH] drm/i915: setup sarea properly in master_priv
> 
> If we are running DRI1 userspace, we really need to set the sarea up
> properly.
> 
> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
> 
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 62a4bf7..868f574 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -177,6 +177,14 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
>  	drm_i915_private_t *dev_priv = dev->dev_private;
>  	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
>  
> +	master_priv->sarea = drm_getsarea(dev);
> +	if (master_priv->sarea) {
> +		master_priv->sarea_priv = (drm_i915_sarea_t *)
> +			((u8 *)master_priv->sarea->handle + init->sarea_priv_offset);
> +	} else {
> +		DRM_DEBUG("sarea not found assuming DRI2 userspace\n");
> +	}
> +
>  	if (init->ring_size != 0) {
>  		if (dev_priv->ring.ring_obj != NULL) {
>  			i915_dma_cleanup(dev);

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-11  9:29   ` Graham Murray
@ 2009-01-11  9:56     ` Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-01-11  9:56 UTC (permalink / raw)
  To: Graham Murray; +Cc: linux-kernel

On Sun, Jan 11, 2009 at 7:29 PM, Graham Murray <graham@gmurray.org.uk> wrote:
> Richard Purdie <rpurdie@rpsys.net> writes:
>
>> Hi,
>>
>> I just updated to the latest kernel from git to test some other patches
>> and after logging into GDM the X server hangs before launching the
>> desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
>> (i915 graphics). Bisection shows this happens after applying this
>> commit:
>>
>> On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
>>> Please pull the 'drm-next' branch from
>>> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
>> [...]
>>> commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
>
>
> I am seeing a similar, but slightly different problem which I bisected
> to that same commit. I am using radeonfb and the radeon X driver and I
> can log into kdm with no problems and work, but once I switch to a
> 'normal' console with CTL+ALT+Fn when I switch back to X it is dead with
> the top, approximately 1/3, of the screen corrupted and keyboard and
> mouse dead. I can get out of it by SAK+K which kills X and returns to
> the kdm logon screen. There are no ooops or any other indications apart
> from logging the SAK action.

Can you open a bug on bugzilla.kernel.org with the Xorg log,

I really dislike running radeonfb and X unless its on powerpc, does it
work without radeonfb?

Dave.

>
> 06:00.0 VGA compatible controller: ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)] (prog-if 00 [VGA controller])
>        Subsystem: C.P. Technology Co. Ltd Device 2090
>        Flags: bus master, fast devsel, latency 0, IRQ 16
>        Memory at d0000000 (32-bit, prefetchable) [size=256M]
>        I/O ports at c800 [size=256]
>        Memory at ff9f0000 (32-bit, non-prefetchable) [size=64K]
>        Expansion ROM at ff9c0000 [disabled] [size=128K]
>        Capabilities: [50] Power Management version 2
>        Capabilities: [58] Express Endpoint, MSI 00
>        Capabilities: [100] Advanced Error Reporting
>                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSVoil-
>                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSVoil-
>                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSVoil-
>                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
>                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
>        Kernel driver in use: radeonfb
>
> 06:00.1 Display controller: ATI Technologies Inc RV370 [Radeon X300SE]
>        Subsystem: C.P. Technology Co. Ltd Device 2091
>        Flags: bus master, fast devsel, latency 0
>        Memory at ff9e0000 (32-bit, non-prefetchable) [size=64K]
>        Capabilities: [50] Power Management version 2
>        Capabilities: [58] Express Endpoint, MSI 00
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-09 15:07 ` Richard Purdie
  2009-01-09 18:03   ` Richard Purdie
@ 2009-01-11  9:29   ` Graham Murray
  2009-01-11  9:56     ` Dave Airlie
  1 sibling, 1 reply; 79+ messages in thread
From: Graham Murray @ 2009-01-11  9:29 UTC (permalink / raw)
  To: linux-kernel

Richard Purdie <rpurdie@rpsys.net> writes:

> Hi,
>
> I just updated to the latest kernel from git to test some other patches
> and after logging into GDM the X server hangs before launching the
> desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
> (i915 graphics). Bisection shows this happens after applying this
> commit:
>
> On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
>> Please pull the 'drm-next' branch from
>> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
> [...]
>> commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a


I am seeing a similar, but slightly different problem which I bisected
to that same commit. I am using radeonfb and the radeon X driver and I
can log into kdm with no problems and work, but once I switch to a
'normal' console with CTL+ALT+Fn when I switch back to X it is dead with
the top, approximately 1/3, of the screen corrupted and keyboard and
mouse dead. I can get out of it by SAK+K which kills X and returns to
the kdm logon screen. There are no ooops or any other indications apart
from logging the SAK action.

06:00.0 VGA compatible controller: ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)] (prog-if 00 [VGA controller])
        Subsystem: C.P. Technology Co. Ltd Device 2090
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at d0000000 (32-bit, prefetchable) [size=256M]
        I/O ports at c800 [size=256]
        Memory at ff9f0000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at ff9c0000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSVoil-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSVoil-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSVoil-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Kernel driver in use: radeonfb

06:00.1 Display controller: ATI Technologies Inc RV370 [Radeon X300SE]
        Subsystem: C.P. Technology Co. Ltd Device 2091
        Flags: bus master, fast devsel, latency 0
        Memory at ff9e0000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Express Endpoint, MSI 00

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-10 23:04           ` Dave Airlie
@ 2009-01-10 23:51             ` Richard Purdie
  2009-01-16  6:53               ` Brice Goglin
  0 siblings, 1 reply; 79+ messages in thread
From: Richard Purdie @ 2009-01-10 23:51 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Dave Airlie, dri-devel, linux-kernel

On Sun, 2009-01-11 at 09:04 +1000, Dave Airlie wrote:
> On Sat, Jan 10, 2009 at 7:58 PM, Richard Purdie <rpurdie@linux.intel.com> wrote:
> > I have a question though, where in the i915 driver is
> > master_priv->sarea_priv assigned a value? or master_priv->sarea for that
> > matter? As far as I can tell those pointers are never assigned values?
> > Is there a drm_getsarea() call missing?
> >
> > Perhaps my patch fixes things since sarea and sarea_priv are given a
> > value?
> >
> 
> Does the attached patch work?

If its fixed to compile, it fixes the problem. I don't know if your
making this against some other tree or it was just a typo so I've
attached the fixed version that worked for me below.

> Somehow this code was tested on DRI2 which needs no sarea, and we missed the bit
> to setup the DRI1 sarea, this patch should dtrt.

Makes sense, thanks.


[PATCH] drm/i915: setup sarea properly in master_priv

If we are running DRI1 userspace, we really need to set the sarea up
properly.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 62a4bf7..868f574 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -177,6 +177,14 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
 	drm_i915_private_t *dev_priv = dev->dev_private;
 	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 
+	master_priv->sarea = drm_getsarea(dev);
+	if (master_priv->sarea) {
+		master_priv->sarea_priv = (drm_i915_sarea_t *)
+			((u8 *)master_priv->sarea->handle + init->sarea_priv_offset);
+	} else {
+		DRM_DEBUG("sarea not found assuming DRI2 userspace\n");
+	}
+
 	if (init->ring_size != 0) {
 		if (dev_priv->ring.ring_obj != NULL) {
 			i915_dma_cleanup(dev);


^ permalink raw reply related	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-10  9:58         ` Richard Purdie
@ 2009-01-10 23:04           ` Dave Airlie
  2009-01-10 23:51             ` Richard Purdie
  0 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-01-10 23:04 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Dave Airlie, dri-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2112 bytes --]

On Sat, Jan 10, 2009 at 7:58 PM, Richard Purdie <rpurdie@linux.intel.com> wrote:
>
> On Sat, 2009-01-10 at 12:04 +1000, Dave Airlie wrote:
>> On Sat, Jan 10, 2009 at 11:13 AM, Richard Purdie
>> <rpurdie@linux.intel.com> wrote:
>> > On Fri, 2009-01-09 at 18:03 +0000, Richard Purdie wrote:
>> >> On Fri, 2009-01-09 at 15:07 +0000, Richard Purdie wrote:
>> >> > I just updated to the latest kernel from git to test some other patches
>> >> > and after logging into GDM the X server hangs before launching the
>> >> > desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
>> >> > (i915 graphics). Bisection shows this happens after applying this
>> >> > commit:
>> >> >
>> >> > On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
>> >> > > commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
>> >> > > Author: Dave Airlie <airlied@redhat.com>
>> >> > > Date:   Fri Nov 28 14:22:24 2008 +1000
>> >
>> > The patch below gets my system working again with the latest kernels.
>> > Was dropping the drm_addmap() call for i915 intentional or not?
>>
>> Yes, so now we need to find out what happens in your userspace, when
>> it hangs is the machine dead?
>>
>> or can you ssh in? any oops in the logs? can you get a sysrq-t
>> backtrace for X.org and glxinfo?
>
> The machine's keyboard and console switching is dead and the login in
> process drops the wifi but I think I can get in through ssh over
> ethernet. The power button does make it shutdown cleanly and there is no
> oops. I'll try and get backtraces later, probably tonight.
>
> I have a question though, where in the i915 driver is
> master_priv->sarea_priv assigned a value? or master_priv->sarea for that
> matter? As far as I can tell those pointers are never assigned values?
> Is there a drm_getsarea() call missing?
>
> Perhaps my patch fixes things since sarea and sarea_priv are given a
> value?
>

Does the attached patch work?

Somehow this code was tested on DRI2 which needs no sarea, and we missed the bit
to setup the DRI1 sarea, this patch should dtrt.

Thanks for reporting/tracking this down..

Dave.
> Cheers,
>
> Richard
>
>
>

[-- Attachment #2: 0001-drm-i915-setup-sarea-properly-in-master_priv.patch --]
[-- Type: application/octet-stream, Size: 1235 bytes --]

From b6f568d6ae70862fde54118741a8e3060abe425c Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@linux.ie>
Date: Sun, 11 Jan 2009 09:03:49 +1000
Subject: [PATCH] drm/i915: setup sarea properly in master_priv

If we are running DRI1 userspace, we really need to set the sarea up properly.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/i915/i915_dma.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 62a4bf7..fbee2d8 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -177,6 +177,14 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
 	drm_i915_private_t *dev_priv = dev->dev_private;
 	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 
+	master_priv->sarea = drm_getsarea(dev);
+	if (master_priv->sarea) {
+		master_priv->sarea_priv = (drm_i915_sarea_t *)
+			((u8 *)master_priv->sarea->handle + init->sarea_priv->offset);
+	} else {
+		DRM_DEBUG("sarea not found assuming DRI2 userspace\n");
+	}
+
 	if (init->ring_size != 0) {
 		if (dev_priv->ring.ring_obj != NULL) {
 			i915_dma_cleanup(dev);
-- 
1.5.5.1


^ permalink raw reply related	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-10  2:04       ` Dave Airlie
@ 2009-01-10  9:58         ` Richard Purdie
  2009-01-10 23:04           ` Dave Airlie
  0 siblings, 1 reply; 79+ messages in thread
From: Richard Purdie @ 2009-01-10  9:58 UTC (permalink / raw)
  To: Dave Airlie; +Cc: Dave Airlie, dri-devel, linux-kernel


On Sat, 2009-01-10 at 12:04 +1000, Dave Airlie wrote:
> On Sat, Jan 10, 2009 at 11:13 AM, Richard Purdie
> <rpurdie@linux.intel.com> wrote:
> > On Fri, 2009-01-09 at 18:03 +0000, Richard Purdie wrote:
> >> On Fri, 2009-01-09 at 15:07 +0000, Richard Purdie wrote:
> >> > I just updated to the latest kernel from git to test some other patches
> >> > and after logging into GDM the X server hangs before launching the
> >> > desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
> >> > (i915 graphics). Bisection shows this happens after applying this
> >> > commit:
> >> >
> >> > On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
> >> > > commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
> >> > > Author: Dave Airlie <airlied@redhat.com>
> >> > > Date:   Fri Nov 28 14:22:24 2008 +1000
> >
> > The patch below gets my system working again with the latest kernels.
> > Was dropping the drm_addmap() call for i915 intentional or not?
> 
> Yes, so now we need to find out what happens in your userspace, when
> it hangs is the machine dead?
> 
> or can you ssh in? any oops in the logs? can you get a sysrq-t
> backtrace for X.org and glxinfo?

The machine's keyboard and console switching is dead and the login in
process drops the wifi but I think I can get in through ssh over
ethernet. The power button does make it shutdown cleanly and there is no
oops. I'll try and get backtraces later, probably tonight.

I have a question though, where in the i915 driver is
master_priv->sarea_priv assigned a value? or master_priv->sarea for that
matter? As far as I can tell those pointers are never assigned values?
Is there a drm_getsarea() call missing? 

Perhaps my patch fixes things since sarea and sarea_priv are given a
value?

Cheers,

Richard



^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-10  1:13     ` Richard Purdie
@ 2009-01-10  2:04       ` Dave Airlie
  2009-01-10  9:58         ` Richard Purdie
  0 siblings, 1 reply; 79+ messages in thread
From: Dave Airlie @ 2009-01-10  2:04 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Dave Airlie, dri-devel, linux-kernel

On Sat, Jan 10, 2009 at 11:13 AM, Richard Purdie
<rpurdie@linux.intel.com> wrote:
> On Fri, 2009-01-09 at 18:03 +0000, Richard Purdie wrote:
>> On Fri, 2009-01-09 at 15:07 +0000, Richard Purdie wrote:
>> > I just updated to the latest kernel from git to test some other patches
>> > and after logging into GDM the X server hangs before launching the
>> > desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
>> > (i915 graphics). Bisection shows this happens after applying this
>> > commit:
>> >
>> > On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
>> > > commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
>> > > Author: Dave Airlie <airlied@redhat.com>
>> > > Date:   Fri Nov 28 14:22:24 2008 +1000
>
> The patch below gets my system working again with the latest kernels.
> Was dropping the drm_addmap() call for i915 intentional or not?

Yes, so now we need to find out what happens in your userspace, when
it hangs is the machine dead?

or can you ssh in? any oops in the logs? can you get a sysrq-t
backtrace for X.org and glxinfo?

Dave.
>
>
> drm: Fix userspace X lockups introduced in 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
>
> Add back the drm_addmap() call that was dropped as part of commit
> 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a for the i915 driver, fixing X
> userspace lockups.
>
> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 62a4bf7..db61d89 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -29,6 +29,7 @@
>  #include "drmP.h"
>  #include "drm.h"
>  #include "drm_crtc_helper.h"
> +#include "drm_sarea.h"
>  #include "intel_drv.h"
>  #include "i915_drm.h"
>  #include "i915_drv.h"
> @@ -1007,11 +1008,24 @@ out:
>  int i915_master_create(struct drm_device *dev, struct drm_master *master)
>  {
>        struct drm_i915_master_private *master_priv;
> +       unsigned long sareapage;
> +       int ret;
>
>        master_priv = drm_calloc(1, sizeof(*master_priv), DRM_MEM_DRIVER);
>        if (!master_priv)
>                return -ENOMEM;
>
> +       /* prebuild the SAREA */
> +       sareapage = max(SAREA_MAX, PAGE_SIZE);
> +       ret = drm_addmap(dev, 0, sareapage, _DRM_SHM, _DRM_CONTAINS_LOCK|_DRM_DRIVER,
> +                        &master_priv->sarea);
> +       if (ret) {
> +               DRM_ERROR("SAREA setup failed\n");
> +               return ret;
> +       }
> +
> +       master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea);
> +
>        master->driver_priv = master_priv;
>        return 0;
>  }
> @@ -1023,6 +1037,9 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
>        if (!master_priv)
>                return;
>
> +       if (master_priv->sarea)
> +               drm_rmmap(dev, master_priv->sarea);
> +
>        drm_free(master_priv, sizeof(*master_priv), DRM_MEM_DRIVER);
>
>        master->driver_priv = NULL;
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-04 19:19 ` Gabriel C
@ 2009-01-10  2:03   ` Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-01-10  2:03 UTC (permalink / raw)
  To: Gabriel C
  Cc: Dave Airlie, torvalds, dri-devel, linux-kernel, Jesse Barnes,
	Eric Anholt

On Mon, Jan 5, 2009 at 5:19 AM, Gabriel C <nix.or.die@googlemail.com> wrote:
> Dave Airlie wrote:
>
> Hi Dave ,
>
> ...
>
>
>
>> Please pull the 'drm-next' branch from
>> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
>>
>> Major highlights:
>> Kernel Modesetting (KMS) core code (jbarnes you can go to drinking island
>> now)
>> Intel i915 support for kernel modesetting
>
>
> ....
>
>
>
>> commit 79e539453b34e35f39299a899d263b0a1f1670bd
>> Author: Jesse Barnes <jbarnes@virtuousgeek.org>
>> Date:   Fri Nov 7 14:24:08 2008 -0800
>>
>>     DRM: i915: add mode setting support
>>
>>     This commit adds i915 driver support for the DRM mode setting APIs.
>>     Currently, VGA, LVDS, SDVO DVI & VGA, TV and DVO LVDS outputs are
>>     supported.  HDMI, DisplayPort and additional SDVO output support will
>>     follow.
>>
>>     Support for the mode setting code is controlled by the new 'modeset'
>>     module option.  A new config option, CONFIG_DRM_I915_KMS controls the
>>     default behavior, and whether a PCI ID list is built into the module for
>>     use by user level module utilities.
>>
>>     Note that if mode setting is enabled, user level drivers that access
>>     display registers directly or that don't use the kernel graphics memory
>>     manager will likely corrupt kernel graphics memory, disrupt output
>>     configuration (possibly leading to hangs and/or blank displays), and
>>     prevent panic/oops messages from appearing.  So use caution when
>>     enabling this code; be sure your user level code supports the new
>>     interfaces.
>>
>>     A new SysRq key, 'g', provides emergency support for switching back to
>>     the kernel's framebuffer console; which is useful for testing.
>>
>>     Co-authors: Dave Airlie <airlied@linux.ie>, Hong Liu <hong.liu@intel.com>
>>
>>     Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
>>     Signed-off-by: Eric Anholt <eric@anholt.net>
>>     Signed-off-by: Dave Airlie <airlied@redhat.com>
>>
>
>
> This commit added the following text to drivers/gpu/drm/Kconfig :
>
> config DRM_I915_KMS
>       bool "Enable modesetting on intel by default"
>       depends on DRM_I915
>       help
>       Choose this option if you want kernel modesetting enabled by default,
>       and you have a new enough userspace to support this. Running old
>       userspaces with this enabled will cause pain.  Note that this causes
>       the driver to bind to PCI devices, which precludes loading things
>       like intelfb.
>
>
> I don't think any 'normal' user has a clue what you guys meant by
> 'new and old userspace' . Could someone clarify 'what versions of probably Xorg and libs are
> needed to have that support and which are for sure broken or old' please ?
>
> Also while testing this with xorg-server 1.4* I found out the 'pain' means an broken X and a broken box since
> it broke the kernel as well and the only way to get the box to live again was an hard reset. Please clarify the 'pain' part too.

There is no new enough userspace yet, so I can't say what version will
have it, maybe I should mark enabled by default as experimental or
something.

If pain doesn't equate to doing something that will hurt, then I'm not
sure what will, it actually will work for some people, so I can't say
it will always be broken.

I'll see if Jesse can provide some nicer wordings...

Dave.

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-09 18:03   ` Richard Purdie
@ 2009-01-10  1:13     ` Richard Purdie
  2009-01-10  2:04       ` Dave Airlie
  0 siblings, 1 reply; 79+ messages in thread
From: Richard Purdie @ 2009-01-10  1:13 UTC (permalink / raw)
  To: Dave Airlie; +Cc: dri-devel, linux-kernel

On Fri, 2009-01-09 at 18:03 +0000, Richard Purdie wrote:
> On Fri, 2009-01-09 at 15:07 +0000, Richard Purdie wrote:
> > I just updated to the latest kernel from git to test some other patches
> > and after logging into GDM the X server hangs before launching the
> > desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
> > (i915 graphics). Bisection shows this happens after applying this
> > commit:
> > 
> > On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
> > > commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
> > > Author: Dave Airlie <airlied@redhat.com>
> > > Date:   Fri Nov 28 14:22:24 2008 +1000

The patch below gets my system working again with the latest kernels.
Was dropping the drm_addmap() call for i915 intentional or not?


drm: Fix userspace X lockups introduced in 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a

Add back the drm_addmap() call that was dropped as part of commit
7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a for the i915 driver, fixing X
userspace lockups.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 62a4bf7..db61d89 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -29,6 +29,7 @@
 #include "drmP.h"
 #include "drm.h"
 #include "drm_crtc_helper.h"
+#include "drm_sarea.h"
 #include "intel_drv.h"
 #include "i915_drm.h"
 #include "i915_drv.h"
@@ -1007,11 +1008,24 @@ out:
 int i915_master_create(struct drm_device *dev, struct drm_master *master)
 {
 	struct drm_i915_master_private *master_priv;
+	unsigned long sareapage;
+	int ret;
 
 	master_priv = drm_calloc(1, sizeof(*master_priv), DRM_MEM_DRIVER);
 	if (!master_priv)
 		return -ENOMEM;
 
+	/* prebuild the SAREA */
+	sareapage = max(SAREA_MAX, PAGE_SIZE);
+	ret = drm_addmap(dev, 0, sareapage, _DRM_SHM, _DRM_CONTAINS_LOCK|_DRM_DRIVER,
+			 &master_priv->sarea);
+	if (ret) {
+		DRM_ERROR("SAREA setup failed\n");
+		return ret;
+	}
+
+	master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea);
+
 	master->driver_priv = master_priv;
 	return 0;
 }
@@ -1023,6 +1037,9 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
 	if (!master_priv)
 		return;
 
+	if (master_priv->sarea)
+		drm_rmmap(dev, master_priv->sarea);
+
 	drm_free(master_priv, sizeof(*master_priv), DRM_MEM_DRIVER);
 
 	master->driver_priv = NULL;



^ permalink raw reply related	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2009-01-09 15:07 ` Richard Purdie
@ 2009-01-09 18:03   ` Richard Purdie
  2009-01-10  1:13     ` Richard Purdie
  2009-01-11  9:29   ` Graham Murray
  1 sibling, 1 reply; 79+ messages in thread
From: Richard Purdie @ 2009-01-09 18:03 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, dri-devel, linux-kernel


On Fri, 2009-01-09 at 15:07 +0000, Richard Purdie wrote:
> I just updated to the latest kernel from git to test some other patches
> and after logging into GDM the X server hangs before launching the
> desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
> (i915 graphics). Bisection shows this happens after applying this
> commit:
> 
> On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
> > commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
> > Author: Dave Airlie <airlied@redhat.com>
> > Date:   Fri Nov 28 14:22:24 2008 +1000

Just to further follow up, the following fragment of the above commit is
the bit that causes the problem. With this applied, X locks up but I've
run out of time today to look into it further.

diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
index 0a83573..f7f064b 100644
--- a/drivers/gpu/drm/drm_fops.c
+++ b/drivers/gpu/drm/drm_fops.c
@@ -44,10 +44,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
 
 static int drm_setup(struct drm_device * dev)
 {
-	drm_local_map_t *map;
 	int i;
 	int ret;
-	u32 sareapage;
 
 	if (dev->driver->firstopen) {
 		ret = dev->driver->firstopen(dev);
@@ -55,12 +53,6 @@ static int drm_setup(struct drm_device * dev)
 			return ret;
 	}
 
-	/* prebuild the SAREA */
-	sareapage = max_t(unsigned, SAREA_MAX, PAGE_SIZE);
-	i = drm_addmap(dev, 0, sareapage, _DRM_SHM, _DRM_CONTAINS_LOCK, &map);
-	if (i != 0)
-		return i;
-
 	atomic_set(&dev->ioctl_count, 0);
 	atomic_set(&dev->vma_count, 0);
 	dev->buf_use = 0;
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index afa8a12..dacdf3c 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -39,6 +39,7 @@
 int i915_wait_ring(struct drm_device * dev, int n, const char *caller)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	drm_i915_ring_buffer_t *ring = &(dev_priv->ring);
 	u32 acthd_reg = IS_I965G(dev) ? ACTHD_I965 : ACTHD;
 	u32 last_acthd = I915_READ(acthd_reg);
@@ -55,8 +56,8 @@ int i915_wait_ring(struct drm_device * dev, int n, const char *caller)
 		if (ring->space >= n)
 			return 0;
 
-		if (dev_priv->sarea_priv)
-			dev_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
+		if (master_priv->sarea_priv)
+			master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
 
 		if (ring->head != last_head)
 			i = 0;
@@ -121,6 +122,7 @@ static void i915_free_hws(struct drm_device *dev)
 void i915_kernel_lost_context(struct drm_device * dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
+	struct drm_i915_master_private *master_priv;
 	drm_i915_ring_buffer_t *ring = &(dev_priv->ring);
 
 	ring->head = I915_READ(PRB0_HEAD) & HEAD_ADDR;
@@ -129,8 +131,12 @@ void i915_kernel_lost_context(struct drm_device * dev)
 	if (ring->space < 0)
 		ring->space += ring->Size;
 
-	if (ring->head == ring->tail && dev_priv->sarea_priv)
-		dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
+	if (!dev->primary->master)
+		return;
+
+	master_priv = dev->primary->master->driver_priv;
+	if (ring->head == ring->tail && master_priv->sarea_priv)
+		master_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
 }
 
 static int i915_dma_cleanup(struct drm_device * dev)
@@ -154,25 +160,13 @@ static int i915_dma_cleanup(struct drm_device * dev)
 	if (I915_NEED_GFX_HWS(dev))
 		i915_free_hws(dev);
 
-	dev_priv->sarea = NULL;
-	dev_priv->sarea_priv = NULL;
-
 	return 0;
 }
 
 static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
-
-	dev_priv->sarea = drm_getsarea(dev);
-	if (!dev_priv->sarea) {
-		DRM_ERROR("can not find sarea!\n");
-		i915_dma_cleanup(dev);
-		return -EINVAL;
-	}
-
-	dev_priv->sarea_priv = (drm_i915_sarea_t *)
-	    ((u8 *) dev_priv->sarea->handle + init->sarea_priv_offset);
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 
 	if (init->ring_size != 0) {
 		if (dev_priv->ring.ring_obj != NULL) {
@@ -207,7 +201,8 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init)
 	dev_priv->back_offset = init->back_offset;
 	dev_priv->front_offset = init->front_offset;
 	dev_priv->current_page = 0;
-	dev_priv->sarea_priv->pf_current_page = dev_priv->current_page;
+	if (master_priv->sarea_priv)
+		master_priv->sarea_priv->pf_current_page = 0;
 
 	/* Allow hardware batchbuffers unless told otherwise.
 	 */
@@ -222,11 +217,6 @@ static int i915_dma_resume(struct drm_device * dev)
 
 	DRM_DEBUG("%s\n", __func__);
 
-	if (!dev_priv->sarea) {
-		DRM_ERROR("can not find sarea!\n");
-		return -EINVAL;
-	}
-
 	if (dev_priv->ring.map.handle == NULL) {
 		DRM_ERROR("can not ioremap virtual address for"
 			  " ring buffer\n");
@@ -435,13 +425,14 @@ i915_emit_box(struct drm_device *dev,
 static void i915_emit_breadcrumb(struct drm_device *dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	RING_LOCALS;
 
 	dev_priv->counter++;
 	if (dev_priv->counter > 0x7FFFFFFFUL)
 		dev_priv->counter = 0;
-	if (dev_priv->sarea_priv)
-		dev_priv->sarea_priv->last_enqueue = dev_priv->counter;
+	if (master_priv->sarea_priv)
+		master_priv->sarea_priv->last_enqueue = dev_priv->counter;
 
 	BEGIN_LP_RING(4);
 	OUT_RING(MI_STORE_DWORD_INDEX);
@@ -537,15 +528,17 @@ static int i915_dispatch_batchbuffer(struct drm_device * dev,
 static int i915_dispatch_flip(struct drm_device * dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
+	struct drm_i915_master_private *master_priv =
+		dev->primary->master->driver_priv;
 	RING_LOCALS;
 
-	if (!dev_priv->sarea_priv)
+	if (!master_priv->sarea_priv)
 		return -EINVAL;
 
 	DRM_DEBUG("%s: page=%d pfCurrentPage=%d\n",
 		  __func__,
 		  dev_priv->current_page,
-		  dev_priv->sarea_priv->pf_current_page);
+		  master_priv->sarea_priv->pf_current_page);
 
 	i915_kernel_lost_context(dev);
 
@@ -572,7 +565,7 @@ static int i915_dispatch_flip(struct drm_device * dev)
 	OUT_RING(0);
 	ADVANCE_LP_RING();
 
-	dev_priv->sarea_priv->last_enqueue = dev_priv->counter++;
+	master_priv->sarea_priv->last_enqueue = dev_priv->counter++;
 
 	BEGIN_LP_RING(4);
 	OUT_RING(MI_STORE_DWORD_INDEX);
@@ -581,7 +574,7 @@ static int i915_dispatch_flip(struct drm_device * dev)
 	OUT_RING(0);
 	ADVANCE_LP_RING();
 
-	dev_priv->sarea_priv->pf_current_page = dev_priv->current_page;
+	master_priv->sarea_priv->pf_current_page = dev_priv->current_page;
 	return 0;
 }
 
@@ -611,8 +604,9 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
 			    struct drm_file *file_priv)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *)
-	    dev_priv->sarea_priv;
+	    master_priv->sarea_priv;
 	drm_i915_batchbuffer_t *batch = data;
 	int ret;
 
@@ -644,8 +638,9 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
 			  struct drm_file *file_priv)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *)
-	    dev_priv->sarea_priv;
+	    master_priv->sarea_priv;
 	drm_i915_cmdbuffer_t *cmdbuf = data;
 	int ret;
 
@@ -802,6 +797,30 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
 	return 0;
 }
 
+int i915_master_create(struct drm_device *dev, struct drm_master *master)
+{
+	struct drm_i915_master_private *master_priv;
+
+	master_priv = drm_calloc(1, sizeof(*master_priv), DRM_MEM_DRIVER);
+	if (!master_priv)
+		return -ENOMEM;
+
+	master->driver_priv = master_priv;
+	return 0;
+}
+
+void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
+{
+	struct drm_i915_master_private *master_priv = master->driver_priv;
+
+	if (!master_priv)
+		return;
+
+	drm_free(master_priv, sizeof(*master_priv), DRM_MEM_DRIVER);
+
+	master->driver_priv = NULL;
+}
+
 int i915_driver_load(struct drm_device *dev, unsigned long flags)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index a80ead2..c916483 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -107,6 +107,8 @@ static struct drm_driver driver = {
 	.reclaim_buffers = drm_core_reclaim_buffers,
 	.get_map_ofs = drm_core_get_map_ofs,
 	.get_reg_ofs = drm_core_get_reg_ofs,
+	.master_create = i915_master_create,
+	.master_destroy = i915_master_destroy,
 	.proc_init = i915_gem_proc_init,
 	.proc_cleanup = i915_gem_proc_cleanup,
 	.gem_init_object = i915_gem_init_object,
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6d8ef2f..ba096f9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -103,15 +103,18 @@ struct intel_opregion {
 	int enabled;
 };
 
+struct drm_i915_master_private {
+	drm_local_map_t *sarea;
+	struct _drm_i915_sarea *sarea_priv;
+};
+
 typedef struct drm_i915_private {
 	struct drm_device *dev;
 
 	int has_gem;
 
 	void __iomem *regs;
-	drm_local_map_t *sarea;
 
-	drm_i915_sarea_t *sarea_priv;
 	drm_i915_ring_buffer_t ring;
 
 	drm_dma_handle_t *status_page_dmah;
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 69b9a42..9b673d2 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -168,6 +168,7 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
 {
 	struct drm_device *dev = (struct drm_device *) arg;
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
+	struct drm_i915_master_private *master_priv;
 	u32 iir, new_iir;
 	u32 pipea_stats, pipeb_stats;
 	u32 vblank_status;
@@ -222,9 +223,12 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
 		I915_WRITE(IIR, iir);
 		new_iir = I915_READ(IIR); /* Flush posted writes */
 
-		if (dev_priv->sarea_priv)
-			dev_priv->sarea_priv->last_dispatch =
-				READ_BREADCRUMB(dev_priv);
+		if (dev->primary->master) {
+			master_priv = dev->primary->master->driver_priv;
+			if (master_priv->sarea_priv)
+				master_priv->sarea_priv->last_dispatch =
+					READ_BREADCRUMB(dev_priv);
+		}
 
 		if (iir & I915_USER_INTERRUPT) {
 			dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev);
@@ -269,6 +273,7 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
 static int i915_emit_irq(struct drm_device * dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	RING_LOCALS;
 
 	i915_kernel_lost_context(dev);
@@ -278,8 +283,8 @@ static int i915_emit_irq(struct drm_device * dev)
 	dev_priv->counter++;
 	if (dev_priv->counter > 0x7FFFFFFFUL)
 		dev_priv->counter = 1;
-	if (dev_priv->sarea_priv)
-		dev_priv->sarea_priv->last_enqueue = dev_priv->counter;
+	if (master_priv->sarea_priv)
+		master_priv->sarea_priv->last_enqueue = dev_priv->counter;
 
 	BEGIN_LP_RING(4);
 	OUT_RING(MI_STORE_DWORD_INDEX);
@@ -317,21 +322,20 @@ void i915_user_irq_put(struct drm_device *dev)
 static int i915_wait_irq(struct drm_device * dev, int irq_nr)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
 	int ret = 0;
 
 	DRM_DEBUG("irq_nr=%d breadcrumb=%d\n", irq_nr,
 		  READ_BREADCRUMB(dev_priv));
 
 	if (READ_BREADCRUMB(dev_priv) >= irq_nr) {
-		if (dev_priv->sarea_priv) {
-			dev_priv->sarea_priv->last_dispatch =
-				READ_BREADCRUMB(dev_priv);
-		}
+		if (master_priv->sarea_priv)
+			master_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
 		return 0;
 	}
 
-	if (dev_priv->sarea_priv)
-		dev_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
+	if (master_priv->sarea_priv)
+		master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
 
 	i915_user_irq_get(dev);
 	DRM_WAIT_ON(ret, dev_priv->irq_queue, 3 * DRM_HZ,
@@ -343,10 +347,6 @@ static int i915_wait_irq(struct drm_device * dev, int irq_nr)
 			  READ_BREADCRUMB(dev_priv), (int)dev_priv->counter);
 	}
 
-	if (dev_priv->sarea_priv)
-		dev_priv->sarea_priv->last_dispatch =
-			READ_BREADCRUMB(dev_priv);
-
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/i915/i915_mem.c b/drivers/gpu/drm/i915/i915_mem.c
index 6126a60..96e2719 100644
--- a/drivers/gpu/drm/i915/i915_mem.c
+++ b/drivers/gpu/drm/i915/i915_mem.c
@@ -46,7 +46,8 @@
 static void mark_block(struct drm_device * dev, struct mem_block *p, int in_use)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
-	drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv;
+	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
+	drm_i915_sarea_t *sarea_priv = master_priv->sarea_priv;
 	struct drm_tex_region *list;
 	unsigned shift, nr;
 	unsigned start;

-- 
Richard Purdie
Intel Open Source Technology Centre


^ permalink raw reply related	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2008-12-29  8:32 Dave Airlie
  2009-01-04 19:19 ` Gabriel C
@ 2009-01-09 15:07 ` Richard Purdie
  2009-01-09 18:03   ` Richard Purdie
  2009-01-11  9:29   ` Graham Murray
  1 sibling, 2 replies; 79+ messages in thread
From: Richard Purdie @ 2009-01-09 15:07 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, dri-devel, linux-kernel

Hi,

I just updated to the latest kernel from git to test some other patches
and after logging into GDM the X server hangs before launching the
desktop (it appears to be trying to run glxinfo) on my Thinkpad T61
(i915 graphics). Bisection shows this happens after applying this
commit:

On Mon, 2008-12-29 at 08:32 +0000, Dave Airlie wrote:
> Please pull the 'drm-next' branch from
> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
[...]
> commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
> Author: Dave Airlie <airlied@redhat.com>
> Date:   Fri Nov 28 14:22:24 2008 +1000
> 
>     drm: move to kref per-master structures.
>     
>     This is step one towards having multiple masters sharing a drm
>     device in order to get fast-user-switching to work.
>     
>     It splits out the information associated with the drm master
>     into a separate kref counted structure, and allocates this when
>     a master opens the device node. It also allows the current master
>     to abdicate (say while VT switched), and a new master to take over
>     the hardware.
>     
>     It moves the Intel and radeon drivers to using the sarea from
>     within the new master structures.
>     
>     Signed-off-by: Dave Airlie <airlied@redhat.com>

Is this issue known? I'm presuming my userspace should continue to work
after that change! :)

Cheers,

Richard

-- 
Richard Purdie
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2009-01-07  1:59 Dave Airlie
  0 siblings, 0 replies; 79+ messages in thread
From: Dave Airlie @ 2009-01-07  1:59 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3325 bytes --]


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 is mostly KMS related fixes, with a GEM related fix that stable also 
needs.

Dave.

 drivers/gpu/drm/drm_drv.c            |    6 +-
 drivers/gpu/drm/i915/Makefile        |    1 +
 drivers/gpu/drm/i915/i915_dma.c      |   46 ++++--
 drivers/gpu/drm/i915/i915_drv.h      |    2 +
 drivers/gpu/drm/i915/i915_gem.c      |   15 +-
 drivers/gpu/drm/i915/i915_reg.h      |   25 +++-
 drivers/gpu/drm/i915/intel_display.c |   48 +++++--
 drivers/gpu/drm/i915/intel_drv.h     |    5 +-
 drivers/gpu/drm/i915/intel_hdmi.c    |  280 ++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_sdvo.c    |    8 +-
 10 files changed, 397 insertions(+), 39 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/intel_hdmi.c

commit a75f28419a7efff611a81293d41d0e2137d7591e
Author: Dave Airlie <airlied@linux.ie>
Date:   Wed Jan 7 11:54:57 2009 +1000

    drm: fix ordering of driver unload vs agp unload.
    
    For KMS drivers, we really need to cleanup the driver before disabling
    the AGP subsystem.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 241fa85b2bb655224357d713c251077dee3585ce
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 2 18:05:51 2009 -0800

    drm/i915: Respect the other stolen memory sizes we know of.
    
    fd.o bug #19336.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 1fc45d84d616cec00566152c1080903c461eb537
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 2 15:57:35 2009 -0800

    drm/i915: Non-mobile parts don't have integrated TV-out.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 7d57382e65994ab7d01741373bd1c420370aed9f
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Jan 2 13:33:00 2009 -0800

    drm/i915: Add support for integrated HDMI on G4X hardware.
    
    This is ported directly from the userland 2D driver code.  The HDMI audio bits
    aren't hooked up yet.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 3f8bc370ac679a5fe5c098f30d3cf8e80f62a9f8
Author: Kristian Høgsberg <krh@redhat.com>
Date:   Wed Dec 17 22:14:59 2008 -0500

    drm/i915: Pin cursor bo and unpin old bo when setting cursor.
    
    We also didn't track the cursor bo before and would leak a reference
    when the cursor image was change.
    
    Signed-off-by: Kristian Høgsberg <krh@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 9bb2d6f94aeb9a185d69aedbd19421b6da4e3309
Author: Eric Anholt <eric@anholt.net>
Date:   Tue Dec 23 18:42:32 2008 -0800

    drm/i915: Don't allow objects to get bound while VT switched.
    
    This avoids a BUG_ON in the enter_vt path due to objects being in the GTT
    when we shouldn't have ever let them be (as we're not supposed to touch the
    device during that time).
    
    This was triggered by a change in the 2D driver to use the GTT mapping of
    objects after pinning them to improve software fallback performance.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

^ permalink raw reply	[flat|nested] 79+ messages in thread

* Re: [git pull] drm
  2008-12-29  8:32 Dave Airlie
@ 2009-01-04 19:19 ` Gabriel C
  2009-01-10  2:03   ` Dave Airlie
  2009-01-09 15:07 ` Richard Purdie
  1 sibling, 1 reply; 79+ messages in thread
From: Gabriel C @ 2009-01-04 19:19 UTC (permalink / raw)
  To: Dave Airlie; +Cc: torvalds, dri-devel, linux-kernel, Jesse Barnes, Eric Anholt

Dave Airlie wrote:

Hi Dave ,

...


 
> Please pull the 'drm-next' branch from
> ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-next
> 
> Major highlights:
> Kernel Modesetting (KMS) core code (jbarnes you can go to drinking island 
> now)
> Intel i915 support for kernel modesetting


....



> commit 79e539453b34e35f39299a899d263b0a1f1670bd
> Author: Jesse Barnes <jbarnes@virtuousgeek.org>
> Date:   Fri Nov 7 14:24:08 2008 -0800
> 
>     DRM: i915: add mode setting support
>     
>     This commit adds i915 driver support for the DRM mode setting APIs.
>     Currently, VGA, LVDS, SDVO DVI & VGA, TV and DVO LVDS outputs are
>     supported.  HDMI, DisplayPort and additional SDVO output support will
>     follow.
>     
>     Support for the mode setting code is controlled by the new 'modeset'
>     module option.  A new config option, CONFIG_DRM_I915_KMS controls the
>     default behavior, and whether a PCI ID list is built into the module for
>     use by user level module utilities.
>     
>     Note that if mode setting is enabled, user level drivers that access
>     display registers directly or that don't use the kernel graphics memory
>     manager will likely corrupt kernel graphics memory, disrupt output
>     configuration (possibly leading to hangs and/or blank displays), and
>     prevent panic/oops messages from appearing.  So use caution when
>     enabling this code; be sure your user level code supports the new
>     interfaces.
>     
>     A new SysRq key, 'g', provides emergency support for switching back to
>     the kernel's framebuffer console; which is useful for testing.
>     
>     Co-authors: Dave Airlie <airlied@linux.ie>, Hong Liu <hong.liu@intel.com>
>     
>     Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
>     Signed-off-by: Eric Anholt <eric@anholt.net>
>     Signed-off-by: Dave Airlie <airlied@redhat.com>
> 


This commit added the following text to drivers/gpu/drm/Kconfig :

config DRM_I915_KMS
       bool "Enable modesetting on intel by default"
       depends on DRM_I915
       help
       Choose this option if you want kernel modesetting enabled by default,
       and you have a new enough userspace to support this. Running old
       userspaces with this enabled will cause pain.  Note that this causes
       the driver to bind to PCI devices, which precludes loading things
       like intelfb.


I don't think any 'normal' user has a clue what you guys meant by 
'new and old userspace' . Could someone clarify 'what versions of probably Xorg and libs are
needed to have that support and which are for sure broken or old' please ?

Also while testing this with xorg-server 1.4* I found out the 'pain' means an broken X and a broken box since 
it broke the kernel as well and the only way to get the box to live again was an hard reset. Please clarify the 'pain' part too.

Thanks for your time.

Best regards ,

Gabriel C



^ permalink raw reply	[flat|nested] 79+ messages in thread

* [git pull] drm
@ 2008-12-29  8:32 Dave Airlie
  2009-01-04 19:19 ` Gabriel C
  2009-01-09 15:07 ` Richard Purdie
  0 siblings, 2 replies; 79+ messages in thread
From: Dave Airlie @ 2008-12-29  8:32 UTC (permalink / raw)
  To: torvalds; +Cc: dri-devel, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 24055 bytes --]


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

Major highlights:
Kernel Modesetting (KMS) core code (jbarnes you can go to drinking island 
now)
Intel i915 support for kernel modesetting
multi-master split out for allow multiple X servers use DRI if driver 
supports it.

for anyone interested in kms:
a) don't enable it by default  unless you have a userspace to run on top 
of it, if you really want X to work, really kms is for developers at the 
moment, and later for distros to enable.
b) there isn't a stable userspace to run on top of it yet.

I might have to temporarily handoff drm maintainer job to jbarnes or 
anholt for the rest of this cycle, as today is the due date for my first 
kid, needless to say no sign yet, I actually thought the baby would 
arrive before kms got merged :)

Dave.

 drivers/gpu/drm/Kconfig                |   17 +
 drivers/gpu/drm/Makefile               |    3 +-
 drivers/gpu/drm/drm_auth.c             |   29 +-
 drivers/gpu/drm/drm_bufs.c             |   27 +-
 drivers/gpu/drm/drm_context.c          |   10 +-
 drivers/gpu/drm/drm_crtc.c             | 2446 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_crtc_helper.c      |  826 +++++++++++
 drivers/gpu/drm/drm_drv.c              |   95 +-
 drivers/gpu/drm/drm_edid.c             |  732 ++++++++++
 drivers/gpu/drm/drm_fops.c             |  223 ++--
 drivers/gpu/drm/drm_gem.c              |  111 ++
 drivers/gpu/drm/drm_hashtab.c          |    2 +
 drivers/gpu/drm/drm_ioctl.c            |   61 +-
 drivers/gpu/drm/drm_irq.c              |   73 +-
 drivers/gpu/drm/drm_lock.c             |   42 +-
 drivers/gpu/drm/drm_mm.c               |    1 +
 drivers/gpu/drm/drm_modes.c            |  576 ++++++++
 drivers/gpu/drm/drm_proc.c             |   71 +-
 drivers/gpu/drm/drm_stub.c             |  142 ++-
 drivers/gpu/drm/drm_sysfs.c            |  329 +++++-
 drivers/gpu/drm/drm_vm.c               |    7 +-
 drivers/gpu/drm/i915/Makefile          |   17 +-
 drivers/gpu/drm/i915/dvo.h             |  157 ++
 drivers/gpu/drm/i915/dvo_ch7017.c      |  454 ++++++
 drivers/gpu/drm/i915/dvo_ch7xxx.c      |  368 +++++
 drivers/gpu/drm/i915/dvo_ivch.c        |  442 ++++++
 drivers/gpu/drm/i915/dvo_sil164.c      |  302 ++++
 drivers/gpu/drm/i915/dvo_tfp410.c      |  335 +++++
 drivers/gpu/drm/i915/i915_dma.c        |  338 ++++-
 drivers/gpu/drm/i915/i915_drv.c        |   42 +-
 drivers/gpu/drm/i915/i915_drv.h        |   93 ++-
 drivers/gpu/drm/i915/i915_gem.c        |  628 ++++++++-
 drivers/gpu/drm/i915/i915_gem_proc.c   |   34 +
 drivers/gpu/drm/i915/i915_gem_tiling.c |    1 +
 drivers/gpu/drm/i915/i915_irq.c        |   51 +-
 drivers/gpu/drm/i915/i915_mem.c        |    3 +-
 drivers/gpu/drm/i915/i915_opregion.c   |    4 +-
 drivers/gpu/drm/i915/i915_reg.h        |   20 +-
 drivers/gpu/drm/i915/intel_bios.c      |  193 +++
 drivers/gpu/drm/i915/intel_bios.h      |  405 ++++++
 drivers/gpu/drm/i915/intel_crt.c       |  284 ++++
 drivers/gpu/drm/i915/intel_display.c   | 1618 +++++++++++++++++++++
 drivers/gpu/drm/i915/intel_drv.h       |  146 ++
 drivers/gpu/drm/i915/intel_dvo.c       |  495 +++++++
 drivers/gpu/drm/i915/intel_fb.c        |  925 ++++++++++++
 drivers/gpu/drm/i915/intel_i2c.c       |  184 +++
 drivers/gpu/drm/i915/intel_lvds.c      |  525 +++++++
 drivers/gpu/drm/i915/intel_modes.c     |   83 ++
 drivers/gpu/drm/i915/intel_sdvo.c      | 1128 +++++++++++++++
 drivers/gpu/drm/i915/intel_sdvo_regs.h |  327 +++++
 drivers/gpu/drm/i915/intel_tv.c        | 1725 ++++++++++++++++++++++
 drivers/gpu/drm/radeon/r300_cmdbuf.c   |   11 +-
 drivers/gpu/drm/radeon/radeon_cp.c     |   73 +-
 drivers/gpu/drm/radeon/radeon_drv.c    |    2 +
 drivers/gpu/drm/radeon/radeon_drv.h    |   14 +-
 drivers/gpu/drm/radeon/radeon_state.c  |  166 ++-
 drivers/video/console/vgacon.c         |   17 +
 include/drm/Kbuild                     |    2 +-
 include/drm/drm.h                      |   24 +
 include/drm/drmP.h                     |  108 ++-
 include/drm/drm_crtc.h                 |  733 ++++++++++
 include/drm/drm_crtc_helper.h          |  124 ++
 include/drm/drm_edid.h                 |  202 +++
 include/drm/drm_mode.h                 |  271 ++++
 include/drm/drm_sarea.h                |    6 +-
 include/drm/i915_drm.h                 |   41 +-
 include/linux/console.h                |    4 +
 67 files changed, 18476 insertions(+), 472 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_crtc.c
 create mode 100644 drivers/gpu/drm/drm_crtc_helper.c
 create mode 100644 drivers/gpu/drm/drm_edid.c
 create mode 100644 drivers/gpu/drm/drm_modes.c
 create mode 100644 drivers/gpu/drm/i915/dvo.h
 create mode 100644 drivers/gpu/drm/i915/dvo_ch7017.c
 create mode 100644 drivers/gpu/drm/i915/dvo_ch7xxx.c
 create mode 100644 drivers/gpu/drm/i915/dvo_ivch.c
 create mode 100644 drivers/gpu/drm/i915/dvo_sil164.c
 create mode 100644 drivers/gpu/drm/i915/dvo_tfp410.c
 create mode 100644 drivers/gpu/drm/i915/intel_bios.c
 create mode 100644 drivers/gpu/drm/i915/intel_bios.h
 create mode 100644 drivers/gpu/drm/i915/intel_crt.c
 create mode 100644 drivers/gpu/drm/i915/intel_display.c
 create mode 100644 drivers/gpu/drm/i915/intel_drv.h
 create mode 100644 drivers/gpu/drm/i915/intel_dvo.c
 create mode 100644 drivers/gpu/drm/i915/intel_fb.c
 create mode 100644 drivers/gpu/drm/i915/intel_i2c.c
 create mode 100644 drivers/gpu/drm/i915/intel_lvds.c
 create mode 100644 drivers/gpu/drm/i915/intel_modes.c
 create mode 100644 drivers/gpu/drm/i915/intel_sdvo.c
 create mode 100644 drivers/gpu/drm/i915/intel_sdvo_regs.h
 create mode 100644 drivers/gpu/drm/i915/intel_tv.c
 create mode 100644 include/drm/drm_crtc.h
 create mode 100644 include/drm/drm_crtc_helper.h
 create mode 100644 include/drm/drm_edid.h
 create mode 100644 include/drm/drm_mode.h

commit aa5966296675a5092505f68d72563d5939a92353
Author: Dave Airlie <airlied@linux.ie>
Date:   Mon Dec 29 16:35:02 2008 +1000

    drm/i915: fix modeset devname allocation + agp init return check.
    
    devname needs to be allocated before the irq is installed, so the
    irq routines get the correct name in /proc.
    
    Also check the return value from the AGP init function, and
    fixup the exit points.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit aad87dff5acb232666932e750318ec1fdb716e79
Author: Julia Lawall <julia@diku.dk>
Date:   Sun Dec 21 16:28:47 2008 +0100

    drm/i915: Remove redundant test in error path.
    
    The error path for object list being null is in the second goto target.
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit fede5c91c4a8a7701d205b2b84b9835ddc7d6f02
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Dec 19 17:23:38 2008 -0800

    drm: Add a debug node for vblank state.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit f51c5b6e623cc737d47f513cbb893cec914f0bd2
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Dec 19 15:07:11 2008 -0800

    drm: Avoid use-before-null-test on dev in drm_cleanup().
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit f1acec933848219c402c165686677b1c307407f8
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Dec 19 14:47:48 2008 -0800

    drm/i915: Don't print to dmesg when taking signal during object_pin.
    
    This showed up in logs where people had a hung chip, so pinning was blocked
    on the chip unpinning other buffers, and the X Server took its scheduler
    signal during that time.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 3c4fdcfb2941dc36b6a16bc509a2adb97c131716
Author: Kristian Høgsberg <krh@redhat.com>
Date:   Wed Dec 17 22:14:46 2008 -0500

    drm: pin new and unpin old buffer when setting a mode.
    
    This removes the requirement for user space to pin a buffer before
    setting a mode that is backed by the pixels from that buffer.
    
    Signed-off-by: Kristian Høgsberg <krh@redhat.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit d1e22c6ed05f3bfb3a7de0947498e7f3c868b296
Author: Hannes Eder <hannes@hanneseder.net>
Date:   Fri Dec 19 12:34:27 2008 +0100

    drm/i915: un-EXPORT and make 'intelfb_panic' static
    
    Fix this sparse warning:
    
      drivers/gpu/drm/i915/intel_fb.c:417:5: warning: symbol 'intelfb_panic' was not declared. Should it be static?
    
    Signed-off-by: Hannes Eder <hannes@hanneseder.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit bae7ec657305def791a946f5d791054c48a5f081
Author: Eric Anholt <eric@anholt.net>
Date:   Fri Dec 19 14:30:31 2008 -0800

    drm/i915: Delete unused, pointless i915_driver_firstopen.
    
    Thanks to Hannes Eder for pointing out that this code was dead according to
    sparse.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit d4da3af667d251cc853d1873a1fad4db6daabf5f
Author: Hannes Eder <hannes@hanneseder.net>
Date:   Thu Dec 18 21:24:18 2008 +0100

    drm/i915: fix sparse warnings: returning void-valued expression
    
    Signed-off-by: Hannes Eder <hannes@hanneseder.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 606df4e024bc8e921dd516cdb7160250658d9b7a
Author: Hannes Eder <hannes@hanneseder.net>
Date:   Thu Dec 18 21:22:24 2008 +0100

    drm/i915: fix sparse warnings: move 'extern' decls to header file
    
    Move 'extern'-decls from "intel_dvo.c" to "dvo.h", as "dvo.h" is
    included by and only by files where the symbols are either defined or
    used.
    
    Signed-off-by: Hannes Eder <hannes@hanneseder.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit b358d0a6252d8ed16afb20caaec35b24c76074bb
Author: Hannes Eder <hannes@hanneseder.net>
Date:   Thu Dec 18 21:18:47 2008 +0100

    drm/i915: fix sparse warnings: make symbols static
    
    Signed-off-by: Hannes Eder <hannes@hanneseder.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit 95281e352e19b670458563a5ca746195c183a98f
Author: Hannes Eder <hannes@hanneseder.net>
Date:   Thu Dec 18 15:09:00 2008 +0100

    drm/i915: fix sparse warnings: declare one-bit bitfield as unsigned
    
    Signed-off-by: Hannes Eder <hannes@hanneseder.net>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit b117763627ef4d24086801dd5f74c9eb2f487790
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 10 10:09:41 2008 -0800

    drm/i915: Don't double-unpin buffers if we take a signal in evict_everything().
    
    We haven't seen this in practice, but it was visible when looking at a bug
    report from when i915_gem_evict_everything() was broken and would always
    return error.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@linux.ie>

commit e7da40f0c89c10ad3cbb63b754abaf6c3e792f79
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 10 17:23:00 2008 -0800

    drm/i915: Fix fbcon setup to align display pitch to 64b.
    
    This is required by the display plane, and fixes 1400x1050 laptop displays.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 8d391aa410ecb230fc4c3147b94eec25b9f3c20f
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 17 22:32:14 2008 -0800

    drm/i915: Add missing userland definitions for gem init/execbuffer.
    
    fdo bug #19132.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit dfef24592257805af0bee42dced099459c68a307
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 19 15:07:46 2008 +1000

    i915/drm: provide compat defines for userspace for certain struct members.
    
    Painfully userspace started using new names that were never actually to be
    used from the external repo.
    
    Also fill out the gaps in the structure for old/new userspace compat
    
    Add compat defines for these structs.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 0c7c26647579e9e647e8b969bb0e7b3f5f1a1492
Author: Kristian H?gsberg <krh@redhat.com>
Date:   Thu Dec 18 13:14:37 2008 +1000

    drm: drop DRM_IOCTL_MODE_REPLACEFB, add+remove works just as well.
    
    The replace fb ioctl replaces the backing buffer object for a modesetting
    framebuffer object.  This can be acheived by just creating a new
    framebuffer backed by the new buffer object, setting that for the crtcs
    in question and then removing the old framebuffer object.
    
    Signed-off-by: Kristian Hogsberg <krh@redhat.com>
    Acked-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e0c8463a8b00b467611607df0ff369d062528875
Author: Jakob Bornecrantz <jakob@tungstengraphics.com>
Date:   Fri Dec 19 14:50:50 2008 +1000

    drm: sanitise drm modesetting API + remove unused hotplug
    
    The initially merged modesetting API has some uglies in it, this
    cleans up the struct members and ioctl ordering for initial submission.
    
    It also removes the unneeded hotplug infrastructure.
    
    airlied:- I've pulled this patch in from git modesetting-gem tree.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit df989374a9f5356ee815baa1ba6916671a701da2
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 19 12:00:46 2008 +1100

    drm: fix allowing master ioctls on non-master fds.
    
    The multi-master patches changed master to a pointer, and this fell out,
    change to use is_master.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 4e74f36d08e83390121d088f1f62e3337603df89
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 19 10:23:14 2008 +1100

    drm/radeon: use locked rmmap to remove sarea mapping.
    
    this exports the locked version of the symbol as struct_mutex locks it all.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 60f2ee0b4a6b852299d8e30aeb2af517ef5ee19c
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Dec 19 10:22:02 2008 +1100

    drm/radeon: fix missing hunk from the master changes.
    
    Thanks to Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> for reporting
    this.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f890607b1e93dc6fdc2a42b60656c917adf6257f
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Dec 18 16:59:02 2008 +1000

    drm: fix useless gcc unused variable warning
    
    the calling function doesn't call this function unless one of the two
    states that sets the value is true.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit bdf539ad61a8d4d0f0b0865c030a8ecb1ec2a398
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Dec 18 16:56:11 2008 +1000

    drm/radeon: fix warning due to PAGE_SIZE max
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 57a6297e52b32ff402291a7d8fd802f83e746e52
Author: Dave Airlie <airlied@linux.ie>
Date:   Sat Dec 13 18:21:08 2008 +1000

    drm: kconfig have drm core select i2c for kms
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ae14dc0505261978ca06075ac39cc5422c6c6b57
Author: Dave Airlie <airlied@linux.ie>
Date:   Thu Dec 11 17:06:35 2008 +1000

    drm: PAGE_CACHE_WC is x86 only so far
    
    The page protections need to be checked whether they need to be more flexible.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit aa91c6665a5e387e488c4a0b5da2536cc9c9f16e
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Dec 8 14:55:27 2008 +1000

    drm: pick an 800x600@60HZ mode by default for unknown CRT.
    
    This is what X picks now, so we should do the same.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 60fd99e3682c5acc74d58ed61dac93526d6976f7
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 3 22:50:02 2008 -0800

    drm/i915: Fix stolen memory detection on G45 and GM45.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 06d9f33ceb6be29c453915505a2fc88d80c36417
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 3 22:43:14 2008 -0800

    drm/i915: Register module dependencies for the modesetting code.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 79e539453b34e35f39299a899d263b0a1f1670bd
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Fri Nov 7 14:24:08 2008 -0800

    DRM: i915: add mode setting support
    
    This commit adds i915 driver support for the DRM mode setting APIs.
    Currently, VGA, LVDS, SDVO DVI & VGA, TV and DVO LVDS outputs are
    supported.  HDMI, DisplayPort and additional SDVO output support will
    follow.
    
    Support for the mode setting code is controlled by the new 'modeset'
    module option.  A new config option, CONFIG_DRM_I915_KMS controls the
    default behavior, and whether a PCI ID list is built into the module for
    use by user level module utilities.
    
    Note that if mode setting is enabled, user level drivers that access
    display registers directly or that don't use the kernel graphics memory
    manager will likely corrupt kernel graphics memory, disrupt output
    configuration (possibly leading to hangs and/or blank displays), and
    prevent panic/oops messages from appearing.  So use caution when
    enabling this code; be sure your user level code supports the new
    interfaces.
    
    A new SysRq key, 'g', provides emergency support for switching back to
    the kernel's framebuffer console; which is useful for testing.
    
    Co-authors: Dave Airlie <airlied@linux.ie>, Hong Liu <hong.liu@intel.com>
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f453ba0460742ad027ae0c4c7d61e62817b3e7ef
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Nov 7 14:05:41 2008 -0800

    DRM: add mode setting support
    
    Add mode setting support to the DRM layer.
    
    This is a fairly big chunk of work that allows DRM drivers to provide
    full output control and configuration capabilities to userspace.  It was
    motivated by several factors:
      - the fb layer's APIs aren't suited for anything but simple
        configurations
      - coordination between the fb layer, DRM layer, and various userspace
        drivers is poor to non-existent (radeonfb excepted)
      - user level mode setting drivers makes displaying panic & oops
        messages more difficult
      - suspend/resume of graphics state is possible in many more
        configurations with kernel level support
    
    This commit just adds the core DRM part of the mode setting APIs.
    Driver specific commits using these new structure and APIs will follow.
    
    Co-authors: Jesse Barnes <jbarnes@virtuousgeek.org>, Jakob Bornecrantz <jakob@tungstengraphics.com>
    Contributors: Alan Hourihane <alanh@tungstengraphics.com>, Maarten Maathuis <madman2003@gmail.com>
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit de151cf67ce52ed2d88083daa5e60c7858947329
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Nov 12 10:03:55 2008 -0800

    drm/i915: add GEM GTT mapping support
    
    Use the new core GEM object mapping code to allow GTT mapping of GEM
    objects on i915.  The fault handler will make sure a fence register is
    allocated too, if the object in question is tiled.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a2c0a97b784f837300f7b0869c82ab712c600952
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Nov 5 10:31:53 2008 -0800

    drm: GEM mmap support
    
    Add core support for mapping of GEM objects.  Drivers should provide a
    vm_operations_struct if they want to support page faulting of objects.
    The code for handling GEM object offsets was taken from TTM, which was
    written by Thomas Hellström.
    
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a9587470f753d670d910293ecbf1c7b66c99de50
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Nov 5 12:37:42 2008 -0800

    drm/i915: Add /proc debugging entry for reading out the HWS.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit a9d51a5ad1154b5b20add1e8d30a5564f8aabbe9
Author: Dave Airlie <airlied@linux.ie>
Date:   Sun Dec 7 12:02:21 2008 +1000

    drm: reorganise start and load.
    
    Make sure we have the primary node so the device can add maps.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 1147c9cdd0f60f09a98702a9f865176af18a989f
Author: Vegard Nossum <vegard.nossum@gmail.com>
Date:   Tue Dec 2 13:38:47 2008 +1000

    drm: fix leak of uninitialized data to userspace
    
    ...so drm_getunique() is trying to copy some uninitialized data to
    userspace. The ECX register contains the number of words that are
    left to copy -- so there are 5 * 4 = 20 bytes left. The offset of the
    first uninitialized byte (counting from the start of the string) is
    also 20 (i.e. 0xf65d2294&((1 << 5)-1) == 20). So somebody tried to
    copy 40 bytes when the string was only 19 long.
    
    In drm_set_busid() we have this code:
    
            dev->unique_len = 40;
            dev->unique = drm_alloc(dev->unique_len + 1, DRM_MEM_DRIVER);
          ...
            len = snprintf(dev->unique, dev->unique_len, pci:%04x:%02x:%02x.%d",
    
    ...so it seems that dev->unique is never updated to reflect the
    actual length of the string. The remaining bytes (20 in this case)
    are random uninitialized bytes that are copied into userspace.
    
    This patch fixes the problem by setting dev->unique_len after the
    snprintf().
    
    airlied- I've had to fix this up to store the alloced size so
    we have it for drm_free later.
    
    Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com>
    Signed-off-by: Vegard Nossum <vegardno@thuin.ifi.uio.no>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Nov 28 14:22:24 2008 +1000

    drm: move to kref per-master structures.
    
    This is step one towards having multiple masters sharing a drm
    device in order to get fast-user-switching to work.
    
    It splits out the information associated with the drm master
    into a separate kref counted structure, and allocates this when
    a master opens the device node. It also allows the current master
    to abdicate (say while VT switched), and a new master to take over
    the hardware.
    
    It moves the Intel and radeon drivers to using the sarea from
    within the new master structures.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit e7f7ab45ebcb54fd5f814ea15ea079e079662f67
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Nov 28 13:43:47 2008 +1000

    drm: cleanup exit path for module unload
    
    The current sub-module unload exit path is a mess, it tries
    to abuse the idr. Just keep a list of devices per driver struct
    and free them in-order on rmmod.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

^ permalink raw reply	[flat|nested] 79+ messages in thread

end of thread, other threads:[~2011-02-04  5:11 UTC | newest]

Thread overview: 79+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-29  3:52 Dave Airlie
2009-09-29  4:26 ` [git pull] drm Dave Airlie
  -- strict thread matches above, loose matches on Subject: below --
2011-02-04  5:11 Dave Airlie
2011-02-04  5:11 ` Dave Airlie
2010-02-11  4:20 Dave Airlie
2010-02-15  9:53 ` Christian Borntraeger
2010-02-15  9:53 ` Christian Borntraeger
2010-02-15 20:12   ` Marcin Slusarz
2010-02-15 20:39     ` Maarten Maathuis
2010-02-15 20:39     ` Maarten Maathuis
2010-02-15 20:39       ` Maarten Maathuis
2010-02-15 22:13       ` Marcin Slusarz
2010-02-15 22:13       ` Marcin Slusarz
2010-02-15 22:13         ` Marcin Slusarz
2010-02-15 20:12   ` Marcin Slusarz
2010-02-15 22:55   ` Christian Borntraeger
2010-02-16  1:19     ` Ben Skeggs
2010-02-16  1:19     ` Ben Skeggs
2010-02-16 11:39       ` Christian Borntraeger
2010-02-16 11:39       ` Christian Borntraeger
2010-02-15 22:55   ` Christian Borntraeger
2010-02-11  4:20 Dave Airlie
2010-01-11  4:52 Dave Airlie
2010-01-11  4:52 Dave Airlie
2009-12-10  6:17 Dave Airlie
2009-12-10 15:17 ` Linus Torvalds
2009-12-10 15:40   ` Xavier Bestel
2009-12-10 16:24     ` Linus Torvalds
2009-12-10 17:40       ` Maarten Maathuis
2009-12-10 18:42         ` Linus Torvalds
2009-12-10 19:13           ` Pekka Enberg
2009-12-10 19:13           ` Robert Noland
2009-12-10 19:28           ` Alan Cox
2009-12-10 19:36           ` Jesse Barnes
2009-12-10 19:37           ` Dave Airlie
2009-12-10 19:45             ` Roland Dreier
2009-12-10 19:49           ` Pekka Paalanen
2009-12-10 20:35             ` Will Dyson
2009-12-10 21:12               ` Pekka Paalanen
2009-12-10 19:53           ` Stephane Marchesin
2009-12-10 23:37             ` Linus Torvalds
2009-12-10 23:50               ` Dave Airlie
2009-12-10 23:58               ` Alan Cox
2009-12-11  0:09                 ` Linus Torvalds
2009-12-11  0:20                   ` "C. Bergström"
2009-12-11  0:32                     ` Linus Torvalds
2009-12-11  0:47                       ` Dave Airlie
2009-12-11  1:34                       ` Kyle McMartin
2009-12-11  0:21                   ` Dave Airlie
2009-12-11  0:45                     ` Linus Torvalds
2009-12-11  9:18                   ` Alan Cox
2009-12-11  9:34                     ` David Miller
2009-12-11 10:15                       ` Andy Walls
2009-12-11 10:20                       ` Dave Airlie
2009-12-11 12:45                         ` tytso
2009-12-11 12:50                           ` Alan Cox
2009-12-11 10:28                     ` Jeff Garzik
2009-12-11 10:46                       ` Dave Airlie
2009-12-11 15:28                       ` Linus Torvalds
2009-12-11 17:49                         ` Jeff Garzik
2009-12-11 10:02                 ` Stephane Marchesin
2009-12-11 10:24                   ` Andy Walls
2009-12-10 16:47     ` Alan Cox
2009-12-10 21:49       ` Ingo Molnar
2009-02-09  8:30 Dave Airlie
2009-01-07  1:59 Dave Airlie
2008-12-29  8:32 Dave Airlie
2009-01-04 19:19 ` Gabriel C
2009-01-10  2:03   ` Dave Airlie
2009-01-09 15:07 ` Richard Purdie
2009-01-09 18:03   ` Richard Purdie
2009-01-10  1:13     ` Richard Purdie
2009-01-10  2:04       ` Dave Airlie
2009-01-10  9:58         ` Richard Purdie
2009-01-10 23:04           ` Dave Airlie
2009-01-10 23:51             ` Richard Purdie
2009-01-16  6:53               ` Brice Goglin
2009-01-11  9:29   ` Graham Murray
2009-01-11  9:56     ` Dave Airlie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.