diff mbox

ALSA: Remove transfer_ack_{begin, end} callbacks from struct snd_pcm_runtime

Message ID 1445512316-25478-1-git-send-email-lars@metafoo.de (mailing list archive)
State New, archived
Headers show

Commit Message

Lars-Peter Clausen Oct. 22, 2015, 11:11 a.m. UTC
While there is nothing wrong with the transfer_ack_begin and
transfer_ack_end callbacks per-se, the last documented user was part of the
alsa-driver 0.5.12a package, which was released 14 years ago and even
predates the upstream integration of the ALSA core and has subsequently
been superseded by newer alsa-driver releases.

This seems to indicate that there is no need for having these callbacks and
they are just cruft that can be removed.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 Documentation/DocBook/writing-an-alsa-driver.tmpl | 19 ++-----------------
 include/sound/pcm.h                               |  4 ----
 sound/core/pcm_lib.c                              |  5 -----
 3 files changed, 2 insertions(+), 26 deletions(-)

Comments

Takashi Iwai Oct. 22, 2015, 3:17 p.m. UTC | #1
On Thu, 22 Oct 2015 13:11:56 +0200,
Lars-Peter Clausen wrote:
> 
> While there is nothing wrong with the transfer_ack_begin and
> transfer_ack_end callbacks per-se, the last documented user was part of the
> alsa-driver 0.5.12a package, which was released 14 years ago and even
> predates the upstream integration of the ALSA core and has subsequently
> been superseded by newer alsa-driver releases.
> 
> This seems to indicate that there is no need for having these callbacks and
> they are just cruft that can be removed.
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>

Applied, thanks.  Let's cross fingers.


Takashi

