Re: [PATCH 1/2] ASoC: atmel-classd: add the Audio Class D Amplifier code

From: Wu, Songjun
Date: Wed Sep 09 2015 - 22:31:31 EST




On 9/9/2015 17:52, Mark Brown wrote:
On Wed, Sep 09, 2015 at 11:16:08AM +0800, Wu, Songjun wrote:
On 9/8/2015 20:23, Mark Brown wrote:

If you want to have three controls you need to write code so that the
user can only change one of them from 0dB at once, returning an error
otherwise. That was why it looked like they were three separate
controls.

If user operates two or tree controls at the same time, for my
understanding, these operations are serial actually in kernel, not parallel,
and the last operation will be effective. I only write the function
'classd_get_eq_enum' to get the enumeration value, if user changes one of
controls, the other controls will get 0dB. Is my understanding correct?

Yes, that's what's going to end up happening but it's not how controls
are expected to behave - applications will expect changing one control
to leave others unaffected so it's better to return an error rather than
change the other control.

If application change non EQ controls, the others will be unaffected. But the classD IP can only supports one EQ control at once, these three EQ controls point to the same register field, if application set a different EQ control, the error occurs, there will be many errors, it's not very reasonable to application. The best way I think is if application set one EQ control, the other EQ controls will change to 0dB, it's also consistent with fact.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/