Skip to content

Commit bd81726

Browse files
committed
tgupdate: merge t/upstream base into t/upstream
2 parents 3a7786d + f8b8f74 commit bd81726

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2883
-527
lines changed

Documentation/devicetree/bindings/net/ethernet-phy.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,12 @@ properties:
232232
PHY's that have configurable TX internal delays. If this property is
233233
present then the PHY applies the TX delay.
234234
235+
tx-amplitude-100base-tx-percent:
236+
description:
237+
Transmit amplitude gain applied for 100BASE-TX. 100% matches 2V
238+
peak-to-peak specified in ANSI X3.263. When omitted, the PHYs default
239+
will be left as is.
240+
235241
leds:
236242
type: object
237243

Documentation/netlink/specs/netdev.yaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,9 @@ attribute-sets:
276276
doc: The timeout, in nanoseconds, of how long to suspend irq
277277
processing, if event polling finds events
278278
type: uint
279+
-
280+
name: xsk-info
281+
attributes: []
279282
-
280283
name: queue
281284
attributes:
@@ -294,6 +297,9 @@ attribute-sets:
294297
-
295298
name: type
296299
doc: Queue type as rx, tx. Each queue type defines a separate ID space.
300+
XDP TX queues allocated in the kernel are not linked to NAPIs and
301+
thus not listed. AF_XDP queues will have more information set in
302+
the xsk attribute.
297303
type: u32
298304
enum: queue-type
299305
-
@@ -309,7 +315,11 @@ attribute-sets:
309315
doc: io_uring memory provider information.
310316
type: nest
311317
nested-attributes: io-uring-provider-info
312-
318+
-
319+
name: xsk
320+
doc: XSK information for this queue, if any.
321+
type: nest
322+
nested-attributes: xsk-info
313323
-
314324
name: qstats
315325
doc: |
@@ -457,6 +467,8 @@ attribute-sets:
457467
name: tx-needs-csum
458468
doc: |
459469
Number of packets that required the device to calculate the checksum.
470+
This counter includes the number of GSO wire packets for which device
471+
calculated the L4 checksum.
460472
type: uint
461473
-
462474
name: tx-hw-gso-packets
@@ -652,6 +664,7 @@ operations:
652664
- ifindex
653665
- dmabuf
654666
- io-uring
667+
- xsk
655668
dump:
656669
request:
657670
attributes:

drivers/net/ethernet/intel/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ config I40EVF
264264
tristate "Intel(R) Ethernet Adaptive Virtual Function support"
265265
select IAVF
266266
depends on PCI_MSI
267+
depends on PTP_1588_CLOCK_OPTIONAL
267268
help
268269
This driver supports virtual functions for Intel XL710,
269270
X710, X722, XXV710, and all devices advertising support for

drivers/net/ethernet/intel/iavf/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ obj-$(CONFIG_IAVF) += iavf.o
1313

1414
iavf-y := iavf_main.o iavf_ethtool.o iavf_virtchnl.o iavf_fdir.o \
1515
iavf_adv_rss.o iavf_txrx.o iavf_common.o iavf_adminq.o
16+
17+
iavf-$(CONFIG_PTP_1588_CLOCK) += iavf_ptp.o

drivers/net/ethernet/intel/iavf/iavf.h

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include "iavf_txrx.h"
4242
#include "iavf_fdir.h"
4343
#include "iavf_adv_rss.h"
44+
#include "iavf_types.h"
4445
#include <linux/bitmap.h>
4546

