1. 19 Nov, 2010 6 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel · 973d168d
      Linus Torvalds authored
      * 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel:
        drm/i915: Disable FBC on Ironlake to save 1W
        drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware
        drm/i915/crt: Introduce struct intel_crt
        drm/i915: Do not hold mutex when faulting in user addresses
        drm: radeon: fix error value sign
        drm/radeon/kms: fix and unify tiled buffer alignment checking for r6xx/7xx
        drm/i915: Retire any pending operations on the old scanout when switching
        drm/i915: Fix I2C adapter registration
      973d168d
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · 764bc569
      Linus Torvalds authored
      * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (40 commits)
        drm/radeon/kms: i2c s/sprintf/snprintf/g for safety
        drm/radeon/kms: fix i2c pad masks on rs4xx
        drm/ttm: Fix up a theoretical deadlock
        drm/radeon/kms: fix tiling info on evergreen
        drm/radeon/kms: fix alignment when allocating buffers
        drm/vmwgfx: Fix up an error path during bo creation
        drm/radeon/kms: register an i2c adapter name for the dp aux bus
        drm/radeon/kms/atom: add proper external encoders support
        drm/radeon/kms/atom: cleanup and unify DVO handling
        drm/radeon/kms: properly power up/down the eDP panel as needed (v4)
        drm/radeon/kms/atom: set sane defaults in atombios_get_encoder_mode()
        drm/radeon/kms: turn the backlight off explicitly for dpms
        drm/radeon/kms: fix typo in r600 cs checker
        drm: radeon: fix error value sign
        drm/radeon/kms: fix and unify tiled buffer alignment checking for r6xx/7xx
        nouveau: Acknowledge HPD irq in handler, not bottom half
        drm/nouveau: Fix a few confusions between "chipset" and "card_type".
        drm/nouveau: don't expose backlight control when available through ACPI
        drm/nouveau/pm: improve memtiming mappings
        drm/nouveau: Make PCIE GART size depend on the available RAMIN space.
        ...
      764bc569
    • Alex Shi's avatar
      drm/i915: Disable FBC on Ironlake to save 1W · 16c59ef3
      Alex Shi authored
      Frame buffer compression is broken on Ironlake due to buggy hardware.
      Currently it is disabled through chicken bits, but it still consumes
      over 1W more than if we simply never attempt to enable the FBC code
      paths.
      Signed-off-by: default avatarAlex Shi <alex.shi@intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      16c59ef3
    • Keith Packard's avatar
      drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware · e7dbb2f2
      Keith Packard authored
      Both IBX and CPT have an automatic hotplug detection mode which appears to work reliably enough
      that we can dispense with the manual force hotplug trigger stuff. This means that
      hotplug detection is as simple as reading the current hotplug register values.
      
      The first time the hotplug detection is activated, the code synchronously waits for a hotplug
      sequence in case the hardware hasn't bothered to do a detection cycle since being initialized.
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      e7dbb2f2
    • Chris Wilson's avatar
      drm/i915/crt: Introduce struct intel_crt · c9a1c4cd
      Chris Wilson authored
      We will use this structure in future patches to store CRT specific
      information on the encoder.
      
      Split out and tweaked from a patch by Keith Packard.
      Signed-off-by: default avatarKeith Packard <keithp@kithp.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      c9a1c4cd
    • Chris Wilson's avatar
      drm/i915: Do not hold mutex when faulting in user addresses · 51311d0a
      Chris Wilson authored
      Linus Torvalds found that it was rather trivial to trigger a system
      freeze:
      
        In fact, with lockdep, I don't even need to do the sysrq-d thing: it
        shows the bug as it happens. It's the X server taking the same lock
        recursively.
      
        Here's the problem:
      
          =============================================
          [ INFO: possible recursive locking detected ]
          2.6.37-rc2-00012-gbdbd01ac #7
          ---------------------------------------------
          Xorg/2816 is trying to acquire lock:
           (&dev->struct_mutex){+.+.+.}, at: [<ffffffff812c626c>] i915_gem_fault+0x50/0x17e
      
          but task is already holding lock:
           (&dev->struct_mutex){+.+.+.}, at: [<ffffffff812c403b>] i915_mutex_lock_interruptible+0x28/0x4a
      
          other info that might help us debug this:
          2 locks held by Xorg/2816:
           #0:  (&dev->struct_mutex){+.+.+.}, at: [<ffffffff812c403b>] i915_mutex_lock_interruptible+0x28/0x4a
           #1:  (&mm->mmap_sem){++++++}, at: [<ffffffff81022d4f>] page_fault+0x156/0x37b
      
      This recursion was introduced by rearranging the locking to avoid the
      double locking on the fast path (4f27b5d and fbd5a26d) and the
      introduction of the prefault to encourage the fast paths (b5e4f2b). In
      order to undo the problem, we rearrange the code to perform the access
      validation upfront, attempt to prefault and then fight for control of the
      mutex.  the best case scenario where the mutex is uncontended the
      prefaulting is not wasted.
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      51311d0a
  2. 18 Nov, 2010 34 commits