aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/net_driver.h
Commit message (Collapse)AuthorAge
* sfc: Add support for multiple PHY self-testsBen Hutchings2008-12-26
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Generate unique names for per-NIC workqueuesBen Hutchings2008-12-26
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Version 2.3Ben Hutchings2008-12-13
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Use model numbers for PHY type namesBen Hutchings2008-12-13
| | | | | | | | | | Some of the PHY type names are overly generic. Change them to include the model numbers of the PHYs they represent. Correct the model number reference at the top of xfp_phy.c. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Add support for Solarflare 10Xpress SFT9001Ben Hutchings2008-12-13
| | | | | | | | | | | | Add type codes for the new PHY and rename the SFX7101 type code. Add definition of clause 22 extension MMD. Adapt the 10Xpress SFX7101 code to support the SFT9001 as well. Clean up register definitions. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Rework MAC, PHY and board event handlingBen Hutchings2008-12-13
| | | | | | | | | | | From: Steve Hodgson <shodgson@solarflare.com> MAC, PHY and board events may be separately enabled and signalled. Our current arrangement of chaining the polling functions can result in events being missed. Change them to be more independent. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Implement auto-negotiationBen Hutchings2008-12-13
| | | | | | | | | | | | Add infrastructure for auto-negotiation of speed, duplex and flow control. When using 10Xpress, auto-negotiate flow control. While we're at it, clean up the code to warn when partner is not 10GBASE-T capable. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Add support for sub-10G speedsBen Hutchings2008-12-13
| | | | | | | | | | | | | The SFC4000 has a separate MAC for use at sub-10G speeds. Introduce an efx_mac_operations structure with implementations for the two MACs. Switch between the MACs as necessary. PHY settings are independent of the MAC, so add get_settings() and set_settings() to efx_phy_operations. Also add macs field to indicate which MACs the PHY is connected to. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Remove MII extension cruftBen Hutchings2008-12-13
| | | | | | | | | | Replace efx_nic::link_options bitfield with link_speed (speed in Mbit/s) and link_fd (full duplex flag). Remove broken auto-negotiation functions. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Provide hints to irqbalance daemonBen Hutchings2008-12-13
| | | | | | | | Allocate IRQs with the name format <device>[-<type>]-<number> so that future versions of irqbalanced understand what we're doing. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Add option to use a separate channel for TX completionsNeil Turton2008-12-13
| | | | | | | | | | | | In a bidirectional forwarding test, we find that the best performance is achieved by sending the TX completion interrupts from one NIC to a CPU which shares an L2 cache with RX completion interrupts from the other NIC. To facilitate this, add an option (through a module parameter) to create separate channels for RX and TX completion with separate IRQs when MSI-X is available. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Make reset_workqueue driver-global rather than per-NICSteve Hodgson2008-12-13
| | | | | | | | Each reset is serialised by the rtnl_lock anyway, so there's no win per-NIC. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sfc: Use lm87 and lm90 drivers for board temperature/power monitoringBen Hutchings2008-11-06
| | | | | | | | | Add board monitoring to periodic work whenever link is down. For SFE4001, report when a fault has caused the PHY to turn off. For SFE4002, switch XFP PHY into low-power state in case of a fault. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Expose flash region storing boot code as MTDBen Hutchings2008-11-06
| | | | | | | | | The boot code that appears as a PCI expansion ROM on the SFC4000 is stored in flash. Expose this as a standard MTD device to allow for in-place upgrades. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS where appropriateBen Hutchings2008-09-24
| | | | | | | | | | | For some buffers we use a starting offset of either NET_IP_ALIGN or 0 depending on whether we believe the architecture supports efficient access to unaligned words. There is now a config macro specifying whether this is the case, so check that rather than checking for specific architectures. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Make queue flushes more reliableBen Hutchings2008-09-24
| | | | | | | | | | | | | | Increase the potential retry count for RX flushes from 5 to 100. Stop polling the RX_DESC_PTR_TBL to infer that a flush might have happened. Instead absolutely rely on the flush events, unless bug 7803 applies (Falcon rev A only). To keep things quick, request flushes for every TX and RX queue up front, and match up the events to requests. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove workaround for old firmware bugBen Hutchings2008-09-24
| | | | | | | | | There was a bug in XAUI synchronisation in early 10Xpress firmware versions. This is fixed in released firmware and we do not need to work around it. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove the STATE_RESETTING flagBen Hutchings2008-09-03
| | | | | | | | This was originally a kludge to fix broken locking, which has since been fixed properly. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Extend self-testsBen Hutchings2008-09-03
| | | | | | | | | | | | | Include PMA/PMD in loopback self-tests as intended. Add NVRAM checksum validation and include it in self-tests. Add register self-tests. Run PHY self-tests where available. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Make PHY flash mode a device attribute, not a module parameterBen Hutchings2008-09-03
| | | | | | | | | | | | | This allows updating PHY firmware for one interface without removing all other interfaces handled by the driver. Replace tx_disabled flags and 10Xpress status enumeration with flags in enum efx_phy_mode. Prevent an interface from being brought up while in PHY flash mode. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove efx_channel::evqnum fieldBen Hutchings2008-09-03
| | | | | | | It is redundant with efx_channel::channel. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Make efx_for_each_channel_rx_queue() more efficientBen Hutchings2008-09-03
| | | | | | | | Currently each channel can have at most one RX queue, so go straight to that one. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Cleanup RX queue informationBen Hutchings2008-09-03
| | | | | | | | | Rename efx_nic::rss_queues to the more obvious n_rx_queues Remove efx_rx_queue::used and other stuff that's redundant with it. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove efx_channel::has_interruptBen Hutchings2008-09-03
| | | | | | | | | efx_channel::has_interrupt is redundant with efx_channel::used_flags. Remove efx_test_eventq() because it is now obviously unreachable. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Export boot configuration in EEPROM through ethtoolBen Hutchings2008-09-03
| | | | | | | Extend the SPI device setup code to support this. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use explicit bool for boolean variables, parameters and return valuesBen Hutchings2008-09-03
| | | | | | | | | | | | Replace (cond ? 1 : 0) with cond or !!cond as appropriate, and (cond ? 0 : 1) with !cond. Remove some redundant boolean temporaries. Rename one field that looks like a flag but isn't. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Reduce the size of struct efx_tx_bufferBen Hutchings2008-09-03
| | | | | | | | Remove unmap_addr since it can be calculated from dma_addr, len and unmap_len. This saves 4-16 bytes. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use separate hardware TX queues to select checksum generationBen Hutchings2008-09-03
| | | | | | | | | | | | | | | | Checksum generation is an attribute of our hardware TX queues, not TX descriptors. We previously used a single queue and turned checksum generation on or off as requested through ethtool. However, this can result in regenerating checksums in raw packets that should not be modified. We now create 2 hardware TX queues with checksum generation on or off. They are presented to the net core as one queue since it does not know how to select between them. The self-test verifies that a bad checksum is unaltered on the queue with checksum generation off. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove unused field efx_channel::reset_workSteve Hodgson2008-09-03
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Change first parameter type of {set,clear}_bit_le() to unsignedBen Hutchings2008-09-03
| | | | | | | This means the compiler doesn't need to use real division instructions. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use a separate workqueue for resetsBen Hutchings2008-07-22
| | | | | | | This avoids deadlock in case a reset is triggered during self-test. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use kernel I2C system and i2c-algo-bit driverBen Hutchings2008-05-30
| | | | | | | Remove our own implementation of I2C bit-banging. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Remove sub-minor component from driver versionBen Hutchings2008-05-22
| | | | | | | | | This driver has diverged from the out-of-tree driver to which the version number originally applied. It should be identified primarily by kernel version. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Change type of efx_nic::nic_data to struct falcon_nic_data *Ben Hutchings2008-05-22
| | | | | | | Remove redundant casts and variable. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Do not define inline macroBen Hutchings2008-05-22
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use DMA_BIT_MASK() instead of our own DMA mask macrosBen Hutchings2008-05-22
| | | | | | | | Also change type of efx_nic_type::max_dma_mask to u64, matching pci_dma_supported() parameter type. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Use resource_size_t for PCI bus addressBen Hutchings2008-05-22
| | | | | | | This should make the driver work on 32-bit systems with 64-bit PCI support. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* sfc: Replaced various macros with inline functionsBen Hutchings2008-05-22
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [netdrvr] sfc: sfc: Add self-test supportBen Hutchings2008-05-13
| | | | | | | | Add a set of self-tests accessible thorugh ethtool. Add hardware loopback and TX disable control code to support them. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [netdrvr] sfc: Remove kernel-doc comments for removed members of struct efx_nicBen Hutchings2008-05-13
| | | | | Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* [netdrvr] sfc: Add TSO supportBen Hutchings2008-05-13
| | | | | | | | | | The SFC4000 controller does not have hardware support for TSO, and the core GSO code incurs a high cost in allocating and freeing skbs. This TSO implementation uses lightweight packet header structures and is substantially faster. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* New driver "sfc" for Solarstorm SFC4000 controller.Ben Hutchings2008-04-29
The driver supports the 10Xpress PHY and XFP modules on our reference designs SFE4001 and SFE4002 and the SMC models SMC10GPCIe-XFP and SMC10GPCIe-10BT. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>