1. 01 11月, 2011 1 次提交
  2. 27 10月, 2011 4 次提交
    • T
      ALSA: hda - Fix ADC input-amp handling for Cx20549 codec · 6b452142
      Takashi Iwai 提交于
      It seems that Conexant CX20549 chip handle only a single input-amp even
      though the audio-input widget has multiple sources.  This has been never
      clear, and I implemented in the current way based on the debug information
      I got at the early time -- the device reacts individual input-amp values
      for different sources.  This is true for another Conexant codec, but it's
      not applied to CX20549 actually.
      
      This patch changes the auto-parser code to handle a single input-amp
      per audio-in widget for CX20549.  After applying this, you'll see only a
      single "Capture" volume control instead of separate "Mic" or "Line"
      captures when the device is set up to use a single ADC.
      
      We haven't tested 20551 and 20561 codecs yet.  If these show the similar
      behavior like 20549, they need to set spec->single_adc_amp=1, too.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6b452142
    • T
      ALSA: hda - Keep EAPD turned on for old Conexant chips · 254f2968
      Takashi Iwai 提交于
      In the old Conexant chips (5045, 5047, 5051 and 5066), a single EAPD
      may handle both headphone and speaker outputs while it's assigned only
      to one of them.  Turning off dynamically leads to the unexpected silent
      output in such a configuration with the auto-mute function.
      
      Since it's difficult to know how the EAPD is handled in the actual h/w
      implementation, better to keep EAPD on while running for such codecs.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      254f2968
    • T
      ALSA: hda/realtek - Fix missing volume controls with ALC260 · 527e4d73
      Takashi Iwai 提交于
      ALC260 has multiple mixer widgets connected to the shared DAC, but the
      driver currently doesn't check this possibility and ignores when the DAC
      is shared with others.  This resulted in the silent output from some
      routes because of lack of the amp setup.
      
      This patch adds the workaround for it by checking the route even with the
      shared DAC, but also checking the conflict with the existing control for
      the very same widget NID.
      
      Reference: https://bugzilla.novell.com/show_bug.cgi?id=726812Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      527e4d73
    • T
      ALSA: hda - Fix pin-config for ASUS W90V · 5cdf745e
      Takashi Iwai 提交于
      The association numbers of surround/CLFE speaker pins aren't correctly
      mapped by the auto-parser.  This patch fixes the CLFE speaker pin to the
      right assoc value (from 3 to 1).
      Tested-by: NNika Topolchanskaya <nanodesuu@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5cdf745e
  3. 26 10月, 2011 1 次提交
  4. 24 10月, 2011 1 次提交
  5. 21 10月, 2011 1 次提交
    • T
      ALSA: hda/realtek - Fix DAC assignments of multiple speakers · 716eef03
      Takashi Iwai 提交于
      When a device has multiple speakers and still has the auto-mute support,
      the driver copies line_outs[] to speaker_outs[].  And then it tries to
      assign DACs for both.  This ended up with the assignment only to the
      primary DAC to all speakers.
      
      This patch fixes the situation by checking the duplicated LO/SPK case
      appropriately.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      716eef03
  6. 18 10月, 2011 6 次提交
  7. 17 10月, 2011 1 次提交
  8. 13 10月, 2011 2 次提交
  9. 06 10月, 2011 4 次提交
  10. 05 10月, 2011 2 次提交
  11. 03 10月, 2011 2 次提交
  12. 30 9月, 2011 1 次提交
  13. 29 9月, 2011 2 次提交
    • T
      ALSA: hda - Allow patching with any vendor/subsystem ids · ef940b04
      Takashi Iwai 提交于
      In the ugly real world, there area really broken devices that don't set
      codec SSID correctly.  In such a case, the ID can be random, thus the
      patching won't work reliably.
      
      For applying the patch forcibly to such a device, the driver will skip
      the vendor and/or subsystem ID checks when zero or a negative number is
      given in [codec] section.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ef940b04
    • T
      ALSA: hda - Add snoop option · 27fe48d9
      Takashi Iwai 提交于
      Added a new option "snoop" for the traffic control of the HD-audio
      controller chip.  When set to 0, the non-snooping mode is used with
      the traffic control bit is set in each stream control register.
      This may allow better operations in the low power mode, but the actual
      implementation is depending pretty much on the chipset.
      
      As already implemented, more or less each chipset has own snoop-control
      register bit.  Now this setup refers to the snoop option, too.
      
      Also, a new VIA chipset may require the non-snooping mode when set so
      in BIOS.  In such a case, the option value is overridden.
      
      As default, it's still set to snoop=1 for keeping the same behavior as
      before.  In near future, it'll be set to 0 as default after checking
      it works in every system well.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      27fe48d9
  14. 28 9月, 2011 1 次提交
  15. 27 9月, 2011 1 次提交
  16. 26 9月, 2011 2 次提交
  17. 24 9月, 2011 1 次提交
  18. 23 9月, 2011 4 次提交
    • R
      ALSA: HDA - Add Independent Headphone for all models of ad1988/ad1989 · 34588709
      Raymond Yau 提交于
      - Add "AD198x Headphone" playback device for independent headphone playback
        while playing 7.1 surround using rear panel audio jacks.
      
      - Remove "6stack-dig-fp" model since "Headphone Playback Volume" control using
        DAC0 instead of DAC1 (HDA_FRONT) was already added to all models.
      
      - Add "Independent HP" switch to enable/disable this playback device.
        When the switch is OFF, headphone use "copy front" mode to get the front
        channel as the green jack.
        When the switch is ON, you can play stereo sound through "AD198x Headphone"
        device to headphone while playing 7.1 surround sound through "AD198x Analog"
        device.
        The switch cannot be changed when either "AD198x Headphone" or "AD198X Analog"
        is open.
      Signed-off-by: NRaymond Yau <superquad.vortex2@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      34588709
    • D
      ALSA: hdspm - cleanup __user tags in ioctl() · 2ca595ab
      Dan Carpenter 提交于
      This makes the code cleaner and silences a Sparse complaint:
      sound/pci/rme9652/hdspm.c:6341:23: warning: incorrect type in assignment (incompatible argument 4 (different address spaces))
      sound/pci/rme9652/hdspm.c:6341:23:    expected int ( *ioctl )( ... )
      sound/pci/rme9652/hdspm.c:6341:23:    got int ( static [toplevel] *<noident> )( ... )
      sound/pci/rme9652/hdspm.c:6102:44: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6225:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6264:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6283:50: warning: dereference of noderef expression
      sound/pci/rme9652/hdspm.c:6289:59: warning: dereference of noderef expression
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2ca595ab
    • D
      ALSA: hdspm - potential info leak in snd_hdspm_hwdep_ioctl() · 643d6bbb
      Dan Carpenter 提交于
      Smatch has a new check for Rosenberg type information leaks where
      structs are copied to the user with uninitialized stack data in them.
      
      The status struct has a hole in it, and on some paths not all the
      members were initialized.
      
      struct hdspm_status {
              unsigned char              card_type;            /*     0     1 */
              /* XXX 3 bytes hole, try to pack */
              enum hdspm_syncsource      autosync_source;      /*     4     4 */
              long long unsigned int     card_clock;           /*     8     8 */
      
      The hdspm_version struct had holes in it as well.
      
      struct hdspm_version {
              unsigned char              card_type;            /*     0     1 */
              char                       cardname[20];         /*     1    20 */
              /* XXX 3 bytes hole, try to pack */
              unsigned int               serial;               /*    24     4 */
              short unsigned int         firmware_rev;         /*    28     2 */
              /* XXX 2 bytes hole, try to pack */
              int                        addons;               /*    32     4 */
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      643d6bbb
    • T
      ALSA: fm801 - Clean up redundant reference to snd_fm801_tea575x_gpios[] · 8e699d2c
      Takashi Iwai 提交于
      Use macro to improve readability.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8e699d2c
  19. 22 9月, 2011 3 次提交