Lines Matching refs:port_info
94 static void siu_dai_start(struct siu_port *port_info) in siu_dai_start() argument
99 dev_dbg(port_info->pcm->card->dev, "%s\n", __func__); in siu_dai_start()
107 port_info->stfifo = 0; in siu_dai_start()
108 port_info->trdat = 0; in siu_dai_start()
133 siu_write32(base + SIU_SBDVCA, port_info->playback.volume); in siu_dai_start()
134 siu_write32(base + SIU_SBDVCB, port_info->capture.volume); in siu_dai_start()
137 static void siu_dai_stop(struct siu_port *port_info) in siu_dai_stop() argument
146 static void siu_dai_spbAselect(struct siu_port *port_info) in siu_dai_spbAselect() argument
167 port_info->stfifo |= fw->spbpar[idx].stfifo; in siu_dai_spbAselect()
168 port_info->trdat |= fw->spbpar[idx].trdat; in siu_dai_spbAselect()
171 static void siu_dai_spbBselect(struct siu_port *port_info) in siu_dai_spbBselect() argument
187 port_info->stfifo |= fw->spbpar[idx].stfifo; in siu_dai_spbBselect()
188 port_info->trdat |= fw->spbpar[idx].trdat; in siu_dai_spbBselect()
242 static int siu_dai_spbstart(struct siu_port *port_info) in siu_dai_spbstart() argument
283 siu_write32(base + SIU_TRDAT, port_info->trdat); in siu_dai_spbstart()
284 port_info->trdat = 0x0; in siu_dai_spbstart()
307 static void siu_dai_spbstop(struct siu_port *port_info) in siu_dai_spbstop() argument
316 port_info->stfifo = 0; in siu_dai_spbstop()
340 struct siu_port *port_info = snd_kcontrol_chip(kctrl); in siu_dai_info_volume() local
342 dev_dbg(port_info->pcm->card->dev, "%s\n", __func__); in siu_dai_info_volume()
355 struct siu_port *port_info = snd_kcontrol_chip(kctrl); in siu_dai_get_volume() local
356 struct device *dev = port_info->pcm->card->dev; in siu_dai_get_volume()
364 vol = port_info->playback.volume; in siu_dai_get_volume()
370 vol = port_info->capture.volume; in siu_dai_get_volume()
386 struct siu_port *port_info = snd_kcontrol_chip(kctrl); in siu_dai_put_volume() local
387 struct device *dev = port_info->pcm->card->dev; in siu_dai_put_volume()
408 cur_vol = port_info->playback.volume; in siu_dai_put_volume()
410 port_info->playback.volume = new_vol; in siu_dai_put_volume()
414 cur_vol = port_info->capture.volume; in siu_dai_put_volume()
416 port_info->capture.volume = new_vol; in siu_dai_put_volume()
450 int siu_init_port(int port, struct siu_port **port_info, struct snd_card *card) in siu_init_port() argument
456 *port_info = kzalloc(sizeof(**port_info), GFP_KERNEL); in siu_init_port()
457 if (!*port_info) in siu_init_port()
460 dev_dbg(dev, "%s: port #%d@%p\n", __func__, port, *port_info); in siu_init_port()
462 (*port_info)->playback.volume = DFLT_VOLUME_LEVEL; in siu_init_port()
463 (*port_info)->capture.volume = DFLT_VOLUME_LEVEL; in siu_init_port()
471 kctrl = snd_ctl_new1(&playback_controls, *port_info); in siu_init_port()
478 kctrl = snd_ctl_new1(&capture_controls, *port_info); in siu_init_port()
488 void siu_free_port(struct siu_port *port_info) in siu_free_port() argument
490 kfree(port_info); in siu_free_port()
498 struct siu_port *port_info = siu_port_info(substream); in siu_dai_startup() local
502 info->port_id, port_info); in siu_dai_startup()
510 siu_dai_start(port_info); in siu_dai_startup()
519 struct siu_port *port_info = siu_port_info(substream); in siu_dai_shutdown() local
522 info->port_id, port_info); in siu_dai_shutdown()
525 port_info->play_cap &= ~PLAYBACK_ENABLED; in siu_dai_shutdown()
527 port_info->play_cap &= ~CAPTURE_ENABLED; in siu_dai_shutdown()
530 if (!port_info->play_cap) { in siu_dai_shutdown()
532 if (WARN_ON(port_info->playback.rw_flg || port_info->capture.rw_flg)) in siu_dai_shutdown()
534 siu_dai_spbstop(port_info); in siu_dai_shutdown()
535 siu_dai_stop(port_info); in siu_dai_shutdown()
545 struct siu_port *port_info = siu_port_info(substream); in siu_dai_prepare() local
551 __func__, info->port_id, port_info->play_cap, rt->channels); in siu_dai_prepare()
555 siu_stream = &port_info->playback; in siu_dai_prepare()
558 siu_stream = &port_info->capture; in siu_dai_prepare()
562 if (!port_info->play_cap) { in siu_dai_prepare()
565 siu_dai_spbAselect(port_info); in siu_dai_prepare()
566 siu_dai_spbBselect(port_info); in siu_dai_prepare()
572 ret = siu_dai_spbstart(port_info); in siu_dai_prepare()
579 port_info->play_cap |= self; in siu_dai_prepare()