summaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorSubhransu S. Prusty <subhransu.s.prusty@intel.com>2016-03-04 19:59:49 +0530
committerTakashi Iwai <tiwai@suse.de>2016-03-07 15:41:31 +0100
commit739ffee97ed550a2899a925ed3f260fa1e8fa955 (patch)
treed6c16c5c52a798cb5a049e20c84bb2d242a2d2bd /include/sound
parentf302240da5d5cfc7366dc6994c523aa2aa17c122 (diff)
downloadlinux-0-day-739ffee97ed550a2899a925ed3f260fa1e8fa955.tar.gz
linux-0-day-739ffee97ed550a2899a925ed3f260fa1e8fa955.tar.xz
ALSA: hda - Add hdmi chmap verb programming ops to chmap object
Add slot and channel count programming to hdmi_chmap object and move the chmap_ops to core. Use register_chmap_ops API to register for default ops. Override specific chmap ops in the driver. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/hda_chmap.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/sound/hda_chmap.h b/include/sound/hda_chmap.h
index d3f80e728593d..7afffb90921fd 100644
--- a/include/sound/hda_chmap.h
+++ b/include/sound/hda_chmap.h
@@ -36,6 +36,14 @@ struct hdac_chmap_ops {
void (*set_chmap)(struct hdac_device *hdac, int pcm_idx,
unsigned char *chmap, int prepared);
bool (*is_pcm_attached)(struct hdac_device *hdac, int pcm_idx);
+
+ /* get and set channel assigned to each HDMI ASP (audio sample packet) slot */
+ int (*pin_get_slot_channel)(struct hdac_device *codec,
+ hda_nid_t pin_nid, int asp_slot);
+ int (*pin_set_slot_channel)(struct hdac_device *codec,
+ hda_nid_t pin_nid, int asp_slot, int channel);
+ void (*set_channel_count)(struct hdac_device *codec,
+ hda_nid_t cvt_nid, int chs);
};
struct hdac_chmap {
@@ -44,4 +52,6 @@ struct hdac_chmap {
struct hdac_device *hdac;
};
+void snd_hdac_register_chmap_ops(struct hdac_device *hdac,
+ struct hdac_chmap *chmap);
#endif /* __SOUND_HDA_CHMAP_H */