mbox series

[v4,0/3] Fix pinctrl-single pcs_pin_dbg_show()

Message ID 20210319152133.28705-1-hhhawa@amazon.com
Headers show
Series Fix pinctrl-single pcs_pin_dbg_show() | expand

Message

Hanna Hawa March 19, 2021, 3:21 p.m. UTC
These patches fix the pcs_pin_dbg_show() function for the scenario where
a single register controls multiple pins (i.e. bits_per_mux is not zero)
Additionally, the common formula is moved to a separate function to
allow reuse.

Changes since v3:
-----------------
- define and set variable 'mux_bytes' in one line
- update commit message

Changes since v2:
-----------------
- move read() register to be outside of if condition (as it common
  read()).
- Remove extra parentheses
- replace offset variable by direct return statements

Changes since v1:
-----------------
- remove unused variable in In function 'pcs_allocate_pin_table'
  (Reported-by: kernel test robot <lkp@intel.com>)

Hanna Hawa (3):
  pinctrl: pinctrl-single: remove unused variable
  pinctrl: pinctrl-single: remove unused parameter
  pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is
    not zero

 drivers/pinctrl/pinctrl-single.c | 65 ++++++++++++++++++--------------
 1 file changed, 37 insertions(+), 28 deletions(-)

Comments

Drew Fustini March 22, 2021, 5:56 a.m. UTC | #1
On Fri, Mar 19, 2021 at 05:21:30PM +0200, Hanna Hawa wrote:
> These patches fix the pcs_pin_dbg_show() function for the scenario where
> a single register controls multiple pins (i.e. bits_per_mux is not zero)
> Additionally, the common formula is moved to a separate function to
> allow reuse.
> 
> Changes since v3:
> -----------------
> - define and set variable 'mux_bytes' in one line
> - update commit message
> 
> Changes since v2:
> -----------------
> - move read() register to be outside of if condition (as it common
>   read()).
> - Remove extra parentheses
> - replace offset variable by direct return statements
> 
> Changes since v1:
> -----------------
> - remove unused variable in In function 'pcs_allocate_pin_table'
>   (Reported-by: kernel test robot <lkp@intel.com>)
> 
> Hanna Hawa (3):
>   pinctrl: pinctrl-single: remove unused variable
>   pinctrl: pinctrl-single: remove unused parameter
>   pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is
>     not zero
> 
>  drivers/pinctrl/pinctrl-single.c | 65 ++++++++++++++++++--------------
>  1 file changed, 37 insertions(+), 28 deletions(-)
> 
> -- 
> 2.17.1
> 

I'm curious what SoC are you using?

It's good to know who has hardware to test bits_per_mux in the future.

I pay attention to pinctrl-single as that is the driver used for the TI
AM3358 SoC used in a variety of BeagleBone boards.  It does not use 
bits_per_mux, but I can verify that this does not cause any regression
for the AM3358 SoC:

  /sys/kernel/debug/pinctrl/44e10800.pinmux-pinctrl-single# cat pins
  registered pins: 142
  pin 0 (PIN0) 0:? 44e10800 00000027 pinctrl-single
  pin 1 (PIN1) 0:? 44e10804 00000027 pinctrl-single
  pin 2 (PIN2) 0:? 44e10808 00000027 pinctrl-single
  pin 3 (PIN3) 0:? 44e1080c 00000027 pinctrl-single
  pin 4 (PIN4) 0:? 44e10810 00000027 pinctrl-single
  pin 5 (PIN5) 0:? 44e10814 00000027 pinctrl-single
  pin 6 (PIN6) 0:? 44e10818 00000027 pinctrl-single
  pin 7 (PIN7) 0:? 44e1081c 00000027 pinctrl-single
  pin 8 (PIN8) 22:gpio-96-127 44e10820 00000027 pinctrl-single
  pin 9 (PIN9) 23:gpio-96-127 44e10824 00000037 pinctrl-single
  pin 10 (PIN10) 26:gpio-96-127 44e10828 00000037 pinctrl-single
  pin 11 (PIN11) 27:gpio-96-127 44e1082c 00000037 pinctrl-single
  pin 12 (PIN12) 0:? 44e10830 00000037 pinctrl-single
  <snip>
  pin 140 (PIN140) 0:? 44e10a30 00000028 pinctrl-single
  pin 141 (PIN141) 13:gpio-64-95 44e10a34 00000020 pinctrl-single

