[PATCH] ALSA: pcm: use bit field on snd_pcm

Takashi Iwai tiwai at suse.de
Fri Dec 25 09:02:53 CET 2020


On Fri, 25 Dec 2020 01:21:43 +0100,
Kuninori Morimoto wrote:
> 
> 
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> 
> snd_pcm's internal, nonatomic, no_device_suspend are defined as bool.
> But we can reduce struct size if we use bit field for these.
> This patch converts these.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>

Practically seen, this doesn't reduce the struct size at all, as bool
is usually a byte type.  And, a byte access is even better from the
performance and concurrency POV.

So, unless there is any better reason, I don't think it worth to
switch to bit fields.


thanks,

Takashi

> ---
>  include/sound/pcm.h | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/include/sound/pcm.h b/include/sound/pcm.h
> index 2336bf9243e1..e836741d2708 100644
> --- a/include/sound/pcm.h
> +++ b/include/sound/pcm.h
> @@ -520,12 +520,13 @@ struct snd_pcm {
>  	wait_queue_head_t open_wait;
>  	void *private_data;
>  	void (*private_free) (struct snd_pcm *pcm);
> -	bool internal; /* pcm is for internal use only */
> -	bool nonatomic; /* whole PCM operations are in non-atomic context */
> -	bool no_device_suspend; /* don't invoke device PM suspend */
>  #if IS_ENABLED(CONFIG_SND_PCM_OSS)
>  	struct snd_pcm_oss oss;
>  #endif
> +	/* bit field */
> +	unsigned int internal:1; /* pcm is for internal use only */
> +	unsigned int nonatomic:1; /* whole PCM operations are in non-atomic context */
> +	unsigned int no_device_suspend:1; /* don't invoke device PM suspend */
>  };
>  
>  /*
> -- 
> 2.25.1
> 


More information about the Alsa-devel mailing list