|
14 | 14 | #define MII_BCM_CHANNEL_WIDTH 0x2000
|
15 | 15 | #define BCM_CL45VEN_EEE_ADV 0x3c
|
16 | 16 |
|
17 |
| -int bcm_phy_write_exp(struct phy_device *phydev, u16 reg, u16 val) |
| 17 | +int __bcm_phy_write_exp(struct phy_device *phydev, u16 reg, u16 val) |
18 | 18 | {
|
19 | 19 | int rc;
|
20 | 20 |
|
21 |
| - rc = phy_write(phydev, MII_BCM54XX_EXP_SEL, reg); |
| 21 | + rc = __phy_write(phydev, MII_BCM54XX_EXP_SEL, reg); |
22 | 22 | if (rc < 0)
|
23 | 23 | return rc;
|
24 | 24 |
|
25 |
| - return phy_write(phydev, MII_BCM54XX_EXP_DATA, val); |
| 25 | + return __phy_write(phydev, MII_BCM54XX_EXP_DATA, val); |
| 26 | +} |
| 27 | +EXPORT_SYMBOL_GPL(__bcm_phy_write_exp); |
| 28 | + |
| 29 | +int bcm_phy_write_exp(struct phy_device *phydev, u16 reg, u16 val) |
| 30 | +{ |
| 31 | + int rc; |
| 32 | + |
| 33 | + phy_lock_mdio_bus(phydev); |
| 34 | + rc = __bcm_phy_write_exp(phydev, reg, val); |
| 35 | + phy_unlock_mdio_bus(phydev); |
| 36 | + |
| 37 | + return rc; |
26 | 38 | }
|
27 | 39 | EXPORT_SYMBOL_GPL(bcm_phy_write_exp);
|
28 | 40 |
|
29 |
| -int bcm_phy_read_exp(struct phy_device *phydev, u16 reg) |
| 41 | +int __bcm_phy_read_exp(struct phy_device *phydev, u16 reg) |
30 | 42 | {
|
31 | 43 | int val;
|
32 | 44 |
|
33 |
| - val = phy_write(phydev, MII_BCM54XX_EXP_SEL, reg); |
| 45 | + val = __phy_write(phydev, MII_BCM54XX_EXP_SEL, reg); |
34 | 46 | if (val < 0)
|
35 | 47 | return val;
|
36 | 48 |
|
37 |
| - val = phy_read(phydev, MII_BCM54XX_EXP_DATA); |
| 49 | + val = __phy_read(phydev, MII_BCM54XX_EXP_DATA); |
38 | 50 |
|
39 | 51 | /* Restore default value. It's O.K. if this write fails. */
|
40 |
| - phy_write(phydev, MII_BCM54XX_EXP_SEL, 0); |
| 52 | + __phy_write(phydev, MII_BCM54XX_EXP_SEL, 0); |
41 | 53 |
|
42 | 54 | return val;
|
43 | 55 | }
|
| 56 | +EXPORT_SYMBOL_GPL(__bcm_phy_read_exp); |
| 57 | + |
| 58 | +int bcm_phy_read_exp(struct phy_device *phydev, u16 reg) |
| 59 | +{ |
| 60 | + int rc; |
| 61 | + |
| 62 | + phy_lock_mdio_bus(phydev); |
| 63 | + rc = __bcm_phy_read_exp(phydev, reg); |
| 64 | + phy_unlock_mdio_bus(phydev); |
| 65 | + |
| 66 | + return rc; |
| 67 | +} |
44 | 68 | EXPORT_SYMBOL_GPL(bcm_phy_read_exp);
|
45 | 69 |
|
46 | 70 | int bcm54xx_auxctl_read(struct phy_device *phydev, u16 regnum)
|
|
0 commit comments