diff options
author | Vinod Koul <vinod.koul@intel.com> | 2015-06-03 12:24:31 +0530 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-06-03 11:58:49 +0200 |
commit | ec71efc9aaa53b8944b119f8bedd0559c8ed5453 (patch) | |
tree | 8fa129032db0ae14c7717b8d26879a6b1c90563a /include/sound/hdaudio.h | |
parent | 03b135cebc47d75ea2dc346770374ab741966955 (diff) | |
download | linux-next-ec71efc9aaa53b8944b119f8bedd0559c8ed5453.tar.gz |
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.h | 14 |
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 */ |