diff mbox series

pinctrl: qcom-pmic-gpio: silence -EPROBE_DEFER message on probe

Message ID 20230817145941.1091418-1-bmasney@redhat.com
State New
Headers show
Series pinctrl: qcom-pmic-gpio: silence -EPROBE_DEFER message on probe | expand

Commit Message

Brian Masney Aug. 17, 2023, 2:59 p.m. UTC
The following message shows up one or more times when booting a Qualcomm
SA8775 Development board:

    qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: can't add gpio chip

Convert this over to use dev_err_probe() to silence this message.

Signed-off-by: Brian Masney <bmasney@redhat.com>
---
 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Konrad Dybcio Aug. 17, 2023, 3:01 p.m. UTC | #1
On 17.08.2023 16:59, Brian Masney wrote:
> The following message shows up one or more times when booting a Qualcomm
> SA8775 Development board:
> 
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: can't add gpio chip
> 
> Convert this over to use dev_err_probe() to silence this message.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> ---
That looks odd, why would it ever defer?

SPMI should be up by the time it gets a chance to probe.

Konrad
Krzysztof Kozlowski Aug. 18, 2023, 1:51 p.m. UTC | #2
On 17/08/2023 18:26, Brian Masney wrote:
> On Thu, Aug 17, 2023 at 05:01:19PM +0200, Konrad Dybcio wrote:
>> On 17.08.2023 16:59, Brian Masney wrote:
>>> The following message shows up one or more times when booting a Qualcomm
>>> SA8775 Development board:
>>>
>>>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: can't add gpio chip
>>>
>>> Convert this over to use dev_err_probe() to silence this message.
>>>
>>> Signed-off-by: Brian Masney <bmasney@redhat.com>
>>> ---
>> That looks odd, why would it ever defer?
>>
>> SPMI should be up by the time it gets a chance to probe.
> 
> You replied within the same minute of me posting that patch, which is
> the fastest review I've had to date on an upstream kernel list. Before
> we continue, please verify:
> 
>               [ ] I am not a robot
> 
> :)
> 
> So SPMI is up and probes normally the first time, and is up by time this
> driver probes. I think the probe deferral is happening somewhere in
> pinctrl, however I am not sure exactly where. I added some tracers to
> the kernel command line and here's some relevant log messages:
> 
>     device: 'c440000.spmi:pmic@2:gpio@8800': device_add
>     bus: 'platform': add device c440000.spmi:pmic@2:gpio@8800
>     PM: Adding info for platform:c440000.spmi:pmic@2:gpio@8800
>     bus: 'platform': __driver_probe_device: matched device c440000.spmi:pmic@2:gpio@8800 with driver qcom-spmi-gpio
>     bus: 'platform': really_probe: probing driver qcom-spmi-gpio with device c440000.spmi:pmic@2:gpio@8800
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: no pinctrl handle
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: try to register 12 pins ...
>     pinctrl core: registered pin 0 (gpio1) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 1 (gpio2) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 2 (gpio3) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 3 (gpio4) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 4 (gpio5) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 5 (gpio6) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 6 (gpio7) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 7 (gpio8) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 8 (gpio9) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 9 (gpio10) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 10 (gpio11) on c440000.spmi:pmic@2:gpio@8800
>     pinctrl core: registered pin 11 (gpio12) on c440000.spmi:pmic@2:gpio@8800
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: no hogs found
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: error -EPROBE_DEFER: can't add gpio chip
>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: Driver qcom-spmi-gpio requests probe deferral
>     platform c440000.spmi:pmic@2:gpio@8800: Added to deferred list
> 
> The second time it probes the device is successfully added.

There is a bug in DTS. I'll send a patch.

Best regards,
Krzysztof
Krzysztof Kozlowski Aug. 18, 2023, 1:59 p.m. UTC | #3
On 18/08/2023 15:51, Krzysztof Kozlowski wrote:
>>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: no hogs found
>>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: error -EPROBE_DEFER: can't add gpio chip
>>     qcom-spmi-gpio c440000.spmi:pmic@2:gpio@8800: Driver qcom-spmi-gpio requests probe deferral
>>     platform c440000.spmi:pmic@2:gpio@8800: Added to deferred list
>>
>> The second time it probes the device is successfully added.
> 
> There is a bug in DTS. I'll send a patch.

https://lore.kernel.org/linux-arm-msm/20230818135538.47481-1-krzysztof.kozlowski@linaro.org/T/#u

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
index deded9c6fd7d..d7576fa14935 100644
--- a/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
+++ b/drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
@@ -1154,10 +1154,8 @@  static int pmic_gpio_probe(struct platform_device *pdev)
 	girq->child_irq_domain_ops.translate = pmic_gpio_domain_translate;
 
 	ret = gpiochip_add_data(&state->chip, state);
-	if (ret) {
-		dev_err(state->dev, "can't add gpio chip\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(state->dev, ret, "can't add gpio chip\n");
 
 	/*
 	 * For DeviceTree-supported systems, the gpio core checks the