diff options
Diffstat (limited to 'drivers/net/cxgb3/ael1002.c')
-rw-r--r-- | drivers/net/cxgb3/ael1002.c | 46 |
1 files changed, 8 insertions, 38 deletions
diff --git a/drivers/net/cxgb3/ael1002.c b/drivers/net/cxgb3/ael1002.c index f4e046e32fc6..f6e575fa7468 100644 --- a/drivers/net/cxgb3/ael1002.c +++ b/drivers/net/cxgb3/ael1002.c | |||
@@ -39,9 +39,6 @@ enum { | |||
39 | AEL1002_PWR_DOWN_LO = 0xc012, | 39 | AEL1002_PWR_DOWN_LO = 0xc012, |
40 | AEL1002_XFI_EQL = 0xc015, | 40 | AEL1002_XFI_EQL = 0xc015, |
41 | AEL1002_LB_EN = 0xc017, | 41 | AEL1002_LB_EN = 0xc017, |
42 | |||
43 | LASI_CTRL = 0x9002, | ||
44 | LASI_STAT = 0x9005 | ||
45 | }; | 42 | }; |
46 | 43 | ||
47 | static void ael100x_txon(struct cphy *phy) | 44 | static void ael100x_txon(struct cphy *phy) |
@@ -134,33 +131,6 @@ static int ael1006_reset(struct cphy *phy, int wait) | |||
134 | return t3_phy_reset(phy, MDIO_DEV_PMA_PMD, wait); | 131 | return t3_phy_reset(phy, MDIO_DEV_PMA_PMD, wait); |
135 | } | 132 | } |
136 | 133 | ||
137 | static int ael1006_intr_enable(struct cphy *phy) | ||
138 | { | ||
139 | return mdio_write(phy, MDIO_DEV_PMA_PMD, LASI_CTRL, 1); | ||
140 | } | ||
141 | |||
142 | static int ael1006_intr_disable(struct cphy *phy) | ||
143 | { | ||
144 | return mdio_write(phy, MDIO_DEV_PMA_PMD, LASI_CTRL, 0); | ||
145 | } | ||
146 | |||
147 | static int ael1006_intr_clear(struct cphy *phy) | ||
148 | { | ||
149 | u32 val; | ||
150 | |||
151 | return mdio_read(phy, MDIO_DEV_PMA_PMD, LASI_STAT, &val); | ||
152 | } | ||
153 | |||
154 | static int ael1006_intr_handler(struct cphy *phy) | ||
155 | { | ||
156 | unsigned int status; | ||
157 | int err = mdio_read(phy, MDIO_DEV_PMA_PMD, LASI_STAT, &status); | ||
158 | |||
159 | if (err) | ||
160 | return err; | ||
161 | return (status & 1) ? cphy_cause_link_change : 0; | ||
162 | } | ||
163 | |||
164 | static int ael1006_power_down(struct cphy *phy, int enable) | 134 | static int ael1006_power_down(struct cphy *phy, int enable) |
165 | { | 135 | { |
166 | return t3_mdio_change_bits(phy, MDIO_DEV_PMA_PMD, MII_BMCR, | 136 | return t3_mdio_change_bits(phy, MDIO_DEV_PMA_PMD, MII_BMCR, |
@@ -169,10 +139,10 @@ static int ael1006_power_down(struct cphy *phy, int enable) | |||
169 | 139 | ||
170 | static struct cphy_ops ael1006_ops = { | 140 | static struct cphy_ops ael1006_ops = { |
171 | .reset = ael1006_reset, | 141 | .reset = ael1006_reset, |
172 | .intr_enable = ael1006_intr_enable, | 142 | .intr_enable = t3_phy_lasi_intr_enable, |
173 | .intr_disable = ael1006_intr_disable, | 143 | .intr_disable = t3_phy_lasi_intr_disable, |
174 | .intr_clear = ael1006_intr_clear, | 144 | .intr_clear = t3_phy_lasi_intr_clear, |
175 | .intr_handler = ael1006_intr_handler, | 145 | .intr_handler = t3_phy_lasi_intr_handler, |
176 | .get_link_status = ael100x_get_link_status, | 146 | .get_link_status = ael100x_get_link_status, |
177 | .power_down = ael1006_power_down, | 147 | .power_down = ael1006_power_down, |
178 | }; | 148 | }; |
@@ -189,10 +159,10 @@ int t3_ael1006_phy_prep(struct cphy *phy, struct adapter *adapter, | |||
189 | 159 | ||
190 | static struct cphy_ops qt2045_ops = { | 160 | static struct cphy_ops qt2045_ops = { |
191 | .reset = ael1006_reset, | 161 | .reset = ael1006_reset, |
192 | .intr_enable = ael1006_intr_enable, | 162 | .intr_enable = t3_phy_lasi_intr_enable, |
193 | .intr_disable = ael1006_intr_disable, | 163 | .intr_disable = t3_phy_lasi_intr_disable, |
194 | .intr_clear = ael1006_intr_clear, | 164 | .intr_clear = t3_phy_lasi_intr_clear, |
195 | .intr_handler = ael1006_intr_handler, | 165 | .intr_handler = t3_phy_lasi_intr_handler, |
196 | .get_link_status = ael100x_get_link_status, | 166 | .get_link_status = ael100x_get_link_status, |
197 | .power_down = ael1006_power_down, | 167 | .power_down = ael1006_power_down, |
198 | }; | 168 | }; |