aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/chelsio/mv88x201x.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/chelsio/mv88x201x.c')
-rw-r--r--drivers/net/chelsio/mv88x201x.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/drivers/net/chelsio/mv88x201x.c b/drivers/net/chelsio/mv88x201x.c
index f54133af1bc..db503428278 100644
--- a/drivers/net/chelsio/mv88x201x.c
+++ b/drivers/net/chelsio/mv88x201x.c
@@ -1,8 +1,8 @@
1/***************************************************************************** 1/*****************************************************************************
2 * * 2 * *
3 * File: mv88x201x.c * 3 * File: mv88x201x.c *
4 * $Revision: 1.7 $ * 4 * $Revision: 1.12 $ *
5 * $Date: 2005/03/23 07:15:59 $ * 5 * $Date: 2005/04/15 19:27:14 $ *
6 * Description: * 6 * Description: *
7 * Marvell PHY (mv88x201x) functionality. * 7 * Marvell PHY (mv88x201x) functionality. *
8 * part of the Chelsio 10Gb Ethernet Driver. * 8 * part of the Chelsio 10Gb Ethernet Driver. *
@@ -85,33 +85,29 @@ static int mv88x201x_reset(struct cphy *cphy, int wait)
85 85
86static int mv88x201x_interrupt_enable(struct cphy *cphy) 86static int mv88x201x_interrupt_enable(struct cphy *cphy)
87{ 87{
88 u32 elmer;
89
88 /* Enable PHY LASI interrupts. */ 90 /* Enable PHY LASI interrupts. */
89 mdio_write(cphy, 0x1, 0x9002, 0x1); 91 mdio_write(cphy, 0x1, 0x9002, 0x1);
90 92
91 /* Enable Marvell interrupts through Elmer0. */ 93 /* Enable Marvell interrupts through Elmer0. */
92 if (t1_is_asic(cphy->adapter)) { 94 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
93 u32 elmer; 95 elmer |= ELMER0_GP_BIT6;
94 96 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
95 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
96 elmer |= ELMER0_GP_BIT6;
97 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
98 }
99 return 0; 97 return 0;
100} 98}
101 99
102static int mv88x201x_interrupt_disable(struct cphy *cphy) 100static int mv88x201x_interrupt_disable(struct cphy *cphy)
103{ 101{
102 u32 elmer;
103
104 /* Disable PHY LASI interrupts. */ 104 /* Disable PHY LASI interrupts. */
105 mdio_write(cphy, 0x1, 0x9002, 0x0); 105 mdio_write(cphy, 0x1, 0x9002, 0x0);
106 106
107 /* Disable Marvell interrupts through Elmer0. */ 107 /* Disable Marvell interrupts through Elmer0. */
108 if (t1_is_asic(cphy->adapter)) { 108 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
109 u32 elmer; 109 elmer &= ~ELMER0_GP_BIT6;
110 110 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
111 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
112 elmer &= ~ELMER0_GP_BIT6;
113 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
114 }
115 return 0; 111 return 0;
116} 112}
117 113
@@ -144,11 +140,9 @@ static int mv88x201x_interrupt_clear(struct cphy *cphy)
144#endif 140#endif
145 141
146 /* Clear Marvell interrupts through Elmer0. */ 142 /* Clear Marvell interrupts through Elmer0. */
147 if (t1_is_asic(cphy->adapter)) { 143 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer);
148 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer); 144 elmer |= ELMER0_GP_BIT6;
149 elmer |= ELMER0_GP_BIT6; 145 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer);
150 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer);
151 }
152 return 0; 146 return 0;
153} 147}
154 148