realtek: 6.6: MDIO post fixes
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Sat, 14 Sep 2024 20:39:12 +0000 (16:39 -0400)
committerRobert Marko <robimarko@gmail.com>
Mon, 16 Sep 2024 08:33:28 +0000 (10:33 +0200)
commit93881ec190c2d0f9d974d19c0f328637c0cc170a
tree4c840db4d79759c7a7619c3966ce64bf3ce91fdf
parent35e13244aab36958831195a1d2e152aa3ad0ab6c
realtek: 6.6: MDIO post fixes

Merging of the realtek 6.6 series forgot to include some final fixes
for the new MDIO driver. What was changed in last second?

1. The MDIO driver used wrong constants to make use of the raw
page (for direct register access). Provide a rawpage variable in
the bus private structure, populate it during initialization and
make use of it at the proper places

2. We always used the variable portaddr for the bus index. Usually
our driver uses either addr or port for the same meaning. Remove the
duplication and reuse the normal addr variable.

3. Drop functions rtmdio_write_page() and rtmdio_read_page(). These
only call the PHY driver read/write page functions. We know that
these will only access page 0x1f. As we have only Realtek PHYs
and our driver only reacts to this special page, just hardcode it.
Benefit is that we can use these functions for PHY detection when
read/write page functions are not yet assigned.

4. Add two new helper functions phy_port_read_paged() and
phy_port_write_paged(). These allow to access arbitrary ports on
the MDIO bus when the packages are not initialized. These will be
needed for proper RTL8218B and RTL8214FC detection in forthcoming
patches.

5. The port tracking wrongly used index 0 to mark "normal" access.
This does not allow to make a "special" access to port 0. Use
index -1 to mark "normal" access.

Provide the fix for 5.15 and 6.6 to allow for easy version
comparison.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16391
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.c
target/linux/realtek/files-5.15/drivers/net/ethernet/rtl838x_eth.h
target/linux/realtek/files-5.15/drivers/net/phy/rtl83xx-phy.c
target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.c
target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.h
target/linux/realtek/files-6.6/drivers/net/phy/rtl83xx-phy.c