diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2008-07-21 22:44:07 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-22 17:52:11 -0400 |
commit | c9fc891f86c062449116fde8826a0ead650e17ac (patch) | |
tree | 73496ddd8e43ef74634cae90ab9d12bf311d4139 /drivers/net/netxen/netxen_nic.h | |
parent | 48bfd1e0fc66b27254ec742b014e689ef218e76c (diff) |
netxen: mtu, mac, link status changes
MAC addr, multicast filters, mtu are set through firmware commands
in firmware v4.0.0+ because of virtualization of physical ports.
Link status is also read from registers allocated by firmware for
each virtual port.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
-rw-r--r-- | drivers/net/netxen/netxen_nic.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 936219010e46..e41f62352b15 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -1119,7 +1119,7 @@ typedef struct { | |||
1119 | u64 qhdr; | 1119 | u64 qhdr; |
1120 | u64 req_hdr; | 1120 | u64 req_hdr; |
1121 | u64 words[6]; | 1121 | u64 words[6]; |
1122 | } nic_request_t; | 1122 | } nx_nic_req_t; |
1123 | 1123 | ||
1124 | typedef struct { | 1124 | typedef struct { |
1125 | u8 op; | 1125 | u8 op; |
@@ -1127,6 +1127,7 @@ typedef struct { | |||
1127 | u8 mac_addr[6]; | 1127 | u8 mac_addr[6]; |
1128 | } nx_mac_req_t; | 1128 | } nx_mac_req_t; |
1129 | 1129 | ||
1130 | #define MAX_PENDING_DESC_BLOCK_SIZE 64 | ||
1130 | 1131 | ||
1131 | #define NETXEN_NIC_MSI_ENABLED 0x02 | 1132 | #define NETXEN_NIC_MSI_ENABLED 0x02 |
1132 | #define NETXEN_NIC_MSIX_ENABLED 0x04 | 1133 | #define NETXEN_NIC_MSIX_ENABLED 0x04 |
@@ -1152,7 +1153,6 @@ struct netxen_adapter { | |||
1152 | int pci_using_dac; | 1153 | int pci_using_dac; |
1153 | struct napi_struct napi; | 1154 | struct napi_struct napi; |
1154 | struct net_device_stats net_stats; | 1155 | struct net_device_stats net_stats; |
1155 | unsigned char mac_addr[ETH_ALEN]; | ||
1156 | int mtu; | 1156 | int mtu; |
1157 | int portnum; | 1157 | int portnum; |
1158 | u8 physical_port; | 1158 | u8 physical_port; |
@@ -1160,6 +1160,7 @@ struct netxen_adapter { | |||
1160 | 1160 | ||
1161 | uint8_t mc_enabled; | 1161 | uint8_t mc_enabled; |
1162 | uint8_t max_mc_count; | 1162 | uint8_t max_mc_count; |
1163 | nx_mac_list_t *mac_list; | ||
1163 | 1164 | ||
1164 | struct netxen_legacy_intr_set legacy_intr; | 1165 | struct netxen_legacy_intr_set legacy_intr; |
1165 | u32 crb_intr_mask; | 1166 | u32 crb_intr_mask; |
@@ -1231,7 +1232,6 @@ struct netxen_adapter { | |||
1231 | int (*phy_read) (struct netxen_adapter *, long reg, u32 *); | 1232 | int (*phy_read) (struct netxen_adapter *, long reg, u32 *); |
1232 | int (*phy_write) (struct netxen_adapter *, long reg, u32 val); | 1233 | int (*phy_write) (struct netxen_adapter *, long reg, u32 val); |
1233 | int (*init_port) (struct netxen_adapter *, int); | 1234 | int (*init_port) (struct netxen_adapter *, int); |
1234 | void (*init_niu) (struct netxen_adapter *); | ||
1235 | int (*stop_port) (struct netxen_adapter *); | 1235 | int (*stop_port) (struct netxen_adapter *); |
1236 | 1236 | ||
1237 | int (*hw_read_wx)(struct netxen_adapter *, ulong, void *, int); | 1237 | int (*hw_read_wx)(struct netxen_adapter *, ulong, void *, int); |
@@ -1316,7 +1316,6 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, | |||
1316 | /* Functions available from netxen_nic_hw.c */ | 1316 | /* Functions available from netxen_nic_hw.c */ |
1317 | int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu); | 1317 | int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu); |
1318 | int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu); | 1318 | int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu); |
1319 | void netxen_nic_init_niu_gb(struct netxen_adapter *adapter); | ||
1320 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val); | 1319 | void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val); |
1321 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off); | 1320 | int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off); |
1322 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value); | 1321 | void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value); |
@@ -1404,7 +1403,8 @@ void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, | |||
1404 | u32 ringid); | 1403 | u32 ringid); |
1405 | int netxen_process_cmd_ring(struct netxen_adapter *adapter); | 1404 | int netxen_process_cmd_ring(struct netxen_adapter *adapter); |
1406 | u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); | 1405 | u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctx, int max); |
1407 | void netxen_nic_set_multi(struct net_device *netdev); | 1406 | void netxen_p2_nic_set_multi(struct net_device *netdev); |
1407 | void netxen_p3_nic_set_multi(struct net_device *netdev); | ||
1408 | 1408 | ||
1409 | u32 nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, u32 mtu); | 1409 | u32 nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, u32 mtu); |
1410 | int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); | 1410 | int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); |
@@ -1412,6 +1412,8 @@ int netxen_nic_change_mtu(struct net_device *netdev, int new_mtu); | |||
1412 | int netxen_nic_set_mac(struct net_device *netdev, void *p); | 1412 | int netxen_nic_set_mac(struct net_device *netdev, void *p); |
1413 | struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev); | 1413 | struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev); |
1414 | 1414 | ||
1415 | void netxen_nic_update_cmd_producer(struct netxen_adapter *adapter, | ||
1416 | uint32_t crb_producer); | ||
1415 | 1417 | ||
1416 | /* | 1418 | /* |
1417 | * NetXen Board information | 1419 | * NetXen Board information |