si3474_i2c_probe() reports a failed devm_pse_controller_register() with dev_err() and returns the error. That is fine as long as registration only fails for real, but a follow-up change makes it return -EPROBE_DEFER while a PI's vpwr supply provider has not registered yet. skyworks,si3474.yaml puts vpwr-supply in the pse-pi nodes. A supply named from a child node only gives the controller a SYNC_STATE_ONLY proxy link in fw_devlink, which does not hold its probe back, so si3474 can probe before that regulator and would then log an error on every deferred probe retry until it appears. Use dev_err_probe(), which stays quiet for -EPROBE_DEFER and records the reason for devices_deferred instead, and prints the error symbolically rather than as a raw hex value. Signed-off-by: Carlo Szelinsky --- drivers/net/pse-pd/si3474.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/net/pse-pd/si3474.c b/drivers/net/pse-pd/si3474.c index 1845b9c51cf7..91800f39971f 100644 --- a/drivers/net/pse-pd/si3474.c +++ b/drivers/net/pse-pd/si3474.c @@ -541,10 +541,9 @@ static int si3474_i2c_probe(struct i2c_client *client) priv->pcdev.nr_lines = SI3474_MAX_CHANS; ret = devm_pse_controller_register(dev, &priv->pcdev); - if (ret) { - dev_err(dev, "Failed to register PSE controller: 0x%x\n", ret); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, + "Failed to register PSE controller\n"); return 0; } -- 2.43.0