> ---
>  Documentation/DocBook/writing-an-alsa-driver.tmpl | 19 ++-----------------
>  include/sound/pcm.h                               |  4 ----
>  sound/core/pcm_lib.c                              |  5 -----
>  3 files changed, 2 insertions(+), 26 deletions(-)
> 
> diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl
> index 84ef6a9..a27ab9f5 100644
> --- a/Documentation/DocBook/writing-an-alsa-driver.tmpl
> +++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl
> @@ -2181,10 +2181,6 @@ struct _snd_pcm_runtime {
>  	struct snd_pcm_hardware hw;
>  	struct snd_pcm_hw_constraints hw_constraints;
>  
> -	/* -- interrupt callbacks -- */
> -	void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
> -	void (*transfer_ack_end)(struct snd_pcm_substream *substream);
> -
>  	/* -- timer -- */
>  	unsigned int timer_resolution;	/* timer resolution */
>  
> @@ -2209,9 +2205,8 @@ struct _snd_pcm_runtime {
>  	  For the operators (callbacks) of each sound driver, most of
>  	these records are supposed to be read-only.  Only the PCM
>  	middle-layer changes / updates them.  The exceptions are
> -	the hardware description (hw), interrupt callbacks
> -	(transfer_ack_xxx), DMA buffer information, and the private
> -	data.  Besides, if you use the standard buffer allocation
> +	the hardware description (hw) DMA buffer information and the
> +	private data.  Besides, if you use the standard buffer allocation
>  	method via <function>snd_pcm_lib_malloc_pages()</function>,
>  	you don't need to set the DMA buffer information by yourself.
>  	</para>
> @@ -2538,16 +2533,6 @@ struct _snd_pcm_runtime {
>          </para>
>  	</section>
>  
> -	<section id="pcm-interface-runtime-intr">
> -	<title>Interrupt Callbacks</title>
> -	<para>
> -	The field <structfield>transfer_ack_begin</structfield> and
> -	<structfield>transfer_ack_end</structfield> are called at
> -	the beginning and at the end of
> -	<function>snd_pcm_period_elapsed()</function>, respectively. 
> -	</para>
> -	</section>
> -
>      </section>
>  
>      <section id="pcm-interface-operators">
> diff --git a/include/sound/pcm.h b/include/sound/pcm.h
> index 2882ddd..3e0ffd2 100644
> --- a/include/sound/pcm.h
> +++ b/include/sound/pcm.h
> @@ -402,10 +402,6 @@ struct snd_pcm_runtime {
>  	struct snd_pcm_hardware hw;
>  	struct snd_pcm_hw_constraints hw_constraints;
>  
> -	/* -- interrupt callbacks -- */
> -	void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
> -	void (*transfer_ack_end)(struct snd_pcm_substream *substream);
> -
>  	/* -- timer -- */
>  	unsigned int timer_resolution;	/* timer resolution */
>  	int tstamp_type;		/* timestamp type */
> diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
> index 6dc4277..05a3ca9 100644
> --- a/sound/core/pcm_lib.c
> +++ b/sound/core/pcm_lib.c
> @@ -1875,9 +1875,6 @@ void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)
>  		return;
>  	runtime = substream->runtime;
>  
> -	if (runtime->transfer_ack_begin)
> -		runtime->transfer_ack_begin(substream);
> -
>  	snd_pcm_stream_lock_irqsave(substream, flags);
>  	if (!snd_pcm_running(substream) ||
>  	    snd_pcm_update_hw_ptr0(substream, 1) < 0)
> @@ -1889,8 +1886,6 @@ void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)
>  #endif
>   _end:
>  	snd_pcm_stream_unlock_irqrestore(substream, flags);
> -	if (runtime->transfer_ack_end)
> -		runtime->transfer_ack_end(substream);
>  	kill_fasync(&runtime->fasync, SIGIO, POLL_IN);
>  }
>  
> -- 
> 2.1.4
> 
>
diff mbox

Patch

diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl
index 84ef6a9..a27ab9f5 100644
--- a/Documentation/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl
@@ -2181,10 +2181,6 @@  struct _snd_pcm_runtime {
 	struct snd_pcm_hardware hw;
 	struct snd_pcm_hw_constraints hw_constraints;
 
-	/* -- interrupt callbacks -- */
-	void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
-	void (*transfer_ack_end)(struct snd_pcm_substream *substream);
-
 	/* -- timer -- */
 	unsigned int timer_resolution;	/* timer resolution */
 
@@ -2209,9 +2205,8 @@  struct _snd_pcm_runtime {
 	  For the operators (callbacks) of each sound driver, most of
 	these records are supposed to be read-only.  Only the PCM
 	middle-layer changes / updates them.  The exceptions are
-	the hardware description (hw), interrupt callbacks
-	(transfer_ack_xxx), DMA buffer information, and the private
-	data.  Besides, if you use the standard buffer allocation
+	the hardware description (hw) DMA buffer information and the
+	private data.  Besides, if you use the standard buffer allocation
 	method via <function>snd_pcm_lib_malloc_pages()</function>,
 	you don't need to set the DMA buffer information by yourself.
 	</para>
@@ -2538,16 +2533,6 @@  struct _snd_pcm_runtime {
         </para>
 	</section>
 
-	<section id="pcm-interface-runtime-intr">
-	<title>Interrupt Callbacks</title>
-	<para>
-	The field <structfield>transfer_ack_begin</structfield> and
-	<structfield>transfer_ack_end</structfield> are called at
-	the beginning and at the end of
-	<function>snd_pcm_period_elapsed()</function>, respectively. 
-	</para>
-	</section>
-
     </section>
 
     <section id="pcm-interface-operators">
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 2882ddd..3e0ffd2 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -402,10 +402,6 @@  struct snd_pcm_runtime {
 	struct snd_pcm_hardware hw;
 	struct snd_pcm_hw_constraints hw_constraints;
 
-	/* -- interrupt callbacks -- */
-	void (*transfer_ack_begin)(struct snd_pcm_substream *substream);
-	void (*transfer_ack_end)(struct snd_pcm_substream *substream);
-
 	/* -- timer -- */
 	unsigned int timer_resolution;	/* timer resolution */
 	int tstamp_type;		/* timestamp type */
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 6dc4277..05a3ca9 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -1875,9 +1875,6 @@  void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)
 		return;
 	runtime = substream->runtime;
 
-	if (runtime->transfer_ack_begin)
-		runtime->transfer_ack_begin(substream);
-
 	snd_pcm_stream_lock_irqsave(substream, flags);
 	if (!snd_pcm_running(substream) ||
 	    snd_pcm_update_hw_ptr0(substream, 1) < 0)
@@ -1889,8 +1886,6 @@  void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)
 #endif
  _end:
 	snd_pcm_stream_unlock_irqrestore(substream, flags);
-	if (runtime->transfer_ack_end)
-		runtime->transfer_ack_end(substream);
 	kill_fasync(&runtime->fasync, SIGIO, POLL_IN);
 }