Lines Matching refs:rec
41 struct snd_pcm_indirect *rec, size_t bytes);
48 struct snd_pcm_indirect *rec, in snd_pcm_indirect_playback_transfer() argument
53 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; in snd_pcm_indirect_playback_transfer()
61 rec->sw_ready += (int)frames_to_bytes(runtime, diff); in snd_pcm_indirect_playback_transfer()
62 rec->appl_ptr = appl_ptr; in snd_pcm_indirect_playback_transfer()
64 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size; in snd_pcm_indirect_playback_transfer()
65 while (rec->hw_ready < qsize && rec->sw_ready > 0) { in snd_pcm_indirect_playback_transfer()
66 unsigned int hw_to_end = rec->hw_buffer_size - rec->hw_data; in snd_pcm_indirect_playback_transfer()
67 unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data; in snd_pcm_indirect_playback_transfer()
68 unsigned int bytes = qsize - rec->hw_ready; in snd_pcm_indirect_playback_transfer()
69 if (rec->sw_ready < (int)bytes) in snd_pcm_indirect_playback_transfer()
70 bytes = rec->sw_ready; in snd_pcm_indirect_playback_transfer()
77 copy(substream, rec, bytes); in snd_pcm_indirect_playback_transfer()
78 rec->hw_data += bytes; in snd_pcm_indirect_playback_transfer()
79 if (rec->hw_data == rec->hw_buffer_size) in snd_pcm_indirect_playback_transfer()
80 rec->hw_data = 0; in snd_pcm_indirect_playback_transfer()
81 rec->sw_data += bytes; in snd_pcm_indirect_playback_transfer()
82 if (rec->sw_data == rec->sw_buffer_size) in snd_pcm_indirect_playback_transfer()
83 rec->sw_data = 0; in snd_pcm_indirect_playback_transfer()
84 rec->hw_ready += bytes; in snd_pcm_indirect_playback_transfer()
85 rec->sw_ready -= bytes; in snd_pcm_indirect_playback_transfer()
96 struct snd_pcm_indirect *rec, unsigned int ptr) in snd_pcm_indirect_playback_pointer() argument
98 int bytes = ptr - rec->hw_io; in snd_pcm_indirect_playback_pointer()
100 bytes += rec->hw_buffer_size; in snd_pcm_indirect_playback_pointer()
101 rec->hw_io = ptr; in snd_pcm_indirect_playback_pointer()
102 rec->hw_ready -= bytes; in snd_pcm_indirect_playback_pointer()
103 rec->sw_io += bytes; in snd_pcm_indirect_playback_pointer()
104 if (rec->sw_io >= rec->sw_buffer_size) in snd_pcm_indirect_playback_pointer()
105 rec->sw_io -= rec->sw_buffer_size; in snd_pcm_indirect_playback_pointer()
108 return bytes_to_frames(substream->runtime, rec->sw_io); in snd_pcm_indirect_playback_pointer()
117 struct snd_pcm_indirect *rec, in snd_pcm_indirect_capture_transfer() argument
122 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; in snd_pcm_indirect_capture_transfer()
129 rec->sw_ready -= frames_to_bytes(runtime, diff); in snd_pcm_indirect_capture_transfer()
130 rec->appl_ptr = appl_ptr; in snd_pcm_indirect_capture_transfer()
132 while (rec->hw_ready > 0 && in snd_pcm_indirect_capture_transfer()
133 rec->sw_ready < (int)rec->sw_buffer_size) { in snd_pcm_indirect_capture_transfer()
134 size_t hw_to_end = rec->hw_buffer_size - rec->hw_data; in snd_pcm_indirect_capture_transfer()
135 size_t sw_to_end = rec->sw_buffer_size - rec->sw_data; in snd_pcm_indirect_capture_transfer()
136 size_t bytes = rec->sw_buffer_size - rec->sw_ready; in snd_pcm_indirect_capture_transfer()
137 if (rec->hw_ready < (int)bytes) in snd_pcm_indirect_capture_transfer()
138 bytes = rec->hw_ready; in snd_pcm_indirect_capture_transfer()
145 copy(substream, rec, bytes); in snd_pcm_indirect_capture_transfer()
146 rec->hw_data += bytes; in snd_pcm_indirect_capture_transfer()
147 if ((int)rec->hw_data == rec->hw_buffer_size) in snd_pcm_indirect_capture_transfer()
148 rec->hw_data = 0; in snd_pcm_indirect_capture_transfer()
149 rec->sw_data += bytes; in snd_pcm_indirect_capture_transfer()
150 if (rec->sw_data == rec->sw_buffer_size) in snd_pcm_indirect_capture_transfer()
151 rec->sw_data = 0; in snd_pcm_indirect_capture_transfer()
152 rec->hw_ready -= bytes; in snd_pcm_indirect_capture_transfer()
153 rec->sw_ready += bytes; in snd_pcm_indirect_capture_transfer()
164 struct snd_pcm_indirect *rec, unsigned int ptr) in snd_pcm_indirect_capture_pointer() argument
167 int bytes = ptr - rec->hw_io; in snd_pcm_indirect_capture_pointer()
169 bytes += rec->hw_buffer_size; in snd_pcm_indirect_capture_pointer()
170 rec->hw_io = ptr; in snd_pcm_indirect_capture_pointer()
171 rec->hw_ready += bytes; in snd_pcm_indirect_capture_pointer()
172 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size; in snd_pcm_indirect_capture_pointer()
173 if (rec->hw_ready > qsize) in snd_pcm_indirect_capture_pointer()
175 rec->sw_io += bytes; in snd_pcm_indirect_capture_pointer()
176 if (rec->sw_io >= rec->sw_buffer_size) in snd_pcm_indirect_capture_pointer()
177 rec->sw_io -= rec->sw_buffer_size; in snd_pcm_indirect_capture_pointer()
180 return bytes_to_frames(substream->runtime, rec->sw_io); in snd_pcm_indirect_capture_pointer()