Lines Matching refs:ctx
71 static inline unsigned long RD(struct au1xpsc_audio_data *ctx, int reg) in RD() argument
73 return __raw_readl(ctx->mmio + reg); in RD()
76 static inline void WR(struct au1xpsc_audio_data *ctx, int reg, unsigned long v) in WR() argument
78 __raw_writel(v, ctx->mmio + reg); in WR()
85 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_read() local
92 mutex_lock(&ctx->lock); in au1xac97c_ac97_read()
95 while ((RD(ctx, AC97_STATUS) & STAT_CP) && tmo--) in au1xac97c_ac97_read()
102 WR(ctx, AC97_CMDRESP, CMD_IDX(r) | CMD_READ); in au1xac97c_ac97_read()
108 while ((RD(ctx, AC97_STATUS) & STAT_CP) && tmo--) in au1xac97c_ac97_read()
110 data = RD(ctx, AC97_CMDRESP); in au1xac97c_ac97_read()
116 mutex_unlock(&ctx->lock); in au1xac97c_ac97_read()
127 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_write() local
132 mutex_lock(&ctx->lock); in au1xac97c_ac97_write()
134 for (tmo = 5; (RD(ctx, AC97_STATUS) & STAT_CP) && tmo; tmo--) in au1xac97c_ac97_write()
141 WR(ctx, AC97_CMDRESP, CMD_WRITE | CMD_IDX(r) | CMD_SET_DATA(v)); in au1xac97c_ac97_write()
143 for (tmo = 10; (RD(ctx, AC97_STATUS) & STAT_CP) && tmo; tmo--) in au1xac97c_ac97_write()
148 mutex_unlock(&ctx->lock); in au1xac97c_ac97_write()
156 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_warm_reset() local
158 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_SG | CFG_SN); in au1xac97c_ac97_warm_reset()
160 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_SG); in au1xac97c_ac97_warm_reset()
161 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_ac97_warm_reset()
166 struct au1xpsc_audio_data *ctx = ac97_to_ctx(ac97); in au1xac97c_ac97_cold_reset() local
169 WR(ctx, AC97_CONFIG, ctx->cfg | CFG_RS); in au1xac97c_ac97_cold_reset()
171 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_ac97_cold_reset()
175 while (((RD(ctx, AC97_STATUS) & STAT_RD) == 0) && --i) in au1xac97c_ac97_cold_reset()
192 struct au1xpsc_audio_data *ctx = snd_soc_dai_get_drvdata(dai); in alchemy_ac97c_startup() local
193 snd_soc_dai_set_dma_data(dai, substream, &ctx->dmaids[0]); in alchemy_ac97c_startup()
233 struct au1xpsc_audio_data *ctx; in au1xac97c_drvprobe() local
235 ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); in au1xac97c_drvprobe()
236 if (!ctx) in au1xac97c_drvprobe()
239 mutex_init(&ctx->lock); in au1xac97c_drvprobe()
250 ctx->mmio = devm_ioremap_nocache(&pdev->dev, iores->start, in au1xac97c_drvprobe()
252 if (!ctx->mmio) in au1xac97c_drvprobe()
258 ctx->dmaids[SNDRV_PCM_STREAM_PLAYBACK] = dmares->start; in au1xac97c_drvprobe()
263 ctx->dmaids[SNDRV_PCM_STREAM_CAPTURE] = dmares->start; in au1xac97c_drvprobe()
266 WR(ctx, AC97_ENABLE, EN_D | EN_CE); in au1xac97c_drvprobe()
267 WR(ctx, AC97_ENABLE, EN_CE); in au1xac97c_drvprobe()
269 ctx->cfg = CFG_RC(3) | CFG_XS(3); in au1xac97c_drvprobe()
270 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_drvprobe()
272 platform_set_drvdata(pdev, ctx); in au1xac97c_drvprobe()
283 ac97c_workdata = ctx; in au1xac97c_drvprobe()
289 struct au1xpsc_audio_data *ctx = platform_get_drvdata(pdev); in au1xac97c_drvremove() local
293 WR(ctx, AC97_ENABLE, EN_D); /* clock off, disable */ in au1xac97c_drvremove()
303 struct au1xpsc_audio_data *ctx = dev_get_drvdata(dev); in au1xac97c_drvsuspend() local
305 WR(ctx, AC97_ENABLE, EN_D); /* clock off, disable */ in au1xac97c_drvsuspend()
312 struct au1xpsc_audio_data *ctx = dev_get_drvdata(dev); in au1xac97c_drvresume() local
314 WR(ctx, AC97_ENABLE, EN_D | EN_CE); in au1xac97c_drvresume()
315 WR(ctx, AC97_ENABLE, EN_CE); in au1xac97c_drvresume()
316 WR(ctx, AC97_CONFIG, ctx->cfg); in au1xac97c_drvresume()