RE: [PATCH] can: flexcan: Implement CAN Runtime PM

From: Aisheng DONG
Date: Tue Nov 27 2018 - 03:07:53 EST


> -----Original Message-----
> From: Marc Kleine-Budde [mailto:mkl@xxxxxxxxxxxxxx]
> Sent: Tuesday, November 27, 2018 3:52 PM
> To: Joakim Zhang <qiangqing.zhang@xxxxxxx>; wg@xxxxxxxxxxxxxx;
> davem@xxxxxxxxxxxxx
> Cc: linux-can@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; Aisheng
> DONG <aisheng.dong@xxxxxxx>
> Subject: Re: [PATCH] can: flexcan: Implement CAN Runtime PM
>
> On 11/27/18 8:44 AM, Joakim Zhang wrote:
> >>> Flexcan will be disabled during suspend if no wakeup function
> >>> required and enabled after resume accordingly. During this period,
> >>> we could explicitly disable clocks.
> >>>
> >>> Implement Runtime PM which will:
> >>> 1) Keep device in suspend state (clocks disabled) if it's not
> >>> openned
> >>> 2) Make Power Domain framework be able to shutdown the corresponding
> >>> power domain of this device.
> >>
> >> Without CONFIG_PM the device fails to probe:
> >>
> >>> [ 214.420606] flexcan 2090000.flexcan: 2090000.flexcan supply
> >>> xceiver not found, using dummy regulator [ 214.445952] flexcan
> >>> 2090000.flexcan: Linked as a consumer to regulator.0 [ 214.453448]
> >>> flexcan 2090000.flexcan: registering netdev failed [ 214.459666]
> >>> flexcan 2090000.flexcan: Dropping the link to regulator.0 [
> >>> 214.472066] flexcan: probe of 2090000.flexcan failed with error -110
>
> > I would sent V2 rebased on patch "can: flexcan: add self wakeup
> > support", and runtime pm works normally on MX6SX-SDB and MX7D-SDB.
> > So, could you tell me which board you tested on that causes the device
> > probe failed?
>
> I tested on an imx6dl riotboard
> (https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Felixir.
> bootlin.com%2Flinux%2Flatest%2Fsource%2Farch%2Farm%2Fboot%2Fdts%2Fi
> mx6dl-riotboard.dts&amp;data=02%7C01%7Caisheng.dong%40nxp.com%7C8
> 4cfd3f3a08b4c7953fd08d6543d42c1%7C686ea1d3bc2b4c6fa92cd99c5c3016
> 35%7C0%7C0%7C636789019420569534&amp;sdata=rugKpmVaNn0ajTdctyi%
> 2F%2Bnwr%2FqqIBcikAP7eXLp6fcA%3D&amp;reserved=0
> + patches to enable CAN1) with an external PHY.
>
> > And that CONFIG_PM has set in imx_v6_v7_defconfig which config file I
> used.
>
> I disabled CONFIG_PM on purpose.

Joakim,
You need run the same test as Marc.

I guess It might because without CONFIG_PM, Runtime PM API
Simply return positive but the clock may still not enabled, thus cause
a CAN enable timeout.

You can check it.

Regards
Dong Aisheng

>
> Marc
>
> --
> Pengutronix e.K. | Marc Kleine-Budde |
> Industrial Linux Solutions | Phone: +49-231-2826-924 |
> Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686 |
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> pengutronix.de&amp;data=02%7C01%7Caisheng.dong%40nxp.com%7C84cfd3
> f3a08b4c7953fd08d6543d42c1%7C686ea1d3bc2b4c6fa92cd99c5c301635%7
> C0%7C0%7C636789019420569534&amp;sdata=Us6cO9QfYkw%2B6Nhj68zLr
> wrNxUCRjcC0WDdmr9MOzHM%3D&amp;reserved=0 |