@@ -209,14 +209,6 @@ static int xway_gphy_ack_interrupt(struct phy_device *phydev)
209
209
return (reg < 0 ) ? reg : 0 ;
210
210
}
211
211
212
- static int xway_gphy_did_interrupt (struct phy_device * phydev )
213
- {
214
- int reg ;
215
-
216
- reg = phy_read (phydev , XWAY_MDIO_ISTAT );
217
- return reg & XWAY_MDIO_INIT_MASK ;
218
- }
219
-
220
212
static int xway_gphy_config_intr (struct phy_device * phydev )
221
213
{
222
214
u16 mask = 0 ;
@@ -227,6 +219,24 @@ static int xway_gphy_config_intr(struct phy_device *phydev)
227
219
return phy_write (phydev , XWAY_MDIO_IMASK , mask );
228
220
}
229
221
222
+ static irqreturn_t xway_gphy_handle_interrupt (struct phy_device * phydev )
223
+ {
224
+ int irq_status ;
225
+
226
+ irq_status = phy_read (phydev , XWAY_MDIO_ISTAT );
227
+ if (irq_status < 0 ) {
228
+ phy_error (phydev );
229
+ return IRQ_NONE ;
230
+ }
231
+
232
+ if (!(irq_status & XWAY_MDIO_INIT_MASK ))
233
+ return IRQ_NONE ;
234
+
235
+ phy_trigger_machine (phydev );
236
+
237
+ return IRQ_HANDLED ;
238
+ }
239
+
230
240
static struct phy_driver xway_gphy [] = {
231
241
{
232
242
.phy_id = PHY_ID_PHY11G_1_3 ,
@@ -236,7 +246,7 @@ static struct phy_driver xway_gphy[] = {
236
246
.config_init = xway_gphy_config_init ,
237
247
.config_aneg = xway_gphy14_config_aneg ,
238
248
.ack_interrupt = xway_gphy_ack_interrupt ,
239
- .did_interrupt = xway_gphy_did_interrupt ,
249
+ .handle_interrupt = xway_gphy_handle_interrupt ,
240
250
.config_intr = xway_gphy_config_intr ,
241
251
.suspend = genphy_suspend ,
242
252
.resume = genphy_resume ,
@@ -248,7 +258,7 @@ static struct phy_driver xway_gphy[] = {
248
258
.config_init = xway_gphy_config_init ,
249
259
.config_aneg = xway_gphy14_config_aneg ,
250
260
.ack_interrupt = xway_gphy_ack_interrupt ,
251
- .did_interrupt = xway_gphy_did_interrupt ,
261
+ .handle_interrupt = xway_gphy_handle_interrupt ,
252
262
.config_intr = xway_gphy_config_intr ,
253
263
.suspend = genphy_suspend ,
254
264
.resume = genphy_resume ,
@@ -260,7 +270,7 @@ static struct phy_driver xway_gphy[] = {
260
270
.config_init = xway_gphy_config_init ,
261
271
.config_aneg = xway_gphy14_config_aneg ,
262
272
.ack_interrupt = xway_gphy_ack_interrupt ,
263
- .did_interrupt = xway_gphy_did_interrupt ,
273
+ .handle_interrupt = xway_gphy_handle_interrupt ,
264
274
.config_intr = xway_gphy_config_intr ,
265
275
.suspend = genphy_suspend ,
266
276
.resume = genphy_resume ,
@@ -272,7 +282,7 @@ static struct phy_driver xway_gphy[] = {
272
282
.config_init = xway_gphy_config_init ,
273
283
.config_aneg = xway_gphy14_config_aneg ,
274
284
.ack_interrupt = xway_gphy_ack_interrupt ,
275
- .did_interrupt = xway_gphy_did_interrupt ,
285
+ .handle_interrupt = xway_gphy_handle_interrupt ,
276
286
.config_intr = xway_gphy_config_intr ,
277
287
.suspend = genphy_suspend ,
278
288
.resume = genphy_resume ,
@@ -283,7 +293,7 @@ static struct phy_driver xway_gphy[] = {
283
293
/* PHY_GBIT_FEATURES */
284
294
.config_init = xway_gphy_config_init ,
285
295
.ack_interrupt = xway_gphy_ack_interrupt ,
286
- .did_interrupt = xway_gphy_did_interrupt ,
296
+ .handle_interrupt = xway_gphy_handle_interrupt ,
287
297
.config_intr = xway_gphy_config_intr ,
288
298
.suspend = genphy_suspend ,
289
299
.resume = genphy_resume ,
@@ -294,7 +304,7 @@ static struct phy_driver xway_gphy[] = {
294
304
/* PHY_BASIC_FEATURES */
295
305
.config_init = xway_gphy_config_init ,
296
306
.ack_interrupt = xway_gphy_ack_interrupt ,
297
- .did_interrupt = xway_gphy_did_interrupt ,
307
+ .handle_interrupt = xway_gphy_handle_interrupt ,
298
308
.config_intr = xway_gphy_config_intr ,
299
309
.suspend = genphy_suspend ,
300
310
.resume = genphy_resume ,
@@ -305,7 +315,7 @@ static struct phy_driver xway_gphy[] = {
305
315
/* PHY_GBIT_FEATURES */
306
316
.config_init = xway_gphy_config_init ,
307
317
.ack_interrupt = xway_gphy_ack_interrupt ,
308
- .did_interrupt = xway_gphy_did_interrupt ,
318
+ .handle_interrupt = xway_gphy_handle_interrupt ,
309
319
.config_intr = xway_gphy_config_intr ,
310
320
.suspend = genphy_suspend ,
311
321
.resume = genphy_resume ,
@@ -316,7 +326,7 @@ static struct phy_driver xway_gphy[] = {
316
326
/* PHY_BASIC_FEATURES */
317
327
.config_init = xway_gphy_config_init ,
318
328
.ack_interrupt = xway_gphy_ack_interrupt ,
319
- .did_interrupt = xway_gphy_did_interrupt ,
329
+ .handle_interrupt = xway_gphy_handle_interrupt ,
320
330
.config_intr = xway_gphy_config_intr ,
321
331
.suspend = genphy_suspend ,
322
332
.resume = genphy_resume ,
@@ -327,7 +337,7 @@ static struct phy_driver xway_gphy[] = {
327
337
/* PHY_GBIT_FEATURES */
328
338
.config_init = xway_gphy_config_init ,
329
339
.ack_interrupt = xway_gphy_ack_interrupt ,
330
- .did_interrupt = xway_gphy_did_interrupt ,
340
+ .handle_interrupt = xway_gphy_handle_interrupt ,
331
341
.config_intr = xway_gphy_config_intr ,
332
342
.suspend = genphy_suspend ,
333
343
.resume = genphy_resume ,
@@ -338,7 +348,7 @@ static struct phy_driver xway_gphy[] = {
338
348
/* PHY_BASIC_FEATURES */
339
349
.config_init = xway_gphy_config_init ,
340
350
.ack_interrupt = xway_gphy_ack_interrupt ,
341
- .did_interrupt = xway_gphy_did_interrupt ,
351
+ .handle_interrupt = xway_gphy_handle_interrupt ,
342
352
.config_intr = xway_gphy_config_intr ,
343
353
.suspend = genphy_suspend ,
344
354
.resume = genphy_resume ,
0 commit comments