RE: [PATCH 1/3] Input: goodix - add option to disable firmware loading

From: Valek, Andrej
Date: Fri Oct 30 2020 - 07:03:08 EST


Hi Hans,

I am not saying, that just configuration loading took such a long time. Thu full process including configuration and FW loading takes it.

Means that I would like to prevent this situation, but keep the old scenario as a default behavior.

Regards,
Andrej

> Hi,
>
> On 10/29/20 9:36 PM, Dmitry Torokhov wrote:
>> Hi Andrej,
>>
> On Thu, Oct 29, 2020 at 06:03:11PM +0100, Andrej Valek wrote:
>>> Firmware file loadind for GT911 controller takes too much time (~60s).
>>> There is no check that configuration is the same which is already present.
>>> This happens always during boot, which makes touchscreen unusable.
>>>
>>> Add there an option to prevent firmware file loading, but keep it
>>> enabled by default.
>>
>> I thought that Goodix was losing firmware loading at poweroff. Is this
>> not the case with this model?
>
> So first of all there are 2 sorts of firmware involved with the Goodix touchscreen controllers, the actual firmware and a > block of config data for that firmware which I presume adjusts it for the specific (model of) the digitizer which is attached.
>
> ATM the mainline Linux driver does not support models where the actual firmware itself needs to be loaded (because they only have RAM, so they come up without firmware).
>
> I do have one model tablet with a ROM-less goodix touchpad controller, so if I ever find the time I might add support for loading the actual firmware.
>
> So what we are talking about here is just loading the config data and I'm a bit surprised that this take so long.
>
>> Adding Hans as he was working with this driver/code.
>
> With all that said I have no objection to this change.
>
> Regards,
>
> Hans
>
>
>
>>
>>>
>>> Signed-off-by: Andrej Valek <andrej.valek@xxxxxxxxxxx>
>>> ---
>>> drivers/input/touchscreen/goodix.c | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/input/touchscreen/goodix.c
>>> b/drivers/input/touchscreen/goodix.c
>>> index 02c75ea385e08..44336ecd2acdf 100644
>>> --- a/drivers/input/touchscreen/goodix.c
>>> +++ b/drivers/input/touchscreen/goodix.c
>>> @@ -941,7 +941,9 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)
>>> default:
>>> if (ts->gpiod_int && ts->gpiod_rst) {
>>> ts->reset_controller_at_probe = true;
>>> - ts->load_cfg_from_disk = true;
>>> + /* Prevent cfg loading for each start */
>>> + ts->load_cfg_from_disk = !device_property_read_bool(dev,
>>> + "touchscreen-do-not-load-fw");
>>> ts->irq_pin_access_method = IRQ_PIN_ACCESS_GPIO;
>>> }
>>> }
>>> --
>>> 2.20.1
>>>
>>
>> Thanks.
>>