aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb4
Commit message (Collapse)AuthorAge
* cxgb4: update driver versionDimitris Michailidis2010-08-02
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: add new PCI IDsDimitris Michailidis2010-08-02
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: fix wrong shift directionDimitris Michailidis2010-08-02
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: support running the driver on PCI functions besides 0Dimitris Michailidis2010-08-02
| | | | | | | | | Add support for running the driver on any PCI function. Mostly this entails replacing a constant 0 in a number of calls with the variable function number. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: advertise NETIF_F_TSO_ECNDimitris Michailidis2010-08-02
| | | | | | | The device supports TSO+ECN. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: get on-chip queue info from FW and create a memory window for themDimitris Michailidis2010-08-02
| | | | | | | | | | Get info about the availability of Tx on-chip queues from FW and if they are supported set up a memory window for them. iw_cxgb4 will be using them. Move the existing window setup later in the init sequence, after we have collected the new info. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: fix TSO descriptorsDimitris Michailidis2010-08-02
| | | | | | | | | | | Commit 1704d74894912b8ecc3e95cecd7bde336a0b1bf2 ("cxgb4vf: small changes to message processing structures/macros") was incomplete and causes cxgb4 to write bad TSO descriptors. Fix that up by reverting the offending part of that commit and adjusting field accesses now that they are one level deeper. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: don't offload Rx checksums for IPv6 fragmentsDimitris Michailidis2010-08-02
| | | | | | | | The checksum provided by the device doesn't include the L3 headers, as IPv6 expects. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: disable an interrupt that is neither used nor servicedDimitris Michailidis2010-08-02
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: exclude registers with read side effects from register dumpsDimitris Michailidis2010-07-11
| | | | | | | | | | | A few registers have side effects on reads, eg FIFO pointers that auto advance or mailboxes which change ownership when read. They are unsafe to read so exclude them from ethtool register dumps. Bump ethtool_regs.version to indicate the changed register set. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: implement the ETHTOOL_GRXFH commandDimitris Michailidis2010-07-11
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: add user manipulation of the RSS tableDimitris Michailidis2010-07-11
| | | | | | | | | | Implement the get_rxnfc, get_rxfh_indir, and set_rxfh_indir ethtool methods for user manipulation of the RSS table. Besides the methods themselves the rest of the changes here store, initialize, and write the table contents. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: avoid duplicating some resource freeing codeDimitris Michailidis2010-07-11
| | | | | | | | Currently there are two copies of some resource freeing code, turn it into a function and call it. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: move the choice of interrupt type before net_device registrationDimitris Michailidis2010-07-11
| | | | | | | | | We need to settle on the kind of interrupts we'll be using, a choice that also impacts the number of queues, before registering and making visible the net_devices. Move the relevant code up a bit. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: fix for new ndo_get_stats64 signatureDimitris Michailidis2010-07-08
| | | | | | | | | The change to ndo_get_stats64 in "net: fix 64 bit counters on 32 bit arches" missed cxgb4. Fix it. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Acked-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Use kfree_skb for skb pointersDenis Kirjanov2010-07-07
| | | | | | | | Use kfree_skb for skb pointers Acked-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* ethtool: Change ethtool_op_set_flags to validate flagsBen Hutchings2010-06-30
| | | | | | | | | | | | | | | | | | ethtool_op_set_flags() does not check for unsupported flags, and has no way of doing so. This means it is not suitable for use as a default implementation of ethtool_ops::set_flags. Add a 'supported' parameter specifying the flags that the driver and hardware support, validate the requested flags against this, and change all current callers to pass this parameter. Change some other trivial implementations of ethtool_ops::set_flags to call ethtool_op_set_flags(). Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Reviewed-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4vf: Add code to provision T4 PCI-E SR-IOV Virtual Functions with ↵Casey Leedom2010-06-29
| | | | | | | | | | hardware resources Add code to provision T4 PCI-E SR-IOV Virtual Functions with hardware resources. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4vf: Add new macros and definitions for hardware constantsCasey Leedom2010-06-29
| | | | | | | Add new macros and definitions for hardware constants. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4vf: update to latest T4 firmware API fileCasey Leedom2010-06-29
| | | | | | | Update to latest T4 firmware API file. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4vf: small changes to message processing structures/macrosCasey Leedom2010-06-29
| | | | | | | | Split cpl_tx_pkt_lso into core message structure and encapsulated message, make RSPD_LEN macro match other response descriptor macros. Signed-off-by: Casey Leedom Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: minor cleanupDimitris Michailidis2010-06-19
| | | | | | | Remove an unused flag and replace couple constants with enums. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: update FW definitionsDimitris Michailidis2010-06-19
| | | | | | | | Update to latest FW API. Most changes here pertain to port types and querying FW for parameter values. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: add a missing error interruptDimitris Michailidis2010-06-19
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: propagate link initialization errors to .ndo_open's callersDimitris Michailidis2010-06-19
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: switch to 64 bit inteface statisticsDimitris Michailidis2010-06-19
| | | | | | | Implement ndo_get_stats64, remove ndo_get_stats. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: set dev_id to the port numberDimitris Michailidis2010-06-19
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: implement EEHDimitris Michailidis2010-06-19
| | | | | | | Implement the pci_error_handlers methods for EEH. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: rearrange initialization code in preparation for EEHDimitris Michailidis2010-06-19
| | | | | | | | Split some existing initialization code into a separate function for use by EEH next. No functional changes. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: dynamically determine flash size and FW image locationDimitris Michailidis2010-06-19
| | | | | | | | | | | | Handle the larger flash memories on newer boards: - get the size and number of sectors by probing the flash - writes and erases can take longer, adjust the timeouts for these operations - the FW image can be at different locations depending on flash size, find its location dynamically as well. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: notify upper drivers if the device is already up when they loadDimitris Michailidis2010-05-18
| | | | | | | | Upper layer drivers aren't notified that a device is ready if their modules load after the device becomes ready. Add the missing notification. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: keep interrupts available when the ports are brought downDimitris Michailidis2010-05-18
| | | | | | | | | | The PF driver needs to remain alert while its ports are down to service requests or errors from virtual functions or FW so keep interrupts and queues available when the ports are brought down. The change makes open_device_map unnecessary so remove it. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: fix initial addition of MAC addressDimitris Michailidis2010-05-18
| | | | | | | | The call to add the MAC address during link initialization wasn't adding the address to one of the HW tables. Fix. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: report GRO stats with ethtool -SDimitris Michailidis2010-05-13
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: report the PCIe link speedDimitris Michailidis2010-05-13
| | | | | | | Report the PCIe link speed (2.5 or 5 Gbps). Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: configure HW VLAN extraction through FWDimitris Michailidis2010-05-13
| | | | | | | | | HW VLAN extraction needs to be configured through FW to work correctly in virtualization environments. Remove the direct register manipulation and rely on FW. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: set skb->rxhashDimitris Michailidis2010-04-27
| | | | | | | | | | Implement the ->set_flags ethtool method to control NETIF_F_RXHASH and set skb->rxhash to the HW calculated hash accordingly. Follow Eric Dumazet's suggestion and use the hash value raw. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: increase serial number lengthDimitris Michailidis2010-04-27
| | | | | | | Some boards have longer serial numbers in their VPD, up to 24 bytes. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: parse the VPD instead of relying on a static VPD layoutDimitris Michailidis2010-04-27
| | | | | | | | | Some boards' VPDs contain additional keywords or have longer serial numbers, meaning the keyword locations are variable. Ditch the static layout and use the pci_vpd_* family of functions to parse the VPD instead. Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Make unnecessarily global functions staticRoland Dreier2010-04-22
| | | | | | | | Also put t4_write_indirect() inside "#if 0" to avoid a "defined but not used" compile warning. Signed-off-by: Roland Dreier <rolandd@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Use ntohs() on __be16 value instead of htons()Roland Dreier2010-04-22
| | | | | | | | | Use the correct direction of byte-swapping function to fix a mistake shown by sparse endianness checking -- c.fl0id is __be16. Signed-off-by: Roland Dreier <rolandd@cisco.com> Acked-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2010-04-07
| | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/bonding/bond_main.c drivers/net/via-velocity.c drivers/net/wireless/iwlwifi/iwl-agn.c
* cxgb4: Add main driver file and driver MakefileDimitris Michailidis2010-04-01
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Add remaining driver headers and L2T managementDimitris Michailidis2010-04-01
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Add packet queues and packet DMA codeDimitris Michailidis2010-04-01
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Add HW and FW support codeDimitris Michailidis2010-04-01
| | | | | Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Add register, message, and FW definitionsDimitris Michailidis2010-04-01
Signed-off-by: Dimitris Michailidis <dm@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>