asrc_priv 24 sound/soc/fsl/fsl_asrc.c dev_err(&asrc_priv->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__) asrc_priv 27 sound/soc/fsl/fsl_asrc.c dev_dbg(&asrc_priv->pdev->dev, "Pair %c: " fmt, 'A' + index, ##__VA_ARGS__) asrc_priv 121 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 122 sound/soc/fsl/fsl_asrc.c struct device *dev = &asrc_priv->pdev->dev; asrc_priv 126 sound/soc/fsl/fsl_asrc.c spin_lock_irqsave(&asrc_priv->lock, lock_flags); asrc_priv 129 sound/soc/fsl/fsl_asrc.c if (asrc_priv->pair[i] != NULL) asrc_priv 141 sound/soc/fsl/fsl_asrc.c } else if (asrc_priv->channel_avail < channels) { asrc_priv 145 sound/soc/fsl/fsl_asrc.c asrc_priv->channel_avail -= channels; asrc_priv 146 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index] = pair; asrc_priv 151 sound/soc/fsl/fsl_asrc.c spin_unlock_irqrestore(&asrc_priv->lock, lock_flags); asrc_priv 163 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 168 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 171 sound/soc/fsl/fsl_asrc.c spin_lock_irqsave(&asrc_priv->lock, lock_flags); asrc_priv 173 sound/soc/fsl/fsl_asrc.c asrc_priv->channel_avail += pair->channels; asrc_priv 174 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index] = NULL; asrc_priv 177 sound/soc/fsl/fsl_asrc.c spin_unlock_irqrestore(&asrc_priv->lock, lock_flags); asrc_priv 185 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 188 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRMCR(index), asrc_priv 221 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 250 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRIDRL(index), ratio); asrc_priv 251 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRIDRH(index), ratio >> 24); asrc_priv 266 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 327 sound/soc/fsl/fsl_asrc.c clk = asrc_priv->asrck_clk[clk_index[ideal ? OUT : IN]]; asrc_priv 336 sound/soc/fsl/fsl_asrc.c clk = asrc_priv->asrck_clk[clk_index[OUT]]; asrc_priv 353 sound/soc/fsl/fsl_asrc.c if (asrc_priv->channel_bits < 4) asrc_priv 357 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCNCR, asrc_priv 358 sound/soc/fsl/fsl_asrc.c ASRCNCR_ANCi_MASK(index, asrc_priv->channel_bits), asrc_priv 359 sound/soc/fsl/fsl_asrc.c ASRCNCR_ANCi(index, channels, asrc_priv->channel_bits)); asrc_priv 362 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 364 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 368 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCSR, asrc_priv 378 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCDR(index), asrc_priv 384 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRMCR1(index), asrc_priv 390 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRMCR(index), asrc_priv 402 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 406 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 413 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCFG, asrc_priv 428 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 433 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 439 sound/soc/fsl/fsl_asrc.c regmap_read(asrc_priv->regmap, REG_ASRCFG, ®); asrc_priv 444 sound/soc/fsl/fsl_asrc.c regmap_read(asrc_priv->regmap, REG_ASRCNCR, ®); asrc_priv 446 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRDI(index), 0); asrc_priv 449 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRIER, ASRIER_AOLIE); asrc_priv 457 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 461 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 470 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 476 sound/soc/fsl/fsl_asrc.c return dma_request_slave_channel(&asrc_priv->pdev->dev, name); asrc_priv 483 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = snd_soc_dai_get_drvdata(dai); asrc_priv 486 sound/soc/fsl/fsl_asrc.c if (asrc_priv->channel_bits == 3) asrc_priv 499 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = snd_soc_dai_get_drvdata(dai); asrc_priv 521 sound/soc/fsl/fsl_asrc.c if (asrc_priv->asrc_width == 16) asrc_priv 535 sound/soc/fsl/fsl_asrc.c config.output_sample_rate = asrc_priv->asrc_rate; asrc_priv 539 sound/soc/fsl/fsl_asrc.c config.input_sample_rate = asrc_priv->asrc_rate; asrc_priv 597 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = snd_soc_dai_get_drvdata(dai); asrc_priv 599 sound/soc/fsl/fsl_asrc.c snd_soc_dai_init_dma_data(dai, &asrc_priv->dma_params_tx, asrc_priv 600 sound/soc/fsl/fsl_asrc.c &asrc_priv->dma_params_rx); asrc_priv 778 sound/soc/fsl/fsl_asrc.c static int fsl_asrc_init(struct fsl_asrc *asrc_priv) asrc_priv 781 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRCTR, ASRCTR_ASRCEN); asrc_priv 784 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRIER, 0x0); asrc_priv 787 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRPM1, 0x7fffff); asrc_priv 788 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRPM2, 0x255555); asrc_priv 789 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRPM3, 0xff7280); asrc_priv 790 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRPM4, 0xff7280); asrc_priv 791 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRPM5, 0xff7280); asrc_priv 794 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRTFR1, asrc_priv 798 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASR76K, 0x06D6); asrc_priv 801 sound/soc/fsl/fsl_asrc.c return regmap_write(asrc_priv->regmap, REG_ASR56K, 0x0947); asrc_priv 809 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = (struct fsl_asrc *)dev_id; asrc_priv 810 sound/soc/fsl/fsl_asrc.c struct device *dev = &asrc_priv->pdev->dev; asrc_priv 814 sound/soc/fsl/fsl_asrc.c regmap_read(asrc_priv->regmap, REG_ASRSTR, &status); asrc_priv 817 sound/soc/fsl/fsl_asrc.c regmap_write(asrc_priv->regmap, REG_ASRSTR, ASRSTR_AOLE); asrc_priv 825 sound/soc/fsl/fsl_asrc.c if (!asrc_priv->pair[index]) asrc_priv 829 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index]->error |= ASRC_TASK_Q_OVERLOAD; asrc_priv 834 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index]->error |= ASRC_OUTPUT_TASK_OVERLOAD; asrc_priv 839 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index]->error |= ASRC_INPUT_TASK_OVERLOAD; asrc_priv 844 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index]->error |= ASRC_OUTPUT_BUFFER_OVERFLOW; asrc_priv 849 sound/soc/fsl/fsl_asrc.c asrc_priv->pair[index]->error |= ASRC_INPUT_BUFFER_UNDERRUN; asrc_priv 860 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv; asrc_priv 866 sound/soc/fsl/fsl_asrc.c asrc_priv = devm_kzalloc(&pdev->dev, sizeof(*asrc_priv), GFP_KERNEL); asrc_priv 867 sound/soc/fsl/fsl_asrc.c if (!asrc_priv) asrc_priv 870 sound/soc/fsl/fsl_asrc.c asrc_priv->pdev = pdev; asrc_priv 878 sound/soc/fsl/fsl_asrc.c asrc_priv->paddr = res->start; asrc_priv 880 sound/soc/fsl/fsl_asrc.c asrc_priv->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "mem", regs, asrc_priv 882 sound/soc/fsl/fsl_asrc.c if (IS_ERR(asrc_priv->regmap)) { asrc_priv 884 sound/soc/fsl/fsl_asrc.c return PTR_ERR(asrc_priv->regmap); asrc_priv 892 sound/soc/fsl/fsl_asrc.c dev_name(&pdev->dev), asrc_priv); asrc_priv 898 sound/soc/fsl/fsl_asrc.c asrc_priv->mem_clk = devm_clk_get(&pdev->dev, "mem"); asrc_priv 899 sound/soc/fsl/fsl_asrc.c if (IS_ERR(asrc_priv->mem_clk)) { asrc_priv 901 sound/soc/fsl/fsl_asrc.c return PTR_ERR(asrc_priv->mem_clk); asrc_priv 904 sound/soc/fsl/fsl_asrc.c asrc_priv->ipg_clk = devm_clk_get(&pdev->dev, "ipg"); asrc_priv 905 sound/soc/fsl/fsl_asrc.c if (IS_ERR(asrc_priv->ipg_clk)) { asrc_priv 907 sound/soc/fsl/fsl_asrc.c return PTR_ERR(asrc_priv->ipg_clk); asrc_priv 910 sound/soc/fsl/fsl_asrc.c asrc_priv->spba_clk = devm_clk_get(&pdev->dev, "spba"); asrc_priv 911 sound/soc/fsl/fsl_asrc.c if (IS_ERR(asrc_priv->spba_clk)) asrc_priv 916 sound/soc/fsl/fsl_asrc.c asrc_priv->asrck_clk[i] = devm_clk_get(&pdev->dev, tmp); asrc_priv 917 sound/soc/fsl/fsl_asrc.c if (IS_ERR(asrc_priv->asrck_clk[i])) { asrc_priv 919 sound/soc/fsl/fsl_asrc.c return PTR_ERR(asrc_priv->asrck_clk[i]); asrc_priv 924 sound/soc/fsl/fsl_asrc.c asrc_priv->channel_bits = 3; asrc_priv 928 sound/soc/fsl/fsl_asrc.c asrc_priv->channel_bits = 4; asrc_priv 933 sound/soc/fsl/fsl_asrc.c ret = fsl_asrc_init(asrc_priv); asrc_priv 939 sound/soc/fsl/fsl_asrc.c asrc_priv->channel_avail = 10; asrc_priv 942 sound/soc/fsl/fsl_asrc.c &asrc_priv->asrc_rate); asrc_priv 949 sound/soc/fsl/fsl_asrc.c &asrc_priv->asrc_width); asrc_priv 955 sound/soc/fsl/fsl_asrc.c if (asrc_priv->asrc_width != 16 && asrc_priv->asrc_width != 24) { asrc_priv 957 sound/soc/fsl/fsl_asrc.c asrc_priv->asrc_width = 24; asrc_priv 960 sound/soc/fsl/fsl_asrc.c platform_set_drvdata(pdev, asrc_priv); asrc_priv 962 sound/soc/fsl/fsl_asrc.c spin_lock_init(&asrc_priv->lock); asrc_priv 977 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); asrc_priv 980 sound/soc/fsl/fsl_asrc.c ret = clk_prepare_enable(asrc_priv->mem_clk); asrc_priv 983 sound/soc/fsl/fsl_asrc.c ret = clk_prepare_enable(asrc_priv->ipg_clk); asrc_priv 986 sound/soc/fsl/fsl_asrc.c if (!IS_ERR(asrc_priv->spba_clk)) { asrc_priv 987 sound/soc/fsl/fsl_asrc.c ret = clk_prepare_enable(asrc_priv->spba_clk); asrc_priv 992 sound/soc/fsl/fsl_asrc.c ret = clk_prepare_enable(asrc_priv->asrck_clk[i]); asrc_priv 1001 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->asrck_clk[i]); asrc_priv 1002 sound/soc/fsl/fsl_asrc.c if (!IS_ERR(asrc_priv->spba_clk)) asrc_priv 1003 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->spba_clk); asrc_priv 1005 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->ipg_clk); asrc_priv 1007 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->mem_clk); asrc_priv 1013 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); asrc_priv 1017 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->asrck_clk[i]); asrc_priv 1018 sound/soc/fsl/fsl_asrc.c if (!IS_ERR(asrc_priv->spba_clk)) asrc_priv 1019 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->spba_clk); asrc_priv 1020 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->ipg_clk); asrc_priv 1021 sound/soc/fsl/fsl_asrc.c clk_disable_unprepare(asrc_priv->mem_clk); asrc_priv 1030 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); asrc_priv 1032 sound/soc/fsl/fsl_asrc.c regmap_read(asrc_priv->regmap, REG_ASRCFG, asrc_priv 1033 sound/soc/fsl/fsl_asrc.c &asrc_priv->regcache_cfg); asrc_priv 1035 sound/soc/fsl/fsl_asrc.c regcache_cache_only(asrc_priv->regmap, true); asrc_priv 1036 sound/soc/fsl/fsl_asrc.c regcache_mark_dirty(asrc_priv->regmap); asrc_priv 1043 sound/soc/fsl/fsl_asrc.c struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); asrc_priv 1047 sound/soc/fsl/fsl_asrc.c regmap_read(asrc_priv->regmap, REG_ASRCTR, &asrctr); asrc_priv 1048 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 1052 sound/soc/fsl/fsl_asrc.c regcache_cache_only(asrc_priv->regmap, false); asrc_priv 1053 sound/soc/fsl/fsl_asrc.c regcache_sync(asrc_priv->regmap); asrc_priv 1055 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCFG, asrc_priv 1057 sound/soc/fsl/fsl_asrc.c ASRCFG_PREMODi_ALL_MASK, asrc_priv->regcache_cfg); asrc_priv 1060 sound/soc/fsl/fsl_asrc.c regmap_update_bits(asrc_priv->regmap, REG_ASRCTR, asrc_priv 405 sound/soc/fsl/fsl_asrc.h struct fsl_asrc *asrc_priv; asrc_priv 140 sound/soc/fsl/fsl_asrc_dma.c struct fsl_asrc *asrc_priv = pair->asrc_priv; asrc_priv 175 sound/soc/fsl/fsl_asrc_dma.c dma_params_fe->addr = asrc_priv->paddr + REG_ASRDx(!dir, index); asrc_priv 222 sound/soc/fsl/fsl_asrc_dma.c if (asrc_priv->asrc_width == 16) asrc_priv 234 sound/soc/fsl/fsl_asrc_dma.c config_be.src_addr = asrc_priv->paddr + REG_ASRDO(index); asrc_priv 237 sound/soc/fsl/fsl_asrc_dma.c config_be.dst_addr = asrc_priv->paddr + REG_ASRDI(index); asrc_priv 277 sound/soc/fsl/fsl_asrc_dma.c struct fsl_asrc *asrc_priv = dev_get_drvdata(dev); asrc_priv 284 sound/soc/fsl/fsl_asrc_dma.c pair->asrc_priv = asrc_priv; asrc_priv 299 sound/soc/fsl/fsl_asrc_dma.c struct fsl_asrc *asrc_priv; asrc_priv 304 sound/soc/fsl/fsl_asrc_dma.c asrc_priv = pair->asrc_priv; asrc_priv 306 sound/soc/fsl/fsl_asrc_dma.c if (asrc_priv->pair[pair->index] == pair) asrc_priv 307 sound/soc/fsl/fsl_asrc_dma.c asrc_priv->pair[pair->index] = NULL;