All of lore.kernel.org
 help / color / mirror / Atom feed
* ASoC: hook for codec control updates and clock controls
@ 2008-12-07 17:38 Daniel Mack
  2008-12-07 19:02 ` Mark Brown
  0 siblings, 1 reply; 10+ messages in thread
From: Daniel Mack @ 2008-12-07 17:38 UTC (permalink / raw)
  To: alsa-devel

Hi,

Codecs like the tlv320aic3x family have soft volume controls to smoothly
drive up and down mixer elements in order to prevent clicks and pops. In
fact, most of the controls on this chip are implemented as such. For the
mixers to work, however, the I2S input clock is needed which is 
currently only true when the DAC/ACD elements are active but not when
the chip is just operating as an analog mixer.

To allow this functionality, the I2S clock must be present for a short
period after each volume control update to the codec and disabled again
after some milliseconds. It should, however, not be enabled if it's
already running and of course, it must not be disabled if the ADC/DAC
is still running.

Adding a hook to struct snd_soc_codec which is called from
snd_soc_update_bits() isn't a big deal, but the problem is the
abstraction layers in this case - for good reasons, the cpu_dai is not
accessible from the codec dai. Or did I miss a link?

Is there a sane way to address this problem?

Thanks and best regards,
Daniel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-12-08 12:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-07 17:38 ASoC: hook for codec control updates and clock controls Daniel Mack
2008-12-07 19:02 ` Mark Brown
2008-12-08  0:04   ` Daniel Mack
2008-12-08  9:48     ` Mark Brown
2008-12-08 12:18       ` Daniel Mack
2008-12-08 12:40         ` Mark Brown
2008-12-08  9:49     ` Jarkko Nikula
2008-12-08 11:11       ` Mark Brown
2008-12-08 11:40         ` Jarkko Nikula
2008-12-08 11:59           ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.