1. 20 Nov, 2019 8 commits
  2. 19 Nov, 2019 4 commits
    • Nikhil Mahale's avatar
      ALSA: hda - Add DP-MST support for NVIDIA codecs · 5398e94f
      Nikhil Mahale authored
      This patch adds DP-MST support for GK104+ NVIDIA codecs.
      
      GK104+ NVIDIA codecs support DP-MST audio. These codecs have 4
      output converters and 4 pin widgets, with 4 device entries per pin
      widget for a total of 16 device entries.
      
      This patch moves the existing patch_nvhdmi() definition to
      patch_nvhdmi_legacy(), used by pre-GK104 NVIDIA codecs. Redefine
      patch_nvhdmi() to enable DP-MST support by setting codec->dp_mst and
      spec->dyn_pcm_assign.
      
      Introduce fresh logic for dynamic pcm assignment, making
      sure that new pcm assignments are compatible with the legacy static
      per_pin-pmc assignment that existed in the days before DP-MST.
      Signed-off-by: default avatarNikhil Mahale <nmahale@nvidia.com>
      Reviewed-by: default avatarAaron Plattner <aplattner@nvidia.com>
      Link: https://lore.kernel.org/r/20191119084710.29267-5-nmahale@nvidia.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5398e94f
    • Nikhil Mahale's avatar
      ALSA: hda - Add DP-MST support for non-acomp codecs · 9c32fea8
      Nikhil Mahale authored
      This patch make it possible for non-acomp codecs to set
      dyn_pcm_assign/dp_mst and get DP-MST audio support.
      
      Document change notification HDA040-A for the Intel High Definition
      Audio 1.0a specification introduces a Device Select verb for Digital
      Display Pin Widgets that are multi-stream capable. This verb selects
      a Device Entry that is used by subsequent Pin Widget verbs.
      Once the Device Entry is selected, all subsequent Pin Widget verbs
      controlling the sink device will be directed to the selected Device
      Entry until the Device Select verb is updated with a new value.
      
      These Pin Widget verbs include:
      
        * Connection Select
        * Get Connection List Entry
        * Amplifier Gain/Mute
        * Power State
        * Pin Widget Control
        * ELD Data
        * DIP-Size
        * DIP-Index
        * DIP-Data
        * DIP-XmitCtrl
        * Content Protection Control
        * ASP Channel Mapping
      
      This patch adds calls to snd_hda_set_dev_select() to direct each of
      these Pin Widget control verbs to the correct Device Entry.
      
      snd_hda_get_connections() does not return per-device connection
      list, therefore make use snd_hda_get_raw_connections() instead of
      snd_hda_get_connections().
      Signed-off-by: default avatarNikhil Mahale <nmahale@nvidia.com>
      Reviewed-by: default avatarAaron Plattner <aplattner@nvidia.com>
      Link: https://lore.kernel.org/r/20191119084710.29267-4-nmahale@nvidia.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9c32fea8
    • Nikhil Mahale's avatar
      ALSA: hda - Add DP-MST jack support · 5204a05d
      Nikhil Mahale authored
      This patch adds DP-MST jack support which will be used on NVIDIA
      platforms. Today, DP-MST audio is supported only if the codec has
      acomp support. This patch makes it possible to add DP-MST support
      for non-acomp codecs.
      
      For the codecs supporting DP-MST audio, each pin can contain several
      device entries. Each device entry is a virtual pin, described by
      pin_nid and dev_id in struct hdmi_spec_per_pin. For monitor hotplug
      event handling, non-acomp codecs enable and register jack-detection
      for every hdmi_spec_per_pin.
      
      This patch updates every relevant function in hda_jack.h and its
      implementation in hda_jack.c, to consider dev_id along with pin_nid.
      
      Changes to the HD Audio specification to support DP-MST audio are
      described in the Intel Document Change Notification (DCN) number
      HDA040-A.
      
      From HDA040-A, "For the case of multi stream capable Digital Display
      Pin Widget, [the Get Pin Sense verb] can be used to read a specific
      Device Entry state as reported in Get Device List Entry verb." This
      patch updates the read_pin_sense() function to take the dev_id as an
      argument and pass it as a parameter to the Get Pin Sense verb.
      
      Bits 15 through 20 from the Unsolicited Response for intrinsic
      events contain the index of the Device Entry that generated the
      event. This patch updates the Unsolicited Response event handlers to
      extract the device entry index from the response and pass it to
      snd_hda_jack_tbl_get_from_tag().
      
      This patch updates snd_hda_jack_tbl_new() to take a dev_id argument
      and store it in the jack structure, and to make sure not to generate
      a different tag when called more than once for the same nid.
      Signed-off-by: default avatarNikhil Mahale <nmahale@nvidia.com>
      Link: https://lore.kernel.org/r/20191119084710.29267-3-nmahale@nvidia.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5204a05d
    • Nikhil Mahale's avatar
      ALSA: hda - Rename snd_hda_pin_sense to snd_hda_jack_pin_sense · 80b917a8
      Nikhil Mahale authored
      s/snd_hda_pin_sense/snd_hda_jack_pin_sense/g
      
      This aligns the snd_hda_pin_sense function name with the names of
      other functions in hda_jack.h.
      Signed-off-by: default avatarNikhil Mahale <nmahale@nvidia.com>
      Reviewed-by: default avatarAaron Plattner <aplattner@nvidia.com>
      Link: https://lore.kernel.org/r/20191119084710.29267-2-nmahale@nvidia.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      80b917a8
  3. 15 Nov, 2019 3 commits
  4. 14 Nov, 2019 5 commits
  5. 13 Nov, 2019 2 commits
  6. 12 Nov, 2019 1 commit
  7. 11 Nov, 2019 6 commits
  8. 09 Nov, 2019 11 commits