On Thu, Mar 05, 2020 at 03:48:42PM -0600, Pierre-Louis Bossart wrote:
I don't know how to move all the gpio handling in the codec driver, since there are platform-dependent ACPI mappings.
The idiomatic thing for ACPI is to have a DMI table in the driver that selects the behaviour needed on a given system.
I also tested a different solution (attached) based on your input where the gpiod handing is performed in the machine driver probe, after the card registration, and the gpiod_put() called from remove. This is simple enough but there might be some issues left with the jack/input handling - not sure why the logs for jacks are missing.
Does this clarify the issue and options?
I think I preferred the original version - this does mechanically move things to the device model probe but not really in an idiomatic fashion (we're still requesting a GPIO for the CODEC from the machine driver) so I'm not sure it really helps. The changelog is definitely a lot better though.