mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-11 00:16:42 +07:00
e3d280fc6d
Define the common hd-audio driver and device types to bind over snd_hda_bus_type publicly. This allows to implement other type of device and driver code over hd-audio bus. Now both struct hda_codec and struct hda_codec_driver inherit these new struct hdac_device and struct hdac_driver, respectively. The bus registration is done in subsys_initcall() to assure it before any other driver registrations. Signed-off-by: Takashi Iwai <tiwai@suse.de>
43 lines
715 B
C
43 lines
715 B
C
/*
|
|
* HD-audio core stuff
|
|
*/
|
|
|
|
#ifndef __SOUND_HDAUDIO_H
|
|
#define __SOUND_HDAUDIO_H
|
|
|
|
#include <linux/device.h>
|
|
|
|
/*
|
|
* exported bus type
|
|
*/
|
|
extern struct bus_type snd_hda_bus_type;
|
|
|
|
/*
|
|
* HD-audio codec base device
|
|
*/
|
|
struct hdac_device {
|
|
struct device dev;
|
|
int type;
|
|
};
|
|
|
|
/* device/driver type used for matching */
|
|
enum {
|
|
HDA_DEV_CORE,
|
|
HDA_DEV_LEGACY,
|
|
};
|
|
|
|
#define dev_to_hdac_dev(_dev) container_of(_dev, struct hdac_device, dev)
|
|
|
|
/*
|
|
* HD-audio codec base driver
|
|
*/
|
|
struct hdac_driver {
|
|
struct device_driver driver;
|
|
int type;
|
|
int (*match)(struct hdac_device *dev, struct hdac_driver *drv);
|
|
};
|
|
|
|
#define drv_to_hdac_driver(_drv) container_of(_drv, struct hdac_driver, driver)
|
|
|
|
#endif /* __SOUND_HDAUDIO_H */
|