1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/phy
Quentin Schulz 6a0bfbbe20 net: phy: mscc: migrate to phy_select/restore_page functions
The Microsemi PHYs have multiple banks of registers (called pages).
Registers can only be accessed from one page, if we need a register from
another page, we need to switch the page and the registers of all other
pages are not accessible anymore.

Basically, to read register 5 from page 0, 1, 2, etc., you do the same
phy_read(phydev, 5); but you need to set the desired page beforehand.

In order to guarantee that two concurrent functions do not change the
page, we need to do some locking per page. This can be achieved with the
use of phy_select_page and phy_restore_page functions but phy_write/read
calls in-between those two functions shall be replaced by their
lock-free alternative __phy_write/read.

Let's migrate this driver to those functions.

Suggested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-10-08 10:29:20 -07:00
..
amd.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
aquantia.c net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
asix.c net-next: phy: new Asix Electronics PHY driver 2018-04-19 16:11:10 -04:00
at803x.c net: phy: Add phydev_warn() 2018-10-01 22:55:35 -07:00
bcm-cygnus.c net: phy: broadcom: Fix bcm_write_exp() 2018-05-23 15:27:01 -04:00
bcm-phy-lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-26 19:46:15 -04:00
bcm-phy-lib.h net: phy: broadcom: Fix bcm_write_exp() 2018-05-23 15:27:01 -04:00
bcm7xxx.c net: phy: Add support for Broadcom Omega internal Combo GPHY 2018-08-07 15:48:38 -07:00
bcm63xx.c net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
bcm87xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
broadcom.c net: phy: broadcom: Enable 125 MHz clock on LED4 pin for BCM54612E by default. 2018-06-05 09:43:09 -04:00
cicada.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
cortina.c net: phy: cortina: Utilize generic functions 2018-03-01 21:23:35 -05:00
davicom.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
dp83tc811.c net: phy: DP83TC811: Fix SGMII enable/disable 2018-07-03 11:38:07 +09:00
dp83640.c net: phy: Add phydev_info() 2018-10-01 22:55:36 -07:00
dp83640_reg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dp83822.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
dp83848.c net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620 2018-06-10 12:38:03 -07:00
dp83867.c net: phy: dp83867: Add binding for the CLK_OUT pin muxing option 2018-02-14 15:33:43 -05:00
et1011c.c net: phy: et011c: Remove incorrect PHY_POLL flags 2018-09-16 15:31:01 -07:00
fixed_phy.c net: phy: fixed-phy: Make the error path simpler 2018-06-24 16:41:58 +09:00
icplus.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
intel-xway.c net: phy: intel-xway: add VR9 v1.1 phy ids 2018-03-23 13:19:49 -04:00
Kconfig net: phy: bcm63xx: Allow to be built with COMPILE_TEST 2018-09-12 20:24:20 -07:00
lxt.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
Makefile net: phy: mscc-miim: Add MDIO driver 2018-05-15 16:41:15 -04:00
marvell.c net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
marvell10g.c net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
mdio-bcm-iproc.c net: phy: Initialize mdio clock at probe function 2017-02-09 17:10:23 -05:00
mdio-bcm-unimac.c net: phy: mdio-bcm-unimac: mark PM functions as __maybe_unused 2018-09-28 10:25:11 -07:00
mdio-bitbang.c net: phy: mdio-bitbang: Remove reset support 2018-04-19 15:59:10 -04:00
mdio-boardinfo.c net: phy: mdio-boardinfo: Allow recursive mdiobus_register() 2018-04-20 10:33:26 -04:00
mdio-boardinfo.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mdio-cavium.c phy: mdio-cavium: Add missing MODULE_* annotations. 2016-03-16 19:55:37 -04:00
mdio-cavium.h phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-gpio.c net: phy: mdio-gpio: Cut surplus includes 2018-06-12 15:23:55 -07:00
mdio-hisi-femac.c net: Add MDIO bus driver for the Hisilicon FEMAC 2016-07-16 21:32:58 -07:00
mdio-i2c.c net: phy: add I2C mdio bus 2017-08-06 20:55:28 -07:00
mdio-i2c.h net: phy: add I2C mdio bus 2017-08-06 20:55:28 -07:00
mdio-moxart.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-mscc-miim.c drivers: net: Remove device_node checks with of_mdiobus_register() 2018-05-16 14:20:36 -04:00
mdio-mux-bcm-iproc.c net: phy: Add pm support to Broadcom iProc mdio mux driver 2018-08-02 14:36:49 -07:00
mdio-mux-gpio.c mdio-mux-gpio: Remove VLA usage 2018-06-26 23:24:07 +09:00
mdio-mux-mmioreg.c net: phy: mdio-mux: slience probe defer error 2018-03-07 12:39:59 -05:00
mdio-mux.c net: mdio-mux: add mdio_mux parameter to mdio_mux_init() 2017-09-05 14:42:52 -07:00
mdio-octeon.c phy: mdio-octeon: Refactor into two files/modules 2016-03-14 15:27:22 -04:00
mdio-sun4i.c mdio-sun4i: Fix a memory leak 2018-01-08 14:30:28 -05:00
mdio-thunder.c net: phy: Convert to using %pOFn instead of device_node.name 2018-10-01 23:29:37 -07:00
mdio-xgene.c net: phy: xgene: disable clk on error paths 2017-12-18 15:09:42 -05:00
mdio-xgene.h drivers: net: phy: xgene: Add lock to protect mac access 2017-05-16 11:41:08 -04:00
mdio_bus.c net: mdio: remove duplicated include from mdio_bus.c 2018-09-17 19:52:44 -07:00
mdio_device.c phylib: rename reset-(post-)delay-us to reset-(de)assert-us 2017-12-27 11:06:50 -05:00
meson-gxl.c net: phy: meson-gxl: join the authors 2017-12-18 13:24:56 -05:00
micrel.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
microchip.c net: phy: Add phydev_warn() 2018-10-01 22:55:35 -07:00
microchip_t1.c net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
mscc.c net: phy: mscc: migrate to phy_select/restore_page functions 2018-10-08 10:29:20 -07:00
national.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
phy-c45.c net: phy: Fix spelling mistake: "advertisment"-> "advertisement" 2018-03-04 18:11:54 -05:00
phy-core.c net: phy: Fix spelling mistake: "advertisment"-> "advertisement" 2018-03-04 18:11:54 -05:00
phy.c net: phy: improve handling delayed work 2018-10-01 23:14:10 -07:00
phy_device.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-03 21:00:17 -07:00
phy_led_triggers.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
phylink.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-10-06 14:43:42 -07:00
qsemi.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
realtek.c net: phy: realtek: Support RTL8366RB variant 2018-07-18 13:43:38 +09:00
rockchip.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
sfp-bus.c sfp: fix oops with ethtool -m 2018-09-18 20:14:19 -07:00
sfp.c net: phy: sfp: Fix unregistering of HWMON SFP device 2018-09-26 20:23:31 -07:00
sfp.h sfp: add sfp-bus to bridge between network devices and sfp cages 2017-08-06 20:55:29 -07:00
smsc.c drivers: net: replace UINT64_MAX with U64_MAX 2018-04-27 20:18:55 -04:00
spi_ks8995.c drivers/net: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
ste10Xp.c net: phy: ste10Xp: Remove wrong SUPPORTED_Pause 2018-09-12 20:24:20 -07:00
swphy.c phy: generate swphy registers on the fly 2016-06-27 10:40:57 -04:00
swphy.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
teranetics.c net: phy: teranetics: Utilize generic functions 2018-03-01 21:23:34 -05:00
uPD60620.c net: phy: remove generic settings for callbacks config_aneg and read_status from drivers 2017-12-01 15:42:21 -05:00
vitesse.c net: phy: vitesse: Add support for VSC73xx 2018-07-04 11:30:02 +09:00
xilinx_gmii2rgmii.c net: phy: xgmiitorgmii: Check read_status results 2018-06-28 16:12:06 +09:00