[alsa-devel] [PATCH 1/4] soc/sound: tegra_max98090: do not invert headphone jack

Dylan Reid dgreid at chromium.org
Thu Feb 4 20:17:14 CET 2016


On Thu, Feb 4, 2016 at 11:05 AM, Jonathan Tinkham <sctincman at gmail.com> wrote:
> On 02/04/2016 09:36 AM, Stephen Warren wrote:
>>
>> On 02/03/2016 10:30 PM, Jonathan Tinkham wrote:
>>>
>>> The headphone jack should not be inverted
>>
>>
>> Have you tested this on Venice2 as well as Nyan? I'm pretty sure Venice2
>> was tested when this driver was written, and whoever added Nyan support to
>> the kernel simply assumed it would work. As such, my suspicion is that this
>> series will break Venice2 even as it fixes Nyan.
>
>
> I have not tested this on Venice2, only on Nyan. That seems like a plausible
> cause and reasonable suspicion.
>
>> Why doesn't user-space expect what the kernel actually implements? The
>> kernel should be defining the control naming.
>>
>> Which user-space are you using specifically, and which part of it expects
>> particular naming?
>>
>> Perhaps this series needs to be parametrized based on a flag in DT, rather
>> than switching the hard-coded values, so that only Venice2 can be affected?
>
>
> Specifically pulse-audio and alsa under Arch Linux.
>
> I was referencing 'Documentation/sound/alsa/soc/dapm.txt' with regards to
> control names. While it is possible to add another entry into the user-space
> configuration, I took this documentation as a definition of kernel control
> naming schemes, and thought the driver had used a non-standard naming scheme
> (or at least, not a consistent one).
>
>> On 02/03/2016 10:31 PM, Jonathan Tinkham wrote:
>>>
>>> Update device-tree bindings to reflect the rename of the board's
>>> headphone jack.
>>
>>
>> This looks like an incompatible change to the DT. While you've fixed the
>> DT, which will fix new installations, old DTs now won't work. This breaks DT
>> ABI. Any DT change needs to be backwards compatible, i.e. the old name
>> should still work and be documented as a legacy value.
>
>
> I see that now. If the inversion behavior differs between venice2 and nyan,
> then another compatible string would need to be added anyways, correct? As
> you mentioned above, this might need to be done anyways for the rename.

Venice2 and both nyan platforms do have different polarity of HP detect.

For some boards we have an hd-invert property in DT.

Would setting hp-det-gpio to active low in the pinmux achieve the same thing?

>
> Something like:
> - "compatible = nvidia,tegra-audio-max98090" implements old inversion
> behavior and leaves the switch as "Headphones" to avoid breaking older DTs
> - "compatible = nvidia,tegra-{venice2,nyan}-audio-max98090" that separates
> the inversion behavior and also introduces the rename
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


More information about the Alsa-devel mailing list