aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/hdaudio.h
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2015-06-03 12:24:31 +0530
committerTakashi Iwai <tiwai@suse.de>2015-06-03 11:58:49 +0200
commitec71efc9aaa53b8944b119f8bedd0559c8ed5453 (patch)
tree8fa129032db0ae14c7717b8d26879a6b1c90563a /include/sound/hdaudio.h
parentALSA: hda - remove controller dependency on i915 power well for SKL (diff)
downloadlinux-dev-ec71efc9aaa53b8944b119f8bedd0559c8ed5453.tar.xz
linux-dev-ec71efc9aaa53b8944b119f8bedd0559c8ed5453.zip
ALSA: hda - add HDA default codec match function
HDA codec drivers can be matched using vendor id and revision id typically. So provide a match function which does this and is loaded when driver hasn't provided one (default behaviour) 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>
Diffstat (limited to 'include/sound/hdaudio.h')
-rw-r--r--include/sound/hdaudio.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index 64fff4db81bb..4caf1fde8a4f 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -28,6 +28,16 @@ struct hdac_widget_tree;
extern struct bus_type snd_hda_bus_type;
/*
+ * HDA device table
+ */
+struct hda_device_id {
+ __u32 vendor_id;
+ __u32 rev_id;
+ const char *name;
+ unsigned long driver_data;
+};
+
+/*
* generic arrays
*/
struct snd_array {
@@ -171,12 +181,16 @@ static inline void snd_hdac_power_down_pm(struct hdac_device *codec) {}
struct hdac_driver {
struct device_driver driver;
int type;
+ const struct hda_device_id *id_table;
int (*match)(struct hdac_device *dev, struct hdac_driver *drv);
void (*unsol_event)(struct hdac_device *dev, unsigned int event);
};
#define drv_to_hdac_driver(_drv) container_of(_drv, struct hdac_driver, driver)
+const struct hda_device_id *
+hdac_get_device_id(struct hdac_device *hdev, struct hdac_driver *drv);
+
/*
* Bus verb operators
*/