Skip to content

Commit d98c8cc

Browse files
hkallweitdavem330
authored andcommitted
phy: realtek: use new helpers for paged register access
Make use of the new helpers for paged register access. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ccc27fc commit d98c8cc

File tree

1 file changed

+14
-45
lines changed

1 file changed

+14
-45
lines changed

drivers/net/phy/realtek.c

Lines changed: 14 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -41,37 +41,14 @@ MODULE_DESCRIPTION("Realtek PHY driver");
4141
MODULE_AUTHOR("Johnson Leung");
4242
MODULE_LICENSE("GPL");
4343

44-
static int rtl8211x_page_read(struct phy_device *phydev, u16 page, u16 address)
44+
static int rtl821x_read_page(struct phy_device *phydev)
4545
{
46-
int ret;
47-
48-
ret = phy_write(phydev, RTL821x_PAGE_SELECT, page);
49-
if (ret)
50-
return ret;
51-
52-
ret = phy_read(phydev, address);
53-
54-
/* restore to default page 0 */
55-
phy_write(phydev, RTL821x_PAGE_SELECT, 0x0);
56-
57-
return ret;
46+
return __phy_read(phydev, RTL821x_PAGE_SELECT);
5847
}
5948

60-
static int rtl8211x_page_write(struct phy_device *phydev, u16 page,
61-
u16 address, u16 val)
49+
static int rtl821x_write_page(struct phy_device *phydev, int page)
6250
{
63-
int ret;
64-
65-
ret = phy_write(phydev, RTL821x_PAGE_SELECT, page);
66-
if (ret)
67-
return ret;
68-
69-
ret = phy_write(phydev, address, val);
70-
71-
/* restore to default page 0 */
72-
phy_write(phydev, RTL821x_PAGE_SELECT, 0x0);
73-
74-
return ret;
51+
return __phy_write(phydev, RTL821x_PAGE_SELECT, page);
7552
}
7653

7754
static int rtl8201_ack_interrupt(struct phy_device *phydev)
@@ -96,7 +73,7 @@ static int rtl8211f_ack_interrupt(struct phy_device *phydev)
9673
{
9774
int err;
9875

99-
err = rtl8211x_page_read(phydev, 0xa43, RTL8211F_INSR);
76+
err = phy_read_paged(phydev, 0xa43, RTL8211F_INSR);
10077

10178
return (err < 0) ? err : 0;
10279
}
@@ -110,7 +87,7 @@ static int rtl8201_config_intr(struct phy_device *phydev)
11087
else
11188
val = 0;
11289

113-
return rtl8211x_page_write(phydev, 0x7, RTL8201F_IER, val);
90+
return phy_write_paged(phydev, 0x7, RTL8201F_IER, val);
11491
}
11592

11693
static int rtl8211b_config_intr(struct phy_device *phydev)
@@ -148,36 +125,24 @@ static int rtl8211f_config_intr(struct phy_device *phydev)
148125
else
149126
val = 0;
150127

151-
return rtl8211x_page_write(phydev, 0xa42, RTL821x_INER, val);
128+
return phy_write_paged(phydev, 0xa42, RTL821x_INER, val);
152129
}
153130

154131
static int rtl8211f_config_init(struct phy_device *phydev)
155132
{
156133
int ret;
157-
u16 val;
134+
u16 val = 0;
158135

159136
ret = genphy_config_init(phydev);
160137
if (ret < 0)
161138
return ret;
162139

163-
ret = rtl8211x_page_read(phydev, 0xd08, 0x11);
164-
if (ret < 0)
165-
return ret;
166-
167-
val = ret & 0xffff;
168-
169140
/* enable TX-delay for rgmii-id and rgmii-txid, otherwise disable it */
170141
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID ||
171142
phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
172-
val |= RTL8211F_TX_DELAY;
173-
else
174-
val &= ~RTL8211F_TX_DELAY;
175-
176-
ret = rtl8211x_page_write(phydev, 0xd08, 0x11, val);
177-
if (ret)
178-
return ret;
143+
val = RTL8211F_TX_DELAY;
179144

180-
return 0;
145+
return phy_modify_paged(phydev, 0xd08, 0x11, RTL8211F_TX_DELAY, val);
181146
}
182147

183148
static struct phy_driver realtek_drvs[] = {
@@ -197,6 +162,8 @@ static struct phy_driver realtek_drvs[] = {
197162
.config_intr = &rtl8201_config_intr,
198163
.suspend = genphy_suspend,
199164
.resume = genphy_resume,
165+
.read_page = rtl821x_read_page,
166+
.write_page = rtl821x_write_page,
200167
}, {
201168
.phy_id = 0x001cc912,
202169
.name = "RTL8211B Gigabit Ethernet",
@@ -236,6 +203,8 @@ static struct phy_driver realtek_drvs[] = {
236203
.config_intr = &rtl8211f_config_intr,
237204
.suspend = genphy_suspend,
238205
.resume = genphy_resume,
206+
.read_page = rtl821x_read_page,
207+
.write_page = rtl821x_write_page,
239208
},
240209
};
241210

0 commit comments

Comments
 (0)