On Thu, Sep 12, 2024 at 1:23 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > On Mon, 6 May 2024 at 11:03, Andi Shyti <andi.shyti@xxxxxxxxxx> wrote: > > 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. Wouldn't simply moving to _optional fix the issue? -- With Best Regards, Andy Shevchenko