Symbol: qmc_dai
sound/soc/fsl/fsl_qmc_audio.c
122
ret = qmc_chan_write_submit(prtd->qmc_dai->qmc_chans[i],
sound/soc/fsl/fsl_qmc_audio.c
128
dev_err(prtd->qmc_dai->dev, "write_submit %u failed %d\n",
sound/soc/fsl/fsl_qmc_audio.c
162
ret = qmc_chan_read_submit(prtd->qmc_dai->qmc_chans[i],
sound/soc/fsl/fsl_qmc_audio.c
168
dev_err(prtd->qmc_dai->dev, "read_submit %u failed %d\n",
sound/soc/fsl/fsl_qmc_audio.c
182
dev_err(prtd->qmc_dai->dev, "read complete length = %zu, exp %zu\n",
sound/soc/fsl/fsl_qmc_audio.c
205
if (!prtd->qmc_dai) {
sound/soc/fsl/fsl_qmc_audio.c
354
static struct qmc_dai *qmc_dai_get_data(struct snd_soc_dai *dai)
sound/soc/fsl/fsl_qmc_audio.c
36
struct qmc_dai *dais;
sound/soc/fsl/fsl_qmc_audio.c
370
static int qmc_dai_hw_rule_channels_by_format(struct qmc_dai *qmc_dai,
sound/soc/fsl/fsl_qmc_audio.c
392
dev_err(qmc_dai->dev, "format physical width %u not supported\n",
sound/soc/fsl/fsl_qmc_audio.c
405
struct qmc_dai *qmc_dai = rule->private;
sound/soc/fsl/fsl_qmc_audio.c
407
return qmc_dai_hw_rule_channels_by_format(qmc_dai, params, qmc_dai->nb_tx_ts);
sound/soc/fsl/fsl_qmc_audio.c
41
struct qmc_dai *qmc_dai;
sound/soc/fsl/fsl_qmc_audio.c
413
struct qmc_dai *qmc_dai = rule->private;
sound/soc/fsl/fsl_qmc_audio.c
415
return qmc_dai_hw_rule_channels_by_format(qmc_dai, params, qmc_dai->nb_rx_ts);
sound/soc/fsl/fsl_qmc_audio.c
418
static int qmc_dai_hw_rule_format_by_channels(struct qmc_dai *qmc_dai,
sound/soc/fsl/fsl_qmc_audio.c
429
dev_err(qmc_dai->dev, "channels %u not supported\n",
sound/soc/fsl/fsl_qmc_audio.c
450
struct qmc_dai *qmc_dai = rule->private;
sound/soc/fsl/fsl_qmc_audio.c
452
return qmc_dai_hw_rule_format_by_channels(qmc_dai, params, qmc_dai->nb_tx_ts);
sound/soc/fsl/fsl_qmc_audio.c
458
struct qmc_dai *qmc_dai = rule->private;
sound/soc/fsl/fsl_qmc_audio.c
460
return qmc_dai_hw_rule_format_by_channels(qmc_dai, params, qmc_dai->nb_rx_ts);
sound/soc/fsl/fsl_qmc_audio.c
464
struct qmc_dai *qmc_dai)
sound/soc/fsl/fsl_qmc_audio.c
475
frame_bits = qmc_dai->nb_rx_ts * 8;
sound/soc/fsl/fsl_qmc_audio.c
479
frame_bits = qmc_dai->nb_tx_ts * 8;
sound/soc/fsl/fsl_qmc_audio.c
483
hw_rule_channels_by_format, qmc_dai,
sound/soc/fsl/fsl_qmc_audio.c
486
dev_err(qmc_dai->dev, "Failed to add channels rule (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
491
hw_rule_format_by_channels, qmc_dai,
sound/soc/fsl/fsl_qmc_audio.c
494
dev_err(qmc_dai->dev, "Failed to add format rule (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
502
dev_err(qmc_dai->dev, "Failed to add frame_bits constraint (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
511
dev_err(qmc_dai->dev, "Failed to add hw_param_access constraint (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
519
struct qmc_dai *qmc_dai)
sound/soc/fsl/fsl_qmc_audio.c
526
qmc_dai->nb_rx_ts * 8 : qmc_dai->nb_tx_ts * 8;
sound/soc/fsl/fsl_qmc_audio.c
531
dev_err(qmc_dai->dev, "Failed to add frame_bits constraint (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
540
dev_err(qmc_dai->dev, "Failed to add hw_param_access constraint (%d)\n", ret);
sound/soc/fsl/fsl_qmc_audio.c
551
struct qmc_dai *qmc_dai;
sound/soc/fsl/fsl_qmc_audio.c
553
qmc_dai = qmc_dai_get_data(dai);
sound/soc/fsl/fsl_qmc_audio.c
554
if (!qmc_dai) {
sound/soc/fsl/fsl_qmc_audio.c
559
prtd->qmc_dai = qmc_dai;
sound/soc/fsl/fsl_qmc_audio.c
561
return qmc_dai->nb_chans_avail > 1 ?
sound/soc/fsl/fsl_qmc_audio.c
562
qmc_dai_constraints_noninterleaved(substream, qmc_dai) :
sound/soc/fsl/fsl_qmc_audio.c
563
qmc_dai_constraints_interleaved(substream, qmc_dai);
sound/soc/fsl/fsl_qmc_audio.c
572
struct qmc_dai *qmc_dai;
sound/soc/fsl/fsl_qmc_audio.c
576
qmc_dai = qmc_dai_get_data(dai);
sound/soc/fsl/fsl_qmc_audio.c
577
if (!qmc_dai) {
sound/soc/fsl/fsl_qmc_audio.c
590
if (nb_chans_used > qmc_dai->nb_chans_avail) {
sound/soc/fsl/fsl_qmc_audio.c
592
nb_chans_used, qmc_dai->nb_chans_avail);
sound/soc/fsl/fsl_qmc_audio.c
600
ret = qmc_chan_set_param(qmc_dai->qmc_chans[i], &chan_param);
sound/soc/fsl/fsl_qmc_audio.c
607
qmc_dai->nb_chans_used_rx = nb_chans_used;
sound/soc/fsl/fsl_qmc_audio.c
609
qmc_dai->nb_chans_used_tx = nb_chans_used;
sound/soc/fsl/fsl_qmc_audio.c
619
struct qmc_dai *qmc_dai;
sound/soc/fsl/fsl_qmc_audio.c
625
qmc_dai = qmc_dai_get_data(dai);
sound/soc/fsl/fsl_qmc_audio.c
626
if (!qmc_dai) {
sound/soc/fsl/fsl_qmc_audio.c
633
nb_chans_used = qmc_dai->nb_chans_used_tx;
sound/soc/fsl/fsl_qmc_audio.c
636
nb_chans_used = qmc_dai->nb_chans_used_rx;
sound/soc/fsl/fsl_qmc_audio.c
644
ret = qmc_chan_start(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
653
ret_tmp = qmc_chan_stop(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
659
ret_tmp = qmc_chan_reset(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
671
ret_tmp = qmc_chan_stop(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
687
qmc_chan_stop(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
688
qmc_chan_reset(qmc_dai->qmc_chans[i], direction);
sound/soc/fsl/fsl_qmc_audio.c
744
struct qmc_dai *qmc_dai,
sound/soc/fsl/fsl_qmc_audio.c
762
qmc_dai->dev = qmc_audio->dev;
sound/soc/fsl/fsl_qmc_audio.c
769
qmc_dai->id = val;
sound/soc/fsl/fsl_qmc_audio.c
771
qmc_dai->name = devm_kasprintf(qmc_audio->dev, GFP_KERNEL, "%s.%d",
sound/soc/fsl/fsl_qmc_audio.c
772
np->parent->name, qmc_dai->id);
sound/soc/fsl/fsl_qmc_audio.c
773
if (!qmc_dai->name)
sound/soc/fsl/fsl_qmc_audio.c
779
"dai %d get number of QMC channel failed\n", qmc_dai->id);
sound/soc/fsl/fsl_qmc_audio.c
782
"dai %d no QMC channel defined\n", qmc_dai->id);
sound/soc/fsl/fsl_qmc_audio.c
784
qmc_dai->qmc_chans = devm_kcalloc(qmc_audio->dev, count, sizeof(*qmc_dai->qmc_chans),
sound/soc/fsl/fsl_qmc_audio.c
786
if (!qmc_dai->qmc_chans)
sound/soc/fsl/fsl_qmc_audio.c
790
qmc_dai->qmc_chans[i] = devm_qmc_chan_get_byphandles_index(qmc_audio->dev, np,
sound/soc/fsl/fsl_qmc_audio.c
792
if (IS_ERR(qmc_dai->qmc_chans[i])) {
sound/soc/fsl/fsl_qmc_audio.c
793
return dev_err_probe(qmc_audio->dev, PTR_ERR(qmc_dai->qmc_chans[i]),
sound/soc/fsl/fsl_qmc_audio.c
794
"dai %d get QMC channel %d failed\n", qmc_dai->id, i);
sound/soc/fsl/fsl_qmc_audio.c
797
ret = qmc_chan_get_info(qmc_dai->qmc_chans[i], &info);
sound/soc/fsl/fsl_qmc_audio.c
800
qmc_dai->id, i, ret);
sound/soc/fsl/fsl_qmc_audio.c
806
qmc_dai->id, i, info.mode);
sound/soc/fsl/fsl_qmc_audio.c
822
qmc_dai->id, i, info.nb_tx_ts, nb_tx_ts);
sound/soc/fsl/fsl_qmc_audio.c
827
qmc_dai->id, i, info.nb_rx_ts, nb_rx_ts);
sound/soc/fsl/fsl_qmc_audio.c
832
qmc_dai->id, i, info.tx_fs_rate, tx_fs_rate);
sound/soc/fsl/fsl_qmc_audio.c
837
qmc_dai->id, i, info.rx_fs_rate, rx_fs_rate);
sound/soc/fsl/fsl_qmc_audio.c
842
ret = qmc_chan_get_ts_info(qmc_dai->qmc_chans[i], &ts_info);
sound/soc/fsl/fsl_qmc_audio.c
845
qmc_dai->id, i, ret);
sound/soc/fsl/fsl_qmc_audio.c
854
qmc_dai->id, i, prev_last_rx_ts, last_rx_ts);
sound/soc/fsl/fsl_qmc_audio.c
859
qmc_dai->id, i, prev_last_tx_ts, last_tx_ts);
sound/soc/fsl/fsl_qmc_audio.c
867
qmc_dai->nb_chans_avail = count;
sound/soc/fsl/fsl_qmc_audio.c
868
qmc_dai->nb_tx_ts = nb_tx_ts * count;
sound/soc/fsl/fsl_qmc_audio.c
869
qmc_dai->nb_rx_ts = nb_rx_ts * count;
sound/soc/fsl/fsl_qmc_audio.c
871
qmc_soc_dai_driver->id = qmc_dai->id;
sound/soc/fsl/fsl_qmc_audio.c
872
qmc_soc_dai_driver->name = qmc_dai->name;