Re: [PATCH 1/2] i2c: synquacer: Fix an error handling path in synquacer_i2c_probe()

From: Ard Biesheuvel
Date: Thu Sep 12 2024 - 06:23:17 EST


On Mon, 6 May 2024 at 11:03, Andi Shyti <andi.shyti@xxxxxxxxxx> wrote:
>
> Hi Christophe,
>
> On Sat, Jan 06, 2024 at 01:48:24PM +0100, Christophe JAILLET wrote:
> > If an error occurs after the clk_prepare_enable() call, it should be undone
> > by a corresponding clk_disable_unprepare() call, as already done in the
> > remove() function.
> >
> > As devm_clk_get() is used, we can switch to devm_clk_get_enabled() to
> > handle it automatically and fix the probe.
> >
> > Update the remove() function accordingly and remove the now useless
> > clk_disable_unprepare() call.
> >
> > Fixes: 0d676a6c4390 ("i2c: add support for Socionext SynQuacer I2C controller")
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
>
> Applied to i2c/i2c-host-fixes.
>

These patches should be reverted: ACPI boot on SynQuacer based systems
now fails with

[ 6.206022] synquacer_i2c SCX0003:00: error -ENOENT: failed to get
and enable clock
[ 6.235762] synquacer_i2c SCX0003:00: probe with driver
synquacer_i2c failed with error -2

as in this case, there is no clock to enable, and the clock rate is
specified in the PRP0001 device node.