|
@@ -208,6 +208,12 @@ struct efx_tx_buffer {
|
|
* @write_count: Current write pointer
|
|
* @write_count: Current write pointer
|
|
* This is the number of buffers that have been added to the
|
|
* This is the number of buffers that have been added to the
|
|
* hardware ring.
|
|
* hardware ring.
|
|
|
|
+ * @packet_write_count: Completable write pointer
|
|
|
|
+ * This is the write pointer of the last packet written.
|
|
|
|
+ * Normally this will equal @write_count, but as option descriptors
|
|
|
|
+ * don't produce completion events, they won't update this.
|
|
|
|
+ * Filled in iff @efx->type->option_descriptors; only used for PIO.
|
|
|
|
+ * Thus, this is written and used on EF10, and neither on farch.
|
|
* @old_read_count: The value of read_count when last checked.
|
|
* @old_read_count: The value of read_count when last checked.
|
|
* This is here for performance reasons. The xmit path will
|
|
* This is here for performance reasons. The xmit path will
|
|
* only get the up-to-date value of read_count if this
|
|
* only get the up-to-date value of read_count if this
|
|
@@ -255,6 +261,7 @@ struct efx_tx_queue {
|
|
/* Members used only on the xmit path */
|
|
/* Members used only on the xmit path */
|
|
unsigned int insert_count ____cacheline_aligned_in_smp;
|
|
unsigned int insert_count ____cacheline_aligned_in_smp;
|
|
unsigned int write_count;
|
|
unsigned int write_count;
|
|
|
|
+ unsigned int packet_write_count;
|
|
unsigned int old_read_count;
|
|
unsigned int old_read_count;
|
|
unsigned int tso_bursts;
|
|
unsigned int tso_bursts;
|
|
unsigned int tso_long_headers;
|
|
unsigned int tso_long_headers;
|
|
@@ -1237,6 +1244,7 @@ struct efx_mtd_partition {
|
|
* @rx_buffer_padding: Size of padding at end of RX packet
|
|
* @rx_buffer_padding: Size of padding at end of RX packet
|
|
* @can_rx_scatter: NIC is able to scatter packets to multiple buffers
|
|
* @can_rx_scatter: NIC is able to scatter packets to multiple buffers
|
|
* @always_rx_scatter: NIC will always scatter packets to multiple buffers
|
|
* @always_rx_scatter: NIC will always scatter packets to multiple buffers
|
|
|
|
+ * @option_descriptors: NIC supports TX option descriptors
|
|
* @max_interrupt_mode: Highest capability interrupt mode supported
|
|
* @max_interrupt_mode: Highest capability interrupt mode supported
|
|
* from &enum efx_init_mode.
|
|
* from &enum efx_init_mode.
|
|
* @timer_period_max: Maximum period of interrupt timer (in ticks)
|
|
* @timer_period_max: Maximum period of interrupt timer (in ticks)
|
|
@@ -1395,6 +1403,7 @@ struct efx_nic_type {
|
|
unsigned int rx_buffer_padding;
|
|
unsigned int rx_buffer_padding;
|
|
bool can_rx_scatter;
|
|
bool can_rx_scatter;
|
|
bool always_rx_scatter;
|
|
bool always_rx_scatter;
|
|
|
|
+ bool option_descriptors;
|
|
unsigned int max_interrupt_mode;
|
|
unsigned int max_interrupt_mode;
|
|
unsigned int timer_period_max;
|
|
unsigned int timer_period_max;
|
|
netdev_features_t offload_features;
|
|
netdev_features_t offload_features;
|