| /* |
| * HD-audio bus |
| */ |
| #include <linux/init.h> |
| #include <linux/device.h> |
| #include <linux/module.h> |
| #include <linux/export.h> |
| #include <sound/hdaudio.h> |
| |
| MODULE_DESCRIPTION("HD-audio bus"); |
| MODULE_LICENSE("GPL"); |
| |
| static int hda_bus_match(struct device *dev, struct device_driver *drv) |
| { |
| struct hdac_device *hdev = dev_to_hdac_dev(dev); |
| struct hdac_driver *hdrv = drv_to_hdac_driver(drv); |
| |
| if (hdev->type != hdrv->type) |
| return 0; |
| if (hdrv->match) |
| return hdrv->match(hdev, hdrv); |
| return 1; |
| } |
| |
| struct bus_type snd_hda_bus_type = { |
| .name = "hdaudio", |
| .match = hda_bus_match, |
| }; |
| EXPORT_SYMBOL_GPL(snd_hda_bus_type); |
| |
| static int __init hda_bus_init(void) |
| { |
| return bus_register(&snd_hda_bus_type); |
| } |
| |
| static void __exit hda_bus_exit(void) |
| { |
| bus_unregister(&snd_hda_bus_type); |
| } |
| |
| subsys_initcall(hda_bus_init); |
| module_exit(hda_bus_exit); |