diff options
Diffstat (limited to 'drivers/net/chelsio/mv88x201x.c')
-rw-r--r-- | drivers/net/chelsio/mv88x201x.c | 36 |
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 | ||
86 | static int mv88x201x_interrupt_enable(struct cphy *cphy) | 86 | static 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 | ||
102 | static int mv88x201x_interrupt_disable(struct cphy *cphy) | 100 | static 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 | ||