1. 05 8月, 2010 2 次提交
  2. 04 8月, 2010 1 次提交
    • T
      ALSA: hda - Fix initial capsrc selection in patch_alc269() · 748cce43
      Takashi Iwai 提交于
      In patch_alc269(), we initialize the primary capsrc so that the device
      works from the beginning.  It issues CONNECT_SEL verb no matter which
      widget is although some widget (e.g. 0x23) has no connection selection
      but a mixer, which requires unmuting instead.
      
      This patch fixes the initialization of capsrc by re-using the code as
      a helper function.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      748cce43
  3. 03 8月, 2010 8 次提交
  4. 02 8月, 2010 3 次提交
  5. 31 7月, 2010 13 次提交
  6. 30 7月, 2010 13 次提交
    • T
      ALSA: hda - Add a warning for ignored pins with ALC259/268/269 · c7a9434d
      Takashi Iwai 提交于
      The current ALC259/268/269 parser ignores some pins as unhandled,
      but user won't notice what goes wrong.  So, added a warning message
      for the ignored pins as a hint.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c7a9434d
    • T
      ALSA: hda - Handle pin NID 0x1a on ALC259/269 · b08b1637
      Takashi Iwai 提交于
      The pin NID 0x1a should be handled as well as NID 0x1b.
      Also added comments.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b08b1637
    • T
      ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs · 697c373e
      Takashi Iwai 提交于
      Call snd_hda_shutup_pins() for power-saving and reboot-notifier in
      patch_conexant.c as well as other codecs.  This will reduce the pop
      noise in power-save mode.
      
      Reference: bnc#624896
      	https://bugzilla.novell.com/show_bug.cgi?id=624896Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      697c373e
    • T
      ALSA: hda - Prefer VREF50 if BIOS sets for Realtek codecs · 954a29c8
      Takashi Iwai 提交于
      If BIOS sets up the input pin as VREF 50, use the value as is instead of
      overriding forcibly to VREF 80.  This fixes the quality of inputs on
      some devices like Packard-Bell M5210.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      954a29c8
    • T
      ALSA: hda - Handle missing NID 0x1b on ALC259 codec · 5d4abf93
      Takashi Iwai 提交于
      Since ALC259/269 use the same parser of ALC268, the pin 0x1b was ignored
      as an invalid widget.  Just add this NID to handle properly.
      This will add the missing mixer controls for some devices.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5d4abf93
    • T
      ALSA: hda - Share digital I/O parser in patch_realtek.c · 757899ac
      Takashi Iwai 提交于
      Make a helper function to parse the digital I/Os of all Realtek codecs
      to simplify the code and to ensure the setups.
      Also, initialize digital I/O pins properly in init callbacks.  Some BIOS
      seem to leave pins uninitialized.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      757899ac
    • T
      ALSA: hda - Increase the connection list size for ALC662 · ce503f38
      Takashi Iwai 提交于
      Some ALC662-compatible codecs like ALC892 may have more than 4
      connections for the input source.  Use HDA_MAX_CONNECTIONS instead of
      the fixed magic number 4.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ce503f38
    • T
      ALSA: hda - Make error messages more verbose · 5aacc218
      Takashi Iwai 提交于
      Add a prefix and more information for error messages regarding the
      connection-list in hda_codec.c.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5aacc218
    • L
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · a2dccdb2
      Linus Torvalds 提交于
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
        [S390] etr: fix clock synchronization race
        [S390] Fix IRQ tracing in case of PER
      a2dccdb2
    • L
    • L
      Merge branch 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · e271e872
      Linus Torvalds 提交于
      * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Add a PC-beep workaround for ASUS P5-V
        ALSA: hda - Assume PC-beep as default for Realtek
        ALSA: hda - Don't register beep input device when no beep is available
        ALSA: hda - Fix pin-detection of Nvidia HDMI
      e271e872
    • D
      CRED: Fix __task_cred()'s lockdep check and banner comment · 8f92054e
      David Howells 提交于
      Fix __task_cred()'s lockdep check by removing the following validation
      condition:
      
      	lockdep_tasklist_lock_is_held()
      
      as commit_creds() does not take the tasklist_lock, and nor do most of the
      functions that call it, so this check is pointless and it can prevent
      detection of the RCU lock not being held if the tasklist_lock is held.
      
      Instead, add the following validation condition:
      
      	task->exit_state >= 0
      
      to permit the access if the target task is dead and therefore unable to change
      its own credentials.
      
      Fix __task_cred()'s comment to:
      
       (1) discard the bit that says that the caller must prevent the target task
           from being deleted.  That shouldn't need saying.
      
       (2) Add a comment indicating the result of __task_cred() should not be passed
           directly to get_cred(), but rather than get_task_cred() should be used
           instead.
      
      Also put a note into the documentation to enforce this point there too.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8f92054e
    • D
      CRED: Fix get_task_cred() and task_state() to not resurrect dead credentials · de09a977
      David Howells 提交于
      It's possible for get_task_cred() as it currently stands to 'corrupt' a set of
      credentials by incrementing their usage count after their replacement by the
      task being accessed.
      
      What happens is that get_task_cred() can race with commit_creds():
      
      	TASK_1			TASK_2			RCU_CLEANER
      	-->get_task_cred(TASK_2)
      	rcu_read_lock()
      	__cred = __task_cred(TASK_2)
      				-->commit_creds()
      				old_cred = TASK_2->real_cred
      				TASK_2->real_cred = ...
      				put_cred(old_cred)
      				  call_rcu(old_cred)
      		[__cred->usage == 0]
      	get_cred(__cred)
      		[__cred->usage == 1]
      	rcu_read_unlock()
      							-->put_cred_rcu()
      							[__cred->usage == 1]
      							panic()
      
      However, since a tasks credentials are generally not changed very often, we can
      reasonably make use of a loop involving reading the creds pointer and using
      atomic_inc_not_zero() to attempt to increment it if it hasn't already hit zero.
      
      If successful, we can safely return the credentials in the knowledge that, even
      if the task we're accessing has released them, they haven't gone to the RCU
      cleanup code.
      
      We then change task_state() in procfs to use get_task_cred() rather than
      calling get_cred() on the result of __task_cred(), as that suffers from the
      same problem.
      
      Without this change, a BUG_ON in __put_cred() or in put_cred_rcu() can be
      tripped when it is noticed that the usage count is not zero as it ought to be,
      for example:
      
      kernel BUG at kernel/cred.c:168!
      invalid opcode: 0000 [#1] SMP
      last sysfs file: /sys/kernel/mm/ksm/run
      CPU 0
      Pid: 2436, comm: master Not tainted 2.6.33.3-85.fc13.x86_64 #1 0HR330/OptiPlex
      745
      RIP: 0010:[<ffffffff81069881>]  [<ffffffff81069881>] __put_cred+0xc/0x45
      RSP: 0018:ffff88019e7e9eb8  EFLAGS: 00010202
      RAX: 0000000000000001 RBX: ffff880161514480 RCX: 00000000ffffffff
      RDX: 00000000ffffffff RSI: ffff880140c690c0 RDI: ffff880140c690c0
      RBP: ffff88019e7e9eb8 R08: 00000000000000d0 R09: 0000000000000000
      R10: 0000000000000001 R11: 0000000000000040 R12: ffff880140c690c0
      R13: ffff88019e77aea0 R14: 00007fff336b0a5c R15: 0000000000000001
      FS:  00007f12f50d97c0(0000) GS:ffff880007400000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f8f461bc000 CR3: 00000001b26ce000 CR4: 00000000000006f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process master (pid: 2436, threadinfo ffff88019e7e8000, task ffff88019e77aea0)
      Stack:
       ffff88019e7e9ec8 ffffffff810698cd ffff88019e7e9ef8 ffffffff81069b45
      <0> ffff880161514180 ffff880161514480 ffff880161514180 0000000000000000
      <0> ffff88019e7e9f28 ffffffff8106aace 0000000000000001 0000000000000246
      Call Trace:
       [<ffffffff810698cd>] put_cred+0x13/0x15
       [<ffffffff81069b45>] commit_creds+0x16b/0x175
       [<ffffffff8106aace>] set_current_groups+0x47/0x4e
       [<ffffffff8106ac89>] sys_setgroups+0xf6/0x105
       [<ffffffff81009b02>] system_call_fastpath+0x16/0x1b
      Code: 48 8d 71 ff e8 7e 4e 15 00 85 c0 78 0b 8b 75 ec 48 89 df e8 ef 4a 15 00
      48 83 c4 18 5b c9 c3 55 8b 07 8b 07 48 89 e5 85 c0 74 04 <0f> 0b eb fe 65 48 8b
      04 25 00 cc 00 00 48 3b b8 58 04 00 00 75
      RIP  [<ffffffff81069881>] __put_cred+0xc/0x45
       RSP <ffff88019e7e9eb8>
      ---[ end trace df391256a100ebdd ]---
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NJiri Olsa <jolsa@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      de09a977