1. 07 Mar, 2013 3 commits
  2. 06 Mar, 2013 3 commits
  3. 05 Mar, 2013 4 commits
    • Paulo Zanoni's avatar
      drm/i915: also disable south interrupts when handling them · 44498aea
      Paulo Zanoni authored
      From the docs:
        "IIR can queue up to two interrupt events. When the IIR is cleared,
        it will set itself again after one clock if a second event was
        "Only the rising edge of the PCH Display interrupt will cause the
        North Display IIR (DEIIR) PCH Display Interrupt even bit to be set,
        so all PCH Display Interrupts, including back to back interrupts,
        must be cleared before a new PCH Display interrupt can cause DEIIR
        to be set".
      The current code works fine because we don't get many interrupts, but
      if we enable the PCH FIFO underrun interrupts we'll start getting so
      many interrupts that at some point new PCH interrupts won't cause
      DEIIR to be set.
      The initial implementation I tried was to turn the code that checks
      SDEIIR into a loop, but we can still get interrupts even after the
      loop is done (and before the irq handler finishes), so we have to
      either disable the interrupts or mask them. In the end I concluded
      that just disabling the PCH interrupts is enough, you don't even need
      the loop, so this is what this patch implements. I've tested it and it
      passes the 2 "PCH FIFO underrun interrupt storms" I can reproduce:
      the "ironlake_crtc_disable" case and the "wrong watermarks" case.
      In other words, here's how to reproduce the problem fixed by this
        1 - Enable PCH FIFO underrun interrupts (SERR_INT on SNB+)
        2 - Boot the machine
        3 - While booting we'll get tons of PCH FIFO underrun interrupts
        4 - Plug a new monitor
        5 - Run xrandr, notice it won't detect the new monitor
        6 - Read SDEIIR and notice it's not 0 while DEIIR is 0
      Q: Can't we just clear DEIIR before SDEIIR?
      A: It doesn't work. SDEIIR has to be completely cleared (including the
      interrupts stored on its back queue) before it can flip DEIIR's bit to
      1 again, and even while you're clearing it you'll be getting more and
      more interrupts.
      Q: Why does it work by just disabling+enabling the south interrupts?
      A: Because when we re-enable them, if there's something on the SDEIIR
      register (maybe an interrupt stored on the queue), the re-enabling
      will make DEIIR's bit flip to 1, and since we'll already have
      interrupts enabled we'll get another interrupt, then run our irq
      handler again to process the "back" interrupts.
      v2: Even bigger commit message, added code comments.
      Note that this fixes missed dp aux irqs which have been reported for
      3.9-rc1. This regression has been introduced by switching to
      irq-driven dp aux transactions with
      commit 9ee32fea
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Dec 1 13:53:48 2012 +0100
          drm/i915: irq-drive the dp aux communication
      References: http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg18588.html
      References: https://lkml.org/lkml/2013/2/26/769
      Tested-by: default avatarImre Deak <imre.deak@intel.com>
      Reported-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
      [danvet: Pimp commit message with references for the dp aux irq
      timeout regression this fixes.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    • Daniel Vetter's avatar
      drm/i915: enable irqs earlier when resuming · 15239099
      Daniel Vetter authored
      We need it to restore the ilk rc6 context, since the gpu wait no
      requires interrupts. But in general having interrupts around should
      help in code sanity, since more and more stuff is interrupt driven.
      This regression has been introduced in
      commit 3e960501
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Tue Nov 27 16:22:54 2012 +0000
          drm/i915: Rearrange code to only have a single method for waiting upon the ring
      Like in the driver load code we need to make sure that hotplug
      interrupts don't cause havoc with our modeset state, hence block them
      with the existing infrastructure. Again we ignore races where we might
      loose hotplug interrupts ...
      Note that the driver load part of the regression has already been
      fixed in
      commit 52d7eced
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Dec 1 21:03:22 2012 +0100
          drm/i915: reorder setup sequence to have irqs for output setup
      v2: Add a note to the commit message about which patch fixed the
      driver load part of the regression. Stable kernels need to backport
      both patches.
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=54691
      Cc: stable@vger.kernel.org (for 3.8 only, plese backport
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Reported-and-Tested-by: default avatarIlya Tumaykin <itumaykin@gmail.com>
      Reviewed-by: Chris wilson <chris@chris-wilson.co.uk> (v1)
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    • Stéphane Marchesin's avatar
      drm/i915: Increase the RC6p threshold. · 0920a487
      Stéphane Marchesin authored
      This increases GEN6_RC6p_THRESHOLD from 100000 to 150000. For some
      reason this avoids the gen6_gt_check_fifodbg.isra warnings and
      associated GPU lockups, which makes my ivy bridge machine stable.
      Signed-off-by: default avatarStéphane Marchesin <marcheu@chromium.org>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    • Dave Airlie's avatar
      Merge branch 'drm-nouveau-fixes-3.9' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 · 64e38a8c
      Dave Airlie authored
      misc regression fixes from Ben.
      * 'drm-nouveau-fixes-3.9' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
        drm/nv50-: prevent some races between modesetting and page flipping
        drm/nouveau/i2c: drop parent refcount when creating ports
        drm/nv84: fix regression in page flipping
        drm/nouveau: Fix typo in init_idx_addr_latched().
        drm/nouveau: Disable AGP on PowerPC again.
        drm/nve0/graph: some random reg moved on kepler
  4. 04 Mar, 2013 1 commit
  5. 03 Mar, 2013 25 commits
  6. 02 Mar, 2013 4 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · a7c1120d
      Linus Torvalds authored
      Pull ext4 bug fixes from Ted Ts'o:
       "Various bug fixes for ext4.  The most important is a fix for the new
        extent cache's slab shrinker which can cause significant, user-visible
        pauses when the system is under memory pressure."
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: enable quotas before orphan cleanup
        ext4: don't allow quota mount options when quota feature enabled
        ext4: fix a warning from sparse check for ext4_dir_llseek
        ext4: convert number of blocks to clusters properly
        ext4: fix possible memory leak in ext4_remount()
        jbd2: fix ERR_PTR dereference in jbd2__journal_start
        ext4: use percpu counter for extent cache count
        ext4: optimize ext4_es_shrink()
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 6ec40b42
      Linus Torvalds authored
      Pull sigprocmask compat fix from Al Viro:
       "generic compat_sys_rt_sigprocmask() had a very dumb braino; I'd spent
        quite a while staring at the offending commit before finally managing
        to spot the idiocy ;-/"
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        fix compat_sys_rt_sigprocmask()
    • Al Viro's avatar
      fix compat_sys_rt_sigprocmask() · db61ec29
      Al Viro authored
      Converting bitmask to 32bit granularity is fine, but we'd better
      _do_ something with the result.  Such as "copy it to userland"...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.9-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 8d05b377
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "We've just concluded another Connectathon interoperability testing
        week, and so here are the fixes for the bugs that were discovered:
         - Don't allow NFS silly-renamed files to be deleted
         - Don't start the retransmission timer when out of socket space
         - Fix a couple of pnfs-related Oopses.
         - Fix one more NFSv4 state recovery deadlock
         - Don't loop forever when LAYOUTGET returns NFS4ERR_LAYOUTTRYLATER"
      * tag 'nfs-for-3.9-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: One line comment fix
        NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS
        SUNRPC: add call to get configured timeout
        PNFS: set the default DS timeout to 60 seconds
        NFSv4: Fix another open/open_recovery deadlock
        nfs: don't allow nfs_find_actor to match inodes of the wrong type
        NFSv4.1: Hold reference to layout hdr in layoutget
        pnfs: fix resend_to_mds for directio
        SUNRPC: Don't start the retransmission timer when out of socket space
        NFS: Don't allow NFS silly-renamed files to be deleted, no signal