Commit 3787a398 authored by Rakesh Ughreja's avatar Rakesh Ughreja Committed by Takashi Iwai

ALSA: hdac: Remove usage of struct hdac_ext_device and use hdac_device instead

This patch removes the hdac_ext_device structure. The legacy and
enhanced HDaudio capabilities can be handled in a backward-compatible
way without separate definitions.

Follow-up patches in this series handle the bus and driver definitions.
Signed-off-by: default avatarRakesh Ughreja <rakesh.a.ughreja@intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ce397d21
...@@ -181,48 +181,20 @@ struct hda_dai_map { ...@@ -181,48 +181,20 @@ struct hda_dai_map {
u32 maxbps; u32 maxbps;
}; };
#define HDA_MAX_NIDS 16
/**
* struct hdac_ext_device - HDAC Ext device
*
* @hdac: hdac core device
* @nid_list - the dai map which matches the dai-name with the nid
* @map_cur_idx - the idx in use in dai_map
* @ops - the hda codec ops common to all codec drivers
* @pvt_data - private data, for asoc contains asoc codec object
*/
struct hdac_ext_device {
struct hdac_device hdev;
struct hdac_ext_bus *ebus;
/* soc-dai to nid map */
struct hda_dai_map nid_list[HDA_MAX_NIDS];
unsigned int map_cur_idx;
/* codec ops */
struct hdac_ext_codec_ops ops;
struct snd_card *card;
void *scodec;
void *private_data;
};
struct hdac_ext_dma_params { struct hdac_ext_dma_params {
u32 format; u32 format;
u8 stream_tag; u8 stream_tag;
}; };
#define to_ehdac_device(dev) (container_of((dev), \
struct hdac_ext_device, hdev))
/* /*
* HD-audio codec base driver * HD-audio codec base driver
*/ */
struct hdac_ext_driver { struct hdac_ext_driver {
struct hdac_driver hdac; struct hdac_driver hdac;
int (*probe)(struct hdac_ext_device *dev); int (*probe)(struct hdac_device *dev);
int (*remove)(struct hdac_ext_device *dev); int (*remove)(struct hdac_device *dev);
void (*shutdown)(struct hdac_ext_device *dev); void (*shutdown)(struct hdac_device *dev);
}; };
int snd_hda_ext_driver_register(struct hdac_ext_driver *drv); int snd_hda_ext_driver_register(struct hdac_ext_driver *drv);
......
...@@ -137,17 +137,16 @@ static void default_release(struct device *dev) ...@@ -137,17 +137,16 @@ static void default_release(struct device *dev)
*/ */
int snd_hdac_ext_bus_device_init(struct hdac_ext_bus *ebus, int addr) int snd_hdac_ext_bus_device_init(struct hdac_ext_bus *ebus, int addr)
{ {
struct hdac_ext_device *edev;
struct hdac_device *hdev = NULL; struct hdac_device *hdev = NULL;
struct hdac_bus *bus = ebus_to_hbus(ebus); struct hdac_bus *bus = ebus_to_hbus(ebus);
char name[15]; char name[15];
int ret; int ret;
edev = kzalloc(sizeof(*edev), GFP_KERNEL); hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
if (!edev) if (!hdev)
return -ENOMEM; return -ENOMEM;
hdev = &edev->hdev;
edev->ebus = ebus; hdev->bus = bus;
snprintf(name, sizeof(name), "ehdaudio%dD%d", ebus->idx, addr); snprintf(name, sizeof(name), "ehdaudio%dD%d", ebus->idx, addr);
...@@ -176,10 +175,8 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_device_init); ...@@ -176,10 +175,8 @@ EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_device_init);
*/ */
void snd_hdac_ext_bus_device_exit(struct hdac_device *hdev) void snd_hdac_ext_bus_device_exit(struct hdac_device *hdev)
{ {
struct hdac_ext_device *edev = to_ehdac_device(hdev);
snd_hdac_device_exit(hdev); snd_hdac_device_exit(hdev);
kfree(edev); kfree(hdev);
} }
EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_device_exit); EXPORT_SYMBOL_GPL(snd_hdac_ext_bus_device_exit);
...@@ -212,27 +209,25 @@ static inline struct hdac_ext_driver *get_edrv(struct device *dev) ...@@ -212,27 +209,25 @@ static inline struct hdac_ext_driver *get_edrv(struct device *dev)
return edrv; return edrv;
} }
static inline struct hdac_ext_device *get_edev(struct device *dev) static inline struct hdac_device *get_hdev(struct device *dev)
{ {
struct hdac_device *hdev = dev_to_hdac_dev(dev); struct hdac_device *hdev = dev_to_hdac_dev(dev);
struct hdac_ext_device *edev = to_ehdac_device(hdev); return hdev;
return edev;
} }
static int hda_ext_drv_probe(struct device *dev) static int hda_ext_drv_probe(struct device *dev)
{ {
return (get_edrv(dev))->probe(get_edev(dev)); return (get_edrv(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_edev(dev)); return (get_edrv(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_edev(dev)); return (get_edrv(dev))->shutdown(get_hdev(dev));
} }
/** /**
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment