[alsa-devel] [PATCH] snd-core: enlarge snd_card.components for up to 4 codecs

Takashi Iwai tiwai at suse.de
Tue Oct 7 10:10:43 CEST 2008


At Tue, 7 Oct 2008 14:56:06 +0800,
Wu Fengguang wrote:
> 
> Enlarge snd_card.components[80] to 128 bytes, with space for 4 codecs.
> The previous size 80 cannot support HP 2230s which has 3 codecs.
> 
> Signed-off-by: Wu Fengguang <wfg at linux.intel.com>

Thanks for the patch.  Unfortunately, this can't be applied as is.
struct snd_ctl_card_info is exported and used as the ioctl parameter,
thus you cannot change the size.

One possible fix is to merge reserved[48] into components[80]
so that the struct size is kept as is.
But still we have to be very careful to such a change, and need to
investigate all possible places to refer it.


Takashi

> ---
> 
> diff --git a/include/sound/asound.h b/include/sound/asound.h
> index ca2f358..b3801b0 100644
> --- a/include/sound/asound.h
> +++ b/include/sound/asound.h
> @@ -708,7 +708,7 @@ struct snd_ctl_card_info {
>  	unsigned char longname[80];	/* name + info text about soundcard */
>  	unsigned char reserved_[16];	/* reserved for future (was ID of mixer) */
>  	unsigned char mixername[80];	/* visual mixer identification */
> -	unsigned char components[80];	/* card components / fine identification, delimited with one space (AC97 etc..) */
> +	unsigned char components[128];	/* card components / fine identification, delimited with one space (AC97 etc..) */
>  	unsigned char reserved[48];	/* reserved for future */
>  };
>  
> diff --git a/include/sound/core.h b/include/sound/core.h
> index f52ab6f..dcbc424 100644
> --- a/include/sound/core.h
> +++ b/include/sound/core.h
> @@ -116,7 +116,7 @@ struct snd_card {
>  	char shortname[32];		/* short name of this soundcard */
>  	char longname[80];		/* name of this soundcard */
>  	char mixername[80];		/* mixer name */
> -	char components[80];		/* card components delimited with
> +	char components[128];		/* card components delimited with
>  								space */
>  	struct module *module;		/* top-level module */
>  
> 


More information about the Alsa-devel mailing list