lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8fdeec5c-5de7-44ae-9086-7930d02d610e@collabora.com>
Date: Thu, 24 Oct 2024 17:17:05 +0200
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
To: Nícolas F. R. A. Prado <nfraprado@...labora.com>,
 Sean Wang <sean.wang@...nel.org>, Linus Walleij <linus.walleij@...aro.org>,
 Matthias Brugger <matthias.bgg@...il.com>,
 Bamvor Jian Zhang <bamv2005@...il.com>, Shuah Khan <shuah@...nel.org>
Cc: kernel@...labora.com, linux-mediatek@...ts.infradead.org,
 linux-gpio@...r.kernel.org, linux-kernel@...r.kernel.org,
 linux-arm-kernel@...ts.infradead.org, linux-kselftest@...r.kernel.org,
 kernelci@...ts.linux.dev
Subject: Re: [PATCH RFC 1/3] pinctrl: mediatek: paris: Expose more
 configurations to GPIO set_config

Il 11/09/24 12:10, AngeloGioacchino Del Regno ha scritto:
> Il 09/09/24 20:37, Nícolas F. R. A. Prado ha scritto:
>> Currently the set_config callback in the gpio_chip registered by the
>> pinctrl_paris driver only supports PIN_CONFIG_INPUT_DEBOUNCE, despite
> 
> [...] only supports operations configuring the input debounce parameter
> of the EINT controller and denies configuring params on the other AP GPIOs [...]
> 
> (reword as needed)
> 
>> many other configurations already being implemented and available
>> through the pinctrl API for configuration of pins by the Devicetree and
>> other drivers.
>>
>> Expose all configurations currently implemented through the GPIO API so
>> they can also be set from userspace, which is particularly useful to
>> allow testing them from userspace.
>>
>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@...labora.com>
>> ---
>>   drivers/pinctrl/mediatek/pinctrl-paris.c | 20 ++++++++++----------
> 
> You can do the same for pinctrl-moore too, it's trivial.
> 
> Other than that, I agree about performing this change, as this may be useful
> for more than just testing.
> 

Nicolas, please don't forget to respin this patch.

Thanks,
Angelo


>>   1 file changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/ 
>> pinctrl-paris.c
>> index e12316c42698..668f8055a544 100644
>> --- a/drivers/pinctrl/mediatek/pinctrl-paris.c
>> +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
>> @@ -255,10 +255,9 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
>>       return err;
>>   }
>> -static int mtk_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
>> +static int mtk_pinconf_set(struct mtk_pinctrl *hw, unsigned int pin,
>>                  enum pin_config_param param, u32 arg)
>>   {
>> -    struct mtk_pinctrl *hw = pinctrl_dev_get_drvdata(pctldev);
>>       const struct mtk_pin_desc *desc;
>>       int err = -ENOTSUPP;
>>       u32 reg;
>> @@ -795,7 +794,7 @@ static int mtk_pconf_group_set(struct pinctrl_dev *pctldev, 
>> unsigned group,
>>       int i, ret;
>>       for (i = 0; i < num_configs; i++) {
>> -        ret = mtk_pinconf_set(pctldev, grp->pin,
>> +        ret = mtk_pinconf_set(hw, grp->pin,
>>                         pinconf_to_config_param(configs[i]),
>>                         pinconf_to_config_argument(configs[i]));
>>           if (ret < 0)
>> @@ -937,18 +936,19 @@ static int mtk_gpio_set_config(struct gpio_chip *chip, 
>> unsigned int offset,
>>   {
>>       struct mtk_pinctrl *hw = gpiochip_get_data(chip);
>>       const struct mtk_pin_desc *desc;
>> -    u32 debounce;
>> +    enum pin_config_param param = pinconf_to_config_param(config);
>> +    u32 arg = pinconf_to_config_argument(config);
>>       desc = (const struct mtk_pin_desc *)&hw->soc->pins[offset];
>> -    if (!hw->eint ||
>> -        pinconf_to_config_param(config) != PIN_CONFIG_INPUT_DEBOUNCE ||
>> -        desc->eint.eint_n == EINT_NA)
>> -        return -ENOTSUPP;
>> +    if (param == PIN_CONFIG_INPUT_DEBOUNCE) {
>> +        if (!hw->eint || desc->eint.eint_n == EINT_NA)
>> +            return -ENOTSUPP;
>> -    debounce = pinconf_to_config_argument(config);
>> +        return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, arg);
>> +    }
>> -    return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, debounce);
>> +    return mtk_pinconf_set(hw, offset, param, arg);
>>   }
>>   static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
>>
> 
> 



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