Re: [PATCH v3] i2c: lpi2c: cache peripheral clock rate

From: Alexander Stein
Date: Tue May 02 2023 - 02:50:33 EST


Hello Wolfgang,

Am Sonntag, 30. April 2023, 09:05:55 CEST schrieb Wolfram Sang:
> * PGP Signed by an unknown key
>
> > > IIRC this is a general problem^w limitation of the clock framework,
> > > clock providers cannot use clocks themselves in certain callback, e.g.
> > > set_rate.
> >
> > Well, that's essentially impossible when this clock provider is attached
> > via i2c. i2c transfers potentially need to change or prepare clocks.
>
> So, as I get it, this is not a specific lpi2c problem but affecting any
> I2C controller driver which uses get_rate() to setup a transfer to a
> remote I2C clock provider? And this lockdep warning is a false-positive?

Yes, IMHO this could potentially occur on every I2C controller driver, if a
clock provider while holding the clk_prepare_lock, e.g. during registration,
issues an i2c transfer.
I'm not so sure if this is a false-positive, but more like trying to do a
nested lock.

Best regards
Alexander
--
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/