mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
ALSA: hdac: Remove usage of struct hdac_ext_driver, use hdac_driver instead
This patch removes the hdac_ext_driver structure. The legacy and enhanced HDaudio capabilities can be handled in a backward-compatible way without separate definitions. Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
76f56fae1c
commit
e1df9317cb
@ -188,6 +188,11 @@ struct hdac_driver {
|
|||||||
const struct hda_device_id *id_table;
|
const struct hda_device_id *id_table;
|
||||||
int (*match)(struct hdac_device *dev, struct hdac_driver *drv);
|
int (*match)(struct hdac_device *dev, struct hdac_driver *drv);
|
||||||
void (*unsol_event)(struct hdac_device *dev, unsigned int event);
|
void (*unsol_event)(struct hdac_device *dev, unsigned int event);
|
||||||
|
|
||||||
|
/* fields used by ext bus APIs */
|
||||||
|
int (*probe)(struct hdac_device *dev);
|
||||||
|
int (*remove)(struct hdac_device *dev);
|
||||||
|
void (*shutdown)(struct hdac_device *dev);
|
||||||
};
|
};
|
||||||
|
|
||||||
#define drv_to_hdac_driver(_drv) container_of(_drv, struct hdac_driver, driver)
|
#define drv_to_hdac_driver(_drv) container_of(_drv, struct hdac_driver, driver)
|
||||||
|
@ -160,20 +160,7 @@ struct hdac_ext_dma_params {
|
|||||||
u8 stream_tag;
|
u8 stream_tag;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
int snd_hda_ext_driver_register(struct hdac_driver *drv);
|
||||||
* HD-audio codec base driver
|
void snd_hda_ext_driver_unregister(struct hdac_driver *drv);
|
||||||
*/
|
|
||||||
struct hdac_ext_driver {
|
|
||||||
struct hdac_driver hdac;
|
|
||||||
|
|
||||||
int (*probe)(struct hdac_device *dev);
|
|
||||||
int (*remove)(struct hdac_device *dev);
|
|
||||||
void (*shutdown)(struct hdac_device *dev);
|
|
||||||
};
|
|
||||||
|
|
||||||
int snd_hda_ext_driver_register(struct hdac_ext_driver *drv);
|
|
||||||
void snd_hda_ext_driver_unregister(struct hdac_ext_driver *drv);
|
|
||||||
|
|
||||||
#define to_ehdac_driver(_drv) container_of(_drv, struct hdac_ext_driver, hdac)
|
|
||||||
|
|
||||||
#endif /* __SOUND_HDAUDIO_EXT_H */
|
#endif /* __SOUND_HDAUDIO_EXT_H */
|
||||||
|
@ -200,12 +200,10 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_device_remove);
|
|||||||
#define dev_to_hdac(dev) (container_of((dev), \
|
#define dev_to_hdac(dev) (container_of((dev), \
|
||||||
struct hdac_device, dev))
|
struct hdac_device, dev))
|
||||||
|
|
||||||
static inline struct hdac_ext_driver *get_edrv(struct device *dev)
|
static inline struct hdac_driver *get_hdrv(struct device *dev)
|
||||||
{
|
{
|
||||||
struct hdac_driver *hdrv = drv_to_hdac_driver(dev->driver);
|
struct hdac_driver *hdrv = drv_to_hdac_driver(dev->driver);
|
||||||
struct hdac_ext_driver *edrv = to_ehdac_driver(hdrv);
|
return hdrv;
|
||||||
|
|
||||||
return edrv;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct hdac_device *get_hdev(struct device *dev)
|
static inline struct hdac_device *get_hdev(struct device *dev)
|
||||||
@ -216,17 +214,17 @@ static inline struct hdac_device *get_hdev(struct device *dev)
|
|||||||
|
|
||||||
static int hda_ext_drv_probe(struct device *dev)
|
static int hda_ext_drv_probe(struct device *dev)
|
||||||
{
|
{
|
||||||
return (get_edrv(dev))->probe(get_hdev(dev));
|
return (get_hdrv(dev))->probe(get_hdev(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hdac_ext_drv_remove(struct device *dev)
|
static int hdac_ext_drv_remove(struct device *dev)
|
||||||
{
|
{
|
||||||
return (get_edrv(dev))->remove(get_hdev(dev));
|
return (get_hdrv(dev))->remove(get_hdev(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hdac_ext_drv_shutdown(struct device *dev)
|
static void hdac_ext_drv_shutdown(struct device *dev)
|
||||||
{
|
{
|
||||||
return (get_edrv(dev))->shutdown(get_hdev(dev));
|
return (get_hdrv(dev))->shutdown(get_hdev(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -234,20 +232,20 @@ static void hdac_ext_drv_shutdown(struct device *dev)
|
|||||||
*
|
*
|
||||||
* @drv: ext hda driver structure
|
* @drv: ext hda driver structure
|
||||||
*/
|
*/
|
||||||
int snd_hda_ext_driver_register(struct hdac_ext_driver *drv)
|
int snd_hda_ext_driver_register(struct hdac_driver *drv)
|
||||||
{
|
{
|
||||||
drv->hdac.type = HDA_DEV_ASOC;
|
drv->type = HDA_DEV_ASOC;
|
||||||
drv->hdac.driver.bus = &snd_hda_bus_type;
|
drv->driver.bus = &snd_hda_bus_type;
|
||||||
/* we use default match */
|
/* we use default match */
|
||||||
|
|
||||||
if (drv->probe)
|
if (drv->probe)
|
||||||
drv->hdac.driver.probe = hda_ext_drv_probe;
|
drv->driver.probe = hda_ext_drv_probe;
|
||||||
if (drv->remove)
|
if (drv->remove)
|
||||||
drv->hdac.driver.remove = hdac_ext_drv_remove;
|
drv->driver.remove = hdac_ext_drv_remove;
|
||||||
if (drv->shutdown)
|
if (drv->shutdown)
|
||||||
drv->hdac.driver.shutdown = hdac_ext_drv_shutdown;
|
drv->driver.shutdown = hdac_ext_drv_shutdown;
|
||||||
|
|
||||||
return driver_register(&drv->hdac.driver);
|
return driver_register(&drv->driver);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(snd_hda_ext_driver_register);
|
EXPORT_SYMBOL_GPL(snd_hda_ext_driver_register);
|
||||||
|
|
||||||
@ -256,8 +254,8 @@ EXPORT_SYMBOL_GPL(snd_hda_ext_driver_register);
|
|||||||
*
|
*
|
||||||
* @drv: ext hda driver structure
|
* @drv: ext hda driver structure
|
||||||
*/
|
*/
|
||||||
void snd_hda_ext_driver_unregister(struct hdac_ext_driver *drv)
|
void snd_hda_ext_driver_unregister(struct hdac_driver *drv)
|
||||||
{
|
{
|
||||||
driver_unregister(&drv->hdac.driver);
|
driver_unregister(&drv->driver);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(snd_hda_ext_driver_unregister);
|
EXPORT_SYMBOL_GPL(snd_hda_ext_driver_unregister);
|
||||||
|
@ -2186,14 +2186,12 @@ static const struct hda_device_id hdmi_list[] = {
|
|||||||
|
|
||||||
MODULE_DEVICE_TABLE(hdaudio, hdmi_list);
|
MODULE_DEVICE_TABLE(hdaudio, hdmi_list);
|
||||||
|
|
||||||
static struct hdac_ext_driver hdmi_driver = {
|
static struct hdac_driver hdmi_driver = {
|
||||||
. hdac = {
|
.driver = {
|
||||||
.driver = {
|
.name = "HDMI HDA Codec",
|
||||||
.name = "HDMI HDA Codec",
|
.pm = &hdac_hdmi_pm,
|
||||||
.pm = &hdac_hdmi_pm,
|
|
||||||
},
|
|
||||||
.id_table = hdmi_list,
|
|
||||||
},
|
},
|
||||||
|
.id_table = hdmi_list,
|
||||||
.probe = hdac_hdmi_dev_probe,
|
.probe = hdac_hdmi_dev_probe,
|
||||||
.remove = hdac_hdmi_dev_remove,
|
.remove = hdac_hdmi_dev_remove,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user