1. 21 6月, 2009 1 次提交
  2. 11 6月, 2009 1 次提交
  3. 08 6月, 2009 1 次提交
  4. 05 6月, 2009 1 次提交
  5. 02 6月, 2009 1 次提交
    • H
      ALSA: hda - Acer Aspire 8930G support · 3b315d70
      Hector Martin 提交于
      Short story: this laptop has 5.1 built-in speakers which you *really*
      want to use (the not-so-"sub" woofer is what makes the audio above
      average for a laptop), so 6-channel support is important (plus a decent
      asound.conf to upmix stereo). It also has the 3 typical jacks that ought
      to have a selectable mode. And it's based on ALC889, which sucks.
      
      Rationale/explanations:
      
      The const_channel_count stuff was added because, for a laptop like this,
      you always have 6 channels available (internal speakers) but still need
      to set the mode for the 3 external jacks. Therefore, the device always
      needs to be in 6-channel mode but there still needs to be a mixer
      control for the jack mode. You could use line/mic-in at the same time as
      the 6 internal speakers, for example. You might be tempted to make it
      even smarter by dynamically switching the max channel count when
      headphones are plugged in (therefore muting the internal speakers and
      reducing the physical channel count to the jack channel mode), but as a
      user I consider this to be harmful because I want the audio to blow up
      to 6 channels / upmixed as soon as I unplug the headphones, and having
      opened the device while in 2-channel mode would prevent this from
      working (and always making 6-channel mode available doesn't do any harm).
      
      The hardware needs EAPD turned on and the DACs routed to the internal
      speaker pins, so the patch adds those verbs.
      
      The ALC889 CLFE and subsequent (side/aux, here unused) DACs do NOT work
      by default, at least here. I wasted much time trying to talk to
      Realtek/pshou about this, but they just kept sending me useless updates
      to patch_realtek.c that did nothing relevant. In the end I gave up and
      brute forced the issue by trying to flip every bit in the proprietary
      coefficient registers, and eventually found the two magic registers that
      need to be cleared to enable all DACs. I have only heard Acer users
      complain, but that might be because ALC889 is pretty new and using 5.1
      (and noticing the missing center/lfe channels) might not be that common.
      If this is a generalized issue with all ALC889 systems then those verbs
      should probably be moved to a common verb array.
      
      The internal mic is untested and probably doesn't work.
      
      These settings will probably work for other Acer Gemstone laptops with
      the same 5.1 speaker config. When identified, those should be added to
      the PCI subsystem ID list.
      Signed-off-by: NHector Martin <hector@marcansoft.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3b315d70
  6. 01 6月, 2009 1 次提交
  7. 27 5月, 2009 1 次提交
    • T
      ALSA: Enable PCM hw_ptr_jiffies check only in xrun_debug mode · c87d9732
      Takashi Iwai 提交于
      The PCM hw_ptr jiffies check results sometimes in problems when a
      hardware doesn't give smooth hw_ptr updates.  So far, au88x0 and some
      other drivers appear not working due to this strict check.
      However, this check is a nice debug tool, and the capability should be
      still kept.
      
      Hence, we disable this check now as default unless the user enables it
      by setting the xrun_debug mode to the specific stream via a proc file.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c87d9732
  8. 25 5月, 2009 2 次提交
  9. 24 5月, 2009 1 次提交
  10. 23 5月, 2009 1 次提交
  11. 22 5月, 2009 1 次提交
  12. 18 5月, 2009 2 次提交
  13. 15 5月, 2009 2 次提交
  14. 14 5月, 2009 1 次提交
    • W
      ALSA: SB X-Fi driver merge · 8cc72361
      Wai Yew CHAY 提交于
      The Sound Blaster X-Fi driver supports Creative solutions based on
      20K1 and 20K2 chipsets.
      
      Supported hardware :
      
      Creative Sound Blaster X-Fi Titanium Fatal1ty® Champion Series
      Creative Sound Blaster X-Fi Titanium Fatal1ty Professional Series
      Creative Sound Blaster X-Fi Titanium Professional Audio
      Creative Sound Blaster X-Fi Titanium
      Creative Sound Blaster X-Fi Elite Pro
      Creative Sound Blaster X-Fi Platinum
      Creative Sound Blaster X-Fi Fatal1ty
      Creative Sound Blaster X-Fi XtremeGamer
      Creative Sound Blaster X-Fi XtremeMusic
      
      Current release features:
      
      * ALSA PCM Playback
      * ALSA Record
      * ALSA Mixer
      
      Note:
      
      * External I/O modules detection not included.
      Signed-off-by: NWai Yew CHAY <wychay@ctl.creative.com>
      Singed-off-by: NRyan RICHARDS <ryan_richards@creativelabs.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8cc72361
  15. 12 5月, 2009 1 次提交
  16. 11 5月, 2009 1 次提交
  17. 09 5月, 2009 1 次提交
  18. 07 5月, 2009 2 次提交
  19. 06 5月, 2009 1 次提交
  20. 04 5月, 2009 2 次提交
  21. 03 5月, 2009 3 次提交
    • A
      mm: prevent divide error for small values of vm_dirty_bytes · 9e4a5bda
      Andrea Righi 提交于
      Avoid setting less than two pages for vm_dirty_bytes: this is necessary to
      avoid potential division by 0 (like the following) in get_dirty_limits().
      
      [   49.951610] divide error: 0000 [#1] PREEMPT SMP
      [   49.952195] last sysfs file: /sys/devices/pci0000:00/0000:00:01.1/host0/target0:0:0/0:0:0:0/block/sda/uevent
      [   49.952195] CPU 1
      [   49.952195] Modules linked in: pcspkr
      [   49.952195] Pid: 3064, comm: dd Not tainted 2.6.30-rc3 #1
      [   49.952195] RIP: 0010:[<ffffffff802d39a9>]  [<ffffffff802d39a9>] get_dirty_limits+0xe9/0x2c0
      [   49.952195] RSP: 0018:ffff88001de03a98  EFLAGS: 00010202
      [   49.952195] RAX: 00000000000000c0 RBX: ffff88001de03b80 RCX: 28f5c28f5c28f5c3
      [   49.952195] RDX: 0000000000000000 RSI: 00000000000000c0 RDI: 0000000000000000
      [   49.952195] RBP: ffff88001de03ae8 R08: 0000000000000000 R09: 0000000000000000
      [   49.952195] R10: ffff88001ddda9a0 R11: 0000000000000001 R12: 0000000000000001
      [   49.952195] R13: ffff88001fbc8218 R14: ffff88001de03b70 R15: ffff88001de03b78
      [   49.952195] FS:  00007fe9a435b6f0(0000) GS:ffff8800025d9000(0000) knlGS:0000000000000000
      [   49.952195] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   49.952195] CR2: 00007fe9a39ab000 CR3: 000000001de38000 CR4: 00000000000006e0
      [   49.952195] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   49.952195] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [   49.952195] Process dd (pid: 3064, threadinfo ffff88001de02000, task ffff88001ddda250)
      [   49.952195] Stack:
      [   49.952195]  ffff88001fa0de00 ffff88001f2dbd70 ffff88001f9fe800 000080b900000000
      [   49.952195]  00000000000000c0 ffff8800027a6100 0000000000000400 ffff88001fbc8218
      [   49.952195]  0000000000000000 0000000000000600 ffff88001de03bb8 ffffffff802d3ed7
      [   49.952195] Call Trace:
      [   49.952195]  [<ffffffff802d3ed7>] balance_dirty_pages_ratelimited_nr+0x1d7/0x3f0
      [   49.952195]  [<ffffffff80368f8e>] ? ext3_writeback_write_end+0x9e/0x120
      [   49.952195]  [<ffffffff802cc7df>] generic_file_buffered_write+0x12f/0x330
      [   49.952195]  [<ffffffff802cce8d>] __generic_file_aio_write_nolock+0x26d/0x460
      [   49.952195]  [<ffffffff802cda32>] ? generic_file_aio_write+0x52/0xd0
      [   49.952195]  [<ffffffff802cda49>] generic_file_aio_write+0x69/0xd0
      [   49.952195]  [<ffffffff80365fa6>] ext3_file_write+0x26/0xc0
      [   49.952195]  [<ffffffff803034d1>] do_sync_write+0xf1/0x140
      [   49.952195]  [<ffffffff80290d1a>] ? get_lock_stats+0x2a/0x60
      [   49.952195]  [<ffffffff80280730>] ? autoremove_wake_function+0x0/0x40
      [   49.952195]  [<ffffffff8030411b>] vfs_write+0xcb/0x190
      [   49.952195]  [<ffffffff803042d0>] sys_write+0x50/0x90
      [   49.952195]  [<ffffffff8022ff6b>] system_call_fastpath+0x16/0x1b
      [   49.952195] Code: 00 00 00 2b 05 09 1c 17 01 48 89 c6 49 0f af f4 48 c1 ee 02 48 89 f0 48 f7 e1 48 89 d6 31 d2 48 c1 ee 02 48 0f af 75 d0 48 89 f0 <48> f7 f7 41 8b 95 ac 01 00 00 48 89 c7 49 0f af d4 48 c1 ea 02
      [   49.952195] RIP  [<ffffffff802d39a9>] get_dirty_limits+0xe9/0x2c0
      [   49.952195]  RSP <ffff88001de03a98>
      [   50.096523] ---[ end trace 008d7aa02f244d7b ]---
      Signed-off-by: NAndrea Righi <righi.andrea@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9e4a5bda
    • R
      kernel-doc: restrict syntax for private: and public: · 52dc5aec
      Randy Dunlap 提交于
      scripts/kernel-doc can (incorrectly) delete struct members that are
      surrounded by /* ...  */ <struct members> /* ...  */ if there is a /*
      private: */ comment in there somewhere also.
      
      Fix that by making the "/* private:" only allow whitespace between /* and
      "private:", not anything/everything in the world.
      
      This fixes some erroneous kernel-doc warnings that popped up while
      processing include/linux/usb/composite.h.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      52dc5aec
    • N
      mm: close page_mkwrite races · b827e496
      Nick Piggin 提交于
      Change page_mkwrite to allow implementations to return with the page
      locked, and also change it's callers (in page fault paths) to hold the
      lock until the page is marked dirty.  This allows the filesystem to have
      full control of page dirtying events coming from the VM.
      
      Rather than simply hold the page locked over the page_mkwrite call, we
      call page_mkwrite with the page unlocked and allow callers to return with
      it locked, so filesystems can avoid LOR conditions with page lock.
      
      The problem with the current scheme is this: a filesystem that wants to
      associate some metadata with a page as long as the page is dirty, will
      perform this manipulation in its ->page_mkwrite.  It currently then must
      return with the page unlocked and may not hold any other locks (according
      to existing page_mkwrite convention).
      
      In this window, the VM could write out the page, clearing page-dirty.  The
      filesystem has no good way to detect that a dirty pte is about to be
      attached, so it will happily write out the page, at which point, the
      filesystem may manipulate the metadata to reflect that the page is no
      longer dirty.
      
      It is not always possible to perform the required metadata manipulation in
      ->set_page_dirty, because that function cannot block or fail.  The
      filesystem may need to allocate some data structure, for example.
      
      And the VM cannot mark the pte dirty before page_mkwrite, because
      page_mkwrite is allowed to fail, so we must not allow any window where the
      page could be written to if page_mkwrite does fail.
      
      This solution of holding the page locked over the 3 critical operations
      (page_mkwrite, setting the pte dirty, and finally setting the page dirty)
      closes out races nicely, preventing page cleaning for writeout being
      initiated in that window.  This provides the filesystem with a strong
      synchronisation against the VM here.
      
      - Sage needs this race closed for ceph filesystem.
      - Trond for NFS (http://bugzilla.kernel.org/show_bug.cgi?id=12913).
      - I need it for fsblock.
      - I suspect other filesystems may need it too (eg. btrfs).
      - I have converted buffer.c to the new locking. Even simple block allocation
        under dirty pages might be susceptible to i_size changing under partial page
        at the end of file (we also have a buffer.c-side problem here, but it cannot
        be fixed properly without this patch).
      - Other filesystems (eg. NFS, maybe btrfs) will need to change their
        page_mkwrite functions themselves.
      
      [ This also moves page_mkwrite another step closer to fault, which should
        eventually allow page_mkwrite to be moved into ->fault, and thus avoiding a
        filesystem calldown and page lock/unlock cycle in __do_fault. ]
      
      [akpm@linux-foundation.org: fix derefs of NULL ->mapping]
      Cc: Sage Weil <sage@newdream.net>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b827e496
  22. 01 5月, 2009 2 次提交
  23. 29 4月, 2009 1 次提交
  24. 28 4月, 2009 2 次提交
  25. 27 4月, 2009 4 次提交
  26. 25 4月, 2009 1 次提交
  27. 23 4月, 2009 2 次提交
    • R
      docbooks: add/fix PCI kernel-doc · cffb2faf
      Randy Dunlap 提交于
      Add drivers/pci/*.c source files to DocBook/kernel-api.tmpl
      and update those pci/*.c source files that need kernel-doc fixes.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      cffb2faf
    • M
      ASoC: Add power supply widget to DAPM · 246d0a17
      Mark Brown 提交于
      Many modern CODECs have shared resources on chip which must be enabled
      for portions of the chip to work but which can be disabled at other times
      in order to achieve power savings. Examples of such resources include
      power supplies and some internal clocks.
      
      Since these widgets are dependencies for the audio path but do not carry
      audio signals they require slightly different handling to most widgets -
      they do not contribute to the audio path and so should not be counted as
      either inputs or outputs during path walks.
      
      Cases where one supply provides a supply for another will require
      additional work. There is also room for more optimisation of the graph
      walking to avoid repeated checks for the same thing.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      246d0a17