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