diff options
author | Jon Mason <jon.mason@exar.com> | 2010-11-10 23:26:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-11 12:30:22 -0500 |
commit | e7935c9669c27c5d530bff634c0c15f7a602d697 (patch) | |
tree | 5f2d6eded542d81bc7cae1a012ee5a0bbbe3d7ec /drivers/net/vxge/vxge-main.h | |
parent | c3150eac9f2e5f770b09d371f7716540219a46f6 (diff) |
vxge: Titan1A detection
Detect if the adapter is Titan or Titan1A, and tune the driver for this
hardware. Also, remove unnecessary function __vxge_hw_device_id_get.
Signed-off-by: Jon Mason <jon.mason@exar.com>
Signed-off-by: Ram Vepa <ram.vepa@exar.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vxge/vxge-main.h')
-rw-r--r-- | drivers/net/vxge/vxge-main.h | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/drivers/net/vxge/vxge-main.h b/drivers/net/vxge/vxge-main.h index 6f6e9ce0bf20..953cb0ded3e1 100644 --- a/drivers/net/vxge/vxge-main.h +++ b/drivers/net/vxge/vxge-main.h | |||
@@ -29,6 +29,9 @@ | |||
29 | 29 | ||
30 | #define PCI_DEVICE_ID_TITAN_WIN 0x5733 | 30 | #define PCI_DEVICE_ID_TITAN_WIN 0x5733 |
31 | #define PCI_DEVICE_ID_TITAN_UNI 0x5833 | 31 | #define PCI_DEVICE_ID_TITAN_UNI 0x5833 |
32 | #define VXGE_HW_TITAN1_PCI_REVISION 1 | ||
33 | #define VXGE_HW_TITAN1A_PCI_REVISION 2 | ||
34 | |||
32 | #define VXGE_USE_DEFAULT 0xffffffff | 35 | #define VXGE_USE_DEFAULT 0xffffffff |
33 | #define VXGE_HW_VPATH_MSIX_ACTIVE 4 | 36 | #define VXGE_HW_VPATH_MSIX_ACTIVE 4 |
34 | #define VXGE_ALARM_MSIX_ID 2 | 37 | #define VXGE_ALARM_MSIX_ID 2 |
@@ -53,11 +56,13 @@ | |||
53 | 56 | ||
54 | #define VXGE_TTI_BTIMER_VAL 250000 | 57 | #define VXGE_TTI_BTIMER_VAL 250000 |
55 | 58 | ||
56 | #define VXGE_TTI_LTIMER_VAL 1000 | 59 | #define VXGE_TTI_LTIMER_VAL 1000 |
57 | #define VXGE_TTI_RTIMER_VAL 0 | 60 | #define VXGE_T1A_TTI_LTIMER_VAL 80 |
58 | #define VXGE_RTI_BTIMER_VAL 250 | 61 | #define VXGE_TTI_RTIMER_VAL 0 |
59 | #define VXGE_RTI_LTIMER_VAL 100 | 62 | #define VXGE_T1A_TTI_RTIMER_VAL 400 |
60 | #define VXGE_RTI_RTIMER_VAL 0 | 63 | #define VXGE_RTI_BTIMER_VAL 250 |
64 | #define VXGE_RTI_LTIMER_VAL 100 | ||
65 | #define VXGE_RTI_RTIMER_VAL 0 | ||
61 | #define VXGE_FIFO_INDICATE_MAX_PKTS VXGE_DEF_FIFO_LENGTH | 66 | #define VXGE_FIFO_INDICATE_MAX_PKTS VXGE_DEF_FIFO_LENGTH |
62 | #define VXGE_ISR_POLLING_CNT 8 | 67 | #define VXGE_ISR_POLLING_CNT 8 |
63 | #define VXGE_MAX_CONFIG_DEV 0xFF | 68 | #define VXGE_MAX_CONFIG_DEV 0xFF |
@@ -76,14 +81,32 @@ | |||
76 | #define TTI_TX_UFC_B 40 | 81 | #define TTI_TX_UFC_B 40 |
77 | #define TTI_TX_UFC_C 60 | 82 | #define TTI_TX_UFC_C 60 |
78 | #define TTI_TX_UFC_D 100 | 83 | #define TTI_TX_UFC_D 100 |
84 | #define TTI_T1A_TX_UFC_A 30 | ||
85 | #define TTI_T1A_TX_UFC_B 80 | ||
86 | /* Slope - (max_mtu - min_mtu)/(max_mtu_ufc - min_mtu_ufc) */ | ||
87 | /* Slope - 93 */ | ||
88 | /* 60 - 9k Mtu, 140 - 1.5k mtu */ | ||
89 | #define TTI_T1A_TX_UFC_C(mtu) (60 + ((VXGE_HW_MAX_MTU - mtu) / 93)) | ||
90 | |||
91 | /* Slope - 37 */ | ||
92 | /* 100 - 9k Mtu, 300 - 1.5k mtu */ | ||
93 | #define TTI_T1A_TX_UFC_D(mtu) (100 + ((VXGE_HW_MAX_MTU - mtu) / 37)) | ||
94 | |||
95 | |||
96 | #define RTI_RX_URANGE_A 5 | ||
97 | #define RTI_RX_URANGE_B 15 | ||
98 | #define RTI_RX_URANGE_C 40 | ||
99 | #define RTI_T1A_RX_URANGE_A 1 | ||
100 | #define RTI_T1A_RX_URANGE_B 20 | ||
101 | #define RTI_T1A_RX_URANGE_C 50 | ||
102 | #define RTI_RX_UFC_A 1 | ||
103 | #define RTI_RX_UFC_B 5 | ||
104 | #define RTI_RX_UFC_C 10 | ||
105 | #define RTI_RX_UFC_D 15 | ||
106 | #define RTI_T1A_RX_UFC_B 20 | ||
107 | #define RTI_T1A_RX_UFC_C 50 | ||
108 | #define RTI_T1A_RX_UFC_D 60 | ||
79 | 109 | ||
80 | #define RTI_RX_URANGE_A 5 | ||
81 | #define RTI_RX_URANGE_B 15 | ||
82 | #define RTI_RX_URANGE_C 40 | ||
83 | #define RTI_RX_UFC_A 1 | ||
84 | #define RTI_RX_UFC_B 5 | ||
85 | #define RTI_RX_UFC_C 10 | ||
86 | #define RTI_RX_UFC_D 15 | ||
87 | 110 | ||
88 | /* Milli secs timer period */ | 111 | /* Milli secs timer period */ |
89 | #define VXGE_TIMER_DELAY 10000 | 112 | #define VXGE_TIMER_DELAY 10000 |
@@ -329,7 +352,8 @@ struct vxgedev { | |||
329 | 352 | ||
330 | /* A flag indicating whether rx_csum is to be used or not. */ | 353 | /* A flag indicating whether rx_csum is to be used or not. */ |
331 | u32 rx_csum:1, | 354 | u32 rx_csum:1, |
332 | rx_hwts:1; | 355 | rx_hwts:1, |
356 | titan1:1; | ||
333 | 357 | ||
334 | struct vxge_msix_entry *vxge_entries; | 358 | struct vxge_msix_entry *vxge_entries; |
335 | struct msix_entry *entries; | 359 | struct msix_entry *entries; |
@@ -397,6 +421,7 @@ struct vxge_tx_priv { | |||
397 | } while (0); | 421 | } while (0); |
398 | 422 | ||
399 | extern void vxge_initialize_ethtool_ops(struct net_device *ndev); | 423 | extern void vxge_initialize_ethtool_ops(struct net_device *ndev); |
424 | |||
400 | enum vxge_hw_status vxge_reset_all_vpaths(struct vxgedev *vdev); | 425 | enum vxge_hw_status vxge_reset_all_vpaths(struct vxgedev *vdev); |
401 | 426 | ||
402 | int vxge_fw_upgrade(struct vxgedev *vdev, char *fw_name, int override); | 427 | int vxge_fw_upgrade(struct vxgedev *vdev, char *fw_name, int override); |