On 30/12/2020 11:04, Hans de Goede wrote:
Hi,
On 12/29/20 5:51 PM, Richard Fitzgerald wrote:
On 29/12/2020 15:40, Hans de Goede wrote:
Hi,
On 12/29/20 4:15 PM, Mark Brown wrote:
On Tue, Dec 29, 2020 at 03:06:35PM +0000, Charles Keepax wrote:
There is maybe more argument for porting the Arizona code across anyways, since for a long time Android didn't properly support extcon either. It supported the earlier out of tree switch stuff, extcon
Completely moving the driver doesn't cause the same problems as the current proposal (unless it drops functionality I guess, there were issues with adding new detection types into the input layer but I can't remember if this hardware was impacted by that or not).
The input-layer supports the following switches:
SW_HEADPHONE_INSERT SW_MICROPHONE_INSERT SW_LINEOUT_INSERT SW_JACK_PHYSICAL_INSERT
Which is a 1:1 mapping with the cable-types currently exported by extcon-arizona.c .
I'm fine with fully moving extcon-arizona.c over to only using sound/core/jack.c functionality and it no longer exporting an extcon device.
I guess we should move it out of drivers/extcon then though. I suggest using: sound/soc/cirrus/arizona-jack-detect.c Note that sound/soc/cirrus is a new dir here. Would that work for you ?
Shouldn't it be sound/soc/codecs/arizona-jack.c so that it is with all the other code for those codecs?
The arizona codecs use the MFD framework and there is a separate platform-device instantiated for the jack-detect functionality, so this
That is because it is an extcon driver. It is a different subsystem to the other child drivers so has to be a separate child.
(mostly) a standalone platform-driver which has very little interaction with the rest of the codec code.
It is not a codec driver, or code shared between the codec drivers, so putting it under sound/soc/codecs would be a bit weird.
In fact it is tied into the codec driver. The code in arizona.c that handles HP OUT has to synchronize with the jack detection to avoid one driver trashing the state of the other. But because they are currently separate drivers they have to communicate through hp_ena and hp_clamp in the parent mfd data. See arizona_hp_ev().
With that said I have no strong preference for putting it under a new sound/soc/cirrus dir, if everyone is ok with putting it under sound/soc/codecs then that works for me.
Regards,
Hans