[alsa-devel] [PATCH v4 2/6] core: add support for compressed devices
Takashi Iwai
tiwai at suse.de
Thu Dec 22 08:34:09 CET 2011
At Tue, 13 Dec 2011 14:32:56 +0530,
Vinod Koul wrote:
>
> From: Omair Mohammed Abdullah <omair.m.abdullah at intel.com>
>
> Use the two minor numbers 2 and 3 for audio compressed offload devices.
> Also add support for these devices in core
>
> Signed-off-by: Omair Mohammed Abdullah <omair.m.abdullah at intel.com>
> Signed-off-by: Vinod Koul <vinod.koul at linux.intel.com>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> Reviewed-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> Signed-off-by: Vinod Koul <vinod.koul at linux.intel.com>
> ---
> include/sound/core.h | 1 +
> include/sound/minors.h | 7 ++++++-
> sound/core/sound.c | 6 ++++++
> 3 files changed, 13 insertions(+), 1 deletions(-)
>
> diff --git a/include/sound/core.h b/include/sound/core.h
> index 3be5ab7..5ab255f 100644
> --- a/include/sound/core.h
> +++ b/include/sound/core.h
> @@ -62,6 +62,7 @@ typedef int __bitwise snd_device_type_t;
> #define SNDRV_DEV_BUS ((__force snd_device_type_t) 0x1007)
> #define SNDRV_DEV_CODEC ((__force snd_device_type_t) 0x1008)
> #define SNDRV_DEV_JACK ((__force snd_device_type_t) 0x1009)
> +#define SNDRV_DEV_COMPRESS ((__force snd_device_type_t) 0x100A)
> #define SNDRV_DEV_LOWLEVEL ((__force snd_device_type_t) 0x2000)
>
> typedef int __bitwise snd_device_state_t;
> diff --git a/include/sound/minors.h b/include/sound/minors.h
> index 8f76420..faaeb64 100644
> --- a/include/sound/minors.h
> +++ b/include/sound/minors.h
> @@ -35,7 +35,8 @@
> #define SNDRV_MINOR_TIMER 33 /* SNDRV_MINOR_GLOBAL + 1 * 32 */
>
> #ifndef CONFIG_SND_DYNAMIC_MINORS
> - /* 2 - 3 (reserved) */
> +#define SNDRV_MINOR_COMPR_PLAYBACK 2
> +#define SNDRV_MINOR_COMPR_CAPTURE 3
If you'd share both playback and capture to a single device (as you
already did in patch 5/6), no need to provide distinct numbers here.
This would be simply
#define SNDRV_MINOR_COMPR 2
and define the single SNDRV_DEVICE_TYPE_COMPR.
Then you'll have to up to two devices for the static minors and more
for dynamic minors. So, the below would be:
> diff --git a/sound/core/sound.c b/sound/core/sound.c
> index 828af35..2b680dd 100644
> --- a/sound/core/sound.c
> +++ b/sound/core/sound.c
> @@ -233,6 +233,12 @@ static int snd_kernel_minor(int type, struct snd_card *card, int dev)
> return -EINVAL;
> minor = SNDRV_MINOR(card->number, type + dev);
> break;
> + case SNDRV_DEVICE_TYPE_COMPR_PLAYBACK:
> + case SNDRV_DEVICE_TYPE_COMPR_CAPTURE:
> + if (snd_BUG_ON(!card))
> + return -EINVAL;
> + minor = SNDRV_MINOR(card->number, type);
> + break;
Instead of this, just add case SNDRV_DEVICE_TYPE_COMPR in the cases of
other types like PCM and RAWMIDI, i.e.
> + minor = SNDRV_MINOR(card->number, type + dev);
Takashi
More information about the Alsa-devel
mailing list