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()
59 rec->sw_ready += (int)frames_to_bytes(runtime, diff); in snd_pcm_indirect_playback_transfer()
60 rec->appl_ptr = appl_ptr; in snd_pcm_indirect_playback_transfer()
62 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size; in snd_pcm_indirect_playback_transfer()
63 while (rec->hw_ready < qsize && rec->sw_ready > 0) { in snd_pcm_indirect_playback_transfer()
64 unsigned int hw_to_end = rec->hw_buffer_size - rec->hw_data; in snd_pcm_indirect_playback_transfer()
65 unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data; in snd_pcm_indirect_playback_transfer()
66 unsigned int bytes = qsize - rec->hw_ready; in snd_pcm_indirect_playback_transfer()
67 if (rec->sw_ready < (int)bytes) in snd_pcm_indirect_playback_transfer()
68 bytes = rec->sw_ready; in snd_pcm_indirect_playback_transfer()
75 copy(substream, rec, bytes); in snd_pcm_indirect_playback_transfer()
76 rec->hw_data += bytes; in snd_pcm_indirect_playback_transfer()
77 if (rec->hw_data == rec->hw_buffer_size) in snd_pcm_indirect_playback_transfer()
78 rec->hw_data = 0; in snd_pcm_indirect_playback_transfer()
79 rec->sw_data += bytes; in snd_pcm_indirect_playback_transfer()
80 if (rec->sw_data == rec->sw_buffer_size) in snd_pcm_indirect_playback_transfer()
81 rec->sw_data = 0; in snd_pcm_indirect_playback_transfer()
82 rec->hw_ready += bytes; in snd_pcm_indirect_playback_transfer()
83 rec->sw_ready -= bytes; in snd_pcm_indirect_playback_transfer()
93 struct snd_pcm_indirect *rec, unsigned int ptr) in snd_pcm_indirect_playback_pointer() argument
95 int bytes = ptr - rec->hw_io; in snd_pcm_indirect_playback_pointer()
97 bytes += rec->hw_buffer_size; in snd_pcm_indirect_playback_pointer()
98 rec->hw_io = ptr; in snd_pcm_indirect_playback_pointer()
99 rec->hw_ready -= bytes; in snd_pcm_indirect_playback_pointer()
100 rec->sw_io += bytes; in snd_pcm_indirect_playback_pointer()
101 if (rec->sw_io >= rec->sw_buffer_size) in snd_pcm_indirect_playback_pointer()
102 rec->sw_io -= rec->sw_buffer_size; in snd_pcm_indirect_playback_pointer()
105 return bytes_to_frames(substream->runtime, rec->sw_io); in snd_pcm_indirect_playback_pointer()
114 struct snd_pcm_indirect *rec, in snd_pcm_indirect_capture_transfer() argument
119 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; in snd_pcm_indirect_capture_transfer()
124 rec->sw_ready -= frames_to_bytes(runtime, diff); in snd_pcm_indirect_capture_transfer()
125 rec->appl_ptr = appl_ptr; in snd_pcm_indirect_capture_transfer()
127 while (rec->hw_ready > 0 && in snd_pcm_indirect_capture_transfer()
128 rec->sw_ready < (int)rec->sw_buffer_size) { in snd_pcm_indirect_capture_transfer()
129 size_t hw_to_end = rec->hw_buffer_size - rec->hw_data; in snd_pcm_indirect_capture_transfer()
130 size_t sw_to_end = rec->sw_buffer_size - rec->sw_data; in snd_pcm_indirect_capture_transfer()
131 size_t bytes = rec->sw_buffer_size - rec->sw_ready; in snd_pcm_indirect_capture_transfer()
132 if (rec->hw_ready < (int)bytes) in snd_pcm_indirect_capture_transfer()
133 bytes = rec->hw_ready; in snd_pcm_indirect_capture_transfer()
140 copy(substream, rec, bytes); in snd_pcm_indirect_capture_transfer()
141 rec->hw_data += bytes; in snd_pcm_indirect_capture_transfer()
142 if ((int)rec->hw_data == rec->hw_buffer_size) in snd_pcm_indirect_capture_transfer()
143 rec->hw_data = 0; in snd_pcm_indirect_capture_transfer()
144 rec->sw_data += bytes; in snd_pcm_indirect_capture_transfer()
145 if (rec->sw_data == rec->sw_buffer_size) in snd_pcm_indirect_capture_transfer()
146 rec->sw_data = 0; in snd_pcm_indirect_capture_transfer()
147 rec->hw_ready -= bytes; in snd_pcm_indirect_capture_transfer()
148 rec->sw_ready += bytes; in snd_pcm_indirect_capture_transfer()
158 struct snd_pcm_indirect *rec, unsigned int ptr) in snd_pcm_indirect_capture_pointer() argument
161 int bytes = ptr - rec->hw_io; in snd_pcm_indirect_capture_pointer()
163 bytes += rec->hw_buffer_size; in snd_pcm_indirect_capture_pointer()
164 rec->hw_io = ptr; in snd_pcm_indirect_capture_pointer()
165 rec->hw_ready += bytes; in snd_pcm_indirect_capture_pointer()
166 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size; in snd_pcm_indirect_capture_pointer()
167 if (rec->hw_ready > qsize) in snd_pcm_indirect_capture_pointer()
169 rec->sw_io += bytes; in snd_pcm_indirect_capture_pointer()
170 if (rec->sw_io >= rec->sw_buffer_size) in snd_pcm_indirect_capture_pointer()
171 rec->sw_io -= rec->sw_buffer_size; in snd_pcm_indirect_capture_pointer()
174 return bytes_to_frames(substream->runtime, rec->sw_io); in snd_pcm_indirect_capture_pointer()