Re: [PATCH] pinctrl: meson: amlogic-a4: mark the GPIO controller as sleeping

From: Xianwei Zhao

Date: Tue Jan 06 2026 - 04:32:53 EST


Hi Bartosz,
Could you explain the reproduction method for this problem ?

On 2026/1/6 16:55, Neil Armstrong wrote:
The GPIO controller is configured as non-sleeping but it uses generic
pinctrl helpers which use a mutex for synchronization. This will cause
lockdep splats when used together with shared GPIOs going through the
GPIO shared proxy driver.

Fixes: 6e9be3abb78c ("pinctrl: Add driver support for Amlogic SoCs")
Cc: stable@xxxxxxxxxxxxxxx
Reported-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
Closes: https://lore.kernel.org/all/CAFBinCAc7CO8gfNQakCu3LfkYXuyTd2iRpMRm8EKXSL0mwOnJw@xxxxxxxxxxxxxx/
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
---
  drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
index d9e3a8d5932a..ded7b218e2ec 100644
--- a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
+++ b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
@@ -893,7 +893,7 @@ static const struct gpio_chip aml_gpio_template = {
      .direction_input        = aml_gpio_direction_input,
      .direction_output       = aml_gpio_direction_output,
      .get_direction          = aml_gpio_get_direction,
-     .can_sleep              = false,
+     .can_sleep              = true,
  };

  static void init_bank_register_bit(struct aml_pinctrl *info,