RE: [PATCH v3 2/2] i2c: Add Renesas RZ/V2M controller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andy,

On 03 July 2022 16:17 Andy Shevchenko wrote:
> On Sun, Jul 03, 2022 at 10:41:45AM +0200, Geert Uytterhoeven wrote:
> > On Sat, Jul 2, 2022 at 1:51 PM Andy Shevchenko
> > <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > > On Fri, Jul 01, 2022 at 05:39:16PM +0100, Phil Edworthy wrote:
> > > > Yet another i2c controller from Renesas that is found on the RZ/V2M
> > > > (r9a09g011) SoC. It can support only 100kHz and 400KHz operation.
> 
> ...
All other suggested changes are ok.


> > > > +     pm_runtime_get_sync(dev);
> >
> > pm_runtime_resume_and_get() ;-)
> 
> This makes sense only if we test for error. Otherwise the put might
> imbalance
> counter.
I added code to check the return value and to my surprise it returned
-EACCES.
Some digging later, this only happens when I have an i2c controller
enabled that doesn't have any children.

rpm_resume() returns -EACCES [1] because runtime_status and last_status
are set to RPM_SUSPENDED.

The i2c controller that does have a child has runtime_status = RPM_ACTIVE
as there is a call to pm_runtime_resume_and_get() on it due to the i2c
controller performing an i2c transfer for the slave device.

I am currently struggling to work out why this is happening...

Thanks
Phil

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/base/power/runtime.c?h=v5.19-rc5#n773





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux