]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - sound/x86/intel_hdmi_audio.h
Merge tag 'arc-5.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
[linux.git] / sound / x86 / intel_hdmi_audio.h
index 2d3e389f76b317f8711c3827f8a3960b1f6eb96f..0d91bb5dbab7dd51d4804b202bec2ce1c2da0fc5 100644 (file)
@@ -32,7 +32,6 @@
 
 #include "intel_hdmi_lpe_audio.h"
 
-#define PCM_INDEX              0
 #define MAX_PB_STREAMS         1
 #define MAX_CAP_STREAMS                0
 #define BYTES_PER_WORD         0x4
@@ -101,7 +100,7 @@ struct pcm_stream_info {
  * @chmap: holds channel map info
  */
 struct snd_intelhad {
-       struct snd_card *card;
+       struct snd_intelhad_card *card_ctx;
        bool            connected;
        struct          pcm_stream_info stream_info;
        unsigned char   eld[HDMI_MAX_ELD_BYTES];
@@ -112,6 +111,8 @@ struct snd_intelhad {
        struct snd_pcm_chmap *chmap;
        int tmds_clock_speed;
        int link_rate;
+       int port; /* fixed */
+       int pipe; /* can change dynamically */
 
        /* ring buffer (BD) position index */
        unsigned int bd_head;
@@ -123,9 +124,6 @@ struct snd_intelhad {
        unsigned int period_bytes;      /* PCM period size in bytes */
 
        /* internal stuff */
-       int irq;
-       void __iomem *mmio_start;
-       unsigned int had_config_offset;
        union aud_cfg aud_config;       /* AUD_CONFIG reg value cache */
        struct work_struct hdmi_audio_wq;
        struct mutex mutex; /* for protecting chmap and eld */
@@ -133,4 +131,16 @@ struct snd_intelhad {
        struct snd_jack *jack;
 };
 
+struct snd_intelhad_card {
+       struct snd_card *card;
+       struct device *dev;
+
+       /* internal stuff */
+       int irq;
+       void __iomem *mmio_start;
+       int num_pipes;
+       int num_ports;
+       struct snd_intelhad pcm_ctx[3]; /* one for each port */
+};
+
 #endif /* _INTEL_HDMI_AUDIO_ */