Messages in this thread | | | Date | Fri, 12 Aug 2022 10:06:05 +0530 | Subject | Re: [PATCH v2 net-next] net: ethernet: ti: davinci_mdio: Add workaround for errata i2329 | From | Ravi Gunasekaran <> |
| |
>> There is atleast one device sh_eth, which is not configured for autosuspend >> but uses the bit bang core in sh_mdiobb_read() and invokes regular runtime >> PM functions. > > And that is the point of moving it into the core. It would of just > worked for you. > > If you don't feel comfortable with making this unconditional, please > put runtime pm enabled version of mdiobb_read/mdiobb_write() in the > core and swap sh_eth and any other drivers to using them. >
sh_eth is not configured for autosuspend and uses only pm_runtime_put(). davinci_mdio is configured for autosuspend and it must invoke pm_runtime_mark_last_busy() before calling pm_runtime_put_autosuspend(). So it looks like, there needs to be a runtime PM version of mdiobb_read/mdiobb_write() for each pm_runtime_put_*(). As of now, it's only sh_eth which is currently using runtime PM and davinci_mdio would be the next one. So at least in this case, two variants of mdiobb_read/mdiobb_write() could be added at the moment. By checking against the dev->power.use_autosuspend flag, it is possible to support both via a single version.
That being said, I'm quite inclined towards the existing implementation, where drivers can have wrappers written around mdiobb_read/mdiobb_write(). But I might be failing to see the broader picture. If having multiple runtime PM versions of mdiobb_read/mdiobb_write() benefits many other future drivers, then I will go ahead and add the variant(s) in the bitbang core.
Please provide your views on this. Your inputs on the next course of action would be helpful.
-- Regards, Ravi
| |