Re: [PATCH 2/2] mfd: arizona-spi: Add Android board ACPI table handling

From: Hans de Goede
Date: Mon Mar 07 2022 - 12:34:30 EST


Hi,

On 3/7/22 16:19, Lee Jones wrote:
> On Mon, 07 Mar 2022, Hans de Goede wrote:
>
>> Hi,
>>
>> On 3/7/22 15:51, Lee Jones wrote:
>>> On Wed, 23 Feb 2022, Hans de Goede wrote:
>>>
>>>> x86/ACPI boards with an arizona WM5102 codec ship with either Windows or
>>>> Android as factory installed OS.
>>>>
>>>> The ACPI fwnode for the codec on Android boards misses 2 things compared
>>>> to the Windows boards (this is hardcoded in the Android board kernels):
>>>>
>>>> 1. There is no CLKE ACPI method to enabe the 32 KHz clock the codec needs
>>>> for jack-detection.
>>>>
>>>> 2. The GPIOs used by the codec are not listed in the fwnode for the codec.
>>>>
>>>> The ACPI tables on x86/ACPI boards shipped with Android being incomplete
>>>> happens a lot. The special drivers/platform/x86/x86-android-tablets.c
>>>> module contains DMI based per model handling to compensate for this.
>>>>
>>>> This module will enable the 32KHz clock through the pinctrl framework
>>>> to fix 1. and it will also register a gpio-lookup table for all GPIOs
>>>> needed by the codec + machine driver, including the GPIOs coming from
>>>> the codec itself.
>>>>
>>>> Add an arizona_spi_acpi_android_probe() function which waits for the
>>>> x86-android-tablets to have set things up before continue with probing
>>>> the arizona WM5102 codec.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
>>>> ---
>>>> drivers/mfd/arizona-spi.c | 34 +++++++++++++++++++++++++++++++++-
>>>> 1 file changed, 33 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
>>>> index 238355542ab1..2c686e71db21 100644
>>>> --- a/drivers/mfd/arizona-spi.c
>>>> +++ b/drivers/mfd/arizona-spi.c
>>>> @@ -81,6 +81,29 @@ static int arizona_spi_acpi_windows_probe(struct arizona *arizona)
>>>> return 0;
>>>> }
>>>>
>>>> +/* For ACPI tables from boards which ship with Android as factory OS */
>>>> +static int arizona_spi_acpi_android_probe(struct arizona *arizona)
>>>> +{
>>>> + int ret;
>>>> +
>>>> + /*
>>>> + * Get the reset GPIO, treating -ENOENT as -EPROBE_DEFER to wait for
>>>> + * the x86-android-tablets module to register the board specific GPIO
>>>> + * lookup table.
>>>> + */
>>>> + arizona->pdata.reset = devm_gpiod_get(arizona->dev, "reset", GPIOD_OUT_LOW);
>>>> + if (IS_ERR(arizona->pdata.reset)) {
>>>> + ret = PTR_ERR(arizona->pdata.reset);
>>>> + if (ret == -ENOENT) {
>>>> + dev_info_once(arizona->dev, "Deferring probe till GPIO lookup is registered\n");
>>>
>>> Nit: How many chars is this?
>>
>> 105.
>>
>>> I thought we were drawing the line at 100 these days?
>>
>> We have an exception for log lines, since we don't want to break them
>> up because that makes grepping for them impossible.
>>
>>> Does this patch pass checkpatch.pl?
>>
>> Yes because of the exception for log lines:
>>
>> [hans@x1 linux]$ scripts/checkpatch.pl 0001-mfd-arizona-spi-Add-Android-board-ACPI-table-handlin.patch
>> total: 0 errors, 0 warnings, 54 lines checked
>>
>> 0001-mfd-arizona-spi-Add-Android-board-ACPI-table-handlin.patch has no obvious style problems and is ready for submission.
>
> What do you mean by long lines?

Not long lines, log lines, as in lines logging a message,
sorry if that was unclear.

> I'm aware of the exception for long strings.
>
> Not sure why anyone would grep for "dev_info_once(arizona->dev, ".
>
> I would break this after the first comma.

Ok, I'll send a v2 with a break after the first comma.

Regards,

Hans