1. 17 Nov, 2017 1 commit
    • Takashi Iwai's avatar
      ALSA: hda: Fix too short HDMI/DP chmap reporting · c2432466
      Takashi Iwai authored
      We got a regression report about the HD-audio HDMI chmap, where some
      surround channels are reported as UNKNOWN.  The git bisection pointed
      the culprit at the commit 9b3dc8aa ("ALSA: hda - Register chmap
      obj as priv data instead of codec").  The story behind scene is like
      this:
      
      - While moving the code out of the legacy HDA to the HDA common place,
        the patch modifies the code to obtain the chmap array indirectly in
        a byte array, and it expands it to kctl value array.
      - At the latter operation, the size of the array is wrongly passed by
        sizeof() to the pointer.
      - It can be 4 on 32bit arch, thus too short for 6+ channels.
        (And that's the reason why it didn't hit other persons; it's 8 on
        64bit arch, thus it's usually enough.)
      
      The code was further changed meanwhile, but the problem persisted.
      Let's fix it by correctly evaluating the array size.
      
      Fixes: 9b3dc8aa ("ALSA: hda - Register chmap obj as priv data instead of codec")
      Reported-by: 's avatarVDR User <user.vdr@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: 's avatarTakashi Iwai <tiwai@suse.de>
      c2432466
  2. 16 Jun, 2016 1 commit
  3. 04 Apr, 2016 1 commit
    • Subhransu S. Prusty's avatar
      ALSA: hda - Update chmap tlv to report sink's capability · 44fde3b8
      Subhransu S. Prusty authored
      The existing TLV callback implementation copies all of the
      cea_channel_speaker_allocation map table to the TLV container
      irrespective of what is reported by sink. This is of little use
      to the userspace application.
      
      With this patch, it parses the spk_alloc block as queried from
      the ELD, and copies only the corresponding mapping channel
      allocation entries from the cea channel speaker allocation table.
      Thus the user can parse the TLV container to identify sink's
      capability and set the channel map accordingly.
      
      It shouldn't impact the behavior in AMD chipset, as this makes
      use of already parsed spk alloc block to calculate the channel
      map.
      Signed-off-by: 's avatarSubhransu S. Prusty <subhransu.s.prusty@intel.com>
      Signed-off-by: 's avatarVinod Koul <vinod.koul@intel.com>
      Signed-off-by: 's avatarTakashi Iwai <tiwai@suse.de>
      44fde3b8
  4. 07 Mar, 2016 3 commits