On 3/30/26 9:51 AM, Julien Stephan wrote:
> Le ven. 13 mars 2026 à 22:56, David Lechner <[email protected]> a écrit :
>>
>> Add functionality to be able to print pin bias settings along with the
>> pinmux setting.
>>
>> This can be useful to debug why pins might not be working correctly.
>>
>> Signed-off-by: David Lechner <[email protected]>
>> ---
>>  drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 96 
>> ++++++++++++++++++++++++++-
>>  drivers/pinctrl/mediatek/pinctrl-mtk-common.h |  4 ++
>>  2 files changed, 98 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c 
>> b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
>> index 1028b8a93f5..ef4acc946a8 100644
>> --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
>> +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
>> @@ -237,9 +237,39 @@ static int mtk_get_pin_io_type(struct udevice *dev, int 
>> pin,
>>         io_type->bias_set = priv->soc->io_type[io_n].bias_set;
>>         io_type->drive_set = priv->soc->io_type[io_n].drive_set;
>>         io_type->input_enable = priv->soc->io_type[io_n].input_enable;
>> +       io_type->get_pinconf = priv->soc->io_type[io_n].get_pinconf;
>>
>>         return 0;
>>  }
>> +
>> +static int mtk_pinconf_get(struct udevice *dev, u32 pin, char *buf, size_t 
>> size)
>> +{
>> +       struct mtk_io_type_desc io_type;
>> +       int err, pos = 0;
>> +
>> +       if (!mtk_get_pin_io_type(dev, pin, &io_type)) {
>> +               pos += snprintf(buf + pos, size - pos, " (%s)", 
>> io_type.name);
> 
> why += ? pos is initialized to 0.  Same why buf +pos? and  size - pos?
> 
>> +               if (pos >= size)
>> +                       return pos;
>> +
>> +               if (io_type.get_pinconf) {
>> +                       err = io_type.get_pinconf(dev, pin, buf + pos, size 
>> - pos);
>> +                       if (err < 0)
>> +                               return err;
>> +
>> +                       pos += err;
>> +                       if (pos >= size)
>> +                               return pos;
> 
> Can't this be removed?

The idea was to make it robust against future additions. Should be
fine to drop it.

> 
>> +               }
>> +       }
>> +
>> +       return pos;
>> +}

I will simplify it to:

static int mtk_pinconf_get(struct udevice *dev, u32 pin, char *buf, size_t size)
{
        struct mtk_io_type_desc io_type;
        int err, pos;

        /* If we fail to get the type, then we just don't add any more info. */
        if (mtk_get_pin_io_type(dev, pin, &io_type))
                return 0;

        pos = snprintf(buf, size, " (%s)", io_type.name);
        if (pos >= size)
                return pos;

        if (io_type.get_pinconf) {
                err = io_type.get_pinconf(dev, pin, buf + pos, size - pos);
                if (err < 0)
                        return err;

                pos += err;
        }

        return pos;
}

Reply via email to