mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
To: Bjorn Andersson <andersson@kernel.org>,
	Linus Walleij <linusw@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Nathan Chancellor <nathan@kernel.org>
Subject: Re: [PATCH v2] pinctrl: qcom: lpass-lpi: drop unused runtime-PM write helper
Date: Wed, 10 Jun 2026 23:38:42 +0530	[thread overview]
Message-ID: <93a55513-b09c-47a6-bd3b-cfed25ca7a70@oss.qualcomm.com> (raw)
In-Reply-To: <20260610180012.3505877-1-ajay.nandam@oss.qualcomm.com>

Hi Bjorn,

Thanks for the report and for carrying this in linux-next.

Root cause was an unused static wrapper (lpi_gpio_write()) left after 
the PM clock conversion.

I’ve posted v2 here:
https://lore.kernel.org/all/20260610180012.3505877-1-ajay.nandam@oss.qualcomm.com/

v2 removes the dead wrapper, keeps behavior unchanged, and also 
addresses follow-up naming/style feedback.

Thanks,
Ajay


On 6/10/2026 11:30 PM, Ajay Kumar Nandam wrote:
> lpi_gpio_write() became unused after the PM clock runtime conversion
> switched write paths to register helper calls inside callers that already
> hold an active runtime-PM reference.
> 
> With -Werror this triggers:
>    error: 'lpi_gpio_write' defined but not used [-Wunused-function]
> 
> Drop the dead wrapper and rename the low-level MMIO helpers from
> __lpi_gpio_* to lpi_gpio_*_reg for neutral register-accessor naming.
> 
> Fixes: b719ede389d8 ("pinctrl: qcom: lpass-lpi: Switch to PM clock framework for runtime PM")
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Closes: https://lore.kernel.org/all/f03850f6-186d-4988-a450-e6e95f24a551@kernel.org/
> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
> ---
>   drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 50 +++++++++---------------
>   1 file changed, 18 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
> index 4d758fd117c4..5fd4a4eba654 100644
> --- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
> +++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
> @@ -52,15 +52,15 @@ static void __iomem *lpi_gpio_reg(struct lpi_pinctrl *state,
>   	return state->tlmm_base + pin_offset + addr;
>   }
>   
> -static void __lpi_gpio_read(struct lpi_pinctrl *state,
> -			    unsigned int pin, unsigned int addr, u32 *val)
> +static void lpi_gpio_read_reg(struct lpi_pinctrl *state,
> +			      unsigned int pin, unsigned int addr, u32 *val)
>   {
>   	*val = ioread32(lpi_gpio_reg(state, pin, addr));
>   }
>   
> -static void __lpi_gpio_write(struct lpi_pinctrl *state,
> -			     unsigned int pin, unsigned int addr,
> -			     unsigned int val)
> +static void lpi_gpio_write_reg(struct lpi_pinctrl *state,
> +			       unsigned int pin, unsigned int addr,
> +			       unsigned int val)
>   {
>   	iowrite32(val, lpi_gpio_reg(state, pin, addr));
>   }
> @@ -74,21 +74,7 @@ static int lpi_gpio_read(struct lpi_pinctrl *state, unsigned int pin,
>   	if (ret < 0)
>   		return ret;
>   
> -	__lpi_gpio_read(state, pin, addr, val);
> -
> -	return pm_runtime_put_autosuspend(state->dev);
> -}
> -
> -static int lpi_gpio_write(struct lpi_pinctrl *state, unsigned int pin,
> -			  unsigned int addr, unsigned int val)
> -{
> -	int ret;
> -
> -	ret = pm_runtime_resume_and_get(state->dev);
> -	if (ret < 0)
> -		return ret;
> -
> -	__lpi_gpio_write(state, pin, addr, val);
> +	lpi_gpio_read_reg(state, pin, addr, val);
>   
>   	return pm_runtime_put_autosuspend(state->dev);
>   }
> @@ -150,7 +136,7 @@ static int lpi_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
>   		return ret;
>   
>   	guard(mutex)(&pctrl->lock);
> -	__lpi_gpio_read(pctrl, pin, LPI_GPIO_CFG_REG, &val);
> +	lpi_gpio_read_reg(pctrl, pin, LPI_GPIO_CFG_REG, &val);
>   
>   	/*
>   	 * If this is the first time muxing to GPIO and the direction is
> @@ -160,23 +146,23 @@ static int lpi_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned int function,
>   	 */
>   	if (i == GPIO_FUNC && (val & LPI_GPIO_OE_MASK) &&
>   	    !test_and_set_bit(group, pctrl->ever_gpio)) {
> -		__lpi_gpio_read(pctrl, group, LPI_GPIO_VALUE_REG, &io_val);
> +		lpi_gpio_read_reg(pctrl, group, LPI_GPIO_VALUE_REG, &io_val);
>   
>   		if (io_val & LPI_GPIO_VALUE_IN_MASK) {
>   			if (!(io_val & LPI_GPIO_VALUE_OUT_MASK))
> -				__lpi_gpio_write(pctrl, group,
> -						 LPI_GPIO_VALUE_REG,
> -						 io_val | LPI_GPIO_VALUE_OUT_MASK);
> +				lpi_gpio_write_reg(pctrl, group,
> +						   LPI_GPIO_VALUE_REG,
> +						   io_val | LPI_GPIO_VALUE_OUT_MASK);
>   		} else {
>   			if (io_val & LPI_GPIO_VALUE_OUT_MASK)
> -				__lpi_gpio_write(pctrl, group,
> -						 LPI_GPIO_VALUE_REG,
> -						 io_val & ~LPI_GPIO_VALUE_OUT_MASK);
> +				lpi_gpio_write_reg(pctrl, group,
> +						   LPI_GPIO_VALUE_REG,
> +						   io_val & ~LPI_GPIO_VALUE_OUT_MASK);
>   		}
>   	}
>   
>   	u32p_replace_bits(&val, i, LPI_GPIO_FUNCTION_MASK);
> -	__lpi_gpio_write(pctrl, pin, LPI_GPIO_CFG_REG, val);
> +	lpi_gpio_write_reg(pctrl, pin, LPI_GPIO_CFG_REG, val);
>   
>   	return pm_runtime_put_autosuspend(pctrl->dev);
>   }
> @@ -337,17 +323,17 @@ static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group,
>   	guard(mutex)(&pctrl->lock);
>   	if (output_enabled) {
>   		val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK);
> -		__lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val);
> +		lpi_gpio_write_reg(pctrl, group, LPI_GPIO_VALUE_REG, val);
>   	}
>   
> -	__lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG, &val);
> +	lpi_gpio_read_reg(pctrl, group, LPI_GPIO_CFG_REG, &val);
>   
>   	u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK);
>   	u32p_replace_bits(&val, LPI_GPIO_DS_TO_VAL(strength),
>   			  LPI_GPIO_OUT_STRENGTH_MASK);
>   	u32p_replace_bits(&val, output_enabled, LPI_GPIO_OE_MASK);
>   
> -	__lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val);
> +	lpi_gpio_write_reg(pctrl, group, LPI_GPIO_CFG_REG, val);
>   
>   	return pm_runtime_put_autosuspend(pctrl->dev);
>   }


  reply	other threads:[~2026-06-10 18:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-10 18:00 Ajay Kumar Nandam
2026-06-10 18:08 ` Ajay Kumar Nandam [this message]
2026-06-10 20:39   ` Linus Walleij
2026-06-10 20:38 ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=93a55513-b09c-47a6-bd3b-cfed25ca7a70@oss.qualcomm.com \
    --to=ajay.nandam@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nathan@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®