diff options
| -rw-r--r-- | sound/firewire/amdtp.c | 14 | ||||
| -rw-r--r-- | sound/firewire/amdtp.h | 13 |
2 files changed, 15 insertions, 12 deletions
diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c index 3284ee9c1eca..c2685fbd7366 100644 --- a/sound/firewire/amdtp.c +++ b/sound/firewire/amdtp.c | |||
| @@ -532,6 +532,20 @@ err_unlock: | |||
| 532 | EXPORT_SYMBOL(amdtp_out_stream_start); | 532 | EXPORT_SYMBOL(amdtp_out_stream_start); |
| 533 | 533 | ||
| 534 | /** | 534 | /** |
| 535 | * amdtp_out_stream_pcm_pointer - get the PCM buffer position | ||
| 536 | * @s: the AMDTP output stream that transports the PCM data | ||
| 537 | * | ||
| 538 | * Returns the current buffer position, in frames. | ||
| 539 | */ | ||
| 540 | unsigned long amdtp_out_stream_pcm_pointer(struct amdtp_out_stream *s) | ||
| 541 | { | ||
| 542 | fw_iso_context_flush_completions(s->context); | ||
| 543 | |||
| 544 | return ACCESS_ONCE(s->pcm_buffer_pointer); | ||
| 545 | } | ||
| 546 | EXPORT_SYMBOL(amdtp_out_stream_pcm_pointer); | ||
| 547 | |||
| 548 | /** | ||
| 535 | * amdtp_out_stream_update - update the stream after a bus reset | 549 | * amdtp_out_stream_update - update the stream after a bus reset |
| 536 | * @s: the AMDTP output stream | 550 | * @s: the AMDTP output stream |
| 537 | */ | 551 | */ |
diff --git a/sound/firewire/amdtp.h b/sound/firewire/amdtp.h index 4987f826f9f3..3f13ff63c5d2 100644 --- a/sound/firewire/amdtp.h +++ b/sound/firewire/amdtp.h | |||
| @@ -84,6 +84,7 @@ void amdtp_out_stream_stop(struct amdtp_out_stream *s); | |||
| 84 | void amdtp_out_stream_set_pcm_format(struct amdtp_out_stream *s, | 84 | void amdtp_out_stream_set_pcm_format(struct amdtp_out_stream *s, |
| 85 | snd_pcm_format_t format); | 85 | snd_pcm_format_t format); |
| 86 | void amdtp_out_stream_pcm_prepare(struct amdtp_out_stream *s); | 86 | void amdtp_out_stream_pcm_prepare(struct amdtp_out_stream *s); |
| 87 | unsigned long amdtp_out_stream_pcm_pointer(struct amdtp_out_stream *s); | ||
| 87 | void amdtp_out_stream_pcm_abort(struct amdtp_out_stream *s); | 88 | void amdtp_out_stream_pcm_abort(struct amdtp_out_stream *s); |
| 88 | 89 | ||
| 89 | /** | 90 | /** |
| @@ -140,18 +141,6 @@ static inline void amdtp_out_stream_pcm_trigger(struct amdtp_out_stream *s, | |||
| 140 | ACCESS_ONCE(s->pcm) = pcm; | 141 | ACCESS_ONCE(s->pcm) = pcm; |
| 141 | } | 142 | } |
| 142 | 143 | ||
| 143 | /** | ||
| 144 | * amdtp_out_stream_pcm_pointer - get the PCM buffer position | ||
| 145 | * @s: the AMDTP output stream that transports the PCM data | ||
| 146 | * | ||
| 147 | * Returns the current buffer position, in frames. | ||
| 148 | */ | ||
| 149 | static inline unsigned long | ||
| 150 | amdtp_out_stream_pcm_pointer(struct amdtp_out_stream *s) | ||
| 151 | { | ||
| 152 | return ACCESS_ONCE(s->pcm_buffer_pointer); | ||
| 153 | } | ||
| 154 | |||
| 155 | static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc) | 144 | static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc) |
| 156 | { | 145 | { |
| 157 | return sfc & 1; | 146 | return sfc & 1; |
