Loading drivers/net/typhoon.c +18 −18 Original line number Diff line number Diff line Loading @@ -300,9 +300,9 @@ struct typhoon { const char * name; struct typhoon_shared * shared; dma_addr_t shared_dma; u16 xcvr_select; u16 wol_events; u32 offload; __le16 xcvr_select; __le16 wol_events; __le32 offload; /* unused stuff (future use) */ int capabilities; Loading Loading @@ -828,7 +828,7 @@ typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) first_txd->processFlags |= TYPHOON_TX_PF_INSERT_VLAN | TYPHOON_TX_PF_VLAN_PRIORITY; first_txd->processFlags |= cpu_to_le32(htons(vlan_tx_tag_get(skb)) << cpu_to_le32(ntohs(vlan_tx_tag_get(skb)) << TYPHOON_TX_PF_VLAN_TAG_SHIFT); } Loading Loading @@ -920,7 +920,7 @@ typhoon_set_rx_mode(struct net_device *dev) struct typhoon *tp = netdev_priv(dev); struct cmd_desc xp_cmd; u32 mc_filter[2]; u16 filter; __le16 filter; filter = TYPHOON_RX_FILTER_DIRECTED | TYPHOON_RX_FILTER_BROADCAST; if(dev->flags & IFF_PROMISC) { Loading Loading @@ -1131,7 +1131,7 @@ typhoon_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct typhoon *tp = netdev_priv(dev); struct cmd_desc xp_cmd; int xcvr; __le16 xcvr; int err; err = -EINVAL; Loading Loading @@ -1536,7 +1536,7 @@ typhoon_boot_3XP(struct typhoon *tp, u32 initial_status) static u32 typhoon_clean_tx(struct typhoon *tp, struct transmit_ring *txRing, volatile u32 * index) volatile __le32 * index) { u32 lastRead = txRing->lastRead; struct tx_desc *tx; Loading Loading @@ -1572,7 +1572,7 @@ typhoon_clean_tx(struct typhoon *tp, struct transmit_ring *txRing, static void typhoon_tx_complete(struct typhoon *tp, struct transmit_ring *txRing, volatile u32 * index) volatile __le32 * index) { u32 lastRead; int numDesc = MAX_SKB_FRAGS + 1; Loading Loading @@ -1662,8 +1662,8 @@ typhoon_alloc_rx_skb(struct typhoon *tp, u32 idx) } static int typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile u32 * ready, volatile u32 * cleared, int budget) typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile __le32 * ready, volatile __le32 * cleared, int budget) { struct rx_desc *rx; struct sk_buff *skb, *new_skb; Loading @@ -1673,7 +1673,7 @@ typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile u32 * ready, u32 rxaddr; int pkt_len; u32 idx; u32 csum_bits; __le32 csum_bits; int received; received = 0; Loading Loading @@ -1840,7 +1840,7 @@ typhoon_free_rx_rings(struct typhoon *tp) } static int typhoon_sleep(struct typhoon *tp, pci_power_t state, u16 events) typhoon_sleep(struct typhoon *tp, pci_power_t state, __le16 events) { struct pci_dev *pdev = tp->pdev; void __iomem *ioaddr = tp->ioaddr; Loading Loading @@ -1928,8 +1928,8 @@ typhoon_start_runtime(struct typhoon *tp) goto error_out; INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_SET_MAC_ADDRESS); xp_cmd.parm1 = cpu_to_le16(ntohs(*(u16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(u32 *)&dev->dev_addr[2])); xp_cmd.parm1 = cpu_to_le16(ntohs(*(__be16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(__be32 *)&dev->dev_addr[2])); err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL); if(err < 0) goto error_out; Loading Loading @@ -2229,8 +2229,8 @@ typhoon_suspend(struct pci_dev *pdev, pm_message_t state) } INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_SET_MAC_ADDRESS); xp_cmd.parm1 = cpu_to_le16(ntohs(*(u16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(u32 *)&dev->dev_addr[2])); xp_cmd.parm1 = cpu_to_le16(ntohs(*(__be16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(__be32 *)&dev->dev_addr[2])); if(typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL) < 0) { printk(KERN_ERR "%s: unable to set mac address in suspend\n", dev->name); Loading Loading @@ -2465,8 +2465,8 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) goto error_out_reset; } *(u16 *)&dev->dev_addr[0] = htons(le16_to_cpu(xp_resp[0].parm1)); *(u32 *)&dev->dev_addr[2] = htonl(le32_to_cpu(xp_resp[0].parm2)); *(__be16 *)&dev->dev_addr[0] = htons(le16_to_cpu(xp_resp[0].parm1)); *(__be32 *)&dev->dev_addr[2] = htonl(le32_to_cpu(xp_resp[0].parm2)); if(!is_valid_ether_addr(dev->dev_addr)) { printk(ERR_PFX "%s: Could not obtain valid ethernet address, " Loading drivers/net/typhoon.h +95 −95 Original line number Diff line number Diff line Loading @@ -64,19 +64,19 @@ struct transmit_ring { */ struct typhoon_indexes { /* The first four are written by the host, and read by the NIC */ volatile u32 rxHiCleared; volatile u32 rxLoCleared; volatile u32 rxBuffReady; volatile u32 respCleared; volatile __le32 rxHiCleared; volatile __le32 rxLoCleared; volatile __le32 rxBuffReady; volatile __le32 respCleared; /* The remaining are written by the NIC, and read by the host */ volatile u32 txLoCleared; volatile u32 txHiCleared; volatile u32 rxLoReady; volatile u32 rxBuffCleared; volatile u32 cmdCleared; volatile u32 respReady; volatile u32 rxHiReady; volatile __le32 txLoCleared; volatile __le32 txHiCleared; volatile __le32 rxLoReady; volatile __u32 rxBuffCleared; /* AV: really? */ volatile __le32 cmdCleared; volatile __le32 respReady; volatile __le32 rxHiReady; } __attribute__ ((packed)); /* The host<->Typhoon interface Loading @@ -100,31 +100,31 @@ struct typhoon_indexes { * be zero. */ struct typhoon_interface { u32 ringIndex; u32 ringIndexHi; u32 txLoAddr; u32 txLoAddrHi; u32 txLoSize; u32 txHiAddr; u32 txHiAddrHi; u32 txHiSize; u32 rxLoAddr; u32 rxLoAddrHi; u32 rxLoSize; u32 rxBuffAddr; u32 rxBuffAddrHi; u32 rxBuffSize; u32 cmdAddr; u32 cmdAddrHi; u32 cmdSize; u32 respAddr; u32 respAddrHi; u32 respSize; u32 zeroAddr; u32 zeroAddrHi; u32 rxHiAddr; u32 rxHiAddrHi; u32 rxHiSize; __le32 ringIndex; __le32 ringIndexHi; __le32 txLoAddr; __le32 txLoAddrHi; __le32 txLoSize; __le32 txHiAddr; __le32 txHiAddrHi; __le32 txHiSize; __le32 rxLoAddr; __le32 rxLoAddrHi; __le32 rxLoSize; __le32 rxBuffAddr; __le32 rxBuffAddrHi; __le32 rxBuffSize; __le32 cmdAddr; __le32 cmdAddrHi; __le32 cmdSize; __le32 respAddr; __le32 respAddrHi; __le32 respSize; __le32 zeroAddr; __le32 zeroAddrHi; __le32 rxHiAddr; __le32 rxHiAddrHi; __le32 rxHiSize; } __attribute__ ((packed)); /* The Typhoon transmit/fragment descriptor Loading Loading @@ -165,10 +165,10 @@ struct tx_desc { #define TYPHOON_RX_ERROR 0x40 #define TYPHOON_DESC_VALID 0x80 u8 numDesc; u16 len; __le16 len; u32 addr; u32 addrHi; u32 processFlags; __le32 processFlags; #define TYPHOON_TX_PF_NO_CRC __constant_cpu_to_le32(0x00000001) #define TYPHOON_TX_PF_IP_CHKSUM __constant_cpu_to_le32(0x00000002) #define TYPHOON_TX_PF_TCP_CHKSUM __constant_cpu_to_le32(0x00000004) Loading Loading @@ -197,12 +197,12 @@ struct tx_desc { struct tcpopt_desc { u8 flags; u8 numDesc; u16 mss_flags; __le16 mss_flags; #define TYPHOON_TSO_FIRST __constant_cpu_to_le16(0x1000) #define TYPHOON_TSO_LAST __constant_cpu_to_le16(0x2000) u32 respAddrLo; u32 bytesTx; u32 status; __le32 respAddrLo; __le32 bytesTx; __le32 status; } __attribute__ ((packed)); /* The IPSEC Offload descriptor Loading @@ -216,12 +216,12 @@ struct tcpopt_desc { struct ipsec_desc { u8 flags; u8 numDesc; u16 ipsecFlags; __le16 ipsecFlags; #define TYPHOON_IPSEC_GEN_IV __constant_cpu_to_le16(0x0000) #define TYPHOON_IPSEC_USE_IV __constant_cpu_to_le16(0x0001) u32 sa1; u32 sa2; u32 reserved; __le32 sa1; __le32 sa2; __le32 reserved; } __attribute__ ((packed)); /* The Typhoon receive descriptor (Updated by NIC) Loading @@ -239,10 +239,10 @@ struct ipsec_desc { struct rx_desc { u8 flags; u8 numDesc; u16 frameLen; __le16 frameLen; u32 addr; u32 addrHi; u32 rxStatus; __le32 rxStatus; #define TYPHOON_RX_ERR_INTERNAL __constant_cpu_to_le32(0x00000000) #define TYPHOON_RX_ERR_FIFO_UNDERRUN __constant_cpu_to_le32(0x00000001) #define TYPHOON_RX_ERR_BAD_SSD __constant_cpu_to_le32(0x00000002) Loading @@ -264,10 +264,10 @@ struct rx_desc { #define TYPHOON_RX_IP_CHK_GOOD __constant_cpu_to_le32(0x00000100) #define TYPHOON_RX_TCP_CHK_GOOD __constant_cpu_to_le32(0x00000200) #define TYPHOON_RX_UDP_CHK_GOOD __constant_cpu_to_le32(0x00000400) u16 filterResults; __le16 filterResults; #define TYPHOON_RX_FILTER_MASK __constant_cpu_to_le16(0x7fff) #define TYPHOON_RX_FILTERED __constant_cpu_to_le16(0x8000) u16 ipsecResults; __le16 ipsecResults; #define TYPHOON_RX_OUTER_AH_GOOD __constant_cpu_to_le16(0x0001) #define TYPHOON_RX_OUTER_ESP_GOOD __constant_cpu_to_le16(0x0002) #define TYPHOON_RX_INNER_AH_GOOD __constant_cpu_to_le16(0x0004) Loading @@ -278,7 +278,7 @@ struct rx_desc { #define TYPHOON_RX_INNER_ESP_FAIL __constant_cpu_to_le16(0x0080) #define TYPHOON_RX_UNKNOWN_SA __constant_cpu_to_le16(0x0100) #define TYPHOON_RX_ESP_FORMAT_ERR __constant_cpu_to_le16(0x0200) u32 vlanTag; __be32 vlanTag; } __attribute__ ((packed)); /* The Typhoon free buffer descriptor, used to give a buffer to the NIC Loading @@ -292,8 +292,8 @@ struct rx_desc { * from the NIC */ struct rx_free { u32 physAddr; u32 physAddrHi; __le32 physAddr; __le32 physAddrHi; u32 virtAddr; u32 virtAddrHi; } __attribute__ ((packed)); Loading @@ -312,7 +312,7 @@ struct rx_free { struct cmd_desc { u8 flags; u8 numDesc; u16 cmd; __le16 cmd; #define TYPHOON_CMD_TX_ENABLE __constant_cpu_to_le16(0x0001) #define TYPHOON_CMD_TX_DISABLE __constant_cpu_to_le16(0x0002) #define TYPHOON_CMD_RX_ENABLE __constant_cpu_to_le16(0x0003) Loading @@ -339,9 +339,9 @@ struct cmd_desc { #define TYPHOON_CMD_GET_IPSEC_ENABLE __constant_cpu_to_le16(0x0067) #define TYPHOON_CMD_GET_CMD_LVL __constant_cpu_to_le16(0x0069) u16 seqNo; u16 parm1; u32 parm2; u32 parm3; __le16 parm1; __le32 parm2; __le32 parm3; } __attribute__ ((packed)); /* The Typhoon response descriptor, see command descriptor for details Loading @@ -349,11 +349,11 @@ struct cmd_desc { struct resp_desc { u8 flags; u8 numDesc; u16 cmd; u16 seqNo; u16 parm1; u32 parm2; u32 parm3; __le16 cmd; __le16 seqNo; __le16 parm1; __le32 parm2; __le32 parm3; } __attribute__ ((packed)); #define INIT_COMMAND_NO_RESPONSE(x, command) \ Loading Loading @@ -386,31 +386,31 @@ struct resp_desc { struct stats_resp { u8 flags; u8 numDesc; u16 cmd; u16 seqNo; u16 unused; u32 txPackets; u64 txBytes; u32 txDeferred; u32 txLateCollisions; u32 txCollisions; u32 txCarrierLost; u32 txMultipleCollisions; u32 txExcessiveCollisions; u32 txFifoUnderruns; u32 txMulticastTxOverflows; u32 txFiltered; u32 rxPacketsGood; u64 rxBytesGood; u32 rxFifoOverruns; u32 BadSSD; u32 rxCrcErrors; u32 rxOversized; u32 rxBroadcast; u32 rxMulticast; u32 rxOverflow; u32 rxFiltered; u32 linkStatus; __le16 cmd; __le16 seqNo; __le16 unused; __le32 txPackets; __le64 txBytes; __le32 txDeferred; __le32 txLateCollisions; __le32 txCollisions; __le32 txCarrierLost; __le32 txMultipleCollisions; __le32 txExcessiveCollisions; __le32 txFifoUnderruns; __le32 txMulticastTxOverflows; __le32 txFiltered; __le32 rxPacketsGood; __le64 rxBytesGood; __le32 rxFifoOverruns; __le32 BadSSD; __le32 rxCrcErrors; __le32 rxOversized; __le32 rxBroadcast; __le32 rxMulticast; __le32 rxOverflow; __le32 rxFiltered; __le32 linkStatus; #define TYPHOON_LINK_STAT_MASK __constant_cpu_to_le32(0x00000001) #define TYPHOON_LINK_GOOD __constant_cpu_to_le32(0x00000001) #define TYPHOON_LINK_BAD __constant_cpu_to_le32(0x00000000) Loading @@ -420,8 +420,8 @@ struct stats_resp { #define TYPHOON_LINK_DUPLEX_MASK __constant_cpu_to_le32(0x00000004) #define TYPHOON_LINK_FULL_DUPLEX __constant_cpu_to_le32(0x00000004) #define TYPHOON_LINK_HALF_DUPLEX __constant_cpu_to_le32(0x00000000) u32 unused2; u32 unused3; __le32 unused2; __le32 unused3; } __attribute__ ((packed)); /* TYPHOON_CMD_XCVR_SELECT xcvr values (resp.parm1) Loading Loading @@ -509,17 +509,17 @@ struct sa_descriptor { */ struct typhoon_file_header { u8 tag[8]; u32 version; u32 numSections; u32 startAddr; u32 hmacDigest[5]; __le32 version; __le32 numSections; __le32 startAddr; __le32 hmacDigest[5]; } __attribute__ ((packed)); struct typhoon_section_header { u32 len; __le32 len; u16 checksum; u16 reserved; u32 startAddr; __le32 startAddr; } __attribute__ ((packed)); /* The Typhoon Register offsets Loading Loading
drivers/net/typhoon.c +18 −18 Original line number Diff line number Diff line Loading @@ -300,9 +300,9 @@ struct typhoon { const char * name; struct typhoon_shared * shared; dma_addr_t shared_dma; u16 xcvr_select; u16 wol_events; u32 offload; __le16 xcvr_select; __le16 wol_events; __le32 offload; /* unused stuff (future use) */ int capabilities; Loading Loading @@ -828,7 +828,7 @@ typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) first_txd->processFlags |= TYPHOON_TX_PF_INSERT_VLAN | TYPHOON_TX_PF_VLAN_PRIORITY; first_txd->processFlags |= cpu_to_le32(htons(vlan_tx_tag_get(skb)) << cpu_to_le32(ntohs(vlan_tx_tag_get(skb)) << TYPHOON_TX_PF_VLAN_TAG_SHIFT); } Loading Loading @@ -920,7 +920,7 @@ typhoon_set_rx_mode(struct net_device *dev) struct typhoon *tp = netdev_priv(dev); struct cmd_desc xp_cmd; u32 mc_filter[2]; u16 filter; __le16 filter; filter = TYPHOON_RX_FILTER_DIRECTED | TYPHOON_RX_FILTER_BROADCAST; if(dev->flags & IFF_PROMISC) { Loading Loading @@ -1131,7 +1131,7 @@ typhoon_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct typhoon *tp = netdev_priv(dev); struct cmd_desc xp_cmd; int xcvr; __le16 xcvr; int err; err = -EINVAL; Loading Loading @@ -1536,7 +1536,7 @@ typhoon_boot_3XP(struct typhoon *tp, u32 initial_status) static u32 typhoon_clean_tx(struct typhoon *tp, struct transmit_ring *txRing, volatile u32 * index) volatile __le32 * index) { u32 lastRead = txRing->lastRead; struct tx_desc *tx; Loading Loading @@ -1572,7 +1572,7 @@ typhoon_clean_tx(struct typhoon *tp, struct transmit_ring *txRing, static void typhoon_tx_complete(struct typhoon *tp, struct transmit_ring *txRing, volatile u32 * index) volatile __le32 * index) { u32 lastRead; int numDesc = MAX_SKB_FRAGS + 1; Loading Loading @@ -1662,8 +1662,8 @@ typhoon_alloc_rx_skb(struct typhoon *tp, u32 idx) } static int typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile u32 * ready, volatile u32 * cleared, int budget) typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile __le32 * ready, volatile __le32 * cleared, int budget) { struct rx_desc *rx; struct sk_buff *skb, *new_skb; Loading @@ -1673,7 +1673,7 @@ typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile u32 * ready, u32 rxaddr; int pkt_len; u32 idx; u32 csum_bits; __le32 csum_bits; int received; received = 0; Loading Loading @@ -1840,7 +1840,7 @@ typhoon_free_rx_rings(struct typhoon *tp) } static int typhoon_sleep(struct typhoon *tp, pci_power_t state, u16 events) typhoon_sleep(struct typhoon *tp, pci_power_t state, __le16 events) { struct pci_dev *pdev = tp->pdev; void __iomem *ioaddr = tp->ioaddr; Loading Loading @@ -1928,8 +1928,8 @@ typhoon_start_runtime(struct typhoon *tp) goto error_out; INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_SET_MAC_ADDRESS); xp_cmd.parm1 = cpu_to_le16(ntohs(*(u16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(u32 *)&dev->dev_addr[2])); xp_cmd.parm1 = cpu_to_le16(ntohs(*(__be16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(__be32 *)&dev->dev_addr[2])); err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL); if(err < 0) goto error_out; Loading Loading @@ -2229,8 +2229,8 @@ typhoon_suspend(struct pci_dev *pdev, pm_message_t state) } INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_SET_MAC_ADDRESS); xp_cmd.parm1 = cpu_to_le16(ntohs(*(u16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(u32 *)&dev->dev_addr[2])); xp_cmd.parm1 = cpu_to_le16(ntohs(*(__be16 *)&dev->dev_addr[0])); xp_cmd.parm2 = cpu_to_le32(ntohl(*(__be32 *)&dev->dev_addr[2])); if(typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL) < 0) { printk(KERN_ERR "%s: unable to set mac address in suspend\n", dev->name); Loading Loading @@ -2465,8 +2465,8 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) goto error_out_reset; } *(u16 *)&dev->dev_addr[0] = htons(le16_to_cpu(xp_resp[0].parm1)); *(u32 *)&dev->dev_addr[2] = htonl(le32_to_cpu(xp_resp[0].parm2)); *(__be16 *)&dev->dev_addr[0] = htons(le16_to_cpu(xp_resp[0].parm1)); *(__be32 *)&dev->dev_addr[2] = htonl(le32_to_cpu(xp_resp[0].parm2)); if(!is_valid_ether_addr(dev->dev_addr)) { printk(ERR_PFX "%s: Could not obtain valid ethernet address, " Loading
drivers/net/typhoon.h +95 −95 Original line number Diff line number Diff line Loading @@ -64,19 +64,19 @@ struct transmit_ring { */ struct typhoon_indexes { /* The first four are written by the host, and read by the NIC */ volatile u32 rxHiCleared; volatile u32 rxLoCleared; volatile u32 rxBuffReady; volatile u32 respCleared; volatile __le32 rxHiCleared; volatile __le32 rxLoCleared; volatile __le32 rxBuffReady; volatile __le32 respCleared; /* The remaining are written by the NIC, and read by the host */ volatile u32 txLoCleared; volatile u32 txHiCleared; volatile u32 rxLoReady; volatile u32 rxBuffCleared; volatile u32 cmdCleared; volatile u32 respReady; volatile u32 rxHiReady; volatile __le32 txLoCleared; volatile __le32 txHiCleared; volatile __le32 rxLoReady; volatile __u32 rxBuffCleared; /* AV: really? */ volatile __le32 cmdCleared; volatile __le32 respReady; volatile __le32 rxHiReady; } __attribute__ ((packed)); /* The host<->Typhoon interface Loading @@ -100,31 +100,31 @@ struct typhoon_indexes { * be zero. */ struct typhoon_interface { u32 ringIndex; u32 ringIndexHi; u32 txLoAddr; u32 txLoAddrHi; u32 txLoSize; u32 txHiAddr; u32 txHiAddrHi; u32 txHiSize; u32 rxLoAddr; u32 rxLoAddrHi; u32 rxLoSize; u32 rxBuffAddr; u32 rxBuffAddrHi; u32 rxBuffSize; u32 cmdAddr; u32 cmdAddrHi; u32 cmdSize; u32 respAddr; u32 respAddrHi; u32 respSize; u32 zeroAddr; u32 zeroAddrHi; u32 rxHiAddr; u32 rxHiAddrHi; u32 rxHiSize; __le32 ringIndex; __le32 ringIndexHi; __le32 txLoAddr; __le32 txLoAddrHi; __le32 txLoSize; __le32 txHiAddr; __le32 txHiAddrHi; __le32 txHiSize; __le32 rxLoAddr; __le32 rxLoAddrHi; __le32 rxLoSize; __le32 rxBuffAddr; __le32 rxBuffAddrHi; __le32 rxBuffSize; __le32 cmdAddr; __le32 cmdAddrHi; __le32 cmdSize; __le32 respAddr; __le32 respAddrHi; __le32 respSize; __le32 zeroAddr; __le32 zeroAddrHi; __le32 rxHiAddr; __le32 rxHiAddrHi; __le32 rxHiSize; } __attribute__ ((packed)); /* The Typhoon transmit/fragment descriptor Loading Loading @@ -165,10 +165,10 @@ struct tx_desc { #define TYPHOON_RX_ERROR 0x40 #define TYPHOON_DESC_VALID 0x80 u8 numDesc; u16 len; __le16 len; u32 addr; u32 addrHi; u32 processFlags; __le32 processFlags; #define TYPHOON_TX_PF_NO_CRC __constant_cpu_to_le32(0x00000001) #define TYPHOON_TX_PF_IP_CHKSUM __constant_cpu_to_le32(0x00000002) #define TYPHOON_TX_PF_TCP_CHKSUM __constant_cpu_to_le32(0x00000004) Loading Loading @@ -197,12 +197,12 @@ struct tx_desc { struct tcpopt_desc { u8 flags; u8 numDesc; u16 mss_flags; __le16 mss_flags; #define TYPHOON_TSO_FIRST __constant_cpu_to_le16(0x1000) #define TYPHOON_TSO_LAST __constant_cpu_to_le16(0x2000) u32 respAddrLo; u32 bytesTx; u32 status; __le32 respAddrLo; __le32 bytesTx; __le32 status; } __attribute__ ((packed)); /* The IPSEC Offload descriptor Loading @@ -216,12 +216,12 @@ struct tcpopt_desc { struct ipsec_desc { u8 flags; u8 numDesc; u16 ipsecFlags; __le16 ipsecFlags; #define TYPHOON_IPSEC_GEN_IV __constant_cpu_to_le16(0x0000) #define TYPHOON_IPSEC_USE_IV __constant_cpu_to_le16(0x0001) u32 sa1; u32 sa2; u32 reserved; __le32 sa1; __le32 sa2; __le32 reserved; } __attribute__ ((packed)); /* The Typhoon receive descriptor (Updated by NIC) Loading @@ -239,10 +239,10 @@ struct ipsec_desc { struct rx_desc { u8 flags; u8 numDesc; u16 frameLen; __le16 frameLen; u32 addr; u32 addrHi; u32 rxStatus; __le32 rxStatus; #define TYPHOON_RX_ERR_INTERNAL __constant_cpu_to_le32(0x00000000) #define TYPHOON_RX_ERR_FIFO_UNDERRUN __constant_cpu_to_le32(0x00000001) #define TYPHOON_RX_ERR_BAD_SSD __constant_cpu_to_le32(0x00000002) Loading @@ -264,10 +264,10 @@ struct rx_desc { #define TYPHOON_RX_IP_CHK_GOOD __constant_cpu_to_le32(0x00000100) #define TYPHOON_RX_TCP_CHK_GOOD __constant_cpu_to_le32(0x00000200) #define TYPHOON_RX_UDP_CHK_GOOD __constant_cpu_to_le32(0x00000400) u16 filterResults; __le16 filterResults; #define TYPHOON_RX_FILTER_MASK __constant_cpu_to_le16(0x7fff) #define TYPHOON_RX_FILTERED __constant_cpu_to_le16(0x8000) u16 ipsecResults; __le16 ipsecResults; #define TYPHOON_RX_OUTER_AH_GOOD __constant_cpu_to_le16(0x0001) #define TYPHOON_RX_OUTER_ESP_GOOD __constant_cpu_to_le16(0x0002) #define TYPHOON_RX_INNER_AH_GOOD __constant_cpu_to_le16(0x0004) Loading @@ -278,7 +278,7 @@ struct rx_desc { #define TYPHOON_RX_INNER_ESP_FAIL __constant_cpu_to_le16(0x0080) #define TYPHOON_RX_UNKNOWN_SA __constant_cpu_to_le16(0x0100) #define TYPHOON_RX_ESP_FORMAT_ERR __constant_cpu_to_le16(0x0200) u32 vlanTag; __be32 vlanTag; } __attribute__ ((packed)); /* The Typhoon free buffer descriptor, used to give a buffer to the NIC Loading @@ -292,8 +292,8 @@ struct rx_desc { * from the NIC */ struct rx_free { u32 physAddr; u32 physAddrHi; __le32 physAddr; __le32 physAddrHi; u32 virtAddr; u32 virtAddrHi; } __attribute__ ((packed)); Loading @@ -312,7 +312,7 @@ struct rx_free { struct cmd_desc { u8 flags; u8 numDesc; u16 cmd; __le16 cmd; #define TYPHOON_CMD_TX_ENABLE __constant_cpu_to_le16(0x0001) #define TYPHOON_CMD_TX_DISABLE __constant_cpu_to_le16(0x0002) #define TYPHOON_CMD_RX_ENABLE __constant_cpu_to_le16(0x0003) Loading @@ -339,9 +339,9 @@ struct cmd_desc { #define TYPHOON_CMD_GET_IPSEC_ENABLE __constant_cpu_to_le16(0x0067) #define TYPHOON_CMD_GET_CMD_LVL __constant_cpu_to_le16(0x0069) u16 seqNo; u16 parm1; u32 parm2; u32 parm3; __le16 parm1; __le32 parm2; __le32 parm3; } __attribute__ ((packed)); /* The Typhoon response descriptor, see command descriptor for details Loading @@ -349,11 +349,11 @@ struct cmd_desc { struct resp_desc { u8 flags; u8 numDesc; u16 cmd; u16 seqNo; u16 parm1; u32 parm2; u32 parm3; __le16 cmd; __le16 seqNo; __le16 parm1; __le32 parm2; __le32 parm3; } __attribute__ ((packed)); #define INIT_COMMAND_NO_RESPONSE(x, command) \ Loading Loading @@ -386,31 +386,31 @@ struct resp_desc { struct stats_resp { u8 flags; u8 numDesc; u16 cmd; u16 seqNo; u16 unused; u32 txPackets; u64 txBytes; u32 txDeferred; u32 txLateCollisions; u32 txCollisions; u32 txCarrierLost; u32 txMultipleCollisions; u32 txExcessiveCollisions; u32 txFifoUnderruns; u32 txMulticastTxOverflows; u32 txFiltered; u32 rxPacketsGood; u64 rxBytesGood; u32 rxFifoOverruns; u32 BadSSD; u32 rxCrcErrors; u32 rxOversized; u32 rxBroadcast; u32 rxMulticast; u32 rxOverflow; u32 rxFiltered; u32 linkStatus; __le16 cmd; __le16 seqNo; __le16 unused; __le32 txPackets; __le64 txBytes; __le32 txDeferred; __le32 txLateCollisions; __le32 txCollisions; __le32 txCarrierLost; __le32 txMultipleCollisions; __le32 txExcessiveCollisions; __le32 txFifoUnderruns; __le32 txMulticastTxOverflows; __le32 txFiltered; __le32 rxPacketsGood; __le64 rxBytesGood; __le32 rxFifoOverruns; __le32 BadSSD; __le32 rxCrcErrors; __le32 rxOversized; __le32 rxBroadcast; __le32 rxMulticast; __le32 rxOverflow; __le32 rxFiltered; __le32 linkStatus; #define TYPHOON_LINK_STAT_MASK __constant_cpu_to_le32(0x00000001) #define TYPHOON_LINK_GOOD __constant_cpu_to_le32(0x00000001) #define TYPHOON_LINK_BAD __constant_cpu_to_le32(0x00000000) Loading @@ -420,8 +420,8 @@ struct stats_resp { #define TYPHOON_LINK_DUPLEX_MASK __constant_cpu_to_le32(0x00000004) #define TYPHOON_LINK_FULL_DUPLEX __constant_cpu_to_le32(0x00000004) #define TYPHOON_LINK_HALF_DUPLEX __constant_cpu_to_le32(0x00000000) u32 unused2; u32 unused3; __le32 unused2; __le32 unused3; } __attribute__ ((packed)); /* TYPHOON_CMD_XCVR_SELECT xcvr values (resp.parm1) Loading Loading @@ -509,17 +509,17 @@ struct sa_descriptor { */ struct typhoon_file_header { u8 tag[8]; u32 version; u32 numSections; u32 startAddr; u32 hmacDigest[5]; __le32 version; __le32 numSections; __le32 startAddr; __le32 hmacDigest[5]; } __attribute__ ((packed)); struct typhoon_section_header { u32 len; __le32 len; u16 checksum; u16 reserved; u32 startAddr; __le32 startAddr; } __attribute__ ((packed)); /* The Typhoon Register offsets Loading