ALSA: hdac_ext: add hdac extended controller
The controller needs to support the new capabilities and allow reading, parsing and initializing of these capabilities, so this patch does it Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
@@ -43,4 +43,39 @@ int snd_hdac_ext_bus_parse_capabilities(struct hdac_ext_bus *sbus);
|
||||
void snd_hdac_ext_bus_ppcap_enable(struct hdac_ext_bus *chip, bool enable);
|
||||
void snd_hdac_ext_bus_ppcap_int_enable(struct hdac_ext_bus *chip, bool enable);
|
||||
|
||||
void snd_hdac_ext_stream_spbcap_enable(struct hdac_ext_bus *chip,
|
||||
bool enable, int index);
|
||||
|
||||
int snd_hdac_ext_bus_get_ml_capabilities(struct hdac_ext_bus *bus);
|
||||
int snd_hdac_ext_bus_map_codec_to_link(struct hdac_ext_bus *bus, int addr);
|
||||
struct hdac_ext_link *snd_hdac_ext_bus_get_link(struct hdac_ext_bus *bus,
|
||||
const char *codec_name);
|
||||
|
||||
enum hdac_ext_stream_type {
|
||||
HDAC_EXT_STREAM_TYPE_COUPLED = 0,
|
||||
HDAC_EXT_STREAM_TYPE_HOST,
|
||||
HDAC_EXT_STREAM_TYPE_LINK
|
||||
};
|
||||
|
||||
struct hdac_ext_link {
|
||||
struct hdac_bus *bus;
|
||||
int index;
|
||||
void __iomem *ml_addr; /* link output stream reg pointer */
|
||||
u32 lcaps; /* link capablities */
|
||||
u16 lsdiid; /* link sdi identifier */
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
int snd_hdac_ext_bus_link_power_up(struct hdac_ext_link *link);
|
||||
int snd_hdac_ext_bus_link_power_down(struct hdac_ext_link *link);
|
||||
void snd_hdac_ext_link_set_stream_id(struct hdac_ext_link *link,
|
||||
int stream);
|
||||
void snd_hdac_ext_link_clear_stream_id(struct hdac_ext_link *link,
|
||||
int stream);
|
||||
|
||||
/* update register macro */
|
||||
#define snd_hdac_updatel(addr, reg, mask, val) \
|
||||
writel(((readl(addr + reg) & ~(mask)) | (val)), \
|
||||
addr + reg)
|
||||
|
||||
#endif /* __SOUND_HDAUDIO_EXT_H */
|
||||
|
Reference in New Issue
Block a user