aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/efx.h
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.org>2013-03-16 15:25:02 +0000
committercodeworkx <codeworkx@cyanogenmod.org>2013-03-16 15:25:02 +0000
commitcba07183cc76b06a5ef2b20eef70d203dc5bcd5d (patch)
treee9847236fac724bbe929a5f2da2ad074ac47f120 /drivers/net/sfc/efx.h
parent1fb968ea5a15b9ff31c6345c3c4aad523985e024 (diff)
parent44655588a0b361afa15761b5c58f5a558c1c181c (diff)
downloadkernel_samsung_smdk4412-cba07183cc76b06a5ef2b20eef70d203dc5bcd5d.zip
kernel_samsung_smdk4412-cba07183cc76b06a5ef2b20eef70d203dc5bcd5d.tar.gz
kernel_samsung_smdk4412-cba07183cc76b06a5ef2b20eef70d203dc5bcd5d.tar.bz2
Merge branch 'cm-10.1-experimental' into HEAD
Diffstat (limited to 'drivers/net/sfc/efx.h')
-rw-r--r--drivers/net/sfc/efx.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/sfc/efx.h b/drivers/net/sfc/efx.h
index b0d1209..a5d1c60 100644
--- a/drivers/net/sfc/efx.h
+++ b/drivers/net/sfc/efx.h
@@ -38,6 +38,7 @@ extern netdev_tx_t
efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb);
extern void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
extern int efx_setup_tc(struct net_device *net_dev, u8 num_tc);
+extern unsigned int efx_tx_max_skb_descs(struct efx_nic *efx);
/* RX */
extern int efx_probe_rx_queue(struct efx_rx_queue *rx_queue);
@@ -60,10 +61,15 @@ extern void efx_schedule_slow_fill(struct efx_rx_queue *rx_queue);
#define EFX_MAX_EVQ_SIZE 16384UL
#define EFX_MIN_EVQ_SIZE 512UL
-/* The smallest [rt]xq_entries that the driver supports. Callers of
- * efx_wake_queue() assume that they can subsequently send at least one
- * skb. Falcon/A1 may require up to three descriptors per skb_frag. */
-#define EFX_MIN_RING_SIZE (roundup_pow_of_two(2 * 3 * MAX_SKB_FRAGS))
+/* Maximum number of TCP segments we support for soft-TSO */
+#define EFX_TSO_MAX_SEGS 100
+
+/* The smallest [rt]xq_entries that the driver supports. RX minimum
+ * is a bit arbitrary. For TX, we must have space for at least 2
+ * TSO skbs.
+ */
+#define EFX_RXQ_MIN_ENT 128U
+#define EFX_TXQ_MIN_ENT(efx) (2 * efx_tx_max_skb_descs(efx))
/* Filters */
extern int efx_probe_filters(struct efx_nic *efx);