Lines Matching refs:ctx
72 static inline unsigned long RD(struct au1xpsc_audio_data *ctx, int reg) in RD() argument
74 return __raw_readl(ctx->mmio + reg); in RD()
77 static inline void WR(struct au1xpsc_audio_data *ctx, int reg, unsigned long v) in WR() argument
79 __raw_writel(v, ctx->mmio + reg); in WR()
86 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_read() local
93 mutex_lock(&ctx->lock); in au1xac97c_ac97_read()
96 while ((RD(ctx, AC97_STATUS) & STAT_CP) && --tmo) in au1xac97c_ac97_read()
103 WR(ctx, AC97_CMDRESP, CMD_IDX(r) | CMD_READ); in au1xac97c_ac97_read()
109 while ((RD(ctx, AC97_STATUS) & STAT_CP) && --tmo) in au1xac97c_ac97_read()
111 data = RD(ctx, AC97_CMDRESP); in au1xac97c_ac97_read()
117 mutex_unlock(&ctx->lock); in au1xac97c_ac97_read()
128 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_write() local
133 mutex_lock(&ctx->lock); in au1xac97c_ac97_write()
135 for (tmo = 5; (RD(ctx, AC97_STATUS) & STAT_CP) && tmo; tmo--) in au1xac97c_ac97_write()
142 WR(ctx, AC97_CMDRESP, CMD_WRITE | CMD_IDX(r) | CMD_SET_DATA(v)); in au1xac97c_ac97_write()
144 for (tmo = 10; (RD(ctx, AC97_STATUS) & STAT_CP) && tmo; tmo--) in au1xac97c_ac97_write()
149 mutex_unlock(&ctx->lock); in au1xac97c_ac97_write()
157 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_warm_reset() local
159 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_SG | CFG_SN); in au1xac97c_ac97_warm_reset()
161 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_SG); in au1xac97c_ac97_warm_reset()
162 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_ac97_warm_reset()
167 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_cold_reset() local
170 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_RS); in au1xac97c_ac97_cold_reset()
172 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_ac97_cold_reset()
176 while (((RD(ctx, AC97_STATUS) & STAT_RD) == 0) && --i) in au1xac97c_ac97_cold_reset()
193 struct au1xpsc_audio_data *ctx = snd_soc_dai_get_drvdata(dai); in alchemy_ac97c_startup() local
194 snd_soc_dai_set_dma_data(dai, substream, &ctx->dmaids[0]); in alchemy_ac97c_startup()
234 struct au1xpsc_audio_data *ctx; in au1xac97c_drvprobe() local
236 ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); in au1xac97c_drvprobe()
237 if (!ctx) in au1xac97c_drvprobe()
240 mutex_init(&ctx->lock); in au1xac97c_drvprobe()
251 ctx->mmio = devm_ioremap(&pdev->dev, iores->start, in au1xac97c_drvprobe()
253 if (!ctx->mmio) in au1xac97c_drvprobe()
259 ctx->dmaids[SNDRV_PCM_STREAM_PLAYBACK] = dmares->start; in au1xac97c_drvprobe()
264 ctx->dmaids[SNDRV_PCM_STREAM_CAPTURE] = dmares->start; in au1xac97c_drvprobe()
267 WR(ctx, AC97_ENABLE, EN_D | EN_CE); in au1xac97c_drvprobe()
268 WR(ctx, AC97_ENABLE, EN_CE); in au1xac97c_drvprobe()
270 ctx->cfg = CFG_RC(3) | CFG_XS(3); in au1xac97c_drvprobe()
271 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_drvprobe()
273 platform_set_drvdata(pdev, ctx); in au1xac97c_drvprobe()
284 ac97c_workdata = ctx; in au1xac97c_drvprobe()
290 struct au1xpsc_audio_data *ctx = platform_get_drvdata(pdev); in au1xac97c_drvremove() local
294 WR(ctx, AC97_ENABLE, EN_D); /* clock off, disable */ in au1xac97c_drvremove()
304 struct au1xpsc_audio_data *ctx = dev_get_drvdata(dev); in au1xac97c_drvsuspend() local
306 WR(ctx, AC97_ENABLE, EN_D); /* clock off, disable */ in au1xac97c_drvsuspend()
313 struct au1xpsc_audio_data *ctx = dev_get_drvdata(dev); in au1xac97c_drvresume() local
315 WR(ctx, AC97_ENABLE, EN_D | EN_CE); in au1xac97c_drvresume()
316 WR(ctx, AC97_ENABLE, EN_CE); in au1xac97c_drvresume()
317 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_drvresume()