Reviewed-by: Drew Fustini <drew@beagleboard.org>

Thanks,
Drew
Tony Lindgren March 24, 2021, 12:16 p.m. UTC | #2
* Hanna Hawa <hhhawa@amazon.com> [700101 02:00]:
> Remove unused parameter 'num_pins_in_register' from
> pcs_allocate_pin_table().

Reviewed-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren March 24, 2021, 12:16 p.m. UTC | #3
* Hanna Hawa <hhhawa@amazon.com> [700101 02:00]:
> Remove unused parameter 'pin_pos' from pcs_add_pin().

Reviewed-by: Tony Lindgren <tony@atomide.com>
Hanna Hawa March 24, 2021, 2:03 p.m. UTC | #4
On 3/22/2021 7:56 AM, Drew Fustini wrote:
> I'm curious what SoC are you using?


I'm working on Amazon Annapurna Labs SoCs (based on ARM cortex 
processors). That include multiple pins controlled with same register.

> 

> It's good to know who has hardware to test bits_per_mux in the future.

> 

> I pay attention to pinctrl-single as that is the driver used for the TI

> AM3358 SoC used in a variety of BeagleBone boards.  It does not use

> bits_per_mux, but I can verify that this does not cause any regression

> for the AM3358 SoC:

> 

>    /sys/kernel/debug/pinctrl/44e10800.pinmux-pinctrl-single# cat pins

>    registered pins: 142

>    pin 0 (PIN0) 0:? 44e10800 00000027 pinctrl-single

>    pin 1 (PIN1) 0:? 44e10804 00000027 pinctrl-single

>    pin 2 (PIN2) 0:? 44e10808 00000027 pinctrl-single

>    pin 3 (PIN3) 0:? 44e1080c 00000027 pinctrl-single

>    pin 4 (PIN4) 0:? 44e10810 00000027 pinctrl-single

>    pin 5 (PIN5) 0:? 44e10814 00000027 pinctrl-single

>    pin 6 (PIN6) 0:? 44e10818 00000027 pinctrl-single

>    pin 7 (PIN7) 0:? 44e1081c 00000027 pinctrl-single

>    pin 8 (PIN8) 22:gpio-96-127 44e10820 00000027 pinctrl-single

>    pin 9 (PIN9) 23:gpio-96-127 44e10824 00000037 pinctrl-single

>    pin 10 (PIN10) 26:gpio-96-127 44e10828 00000037 pinctrl-single

>    pin 11 (PIN11) 27:gpio-96-127 44e1082c 00000037 pinctrl-single

>    pin 12 (PIN12) 0:? 44e10830 00000037 pinctrl-single

>    <snip>

>    pin 140 (PIN140) 0:? 44e10a30 00000028 pinctrl-single

>    pin 141 (PIN141) 13:gpio-64-95 44e10a34 00000020 pinctrl-single

> 

> Reviewed-by: Drew Fustini<drew@beagleboard.org>


Thanks for review and verify the change.

Thanks,
Hanna

> 

> Thanks,

> Drew
Linus Walleij March 25, 2021, 8:07 a.m. UTC | #5
On Fri, Mar 19, 2021 at 4:22 PM Hanna Hawa <hhhawa@amazon.com> wrote:

> These patches fix the pcs_pin_dbg_show() function for the scenario where
> a single register controls multiple pins (i.e. bits_per_mux is not zero)
> Additionally, the common formula is moved to a separate function to
> allow reuse.

This v4 patch set applied!

Yours,
Linus Walleij