Messages in this thread | | | Date | Fri, 3 Nov 2023 13:13:55 +0100 | From | Andrew Lunn <> | Subject | Re: [PATCH] net: phy: broadcom: Wire suspend/resume for BCM54612E |
| |
On Fri, Nov 03, 2023 at 02:47:38AM +0100, Marco von Rosenberg wrote: > On Wednesday, November 1, 2023 11:06:56 PM CET Andrew Lunn wrote: > > On Wed, Nov 01, 2023 at 10:42:52PM +0100, Marco von Rosenberg wrote: > > > On Tuesday, October 31, 2023 1:31:11 AM CET Andrew Lunn wrote: > > > > Are we talking about a device which as been suspended? The PHY has > > > > been left running because there is no suspend callback? Something then > > > > triggers a resume. The bootloader then suspends the active PHY? Linux > > > > then boots, detects its a resume, so does not touch the hardware > > > > because there is no resume callback? The suspended PHY is then > > > > useless. > > > > > > Hi Andrew, > > > > > > thanks for your feedback. I guess a bit of context is missing here. The > > > issue has nothing to do with an ordinary suspension of the OS. The main > > > point is that on initial power-up, the bootloader suspends the PHY before > > > booting Linux. With a resume callback defined, Linux would call it on > > > boot and make the PHY usable. > > > > Ah, so you rely on phy_attach_direct() calling phy_resume(phydev). > > > > This seems an odd way to solve the problem. It was not Linux which > > suspend the PHY, so using resume is asymmetric. > > > > I think soft_reset() or config_init() should be taking the PHY out of > > suspend. > > I agree with all of your points. This is just one way which happens to solve > this specific problem. Of course it might be asymmetric to see the patch as > a solution to my problem. However is there anything fundamentally wrong with > adding suspend/resume callbacks?
No, there is nothing wrong with that at all, if you want to support suspend/resume. I do however see that as a different use case to what you describe as your problem. It fixing your problem is more of a side effect.
We can go with this fix, but please change your justification in the commit message. Also, its unlikely, but resume could be made conditional in phy_attach_direct(), and you would then be back to a broken PHY on boot. Fixing this in config_init() is the correct way for your use case.
Andrew
| |