4647
#define DEFAULT_DEBUG_LEVEL_SHIFT 3
@@ -82,7 +83,7 @@ struct iavf_vsi {
8283

8384
#define MAXIMUM_ETHERNET_VLAN_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN)
8485

85-
#define IAVF_RX_DESC(R, i) (&(((union iavf_32byte_rx_desc *)((R)->desc))[i]))
86+
#define IAVF_RX_DESC(R, i) (&(((struct iavf_rx_desc *)((R)->desc))[i]))
8687
#define IAVF_TX_DESC(R, i) (&(((struct iavf_tx_desc *)((R)->desc))[i]))
8788
#define IAVF_TX_CTXTDESC(R, i) \
8889
(&(((struct iavf_tx_context_desc *)((R)->desc))[i]))
@@ -271,6 +272,7 @@ struct iavf_adapter {
271272
/* Lock to protect accesses to MAC and VLAN lists */
272273
spinlock_t mac_vlan_list_lock;
273274
char misc_vector_name[IFNAMSIZ + 9];
275+
u8 rxdid;
274276
int num_active_queues;
275277
int num_req_queues;
276278

@@ -343,6 +345,17 @@ struct iavf_adapter {
343345
#define IAVF_FLAG_AQ_CONFIGURE_QUEUES_BW BIT_ULL(39)
344346
#define IAVF_FLAG_AQ_CFG_QUEUES_QUANTA_SIZE BIT_ULL(40)
345347
#define IAVF_FLAG_AQ_GET_QOS_CAPS BIT_ULL(41)
348+
#define IAVF_FLAG_AQ_GET_SUPPORTED_RXDIDS BIT_ULL(42)
349+
#define IAVF_FLAG_AQ_GET_PTP_CAPS BIT_ULL(43)
350+
#define IAVF_FLAG_AQ_SEND_PTP_CMD BIT_ULL(44)
351+
352+
/* AQ messages that must be sent after IAVF_FLAG_AQ_GET_CONFIG, in
353+
* order to negotiated extended capabilities.
354+
*/
355+
#define IAVF_FLAG_AQ_EXTENDED_CAPS \
356+
(IAVF_FLAG_AQ_GET_OFFLOAD_VLAN_V2_CAPS | \
357+
IAVF_FLAG_AQ_GET_SUPPORTED_RXDIDS | \
358+
IAVF_FLAG_AQ_GET_PTP_CAPS)
346359

347360
/* flags for processing extended capability messages during
348361
* __IAVF_INIT_EXTENDED_CAPS. Each capability exchange requires
@@ -354,10 +367,18 @@ struct iavf_adapter {
354367
u64 extended_caps;
355368
#define IAVF_EXTENDED_CAP_SEND_VLAN_V2 BIT_ULL(0)
356369
#define IAVF_EXTENDED_CAP_RECV_VLAN_V2 BIT_ULL(1)
370+
#define IAVF_EXTENDED_CAP_SEND_RXDID BIT_ULL(2)
371+
#define IAVF_EXTENDED_CAP_RECV_RXDID BIT_ULL(3)
372+
#define IAVF_EXTENDED_CAP_SEND_PTP BIT_ULL(4)
373+
#define IAVF_EXTENDED_CAP_RECV_PTP BIT_ULL(5)
357374

358375
#define IAVF_EXTENDED_CAPS \
359376
(IAVF_EXTENDED_CAP_SEND_VLAN_V2 | \
360-
IAVF_EXTENDED_CAP_RECV_VLAN_V2)
377+
IAVF_EXTENDED_CAP_RECV_VLAN_V2 | \
378+
IAVF_EXTENDED_CAP_SEND_RXDID | \
379+
IAVF_EXTENDED_CAP_RECV_RXDID | \
380+
IAVF_EXTENDED_CAP_SEND_PTP | \
381+
IAVF_EXTENDED_CAP_RECV_PTP)
361382

362383
/* Lock to prevent possible clobbering of
363384
* current_netdev_promisc_flags
@@ -417,12 +438,18 @@ struct iavf_adapter {
417438
VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF)
418439
#define QOS_ALLOWED(_a) ((_a)->vf_res->vf_cap_flags & \
419440
VIRTCHNL_VF_OFFLOAD_QOS)
441+
#define IAVF_RXDID_ALLOWED(a) \
442+
((a)->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC)
443+
#define IAVF_PTP_ALLOWED(a) \
444+
((a)->vf_res->vf_cap_flags & VIRTCHNL_VF_CAP_PTP)
420445
struct virtchnl_vf_resource *vf_res; /* incl. all VSIs */
421446
struct virtchnl_vsi_resource *vsi_res; /* our LAN VSI */
422447
struct virtchnl_version_info pf_version;
423448
#define PF_IS_V11(_a) (((_a)->pf_version.major == 1) && \
424449
((_a)->pf_version.minor == 1))
425450
struct virtchnl_vlan_caps vlan_v2_caps;
451+
u64 supp_rxdids;
452+
struct iavf_ptp ptp;
426453
u16 msg_enable;
427454
struct iavf_eth_stats current_stats;
428455
struct virtchnl_qos_cap_list *qos_caps;
@@ -555,6 +582,10 @@ int iavf_send_vf_config_msg(struct iavf_adapter *adapter);
555582
int iavf_get_vf_config(struct iavf_adapter *adapter);
556583
int iavf_get_vf_vlan_v2_caps(struct iavf_adapter *adapter);
557584
int iavf_send_vf_offload_vlan_v2_msg(struct iavf_adapter *adapter);
585+
int iavf_send_vf_supported_rxdids_msg(struct iavf_adapter *adapter);
586+
int iavf_get_vf_supported_rxdids(struct iavf_adapter *adapter);
587+
int iavf_send_vf_ptp_caps_msg(struct iavf_adapter *adapter);
588+
int iavf_get_vf_ptp_caps(struct iavf_adapter *adapter);
558589
void iavf_set_queue_vlan_tag_loc(struct iavf_adapter *adapter);
559590
u16 iavf_get_num_vlans_added(struct iavf_adapter *adapter);
560591
void iavf_irq_enable(struct iavf_adapter *adapter, bool flush);

0 commit comments

Comments
 (0)