diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-12-01 19:36:16 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-02 00:24:49 -0500 |
commit | f1d3d38af75789f1b82969b83b69cab540609789 (patch) | |
tree | 47d31e8a55fb65cf33797197b92a332630cfc3ef /drivers/net/chelsio/pm3393.c | |
parent | 415294ecbb32ddbd0a7a2b7bae0b60fedfa09cc4 (diff) |
[PATCH] chelsio: add support for other 10G boards
Add support for other versions of the 10G Chelsio boards.
This is basically a port of the vendor driver with the
TOE features removed.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/chelsio/pm3393.c')
-rw-r--r-- | drivers/net/chelsio/pm3393.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/net/chelsio/pm3393.c b/drivers/net/chelsio/pm3393.c index 50983f9ce4bc..b943f5ddd8fd 100644 --- a/drivers/net/chelsio/pm3393.c +++ b/drivers/net/chelsio/pm3393.c | |||
@@ -88,6 +88,8 @@ enum { /* RMON registers */ | |||
88 | RxJabbers = SUNI1x10GEXP_REG_MSTAT_COUNTER_16_LOW, | 88 | RxJabbers = SUNI1x10GEXP_REG_MSTAT_COUNTER_16_LOW, |
89 | RxFragments = SUNI1x10GEXP_REG_MSTAT_COUNTER_17_LOW, | 89 | RxFragments = SUNI1x10GEXP_REG_MSTAT_COUNTER_17_LOW, |
90 | RxUndersizedFrames = SUNI1x10GEXP_REG_MSTAT_COUNTER_18_LOW, | 90 | RxUndersizedFrames = SUNI1x10GEXP_REG_MSTAT_COUNTER_18_LOW, |
91 | RxJumboFramesReceivedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_25_LOW, | ||
92 | RxJumboOctetsReceivedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_26_LOW, | ||
91 | 93 | ||
92 | TxOctetsTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_33_LOW, | 94 | TxOctetsTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_33_LOW, |
93 | TxFramesLostDueToInternalMACTransmissionError = SUNI1x10GEXP_REG_MSTAT_COUNTER_35_LOW, | 95 | TxFramesLostDueToInternalMACTransmissionError = SUNI1x10GEXP_REG_MSTAT_COUNTER_35_LOW, |
@@ -95,7 +97,9 @@ enum { /* RMON registers */ | |||
95 | TxUnicastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_38_LOW, | 97 | TxUnicastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_38_LOW, |
96 | TxMulticastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_40_LOW, | 98 | TxMulticastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_40_LOW, |
97 | TxBroadcastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_42_LOW, | 99 | TxBroadcastFramesTransmittedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_42_LOW, |
98 | TxPAUSEMACCtrlFramesTransmitted = SUNI1x10GEXP_REG_MSTAT_COUNTER_43_LOW | 100 | TxPAUSEMACCtrlFramesTransmitted = SUNI1x10GEXP_REG_MSTAT_COUNTER_43_LOW, |
101 | TxJumboFramesReceivedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_51_LOW, | ||
102 | TxJumboOctetsReceivedOK = SUNI1x10GEXP_REG_MSTAT_COUNTER_52_LOW | ||
99 | }; | 103 | }; |
100 | 104 | ||
101 | struct _cmac_instance { | 105 | struct _cmac_instance { |
@@ -265,6 +269,8 @@ static int pm3393_interrupt_handler(struct cmac *cmac) | |||
265 | /* Read the master interrupt status register. */ | 269 | /* Read the master interrupt status register. */ |
266 | pmread(cmac, SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS, | 270 | pmread(cmac, SUNI1x10GEXP_REG_MASTER_INTERRUPT_STATUS, |
267 | &master_intr_status); | 271 | &master_intr_status); |
272 | CH_DBG(cmac->adapter, INTR, "PM3393 intr cause 0x%x\n", | ||
273 | master_intr_status); | ||
268 | 274 | ||
269 | /* TBD XXX Lets just clear everything for now */ | 275 | /* TBD XXX Lets just clear everything for now */ |
270 | pm3393_interrupt_clear(cmac); | 276 | pm3393_interrupt_clear(cmac); |
@@ -307,11 +313,7 @@ static int pm3393_enable_port(struct cmac *cmac, int which) | |||
307 | * The PHY doesn't give us link status indication on its own so have | 313 | * The PHY doesn't give us link status indication on its own so have |
308 | * the link management code query it instead. | 314 | * the link management code query it instead. |
309 | */ | 315 | */ |
310 | { | 316 | t1_link_changed(cmac->adapter, 0); |
311 | extern void link_changed(adapter_t *adapter, int port_id); | ||
312 | |||
313 | link_changed(cmac->adapter, 0); | ||
314 | } | ||
315 | return 0; | 317 | return 0; |
316 | } | 318 | } |
317 | 319 | ||
@@ -519,6 +521,8 @@ static const struct cmac_statistics *pm3393_update_statistics(struct cmac *mac, | |||
519 | RMON_UPDATE(mac, RxJabbers, RxJabberErrors); | 521 | RMON_UPDATE(mac, RxJabbers, RxJabberErrors); |
520 | RMON_UPDATE(mac, RxFragments, RxRuntErrors); | 522 | RMON_UPDATE(mac, RxFragments, RxRuntErrors); |
521 | RMON_UPDATE(mac, RxUndersizedFrames, RxRuntErrors); | 523 | RMON_UPDATE(mac, RxUndersizedFrames, RxRuntErrors); |
524 | RMON_UPDATE(mac, RxJumboFramesReceivedOK, RxJumboFramesOK); | ||
525 | RMON_UPDATE(mac, RxJumboOctetsReceivedOK, RxJumboOctetsOK); | ||
522 | 526 | ||
523 | /* Tx stats */ | 527 | /* Tx stats */ |
524 | RMON_UPDATE(mac, TxOctetsTransmittedOK, TxOctetsOK); | 528 | RMON_UPDATE(mac, TxOctetsTransmittedOK, TxOctetsOK); |
@@ -529,6 +533,8 @@ static const struct cmac_statistics *pm3393_update_statistics(struct cmac *mac, | |||
529 | RMON_UPDATE(mac, TxMulticastFramesTransmittedOK, TxMulticastFramesOK); | 533 | RMON_UPDATE(mac, TxMulticastFramesTransmittedOK, TxMulticastFramesOK); |
530 | RMON_UPDATE(mac, TxBroadcastFramesTransmittedOK, TxBroadcastFramesOK); | 534 | RMON_UPDATE(mac, TxBroadcastFramesTransmittedOK, TxBroadcastFramesOK); |
531 | RMON_UPDATE(mac, TxPAUSEMACCtrlFramesTransmitted, TxPauseFrames); | 535 | RMON_UPDATE(mac, TxPAUSEMACCtrlFramesTransmitted, TxPauseFrames); |
536 | RMON_UPDATE(mac, TxJumboFramesReceivedOK, TxJumboFramesOK); | ||
537 | RMON_UPDATE(mac, TxJumboOctetsReceivedOK, TxJumboOctetsOK); | ||
532 | 538 | ||
533 | return &mac->stats; | 539 | return &mac->stats; |
534 | } | 540 | } |
@@ -814,6 +820,12 @@ static int pm3393_mac_reset(adapter_t * adapter) | |||
814 | 820 | ||
815 | successful_reset = (is_pl4_reset_finished && !is_pl4_outof_lock | 821 | successful_reset = (is_pl4_reset_finished && !is_pl4_outof_lock |
816 | && is_xaui_mabc_pll_locked); | 822 | && is_xaui_mabc_pll_locked); |
823 | |||
824 | CH_DBG(adapter, HW, | ||
825 | "PM3393 HW reset %d: pl4_reset 0x%x, val 0x%x, " | ||
826 | "is_pl4_outof_lock 0x%x, xaui_locked 0x%x\n", | ||
827 | i, is_pl4_reset_finished, val, is_pl4_outof_lock, | ||
828 | is_xaui_mabc_pll_locked); | ||
817 | } | 829 | } |
818 | return successful_reset ? 0 : 1; | 830 | return successful_reset ? 0 : 1; |
819 | } | 831 | } |