Message ID | 20241213175828.909987-3-prabhakar.mahadev-lad.rj@bp.renesas.com |
---|---|
State | Superseded |
Headers | show |
Series | Add support for I2C bus recovery for riic driver | expand |
On Fri, Dec 13, 2024 at 6:58 PM Prabhakar <prabhakar.csengg@gmail.com> wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Update the `riic_init_hw()` function to use the local `dev` pointer in > calls to `dev_err_probe()`. Previously, `riic_init_hw()` used > `riic->adapter.dev` in error reporting. Since this function is invoked > during the probe phase, the I2C adapter is not yet initialized, leading to > `(null) ...` being printed in error messages. This patch fixes the issue by > consistently using the local `dev` pointer, which points to > `riic->adapter.dev.parent`. > > Additionally, replace `dev_err()` with `dev_err_probe()` throughout > `riic_init_hw()` for consistency. > > Fixes: d982d66514192 ("i2c: riic: remove clock and frequency restrictions") > Fixes: 71dacb2565ed (i2c: riic: Simplify unsupported bus speed handling") > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert
diff --git a/drivers/i2c/busses/i2c-riic.c b/drivers/i2c/busses/i2c-riic.c index 7ab32aeead4b..d01bb52d86ed 100644 --- a/drivers/i2c/busses/i2c-riic.c +++ b/drivers/i2c/busses/i2c-riic.c @@ -320,7 +320,7 @@ static int riic_init_hw(struct riic_dev *riic) : I2C_MAX_FAST_MODE_FREQ; if (t->bus_freq_hz > max_freq) - return dev_err_probe(&riic->adapter.dev, -EINVAL, + return dev_err_probe(dev, -EINVAL, "unsupported bus speed %uHz (%u max)\n", t->bus_freq_hz, max_freq); @@ -356,11 +356,9 @@ static int riic_init_hw(struct riic_dev *riic) rate /= 2; } - if (brl > (0x1F + 3)) { - dev_err(&riic->adapter.dev, "invalid speed (%lu). Too slow.\n", - (unsigned long)t->bus_freq_hz); - return -EINVAL; - } + if (brl > (0x1F + 3)) + return dev_err_probe(dev, -EINVAL, "invalid speed (%lu). Too slow.\n", + (unsigned long)t->bus_freq_hz); brh = total_ticks - brl;