summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/sfc/mcdi_mac.c
Commit message (Collapse)AuthorAgeFilesLines
* sfc: Add SR-IOV back-end support for SFC9000 familyBen Hutchings2012-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | On the SFC9000 family, each port has 1024 Virtual Interfaces (VIs), each with an RX queue, a TX queue, an event queue and a mailbox register. These may be assigned to up to 127 SR-IOV virtual functions per port, with up to 64 VIs per VF. We allocate an extra channel (IRQ and event queue only) to receive requests from VF drivers. There is a per-port limit of 4 concurrent RX queue flushes, and queue flushes may be initiated by the MC in response to a Function Level Reset (FLR) of a VF. Therefore, when SR-IOV is in use, we submit all flush requests via the MC. The RSS indirection table is shared with VFs, so the number of RX queues used in the PF is limited to the number of VIs per VF. This is almost entirely the work of Steve Hodgson, formerly shodgson@solarflare.com. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Disable flow control during flushesSteve Hodgson2012-02-161-0/+2
| | | | | | | | | | | | | | | | The TX DMA engine issues upstream read requests when there is room in the TX FIFO for the completion. However, the fetches for the rest of the packet might be delayed by any back pressure. Since a flush must wait for an EOP, the entire flush may be delayed by back pressure. Mitigate this by disabling flow control before the flushes are started. Since PF and VF flushes run in parallel introduce fc_disable, a reference count of the number of flushes outstanding. The same principle could be applied to Falcon, but that would bring with it its own testing. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Remove efx_nic_type::push_multicast_hash operationBen Hutchings2012-01-271-4/+6
| | | | | | | | | | | | Both implementations of efx_nic_type::reconfigure_mac operation push the multicast hash filter to the hardware. It is therefore redundant to call efx_nic_type::push_multicast_hash as well. efx_mcdi_mac_reconfigure() also uses this operation, but the implementation for Siena just uses MCDI anyway. Merge that into efx_mcdi_mac_reconfigure(). Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Merge efx_mcdi_mac_check_fault() and efx_mcdi_get_mac_faults()Ben Hutchings2012-01-271-18/+7
| | | | | | | | The latter is only called by the former, which is a very short wrapper. Further, gcc 4.5 may currently wrongly warn that the 'faults' variable may be used uninitialised. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Merge efx_mac_operations into efx_nic_typeBen Hutchings2012-01-271-10/+2
| | | | | | | | | | | | | | | | | | | No NICs need to switch efx_mac_operations at run-time, and the MAC operations are fairly closely bound to NIC types. Move efx_mac_operations::reconfigure to efx_nic_type::reconfigure_mac and efx_mac_operations::check_fault fo efx_nic_type::check_mac_fault. Change callers to call through efx->type or directly if the NIC type is known. Remove efx_mac_operations::update_stats. The implementations for Falcon used to fetch MAC statistics synchronously and this was used by efx_register_netdev() to clear statistics after running self-tests. However, it now only converts statistics that have already been fetched (and that only for Falcon), and the call from efx_register_netdev() has no effect. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Update MCDI (firmware interface) definitionsBen Hutchings2012-01-091-8/+8
| | | | | | | Some commands and constants have been renamed; adjust the code accordingly. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Fix some formatting errors reported by checkpatchBen Hutchings2012-01-051-1/+1
| | | | | | | | | | Fix the following errors and warnings: ERROR: trailing whitespace ERROR: spaces required around that '=' (ctx:VxV) WARNING: please, no space before tabs Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
* sfc: Move the Solarflare driversJeff Kirsher2011-08-111-0/+145
Moves the Solarflare drivers into drivers/net/ethernet/sfc/ and make the necessary Kconfig and Makefile changes. CC: Steve Hodgson <shodgson@solarflare.com> CC: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
OpenPOWER on IntegriCloud