1. 27 Feb, 2015 2 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2015-02-26' of git://anongit.freedesktop.org/drm-intel into drm-fixes · d1e488fd
      Dave Airlie authored
      First batch of fixes for v4.0-rc, plenty of cc: stable material.
      
      * tag 'drm-intel-fixes-2015-02-26' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Fix frontbuffer false positve.
        drm/i915: Align initial plane backing objects correctly
        drm/i915: avoid processing spurious/shared interrupts in low-power states
        drm/i915: Check obj->vma_list under the struct_mutex
        drm/i915: Fix a use after free, and unbalanced refcounting
        drm/i915: Dell Chromebook 11 has PWM backlight
        drm/i915/skl: handle all pixel formats in skylake_update_primary_plane()
        drm/i915/bdw: PCI IDs ending in 0xb are ULT.
      d1e488fd
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-4.0' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · a795e4e9
      Dave Airlie authored
      misc radeon fixes.
      
      * 'drm-fixes-4.0' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon: only enable DP audio if the monitor supports it
        drm/radeon: fix atom aux payload size check for writes (v2)
        drm/radeon: fix 1 RB harvest config setup for TN/RL
        drm/radeon: enable SRBM timeout interrupt on EG/NI
        drm/radeon: enable SRBM timeout interrupt on SI
        drm/radeon: enable SRBM timeout interrupt on CIK v2
        drm/radeon: dump full IB if we hit a packet error
        drm/radeon: disable mclk switching with 120hz+ monitors
        drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh
        drm/radeon: enable native backlight control on old macs
      a795e4e9
  2. 25 Feb, 2015 11 commits
  3. 24 Feb, 2015 7 commits
    • Daniel Vetter's avatar
      drm/i915: Align initial plane backing objects correctly · f37b5c2b
      Daniel Vetter authored
      Some bios really like to joke and start the planes at an offset ...
      hooray!
      
      Align start and end to fix this.
      
      v2: Fixup calculation of size, spotted by Chris Wilson.
      
      v3: Fix serious fumble I've just spotted.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86883
      Cc: stable@vger.kernel.org
      Cc: Johannes W <jargon@molb.org>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Reported-and-tested-by: default avatarJohannes W <jargon@molb.org>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      [Jani: split WARN_ONs, rebase on v4.0-rc1]
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      f37b5c2b
    • Imre Deak's avatar
      drm/i915: avoid processing spurious/shared interrupts in low-power states · 2dd2a883
      Imre Deak authored
      Atm, it's possible that the interrupt handler is called when the device
      is in D3 or some other low-power state. It can be due to another device
      that is still in D0 state and shares the interrupt line with i915, or on
      some platforms there could be spurious interrupts even without sharing
      the interrupt line. The latter case was reported by Klaus Ethgen using a
      Lenovo x61p machine (gen 4). He noticed this issue via a system
      suspend/resume hang and bisected it to the following commit:
      
      commit e11aa362
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Wed Jun 18 09:52:55 2014 -0700
      
          drm/i915: use runtime irq suspend/resume in freeze/thaw
      
      This is a problem, since in low-power states IIR will always read
      0xffffffff resulting in an endless IRQ servicing loop.
      
      Fix this by handling interrupts only when the driver explicitly enables
      them and so it's guaranteed that the interrupt registers return a valid
      value.
      
      Note that this issue existed even before the above commit, since during
      runtime suspend/resume we never unregistered the handler.
      
      v2:
      - clarify the purpose of smp_mb() vs. synchronize_irq() in the
        code comment (Chris)
      
      v3:
      - no need for an explicit smp_mb(), we can assume that synchronize_irq()
        and the mmio read/writes in the install hooks provide for this (Daniel)
      - remove code comment as the remaining synchronize_irq() is self
        explanatory (Daniel)
      
      v4:
      - drm_irq_uninstall() implies synchronize_irq(), so no need to call it
        explicitly (Daniel)
      
      Reference: https://lkml.org/lkml/2015/2/11/205Reported-and-bisected-by: default avatarKlaus Ethgen <Klaus@Ethgen.ch>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      2dd2a883
    • Chris Wilson's avatar
      drm/i915: Check obj->vma_list under the struct_mutex · 6c31a614
      Chris Wilson authored
      When we walk the list of vma, or even for protecting against concurrent
      framebuffer creation, we must hold the struct_mutex or else a second
      thread can corrupt the list as we walk it.
      
      Fixes regression from
      commit d7f46fc4
      Author: Ben Widawsky <benjamin.widawsky@intel.com>
      Date:   Fri Dec 6 14:10:55 2013 -0800
      
          drm/i915: Make pin count per VMA
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=89085Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      6c31a614
    • Nick Hoath's avatar
      drm/i915: Fix a use after free, and unbalanced refcounting · b3a38998
      Nick Hoath authored
      When converting from implicitly tracked execlist queue items to ref counted
      requests, not all frees of requests were replaced with unrefs, and extraneous
      refs/unrefs of contexts were added.
      Correct the unbalanced refcount & replace the frees.
      Remove a noisy warning when hitting the request creation path.
      
      drm_i915_gem_request and intel_context are both kref reference counted
      structures. Upon allocation, drm_i915_gem_request's ref count should be
      bumped using kref_init. When a context is assigned to the request,
      the context's reference count should be bumped using i915_gem_context_reference.
      i915_gem_request_reference will reduce the context reference count when
      the request is freed.
      
      Problem introduced in
      commit 6d3d8274
      Author:     Nick Hoath <nicholas.hoath@intel.com>
      AuthorDate: Thu Jan 15 13:10:39 2015 +0000
      
           drm/i915: Subsume intel_ctx_submit_request in to drm_i915_gem_request
      
      v2: Added comments explaining how the ctx pointer and the request object should
      be ref-counted. Removed noisy warning.
      
      v3: Cleaned up the language used in the commit & the header
      description (Thanks David Gordon)
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88652Signed-off-by: default avatarNick Hoath <nicholas.hoath@intel.com>
      Reviewed-by: default avatarThomas Daniel <thomas.daniel@intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      b3a38998
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-fixes-2015-02-23' of... · 5b49afd6
      Dave Airlie authored
      Merge tag 'drm-amdkfd-fixes-2015-02-23' of git://people.freedesktop.org/~gabbayo/linux into drm-fixes
      
      - Fix a bug that caused 15% CPU performance drop in Kaveri. This was caused
        because we overwritten the initialization of the first pipe (out of eight),
        which is dedicated to radeon operation. The fix was tested by Michel Dänzer.
        This bug was introduced by a patch I prepared (yeah, my bad) and was merged
        to 3.19-rc6. Therefore, I also marked it as Cc:stable.
      
      - Fix sparse warning
      * tag 'drm-amdkfd-fixes-2015-02-23' of git://people.freedesktop.org/~gabbayo/linux:
        drm/amdkfd: don't set get_pipes_num() as inline
        drm/amdkfd: Initialize only amdkfd's assigned pipelines
      5b49afd6
    • Dave Airlie's avatar
      Merge tag 'drm/tegra/for-3.20-rc1-fixes' of... · 8ee35162
      Dave Airlie authored
      Merge tag 'drm/tegra/for-3.20-rc1-fixes' of git://anongit.freedesktop.org/tegra/linux into drm-fixes
      
      drm/tegra: Fixes for v3.20-rc1
      
      This fixes a bit of fallout that was caused by the atomic modesetting
      driver conversion and some last-minute changes in the DRM atomic core.
      It also fixes a bug exposed by recent changes in the clock framework
      which results in non-working HDMI.
      
      * tag 'drm/tegra/for-3.20-rc1-fixes' of git://anongit.freedesktop.org/tegra/linux:
        drm/tegra: dc: Move more code into ->init()
        drm/tegra: dc: Wire up CRTC parent of atomic state
        drm/tegra: dc: Reset state's active_changed field
        drm/tegra: hdmi: Explicitly set clock rate
      8ee35162
    • Daniel Vetter's avatar
      drm: Fix deadlock due to getconnector locking changes · 2caa80e7
      Daniel Vetter authored
      In commit ccfc0865
      Author: Rob Clark <robdclark@gmail.com>
      Date:   Thu Dec 18 16:01:48 2014 -0500
      
          drm: tweak getconnector locking
      
      We need to extend the locking to cover connector->state reading for
      atomic drivers, but the above commit was a bit too eager and also
      included the fill_modes callback. Which on i915 on old platforms using
      load detection needs to acquire modeset locks, resulting in a deadlock
      on output probing.
      Reported-by: default avatarMarc Finet <m.dreadlock@gmail.com>
      Cc: Marc Finet <m.dreadlock@gmail.com>
      Cc: robdclark@gmail.com
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      2caa80e7
  4. 23 Feb, 2015 8 commits
    • Jani Nikula's avatar
      drm/i915: Dell Chromebook 11 has PWM backlight · cf6f0af9
      Jani Nikula authored
      Add quirk for Dell Chromebook 11 backlight.
      Reported-and-tested-by: default avatarOwen Garland <garland.owen@gmail.com>
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=93451Acked-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      cf6f0af9
    • Jani Nikula's avatar
      drm/i915/skl: handle all pixel formats in skylake_update_primary_plane() · f75fb42a
      Jani Nikula authored
      skylake_update_primary_plane() did not handle all pixel formats returned
      by skl_format_to_fourcc(). Handle alpha similar to skl_update_plane().
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89052Reviewed-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      f75fb42a
    • Rodrigo Vivi's avatar
      drm/i915/bdw: PCI IDs ending in 0xb are ULT. · 0dc6f20b
      Rodrigo Vivi authored
      When reviewing patch that fixes VGA on BDW Halo Jani noticed that
      we also had other ULT IDs that weren't listed there.
      
      So this follow-up patch add these pci-ids as halo and fix comments
      on i915_pciids.h
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      0dc6f20b
    • Oded Gabbay's avatar
      drm/amdkfd: don't set get_pipes_num() as inline · 64ea8f4a
      Oded Gabbay authored
      get_pipes_num() calls BUG_ON so we can't set it as inline because it produces a
      warning as BUG_ON() uses static variables when it is expanded.
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      64ea8f4a
    • Oded Gabbay's avatar
      drm/amdkfd: Initialize only amdkfd's assigned pipelines · 1365aa62
      Oded Gabbay authored
      This patch fixes a bug in the initialization of the pipelines. The
      init_pipelines() function was called with a constant value of 0 in the
      first_pipe argument. This is an error because amdkfd doesn't handle pipe 0.
      
      The correct way is to pass the value that get_first_pipe() returns as the
      argument for first_pipe.
      
      This bug appeared in 3.19 (first version with amdkfd) and it causes around 15%
      drop in CPU performance of Kaveri (A10-7850).
      
      v2: Don't set get_first_pipe() as inline because it calls BUG_ON()
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Cc: stable@vger.kernel.org
      Tested-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
      1365aa62
    • Linus Torvalds's avatar
      Linux 4.0-rc1 · c517d838
      Linus Torvalds authored
      .. after extensive statistical analysis of my G+ polling, I've come to
      the inescapable conclusion that internet polls are bad.
      
      Big surprise.
      
      But "Hurr durr I'ma sheep" trounced "I like online polls" by a 62-to-38%
      margin, in a poll that people weren't even supposed to participate in.
      Who can argue with solid numbers like that? 5,796 votes from people who
      can't even follow the most basic directions?
      
      In contrast, "v4.0" beat out "v3.20" by a slimmer margin of 56-to-44%,
      but with a total of 29,110 votes right now.
      
      Now, arguably, that vote spread is only about 3,200 votes, which is less
      than the almost six thousand votes that the "please ignore" poll got, so
      it could be considered noise.
      
      But hey, I asked, so I'll honor the votes.
      c517d838
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · feaf2229
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Ext4 bug fixes.
      
        We also reserved code points for encryption and read-only images (for
        which the implementation is mostly just the reserved code point for a
        read-only feature :-)"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix indirect punch hole corruption
        ext4: ignore journal checksum on remount; don't fail
        ext4: remove duplicate remount check for JOURNAL_CHECKSUM change
        ext4: fix mmap data corruption in nodelalloc mode when blocksize < pagesize
        ext4: support read-only images
        ext4: change to use setup_timer() instead of init_timer()
        ext4: reserve codepoints used by the ext4 encryption feature
        jbd2: complain about descriptor block checksum errors
      feaf2229
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · be5e6616
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted stuff from this cycle.  The big ones here are multilayer
        overlayfs from Miklos and beginning of sorting ->d_inode accesses out
        from David"
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (51 commits)
        autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
        procfs: fix race between symlink removals and traversals
        debugfs: leave freeing a symlink body until inode eviction
        Documentation/filesystems/Locking: ->get_sb() is long gone
        trylock_super(): replacement for grab_super_passive()
        fanotify: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
        Cachefiles: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
        VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
        SELinux: Use d_is_positive() rather than testing dentry->d_inode
        Smack: Use d_is_positive() rather than testing dentry->d_inode
        TOMOYO: Use d_is_dir() rather than d_inode and S_ISDIR()
        Apparmor: Use d_is_positive/negative() rather than testing dentry->d_inode
        Apparmor: mediated_filesystem() should use dentry->d_sb not inode->i_sb
        VFS: Split DCACHE_FILE_TYPE into regular and special types
        VFS: Add a fallthrough flag for marking virtual dentries
        VFS: Add a whiteout dentry type
        VFS: Introduce inode-getting helpers for layered/unioned fs environments
        Infiniband: Fix potential NULL d_inode dereference
        posix_acl: fix reference leaks in posix_acl_create
        autofs4: Wrong format for printing dentry
        ...
      be5e6616
  5. 22 Feb, 2015 12 commits