1. 06 6月, 2011 4 次提交
    • S
      ALSA: hda: Separate generic and non-generic implementations · 3aaf8980
      Stephen Warren 提交于
      A future change will significantly rework the generic implementation
      in order to support codecs with a different number of pins and
      converters. Isolate the more custom codec variants from this change by
      duplicating the small portions of generic code they share. This
      simplifies the later rework of that previously shared code, since we
      don't have to consider the more custom codecs, and also prevents
      support for those codecs from regressing.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      3aaf8980
    • S
      ALSA: hda: Virtualize SPDIF out controls · 74b654c9
      Stephen Warren 提交于
      The SPDIF output controls apply to converter widgets. A future change
      will create a PCM device per pin widget, and hence a set of SPDIF output
      controls per pin widget, for certain HDMI codecs. To support this, we
      need the ability to virtualize the SPDIF output controls. Specifically:
      
      * Controls can be "unassigned" from real hardware when a converter is
        not used for the PCM the control was created for.
      * Control puts only write to hardware when they are assigned.
      * Controls can be "assigned" to real hardware when a converter is picked
        to support output for a particular PCM.
      * When a converter is assigned, the hardware is updated to the cached
        configuration.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      74b654c9
    • S
      ALSA: hda: Allow multple SPDIF controls per codec · 7c935976
      Stephen Warren 提交于
      Currently, the data that backs the kcontrols created by
      snd_hda_create_spdif_out_ctls is stored directly in struct hda_codec. When
      multiple sets of these controls are stored, they will all manipulate the
      same data, causing confusion. Instead, store an array of this data, one
      copy per converter, to isolate the controls.
      
      This patch would cause a behavioural change in the case where
      snd_hda_create_spdif_out_ctls was called multiple times for a single codec.
      As best I can tell, this is never the case for any codec.
      
      This will be relevant at least for some HDMI audio codecs, such as the
      NVIDIA GeForce 520 and Intel Ibex Peak. A future change will modify the
      driver's handling of those codecs to create multiple PCMs per codec. Note
      that this issue isn't affected by whether one creates a PCM-per-converter
      or PCM-per-pin; there are multiple of both within a single codec in both
      of those codecs.
      
      Note that those codecs don't currently create multiple PCMs for the codec
      due to the default HW mux state of all pins being to point at the same
      converter, hence there is only a single converter routed to any pin, and
      hence only a single PCM.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7c935976
    • S
      ALSA: hda: Gate ELD usage only by whether ELD is valid · c3d52105
      Stephen Warren 提交于
      It's perfectly valid for an ELD to contain no SADs. This simply means that
      only basic audio is supoprted.
      
      In this case, we still want to limit a PCM's capabilities based on the ELD.
      
      History:
      
      * Originally, ELD application was limited solely by sad_count>0, which
        was used to check that an ELD had been read.
      * Later, eld_valid was added to the conditions to satisfy.
      
      This change removes the original sad_count>0 check, which when squashed
      with the above two changes ends up replacing if (sad_count) with
      if (eld_valid).
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c3d52105
  2. 04 6月, 2011 2 次提交
  3. 03 6月, 2011 5 次提交
  4. 28 5月, 2011 1 次提交
    • L
      ALSA: fix hda AZX_DCAPS_NO_TCSEL quirk check in driver_caps · 46f2cc80
      Linus Torvalds 提交于
      Commit 9477c58e ("ALSA: hda - Reorganize controller quriks with bit
      flags") changed the driver type compares into various quirk bits.
      However, the check for AZX_DCAPS_NO_TCSEL got reverted: instead of
      clearing TCSEL for chipsets that have that standard capability, it
      cleared then when the NO_TCSEL bit was set.
      
      This can lead to noise and repeated sounds - a weird "echo" behavior.
      As the comment just above says: "Ensuring these bits are 0 clears
      playback static on some HD Audio codecs".  Which is definitely true at
      least on my Core i5 Westmere system.
      
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      46f2cc80
  5. 27 5月, 2011 6 次提交
  6. 26 5月, 2011 10 次提交
  7. 25 5月, 2011 9 次提交
  8. 24 5月, 2011 3 次提交