Lines Matching refs:iprtd
46 struct imx_pcm_runtime_data *iprtd =
48 struct snd_pcm_substream *substream = iprtd->substream;
51 if (!atomic_read(&iprtd->playing) && !atomic_read(&iprtd->capturing))
57 iprtd->offset = regs.ARM_r8 & 0xffff;
59 iprtd->offset = regs.ARM_r9 & 0xffff;
63 hrtimer_forward_now(hrt, ns_to_ktime(iprtd->poll_time_ns));
77 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
79 iprtd->periods = params_periods(params);
80 iprtd->period = params_period_bytes(params);
81 iprtd->offset = 0;
82 iprtd->poll_time_ns = 1000000000 / params_rate(params) *
93 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
98 regs.ARM_r8 = (iprtd->period * iprtd->periods - 1) << 16;
100 regs.ARM_r9 = (iprtd->period * iprtd->periods - 1) << 16;
113 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
120 atomic_set(&iprtd->playing, 1);
122 atomic_set(&iprtd->capturing, 1);
123 hrtimer_start(&iprtd->hrt, ns_to_ktime(iprtd->poll_time_ns),
132 atomic_set(&iprtd->playing, 0);
134 atomic_set(&iprtd->capturing, 0);
135 if (!atomic_read(&iprtd->playing) &&
136 !atomic_read(&iprtd->capturing))
152 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
154 return bytes_to_frames(substream->runtime, iprtd->offset);
177 struct imx_pcm_runtime_data *iprtd;
180 iprtd = kzalloc(sizeof(*iprtd), GFP_KERNEL);
181 if (iprtd == NULL)
183 runtime->private_data = iprtd;
185 iprtd->substream = substream;
187 atomic_set(&iprtd->playing, 0);
188 atomic_set(&iprtd->capturing, 0);
189 hrtimer_init(&iprtd->hrt, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
190 iprtd->hrt.function = snd_hrtimer_callback;
195 kfree(iprtd);
207 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
209 hrtimer_cancel(&iprtd->hrt);
211 kfree(iprtd);