Lines Matching +full:codec +full:- +full:driver
1 // SPDX-License-Identifier: GPL-2.0-only
3 * hdac-ext-bus.c - HD-audio extended core bus functions.
5 * Copyright (C) 2014-2015 Intel Corp
21 * snd_hdac_ext_bus_init - initialize a HD-audio extended bus
25 * @ext_ops: operators used for ASoC HDA codec drivers
39 bus->ext_ops = ext_ops; in snd_hdac_ext_bus_init()
42 * buses, bus->idx should be greater than 0, but there needs to be a in snd_hdac_ext_bus_init()
45 bus->idx = 0; in snd_hdac_ext_bus_init()
46 bus->cmd_dma_state = true; in snd_hdac_ext_bus_init()
53 * snd_hdac_ext_bus_exit - clean up a HD-audio extended bus
59 WARN_ON(!list_empty(&bus->hlink_list)); in snd_hdac_ext_bus_exit()
64 * snd_hdac_ext_bus_device_remove - remove HD-audio extended codec base devices
70 struct hdac_device *codec, *__codec; in snd_hdac_ext_bus_device_remove() local
72 * we need to remove all the codec devices objects created in the in snd_hdac_ext_bus_device_remove()
75 list_for_each_entry_safe(codec, __codec, &bus->codec_list, list) { in snd_hdac_ext_bus_device_remove()
76 snd_hdac_device_unregister(codec); in snd_hdac_ext_bus_device_remove()
77 put_device(&codec->dev); in snd_hdac_ext_bus_device_remove()
86 struct hdac_driver *hdrv = drv_to_hdac_driver(dev->driver); in get_hdrv()
98 return (get_hdrv(dev))->probe(get_hdev(dev)); in hda_ext_drv_probe()
103 return (get_hdrv(dev))->remove(get_hdev(dev)); in hdac_ext_drv_remove()
108 return (get_hdrv(dev))->shutdown(get_hdev(dev)); in hdac_ext_drv_shutdown()
112 * snd_hda_ext_driver_register - register a driver for ext hda devices
114 * @drv: ext hda driver structure
118 drv->type = HDA_DEV_ASOC; in snd_hda_ext_driver_register()
119 drv->driver.bus = &snd_hda_bus_type; in snd_hda_ext_driver_register()
122 if (drv->probe) in snd_hda_ext_driver_register()
123 drv->driver.probe = hda_ext_drv_probe; in snd_hda_ext_driver_register()
124 if (drv->remove) in snd_hda_ext_driver_register()
125 drv->driver.remove = hdac_ext_drv_remove; in snd_hda_ext_driver_register()
126 if (drv->shutdown) in snd_hda_ext_driver_register()
127 drv->driver.shutdown = hdac_ext_drv_shutdown; in snd_hda_ext_driver_register()
129 return driver_register(&drv->driver); in snd_hda_ext_driver_register()
134 * snd_hda_ext_driver_unregister - unregister a driver for ext hda devices
136 * @drv: ext hda driver structure
140 driver_unregister(&drv->driver); in snd_hda_ext_driver_unregister()