[alsa-devel] [PATCH 1/9] ALSA: hdspm - Allow DDS/Varispeed to be set from userspace

Takashi Iwai tiwai at suse.de
Sat Oct 20 10:46:08 CEST 2012


At Sat, 20 Oct 2012 10:35:36 +0200,
Adrian Knoth wrote:
> 
> On Fri, Oct 19, 2012 at 10:48:55PM +0200, Takashi Iwai wrote:
> 
> > > The DDS value is the actual physical sample rate. We set it indirectly
> > > when selecting 44100, 48000 and so on via snd_hdspm_hw_params or
> > > hdspm_set_clock_source.
> > > 
> > > This commit now allows the DDS value to be altered at runtime, thus
> > > speeding up or slowing down the physical sample rate. This is required
> > > for MADI's varispeed that allows for ±12.5% speed adjustment from the
> > > "selected" rate (32kHz, 44100kHz, 48kHz and so on).
> > > 
> > > Signed-off-by: Adrian Knoth <adi at drcomp.erfurt.thur.de>
> > > 
> > > diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
> > > index b12308b..742bd5e 100644
> > > --- a/sound/pci/rme9652/hdspm.c
> > > +++ b/sound/pci/rme9652/hdspm.c
> > > @@ -2003,8 +2003,10 @@ static int hdspm_get_system_sample_rate(struct hdspm *hdspm)
> > >  { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
> > >    .name = xname, \
> > >    .index = xindex, \
> > > -  .access = SNDRV_CTL_ELEM_ACCESS_READ, \
> > > +  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |\
> > > +	SNDRV_CTL_ELEM_ACCESS_VOLATILE, \
> > 
> > What's the reason to add VOLATILE flag?
> > Does the hardware itself change the value without the driver
> > involvement?
> 
> Yes, when in slave mode. Then, this value reflects the detected external
> sample rate that may change at any time.
> 
> The following example shows that this just happened in my test setup:
> 
> adi at foh:/opt/adi-src/sound-2.6$ amixer -c 0 cset numid=5 48000
> numid=5,iface=MIXER,name='System Sample Rate'
>   ; type=INTEGER,access=rw------,values=1,min=27000,max=207000,step=1
>   : values=44104
> 
> Though I was asking for 48000Hz, the card runs at 44104Hz, because it's
> syncing to S/PDIF-In at the moment.

OK, now I applied all patches.


thanks,

Takashi


More information about the Alsa-devel mailing list