diff options
| author | Markus Stockhausen | 2026-02-10 18:49:44 +0000 |
|---|---|---|
| committer | Robert Marko | 2026-02-13 11:53:46 +0000 |
| commit | df939b3316167b74b07a92816b641b67d7ecea75 (patch) | |
| tree | 0ca1c5ab695017bd22249a0bd7fcce9120ab6696 | |
| parent | c092ca445a9a8ad1d21fb79a5c3974cb3455654a (diff) | |
| download | openwrt-df939b3316167b74b07a92816b641b67d7ecea75.tar.gz | |
realtek: mdio: prevent WARN_ONCE() during bus scan
The mdio bus detection will be changed from DTS based detection to
autoscan. To avoid spurious WARN_ONCE() messages return -EIO for
reads to register 2 during C22 scan when phy is on a c45 based bus.
The C45 rescan afterwards will detect the phy normally.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21968
Signed-off-by: Robert Marko <robimarko@gmail.com>
| -rw-r--r-- | target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c index 2387b91994..e846c00b60 100644 --- a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c +++ b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c @@ -504,6 +504,10 @@ static int rtmdio_read(struct mii_bus *bus, int addr, int regnum) if (addr >= ctrl->cfg->cpu_port) return -ENODEV; + /* prevent WARN_ONCE() during scan */ + if (ctrl->smi_bus[addr] >=0 && ctrl->smi_bus_isc45[ctrl->smi_bus[addr]] && regnum == 2) + return -EIO; + if (regnum == RTMDIO_PAGE_SELECT && ctrl->page[addr] != ctrl->cfg->raw_page) return ctrl->page[addr]; |