[alsa-devel] [PATCH v6] ASoC: add RT286 CODEC driver

Lars-Peter Clausen lars at metafoo.de
Wed May 7 19:46:09 CEST 2014

On 05/07/2014 07:21 PM, Mark Brown wrote:
> On Tue, May 06, 2014 at 12:04:27PM +0000, Bard Liao wrote:
>>> -----Original Message-----
>>> From: Mark Brown [mailto:broonie at kernel.org]
> As I'm fairly sure has been requested before please fix your mailer to
> word wrap within paragraphs, it is very hard to read your mails since
> the lines are longer than 80 columns.
>> Virtual controls assume there is no related register related to the controls, so codec
>> doesn't need to set anything when the control's value is changed in general cases.
>> But rt286 need to do something when the control's value is changed especially mux
>> settings.
> ...
>> Do you have any suggestion for setting corresponding registers of a
>> virtual control?
> Please extend the APIs for virtual controls if you find they are missing
> things you need, they've not been widely used in this sort of context -
> I think this is the first substantial device anyone has tried to merge
> without a register map so it's likely there are gaps.

I don't think virtual controls are the right approach here. Virtual controls 
are for controls where the state is completely in software, but here the 
state is still in hardware. It's just that there is no uniform hardware map. 
But there is still some structure. So you'd have controls with custom put 
and get handlers and for DAPM widgets use the event handler.

But I still think that the best and easiest solution is to have custom 
regmap read/write function that do the translation of logical registers to 
physical read/write operations.

  - Lars

More information about the Alsa-devel mailing list