#
0e33d870 |
| 17-May-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Use generic DMA API, not PCI-DMA API Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
Revision tags: v3.4-rc7, v3.4-rc6, v3.4-rc5, v3.4-rc4, v3.4-rc3, v3.4-rc2, v3.4-rc1, v3.3, v3.3-rc7, v3.3-rc6 |
|
#
dd40781e |
| 28-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Run event/IRQ self-test asynchronously when interface is brought up Generate a test event on each event queue whenever the interface is brought up, then after 1 second check that we
sfc: Run event/IRQ self-test asynchronously when interface is brought up Generate a test event on each event queue whenever the interface is brought up, then after 1 second check that we have either handled a test event or handled another IRQ for each event queue. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
eee6f6a9 |
| 28-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Encapsulate access to efx_{channel,nic}::last_irq_cpu in self-test Cleanup in preparation for doing an event test on ifup. Signed-off-by: Ben Hutchings <bhutchings@solarflare.c
sfc: Encapsulate access to efx_{channel,nic}::last_irq_cpu in self-test Cleanup in preparation for doing an event test on ifup. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
e7bed9c8 |
| 28-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Remove TX completions from adaptive IRQ scoring RX and TX completions on the same event queue are generally not associated with the same flows. The inclusion of TX completions in t
sfc: Remove TX completions from adaptive IRQ scoring RX and TX completions on the same event queue are generally not associated with the same flows. The inclusion of TX completions in the adaptive IRQ score is more of a source of noise rather than useful feedback. Therefore, do not include them in the score, and adjust the default threshold scores down. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
Revision tags: v3.3-rc5, v3.3-rc4 |
|
#
cd2d5b52 |
| 13-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Add SR-IOV back-end support for SFC9000 family 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
sfc: Add SR-IOV back-end support for SFC9000 family 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>
show more ...
|
#
28e47c49 |
| 14-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Allocate SRAM between buffer table and descriptor caches at init time Each port has a block of 64-bit SRAM that is divided between buffer table and descriptor cache regions at initi
sfc: Allocate SRAM between buffer table and descriptor caches at init time Each port has a block of 64-bit SRAM that is divided between buffer table and descriptor cache regions at initialisation time. Currently we use a fixed allocation, but it needs to be changed to support larger numbers of queues. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
5bbe2f4f |
| 13-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Make buffer table indices and counts consistently unsigned Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
Revision tags: v3.3-rc3, v3.3-rc2, v3.3-rc1, v3.2, v3.2-rc7, v3.2-rc6, v3.2-rc5, v3.2-rc4, v3.2-rc3, v3.2-rc2, v3.2-rc1, v3.1, v3.1-rc10, v3.1-rc9, v3.1-rc8, v3.1-rc7, v3.1-rc6, v3.1-rc5, v3.1-rc4, v3.1-rc3, v3.1-rc2, v3.1-rc1, v3.0, v3.0-rc7, v3.0-rc6, v3.0-rc5, v3.0-rc4, v3.0-rc3, v3.0-rc2, v3.0-rc1 |
|
#
a606f432 |
| 23-May-2011 |
Steve Hodgson <shodgson@solarflare.com> |
sfc: Disable flow control during flushes 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 th
sfc: Disable flow control during flushes 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>
show more ...
|
#
90893000 |
| 10-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Generalise event generation to cover VF-owned event queues For SR-IOV we will need to send events to event queues that belong to VFs serviced by other drivers. Change the parameter
sfc: Generalise event generation to cover VF-owned event queues For SR-IOV we will need to send events to event queues that belong to VFs serviced by other drivers. Change the parameters of efx_generate_event() to allow this and declare it extern. While we're at it, remove the existing declaration under the wrong name efx_nic_generate_event(). Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
9f2cb71c |
| 07-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Leave interrupts and event queues enabled whenever we can When SR-IOV is enabled we may receive FLR (Function-Level Reset) events, associated queue flush events and requests from VF
sfc: Leave interrupts and event queues enabled whenever we can When SR-IOV is enabled we may receive FLR (Function-Level Reset) events, associated queue flush events and requests from VF drivers at any time. Therefore we need to keep event queues and interrupts enabled whenever possible. Currently we stop interrupt-driven event processing before flushing RX and TX queues; efx_nic_flush_queues() then polls event queues for flush events and discards any others it finds. Change it to work with the regular event handling functions. Currently efx_start_channel() fills RX queues synchronously when a device is brought up. This could now race with NAPI, so change it to send fill events. This was almost entirely written by Steve Hodgson, formerly shodgson@solarflare.com. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
2ae75dac |
| 07-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Generate RX fill events based on RX queues, not channels This makes it harder to accidentally send such events to TX-only channels. Signed-off-by: Ben Hutchings <bhutchings
sfc: Generate RX fill events based on RX queues, not channels This makes it harder to accidentally send such events to TX-only channels. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
4ef594eb |
| 07-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Generalise driver event generation Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
#
5b6262d0 |
| 02-Feb-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Replace some literal constants with EFX_PAGE_SIZE/EFX_BUF_SIZE The 'page size' for PCIe DMA, i.e. the alignment of boundaries at which DMA must be broken, is 4KB. Name this value a
sfc: Replace some literal constants with EFX_PAGE_SIZE/EFX_BUF_SIZE The 'page size' for PCIe DMA, i.e. the alignment of boundaries at which DMA must be broken, is 4KB. Name this value as EFX_PAGE_SIZE and use it in efx_max_tx_len(). Redefine EFX_BUF_SIZE as EFX_PAGE_SIZE since its value is also a result of that requirement, and use it in efx_init_special_buffer(). Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
db339569 |
| 26-Aug-2011 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Replace efx_rx_buffer::is_page and other booleans with a flags field Replace checksummed and discard booleans from efx_handle_rx_event() with a bitmask, added to the flags field.
sfc: Replace efx_rx_buffer::is_page and other booleans with a flags field Replace checksummed and discard booleans from efx_handle_rx_event() with a bitmask, added to the flags field. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
73ba7b68 |
| 09-Jan-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Remove remnants of on-load self-test The out-of-tree version of the sfc driver used to run a self-test on each device before registering it. Although this was never included in
sfc: Remove remnants of on-load self-test The out-of-tree version of the sfc driver used to run a self-test on each device before registering it. Although this was never included in-tree, some functions have checks for this special case which is not really possible. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
1646a6f3 |
| 05-Jan-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Clean up test interrupt handling Interrupts are normally generated by the event queues, moderated by timers. However, they may also be triggered by detection of a 'fatal' error
sfc: Clean up test interrupt handling Interrupts are normally generated by the event queues, moderated by timers. However, they may also be triggered by detection of a 'fatal' error condition (e.g. memory parity error) or by the host writing to certain CSR fields as part of a self-test. The IRQ level/index used for these on Falcon rev B0 and Siena is set by the KER_INT_LEVE_SEL field and cached by the driver in efx_nic::fatal_irq_level. Since this value is also relevant to self-tests rename the field to just 'irq_level'. Avoid unnecessary cache traffic by using a per-channel 'last_irq_cpu' field and only writing to the per-controller field when the interrupt matches efx_nic::irq_level. Remove the volatile qualifier and use ACCESS_ONCE in the places we read these fields. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
5f3f9d6c |
| 04-Nov-2011 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Consistently test DEBUG macro, not EFX_ENABLE_DEBUG The netif_dbg() macro is defined in <linux/netdevice.h>. If the DEBUG macro is defined, it logs a message at 'debug' level, othe
sfc: Consistently test DEBUG macro, not EFX_ENABLE_DEBUG The netif_dbg() macro is defined in <linux/netdevice.h>. If the DEBUG macro is defined, it logs a message at 'debug' level, otherwise it does nothing. In net_driver.h we define DEBUG if EFX_ENABLE_DEBUG is defined, but this is too late for those source files that already got a definition of netif_dbg() by including <linux/netdevice.h> Get rid of EFX_ENABLE_DEBUG, and only define and test DEBUG. In mtd.c, we do not use DEBUG as a condition flag but are forced to use the DEBUG macro-function from <linux/mtd/mtd.h>. Undefine DEBUG before including it. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
show more ...
|
#
9c636baf |
| 05-Jan-2012 |
Ben Hutchings <bhutchings@solarflare.com> |
sfc: Fix some formatting errors reported by checkpatch Fix the following errors and warnings: ERROR: trailing whitespace ERROR: spaces required around that '=' (ctx:VxV) WAR
sfc: Fix some formatting errors reported by checkpatch 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>
show more ...
|
#
8decf868 |
| 22-Sep-2011 |
David S. Miller <davem@davemloft.net> |
Merge branch 'master' of github.com:davem330/net Conflicts: MAINTAINERS drivers/net/Kconfig drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c d
Merge branch 'master' of github.com:davem330/net Conflicts: MAINTAINERS drivers/net/Kconfig drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c drivers/net/ethernet/broadcom/tg3.c drivers/net/wireless/iwlwifi/iwl-pci.c drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c drivers/net/wireless/rt2x00/rt2800usb.c drivers/net/wireless/wl12xx/main.c
show more ...
|
Revision tags: v2.6.39 |
|
#
874aeea5 |
| 13-May-2011 |
Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
sfc: Move the Solarflare drivers Moves the Solarflare drivers into drivers/net/ethernet/sfc/ and make the necessary Kconfig and Makefile changes. CC: Steve Hodgson <shodgson@sol
sfc: Move the Solarflare drivers 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>
show more ...
|