[alsa-devel] [PATCH v4 2/6] core: add support for compressed devices

Vinod Koul vinod.koul at linux.intel.com
Thu Dec 22 09:15:45 CET 2011


On Thu, 2011-12-22 at 08:34 +0100, Takashi Iwai wrote:
> 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:
Oops, I thought i had fixed it up as well, thanks below is right :)
> 
> > 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.
right
> 
> > +		minor = SNDRV_MINOR(card->number, type + dev);
> 
> 
> Takashi


-- 
~Vinod



More information about the Alsa-devel mailing list