int s3c_i2sv2_probe(struct snd_soc_dai *dai, struct s3c_i2sv2_info *i2s, unsigned long base) { struct device *dev = dai->dev; unsigned int iismod; i2s->dev = dev; /* record our i2s structure for later use in the callbacks */ snd_soc_dai_set_drvdata(dai, i2s); i2s->iis_pclk = clk_get(dev, "iis"); if (IS_ERR(i2s->iis_pclk)) { dev_err(dev, "failed to get iis_clock\n"); iounmap(i2s->regs); return -ENOENT; } clk_enable(i2s->iis_pclk); /* Mark ourselves as in TXRX mode so we can run through our cleanup * process without warnings. */ iismod = readl(i2s->regs + S3C2412_IISMOD); iismod |= S3C2412_IISMOD_MODE_TXRX; writel(iismod, i2s->regs + S3C2412_IISMOD); s3c2412_snd_txctrl(i2s, 0); s3c2412_snd_rxctrl(i2s, 0); return 0; }
static int s3c64xx_i2s_probe(struct snd_soc_dai *dai) { struct s3c_i2sv2_info *i2s; int ret; if (dai->id >= MAX_I2SV3) { dev_err(dai->dev, "id %d out of range\n", dai->id); return -EINVAL; } i2s = &s3c64xx_i2s[dai->id]; snd_soc_dai_set_drvdata(dai, i2s); i2s->iis_cclk = clk_get(dai->dev, "audio-bus"); if (IS_ERR(i2s->iis_cclk)) { dev_err(dai->dev, "failed to get audio-bus\n"); ret = PTR_ERR(i2s->iis_cclk); goto err; } clk_enable(i2s->iis_cclk); ret = s3c_i2sv2_probe(dai, i2s, i2s->base); if (ret) goto err_clk; return 0; err_clk: clk_disable(i2s->iis_cclk); clk_put(i2s->iis_cclk); err: kfree(i2s); return ret; }
static int mmp_sspa_probe(struct snd_soc_dai *dai) { struct sspa_priv *priv = dev_get_drvdata(dai->dev); snd_soc_dai_set_drvdata(dai, priv); return 0; }
static int mxs_saif_dai_probe(struct snd_soc_dai *dai) { struct mxs_saif *saif = dev_get_drvdata(dai->dev); snd_soc_dai_set_drvdata(dai, saif); return 0; }
static int bf5xx_ad1836_startup(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->cpu_dai; snd_soc_dai_set_drvdata(cpu_dai, sport_handle); return 0; }
static int mcbsp_dai_probe(struct snd_soc_dai *dai) { mcbsp_data[dai->id].bus_id = dai->id; spin_lock_init(&mcbsp_data[dai->id].tx_retry_spinlock); init_timer(&mcbsp_data[dai->id].tx_retry_timer); snd_soc_dai_set_drvdata(dai, &mcbsp_data[dai->id].bus_id); return 0; }
static int bf5xx_ad73311_startup(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->cpu_dai; pr_debug("%s enter\n", __func__); snd_soc_dai_set_drvdata(cpu_dai, sport_handle); return 0; }
static int zx_spdif_dai_probe(struct snd_soc_dai *dai) { struct zx_spdif_info *zx_spdif = dev_get_drvdata(dai->dev); snd_soc_dai_set_drvdata(dai, zx_spdif); zx_spdif->dma_data.addr = zx_spdif->mapbase + ZX_DATA; zx_spdif->dma_data.maxburst = 8; snd_soc_dai_init_dma_data(dai, &zx_spdif->dma_data, NULL); return 0; }
static int s3c64xx_i2sv4_probe(struct snd_soc_dai *dai) { struct s3c_i2sv2_info *i2s = &s3c64xx_i2sv4; int ret = 0; snd_soc_dai_set_drvdata(dai, i2s); ret = s3c_i2sv2_probe(dai, i2s, i2s->base); return ret; }
static int zx_tdm_dai_probe(struct snd_soc_dai *dai) { struct zx_tdm_info *zx_tdm = dev_get_drvdata(dai->dev); snd_soc_dai_set_drvdata(dai, zx_tdm); zx_tdm->dma_playback.addr = zx_tdm->phy_addr + REG_DATABUF; zx_tdm->dma_playback.maxburst = 16; zx_tdm->dma_capture.addr = zx_tdm->phy_addr + REG_DATABUF; zx_tdm->dma_capture.maxburst = 16; snd_soc_dai_init_dma_data(dai, &zx_tdm->dma_playback, &zx_tdm->dma_capture); return 0; }
static int atmel_ssc_probe(struct snd_soc_dai *dai) { struct atmel_ssc_info *ssc_p = &ssc_info[dai->id]; int ret = 0; snd_soc_dai_set_drvdata(dai, ssc_p); /* * Request SSC device */ ssc_p->ssc = ssc_request(dai->id); if (IS_ERR(ssc_p->ssc)) { printk(KERN_ERR "ASoC: Failed to request SSC %d\n", dai->id); ret = PTR_ERR(ssc_p->ssc); } return ret; }
static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai) { struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev); regmap_update_bits(sai->regmap, FSL_SAI_TCSR, 0xffffffff, 0x0); regmap_update_bits(sai->regmap, FSL_SAI_RCSR, 0xffffffff, 0x0); regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK, FSL_SAI_MAXBURST_TX * 2); regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK, FSL_SAI_MAXBURST_RX - 1); snd_soc_dai_init_dma_data(cpu_dai, &sai->dma_params_tx, &sai->dma_params_rx); snd_soc_dai_set_drvdata(cpu_dai, sai); return 0; }
static int mcbsp_dai_probe(struct snd_soc_dai *dai) { mcbsp_data[dai->id].bus_id = dai->id; snd_soc_dai_set_drvdata(dai, &mcbsp_data[dai->id].bus_id); return 0; }