Lines Matching refs:codec
145 * @res_ex: codec addr and flags (upper 32bit or RIRB entry)
175 struct hdac_device *codec;
188 codec = bus->caddr_tbl[caddr & 0x0f];
189 if (!codec || !codec->dev.driver)
192 drv = drv_to_hdac_driver(codec->dev.driver);
194 drv->unsol_event(codec, res);
201 * snd_hdac_bus_add_device - Add a codec to bus
203 * @codec: HDA core device to add
205 * Adds the given codec to the list in the bus. The caddr_tbl array
209 int snd_hdac_bus_add_device(struct hdac_bus *bus, struct hdac_device *codec)
211 if (bus->caddr_tbl[codec->addr]) {
213 codec->addr);
217 list_add_tail(&codec->list, &bus->codec_list);
218 bus->caddr_tbl[codec->addr] = codec;
219 set_bit(codec->addr, &bus->codec_powered);
225 * snd_hdac_bus_remove_device - Remove a codec from bus
227 * @codec: HDA core device to remove
230 struct hdac_device *codec)
232 WARN_ON(bus != codec->bus);
233 if (list_empty(&codec->list))
235 list_del_init(&codec->list);
236 bus->caddr_tbl[codec->addr] = NULL;
237 clear_bit(codec->addr, &bus->codec_powered);