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@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