]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/pci/hda/hda_codec.h
ALSA: hda - add flags and routines to get devices selection info for DP1.2 MST
[karo-tx-linux.git] / sound / pci / hda / hda_codec.h
index 701c2e069b10ad218886f5853caa1c5c3e31409c..b838c70420d1e2e623e1eb1396c8a71b61e5d388 100644 (file)
@@ -94,6 +94,8 @@ enum {
 #define AC_VERB_GET_HDMI_DIP_XMIT              0x0f32
 #define AC_VERB_GET_HDMI_CP_CTRL               0x0f33
 #define AC_VERB_GET_HDMI_CHAN_SLOT             0x0f34
+#define AC_VERB_GET_DEVICE_SEL                 0xf35
+#define AC_VERB_GET_DEVICE_LIST                        0xf36
 
 /*
  * SET verbs
@@ -133,6 +135,7 @@ enum {
 #define AC_VERB_SET_HDMI_DIP_XMIT              0x732
 #define AC_VERB_SET_HDMI_CP_CTRL               0x733
 #define AC_VERB_SET_HDMI_CHAN_SLOT             0x734
+#define AC_VERB_SET_DEVICE_SEL                 0x735
 
 /*
  * Parameter IDs
@@ -154,6 +157,7 @@ enum {
 #define AC_PAR_GPIO_CAP                        0x11
 #define AC_PAR_AMP_OUT_CAP             0x12
 #define AC_PAR_VOL_KNB_CAP             0x13
+#define AC_PAR_DEVLIST_LEN             0x15
 #define AC_PAR_HDMI_LPCM_CAP           0x20
 
 /*
@@ -352,6 +356,10 @@ enum {
 #define AC_LPCMCAP_44K                 (1<<30) /* 44.1kHz support */
 #define AC_LPCMCAP_44K_MS              (1<<31) /* 44.1kHz-multiplies support */
 
+/* Display pin's device list length */
+#define AC_DEV_LIST_LEN_MASK           0x3f
+#define AC_MAX_DEV_LIST_LEN            64
+
 /*
  * Control Parameters
  */
@@ -460,6 +468,11 @@ enum {
 #define AC_DEFCFG_PORT_CONN            (0x3<<30)
 #define AC_DEFCFG_PORT_CONN_SHIFT      30
 
+/* Display pin's device list entry */
+#define AC_DE_PD                       (1<<0)
+#define AC_DE_ELDV                     (1<<1)
+#define AC_DE_IA                       (1<<2)
+
 /* device device types (0x0-0xf) */
 enum {
        AC_JACK_LINE_OUT,
@@ -885,6 +898,7 @@ struct hda_codec {
        unsigned int pcm_format_first:1; /* PCM format must be set first */
        unsigned int epss:1;            /* supporting EPSS? */
        unsigned int cached_write:1;    /* write only to caches */
+       unsigned int dp_mst:1; /* support DP1.2 Multi-stream transport */
 #ifdef CONFIG_PM
        unsigned int power_on :1;       /* current (global) power-state */
        unsigned int d3_stop_clk:1;     /* support D3 operation without BCLK */
@@ -972,6 +986,8 @@ int snd_hda_override_conn_list(struct hda_codec *codec, hda_nid_t nid, int nums,
                          const hda_nid_t *list);
 int snd_hda_get_conn_index(struct hda_codec *codec, hda_nid_t mux,
                           hda_nid_t nid, int recursive);
+int snd_hda_get_devices(struct hda_codec *codec, hda_nid_t nid,
+                       u8 *dev_list, int max_devices);
 int snd_hda_query_supported_pcm(struct hda_codec *codec, hda_nid_t nid,
                                u32 *ratesp, u64 *formatsp, unsigned int *bpsp);