[alsa-devel] [RFC 4/5] compress: add the core file

Vinod Koul vinod.koul at linux.intel.com
Mon Sep 5 23:21:02 CEST 2011


On Mon, 2011-09-05 at 10:43 -0700, Mark Brown wrote:
> On Sat, Sep 03, 2011 at 08:36:25AM +0530, Vinod Koul wrote:
> > On Fri, 2011-09-02 at 15:36 +0100, Mark Brown wrote:
> > > On Fri, Sep 02, 2011 at 11:36:24AM +0530, Vinod Koul wrote:
> 
> > > > + *   TBD how the cpu dai will be viewed and started.
> > > > + *	ASoC should always be optional part
> > > > + *	(we should be able to use this framework in non asoc systems
> 
> > > Just write an ALSA core API, ASoC is an ALSA driver so it can just use
> > > the same interfaces as everything else gets.
> 
> > Actually no. That way devices would get regsitered as /dev/snd_pcmCxDxy
> > which wont be corect.
> 
> I'm sorry, I can't understand why this would be the case?  ALSA already
> has devices with several different names (control, hw, and pcm).
Okay, I checked and looking at code, I think i should call
snd_register_device_for_dev with a new device type, like
SNDRV_DEVICE_TYPE_COMPRESSED.
> 
> > > > +	runtime->state = SNDRV_PCM_STATE_OPEN;
> > > > +	init_waitqueue_head(&runtime->sleep);
> > > > +	data->stream.runtime = runtime;
> > > > +	f->private_data = (void *)data;
> 
> > > Should we hoist these before we call open(), especially the init of
> > > runtime?  It seems likely to be more robusy.
> 
> > Since open is just supposed to let the device know that stream is being
> > created with a particular direction. Event if I move this up, doesn't
> > serve a purpose as driver should touch these a t open.
> > But I agree this helps to make more robust 
> 
> The most obvious ones were the runtime pointer and the state, I can
> easily see some configuration being done on init that might also be done
> at later and so want to check the state.
Okay will change this

> > Well I kept them placeholder to remind me what else needs
> > implementation, I think I will keep them for a while as we need to
> > implement mmap and recording support as well. Recording is actually
> > trivial after playback.
> 
> It's generally preferred to omit this sort of stuff from actual
> upstream submissions.
No issues, will remove all dead code.

> > > +EXPORT_SYMBOL_GPL(snd_compr_period_elapsed);
> 
> > > I can see why you picked period_elapsed() (for consistency) but it feels
> > > wrong to have a time based name for something which is going to end up
> > > being data size based.
> 
> > Yes the notion of period here cannot be time it is in bytes.
> 
> Right, but the trouble is that "period" generally means a unit of time
> so it doesn't read right.
Hmmm, I might then go for _fragment_elapsed or something :)


-- 
~Vinod



More information about the Alsa-devel mailing list