[lkml]   [2018]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 3/4] ASoC: codecs: tas5720: add TAS5722 specific volume control
On 12/12/2017 06:01 AM, Mark Brown wrote:
> On Mon, Dec 11, 2017 at 01:01:56PM -0600, Andrew F. Davis wrote:
>> The TAS5722 supports modifying volume in 0.25dB steps (as opposed to 0.5dB
>> steps on the TAS5720). Introduce a custom mixer control that allows taking
>> advantage of this finer output volume granularity.
> Don't do this, it's just making things more complicated. Instead do
> what other drivers do and register different sets of controls depending
> on which part you're working with. The normal thing is to have a big
> table for all the shared controls that are the same on all variants then
> register additional tables during probe with those that vary for the
> individul devices.

That is what we are doing here, the reason for the custom mixer control
is that the controlled bits span two registers in a odd way that is not
supported by the standard handlers.

>> static const struct snd_kcontrol_new tas5720_snd_controls[] = {
>> SOC_SINGLE_TLV("Speaker Driver Playback Volume",
>> - TAS5720_VOLUME_CTRL_REG, 0, 0xff, 0, dac_tlv),
>> + TAS5720_VOLUME_CTRL_REG, 0, 0xff, 0, tas5720_dac_tlv),
>> + SOC_SINGLE_TLV("Speaker Driver Analog Gain", TAS5720_ANALOG_CTRL_REG,
>> + TAS5720_ANALOG_GAIN_SHIFT, 3, 0, dac_analog_tlv),
> As ever all volume controls should end in Volume (like the immediately
> adjacent control does).

This was done so this table exactly matches the existing table. If you
would like me to change this then I can, and can do it for the other
table as well, up to you.

 \ /
  Last update: 2018-01-15 15:50    [W:0.090 / U:1.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site