Messages in this thread | | | Date | Tue, 29 Aug 2023 15:00:34 -0700 | Subject | Re: [PATCH 2/2] net: dsa: microchip: Provide Module 4 KSZ9477 errata (DS80000754C) | From | Florian Fainelli <> |
| |
On 8/29/23 14:57, Tristram.Ha@microchip.com wrote: >> On Fri, Aug 25, 2023 at 06:48:41PM +0000, Tristram.Ha@microchip.com wrote: >>>>> IMHO adding functions to MMD modification would facilitate further >>>>> development (for example LED setup). >>>> >>>> We already have some KSZ9477 specific initialization done in the Micrel >>>> PHY driver under drivers/net/phy/micrel.c, can we converge on the PHY >>>> driver which has a reasonable amount of infrastructure for dealing with >>>> workarounds, indirect or direct MMD accesses etc.? >>> >>> Actually the internal PHY used in the KSZ9897/KSZ9477/KSZ9893 switches >>> are special and only used inside those switches. Putting all the switch >>> related code in Micrel PHY driver does not really help. When the switch >>> is reset all those PHY registers need to be set again, but the PHY driver >>> only executes those code during PHY initialization. I do not know if >>> there is a good way to tell the PHY to re-initialize again. >> >> Suppose there was a method to tell the PHY driver to re-initialize itself. >> What would be the key points in which the DSA switch driver would need >> to trigger that method? Where is the switch reset at runtime? > > Currently the DSA switch driver loads independently and is then > controlled by the main DSA driver. The switch is reset during > initialization, and later the PHYs are initialized. I was talking > hypothetically that the switch may need to be reset to correct some > hardware problems, but then there may be no good way to tell the PHYs to > re-initialize.
There is phy_init_hw() which will do just that. -- Florian
| |