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@xxxxxxxxxx> >>> --- >> 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