1. 10 5月, 2012 4 次提交
    • J
      drm/radeon: rework fence handling, drop fence list v7 · 3b7a2b24
      Jerome Glisse 提交于
      Using 64bits fence sequence we can directly compare sequence
      number to know if a fence is signaled or not. Thus the fence
      list became useless, so does the fence lock that mainly
      protected the fence list.
      
      Things like ring.ready are no longer behind a lock, this should
      be ok as ring.ready is initialized once and will only change
      when facing lockup. Worst case is that we return an -EBUSY just
      after a successfull GPU reset, or we go into wait state instead
      of returning -EBUSY (thus delaying reporting -EBUSY to fence
      wait caller).
      
      v2: Remove left over comment, force using writeback on cayman and
          newer, thus not having to suffer from possibly scratch reg
          exhaustion
      v3: Rebase on top of change to uint64 fence patch
      v4: Change DCE5 test to force write back on cayman and newer but
          also any APU such as PALM or SUMO family
      v5: Rebase on top of new uint64 fence patch
      v6: Just break if seq doesn't change any more. Use radeon_fence
          prefix for all function names. Even if it's now highly optimized,
          try avoiding polling to often.
      v7: We should never poll the last_seq from the hardware without
          waking the sleeping threads, otherwise we might lose events.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NChristian König <deathsimple@vodafone.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      3b7a2b24
    • J
      drm/radeon: convert fence to uint64_t v4 · bb635567
      Jerome Glisse 提交于
      This convert fence to use uint64_t sequence number intention is
      to use the fact that uin64_t is big enough that we don't need to
      care about wrap around.
      
      Tested with and without writeback using 0xFFFFF000 as initial
      fence sequence and thus allowing to test the wrap around from
      32bits to 64bits.
      
      v2: Add comment about possible race btw CPU & GPU, add comment
          stressing that we need 2 dword aligned for R600_WB_EVENT_OFFSET
          Read fence sequenc in reverse order of GPU write them so we
          mitigate the race btw CPU and GPU.
      
      v3: Drop the need for ring to emit the 64bits fence, and just have
          each ring emit the lower 32bits of the fence sequence. We
          handle the wrap over 32bits in fence_process.
      
      v4: Just a small optimization: Don't reread the last_seq value
          if loop restarts, since we already know its value anyway.
          Also start at zero not one for seq value and use pre instead
          of post increment in emmit, otherwise wait_empty will deadlock.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Signed-off-by: NChristian König <deathsimple@vodafone.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      bb635567
    • C
      drm/radeon: replace the per ring mutex with a global one · d6999bc7
      Christian König 提交于
      A single global mutex for ring submissions seems sufficient.
      Signed-off-by: NChristian König <deathsimple@vodafone.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      d6999bc7
    • J
      drm/radeon: fix possible lack of synchronization btw ttm and other ring · 133f4cb3
      Jerome Glisse 提交于
      We need to sync with the GFX ring as ttm might have schedule bo move
      on it and new command scheduled for other ring need to wait for bo
      data to be in place.
      Signed-off-by: NJerome Glisse <jglisse@redhat.com>
      Reviewed by: Christian König <christian.koenig@amd.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      133f4cb3
  2. 07 5月, 2012 19 次提交
  3. 06 5月, 2012 6 次提交
    • C
      Btrfs: avoid sleeping in verify_parent_transid while atomic · b9fab919
      Chris Mason 提交于
      verify_parent_transid needs to lock the extent range to make
      sure no IO is underway, and so it can safely clear the
      uptodate bits if our checks fail.
      
      But, a few callers are using it with spinlocks held.  Most
      of the time, the generation numbers are going to match, and
      we don't want to switch to a blocking lock just for the error
      case.  This adds an atomic flag to verify_parent_transid,
      and changes it to return EAGAIN if it needs to block to
      properly verifiy things.
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      b9fab919
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · 03cb00b3
      Linus Torvalds 提交于
      Pull alpha fixes from Matt Turner:
       "My alpha tree is back up (after taking quite some time to get my GPG
        key signed).  It contains just some simple fixes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: silence 'const' warning in sys_marvel.c
        alpha: include module.h to fix modpost on Tsunami
        alpha: properly define get/set_rtc_time on Marvel/SMP
        alpha: VGA_HOSE depends on VGA_CONSOLE
      03cb00b3
    • J
      TTY: pdc_cons, fix regression in close · 49a5f3cf
      Jiri Slaby 提交于
      The test in pdc_console_tty_close '!tty->count' was always wrong
      because tty->count is decremented after tty->ops->close is called and
      thus can never be zero. Hence the 'then' branch was never executed and
      the timer never deleted.
      
      This did not matter until commit 5dd5bc40 ("TTY: pdc_cons, use
      tty_port").  There we needed to set TTY in tty_port to NULL, but this
      never happened due to the bug above.
      
      So change the test to really trigger at the last close by changing the
      condition to 'tty->count == 1'.
      
      Well, the driver should not touch tty->count at all.  It should use
      tty_port->count and count open count there itself.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Reported-and-tested-by: NMikulas Patocka <mpatocka@redhat.com>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      49a5f3cf
    • L
      Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 1c2f9548
      Linus Torvalds 提交于
      Pull sound sound fixes from Takashi Iwai:
       "As good as nothing exciting here; just a few trivial fixes for various
        ASoC stuff."
      
      * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: omap-pcm: Free dma buffers in case of error.
        ASoC: s3c2412-i2s: Fix dai registration
        ASoC: wm8350: Don't use locally allocated codec struct
        ASoC: tlv312aic23: unbreak resume
        ASoC: bf5xx-ssm2602: Set DAI format
        ASoC: core: check of_property_count_strings failure
        ASoC: dt: sgtl5000.txt: Add description for 'reg' field
        ASoC: wm_hubs: Make sure we don't disable differential line outputs
      1c2f9548
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 59068e36
      Linus Torvalds 提交于
      Pull an ACPI patch from Len Brown:
       "It fixes a D3 issue new in 3.4-rc1."
      
      By Lin Ming via Len Brown:
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        ACPI: Fix D3hot v D3cold confusion
      59068e36
    • S
      init: don't try mounting device as nfs root unless type fully matches · 377485f6
      Sasha Levin 提交于
      Currently, we'll try mounting any device who's major device number is
      UNNAMED_MAJOR as NFS root.  This would happen for non-NFS devices as
      well (such as 9p devices) but it wouldn't cause any issues since
      mounting the device as NFS would fail quickly and the code proceeded to
      doing the proper mount:
      
             [  101.522716] VFS: Unable to mount root fs via NFS, trying floppy.
             [  101.534499] VFS: Mounted root (9p filesystem) on device 0:18.
      
      Commit 6829a048102a ("NFS: Retry mounting NFSROOT") introduced retries
      when mounting NFS root, which means that now we don't immediately fail
      and instead it takes an additional 90+ seconds until we stop retrying,
      which has revealed the issue this patch fixes.
      
      This meant that it would take an additional 90 seconds to boot when
      we're not using a device type which gets detected in order before NFS.
      
      This patch modifies the NFS type check to require device type to be
      'Root_NFS' instead of requiring the device to have an UNNAMED_MAJOR
      major.  This makes boot process cleaner since we now won't go through
      the NFS mounting code at all when the device isn't an NFS root
      ("/dev/nfs").
      Signed-off-by: NSasha Levin <levinsasha928@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      377485f6
  4. 05 5月, 2012 11 次提交