[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230405-net-next-topic-net-phy-reset-v1-0-7e5329f08002@pengutronix.de>
Date: Wed, 05 Apr 2023 11:26:51 +0200
From: Marco Felsch <m.felsch@...gutronix.de>
To: Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Florian Fainelli <f.fainelli@...il.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@...adcom.com>,
Richard Cochran <richardcochran@...il.com>,
Radu Pirea <radu-nicolae.pirea@....nxp.com>,
Shyam Sundar S K <Shyam-sundar.S-k@....com>,
Yisen Zhuang <yisen.zhuang@...wei.com>,
Salil Mehta <salil.mehta@...wei.com>,
Jassi Brar <jaswinder.singh@...aro.org>,
Ilias Apalodimas <ilias.apalodimas@...aro.org>,
Iyappan Subramanian <iyappan@...amperecomputing.com>,
Keyur Chudgar <keyur@...amperecomputing.com>,
Quan Nguyen <quan@...amperecomputing.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Len Brown <lenb@...nel.org>, Rob Herring <robh+dt@...nel.org>,
Frank Rowand <frowand.list@...il.com>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org, devicetree@...r.kernel.org,
kernel@...gutronix.de
Subject: [PATCH 00/12] Rework PHY reset handling
The current phy reset handling is broken in a way that it needs
pre-running firmware to setup the phy initially. Since the very first
step is to readout the PHYID1/2 registers before doing anything else.
The whole dection logic will fall apart if the pre-running firmware
don't setup the phy accordingly or the kernel boot resets GPIOs states
or disables clocks. In such cases the PHYID1/2 read access will fail and
so the whole detection will fail.
I fixed this via this series, the fix will include a new kernel API
called phy_device_atomic_register() which will do all necessary things
and return a 'struct phy_device' on success. So setting up a phy and the
phy state machine is more convenient.
I tested the series on a i.MX8MP-EVK and a custom board which have a
TJA1102 dual-port ethernet phy. Other testers are welcome :)
Regards,
Marco
Signed-off-by: Marco Felsch <m.felsch@...gutronix.de>
---
Marco Felsch (12):
net: phy: refactor phy_device_create function
net: phy: refactor get_phy_device function
net: phy: add phy_device_set_miits helper
net: phy: unify get_phy_device and phy_device_create parameter list
net: phy: add phy_id_broken support
net: phy: add phy_device_atomic_register helper
net: mdio: make use of phy_device_atomic_register helper
net: phy: add possibility to specify mdio device parent
net: phy: nxp-tja11xx: make use of phy_device_atomic_register()
of: mdio: remove now unused of_mdiobus_phy_device_register()
net: mdiobus: remove now unused fwnode helpers
net: phy: add default gpio assert/deassert delay
Documentation/firmware-guide/acpi/dsd/phy.rst | 2 +-
MAINTAINERS | 1 -
drivers/net/ethernet/adi/adin1110.c | 6 +-
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 8 +-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 11 +-
drivers/net/ethernet/socionext/netsec.c | 7 +-
drivers/net/mdio/Kconfig | 7 -
drivers/net/mdio/Makefile | 1 -
drivers/net/mdio/acpi_mdio.c | 20 +-
drivers/net/mdio/fwnode_mdio.c | 183 ------------
drivers/net/mdio/mdio-xgene.c | 6 +-
drivers/net/mdio/of_mdio.c | 23 +-
drivers/net/phy/bcm-phy-ptp.c | 2 +-
drivers/net/phy/dp83640.c | 2 +-
drivers/net/phy/fixed_phy.c | 6 +-
drivers/net/phy/mdio_bus.c | 7 +-
drivers/net/phy/micrel.c | 2 +-
drivers/net/phy/mscc/mscc_ptp.c | 2 +-
drivers/net/phy/nxp-c45-tja11xx.c | 2 +-
drivers/net/phy/nxp-tja11xx.c | 47 ++-
drivers/net/phy/phy_device.c | 348 +++++++++++++++++++---
drivers/net/phy/sfp.c | 7 +-
include/linux/fwnode_mdio.h | 35 ---
include/linux/of_mdio.h | 8 -
include/linux/phy.h | 46 ++-
25 files changed, 442 insertions(+), 347 deletions(-)
---
base-commit: 054fbf7ff8143d35ca7d3bb5414bb44ee1574194
change-id: 20230405-net-next-topic-net-phy-reset-4f79ff7df4a0
Best regards,
--
Marco Felsch <m.felsch@...gutronix.de>
Powered by blists - more mailing lists