- 29 6月, 2021 2 次提交
-
-
由 Guillaume Nault 提交于
For consistency with other L3 tunnel devices, reset the mac_header pointer after decapsulation. This makes the mac_header 0 bytes long, thus making it clear that this skb has no mac_header. Compile tested only. Signed-off-by: NGuillaume Nault <gnault@redhat.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Guillaume Nault 提交于
Even though bareudp transports L3 data (typically IP or MPLS), it needs to reset the mac_header pointer, so that other parts of the stack don't mistakenly access the outer header after the packet has been decapsulated. This allows to push an Ethernet header to bareudp packets and redirect them to an Ethernet device: $ tc filter add dev bareudp0 ingress matchall \ action vlan push_eth dst_mac 00:00:5e:00:53:01 \ src_mac 00:00:5e:00:53:00 \ action mirred egress redirect dev eth0 Without this patch, push_eth refuses to add an ethernet header because the skb appears to already have a MAC header. Signed-off-by: NGuillaume Nault <gnault@redhat.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 26 6月, 2021 6 次提交
-
-
由 Marcin Wojtas 提交于
The newly implemented fwnode_mdbiobus_register turned out to be problematic - in case the fwnode_/of_/acpi_mdio are built as modules, a dependency cycle can be observed during the depmod phase of modules_install, eg.: depmod: ERROR: Cycle detected: fwnode_mdio -> of_mdio -> fwnode_mdio depmod: ERROR: Found 2 modules in dependency cycles! OR: depmod: ERROR: Cycle detected: acpi_mdio -> fwnode_mdio -> acpi_mdio depmod: ERROR: Found 2 modules in dependency cycles! A possible solution could be to rework fwnode_mdiobus_register, so that to merge the contents of acpi_mdiobus_register and of_mdiobus_register. However feasible, such change would be very intrusive and affect huge amount of the of_mdiobus_register users. Since there are currently 2 users of ACPI and MDIO (xgmac_mdio and mvmdio), withdraw the fwnode_mdbiobus_register and roll back to a simple 'if' condition in affected drivers. Fixes: 62a6ef6a ("net: mdiobus: Introduce fwnode_mdbiobus_register()") Signed-off-by: NMarcin Wojtas <mw@semihalf.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Christophe JAILLET 提交于
If this 'kzalloc()' fails we must free some resources as in all the other error handling paths of this function. Fixes: 348048e7 ("ice: Implement iidc operations") Signed-off-by: NChristophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
-
由 Tony Nguyen 提交于
ice_get_vf_vsi() is being called twice for the same VSI. Remove the unnecessary call/assignment. Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com> Tested-by: NTony Brelinski <tonyx.brelinski@intel.com>
-
由 Victor Raj 提交于
Remove the VSI info from previous aggregator after moving the VSI to a new aggregator. Signed-off-by: NVictor Raj <victor.raj@intel.com> Tested-by: NTony Brelinski <tonyx.brelinski@intel.com> Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
-
由 Maciej Machnikowski 提交于
The E810 device supports programmable pins for enabling both input and output events related to the PTP hardware clock. This includes both output signals with programmable period, as well as timestamping of events on input pins. Add support for enabling these using the CONFIG_PTP_1588_CLOCK interface. This allows programming the software defined pins to take advantage of the hardware clock features. Signed-off-by: NMaciej Machnikowski <maciej.machnikowski@intel.com> Signed-off-by: NJacob Keller <jacob.e.keller@intel.com> Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
-
由 David Thompson 提交于
This patch adds build and driver logic for the "mlxbf_gige" Ethernet driver from Mellanox Technologies. The second generation BlueField SoC from Mellanox supports an out-of-band GigaBit Ethernet management port to the Arm subsystem. This driver supports TCP/IP network connectivity for that port, and provides back-end routines to handle basic ethtool requests. The driver interfaces to the Gigabit Ethernet block of BlueField SoC via MMIO accesses to registers, which contain control information or pointers describing transmit and receive resources. There is a single transmit queue, and the port supports transmit ring sizes of 4 to 256 entries. There is a single receive queue, and the port supports receive ring sizes of 32 to 32K entries. The transmit and receive rings are allocated from DMA coherent memory. There is a 16-bit producer and consumer index per ring to denote software ownership and hardware ownership, respectively. The main driver logic such as probe(), remove(), and netdev ops are in "mlxbf_gige_main.c". Logic in "mlxbf_gige_rx.c" and "mlxbf_gige_tx.c" handles the packet processing for receive and transmit respectively. The logic in "mlxbf_gige_ethtool.c" supports the handling of some basic ethtool requests: get driver info, get ring parameters, get registers, and get statistics. The logic in "mlxbf_gige_mdio.c" is the driver controlling the Mellanox BlueField hardware that interacts with a PHY device via MDIO/MDC pins. This driver does the following: - At driver probe time, it configures several BlueField MDIO parameters such as sample rate, full drive, voltage and MDC - It defines functions to read and write MDIO registers and registers the MDIO bus. - It defines the phy interrupt handler reporting a link up/down status change - This driver's probe is invoked from the main driver logic while the phy interrupt handler is registered in ndo_open. Driver limitations - Only supports 1Gbps speed - Only supports GMII protocol - Supports maximum packet size of 2KB - Does not support scatter-gather buffering Testing - Successful build of kernel for ARM64, ARM32, X86_64 - Tested ARM64 build on FastModels & Palladium - Tested ARM64 build on several Mellanox boards that are built with the BlueField-2 SoC. The testing includes coverage in the areas of networking (e.g. ping, iperf, ifconfig, route), file transfers (e.g. SCP), and various ethtool options relevant to this driver. Signed-off-by: NDavid Thompson <davthompson@nvidia.com> Signed-off-by: NAsmaa Mnebhi <asmaa@nvidia.com> Reviewed-by: NLiming Sun <limings@nvidia.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 25 6月, 2021 32 次提交
-
-
由 Jesse Brandeburg 提交于
This patch is modeled after one by Scott Peterson for i40e. Add tracepoints to the driver, via a new file ice_trace.h and some new trace calls added in interesting places in the driver. Add some tracing for DIMLIB to help debug interrupt moderation problems. Performance should not be affected, and this can be very useful for debugging and adding new trace events to paths in the future. Note eBPF programs can attach to these events, as well as perf can count them since we're attaching to the events subsystem in the kernel. Co-developed-by: NBen Shelton <benjamin.h.shelton@intel.com> Signed-off-by: NBen Shelton <benjamin.h.shelton@intel.com> Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: NTony Brelinski <tonyx.brelinski@intel.com> Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
-
由 Jian-Hong Pan 提交于
The Broadcom UniMAC MDIO bus from mdio-bcm-unimac module comes too late. So, GENET cannot find the ethernet PHY on UniMAC MDIO bus. This leads GENET fail to attach the PHY as following log: bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000 ... could not attach to PHY bcmgenet fd580000.ethernet eth0: failed to connect to PHY uart-pl011 fe201000.serial: no DMA platform data libphy: bcmgenet MII bus: probed ... unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus It is not just coming too late, there is also no way for the module loader to figure out the dependency between GENET and its MDIO bus driver unless we provide this MODULE_SOFTDEP hint. This patch adds the soft dependency to load mdio-bcm-unimac module before genet module to fix this issue. Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=213485 Fixes: 9a4e7969 ("net: bcmgenet: utilize generic Broadcom UniMAC MDIO controller driver") Signed-off-by: NJian-Hong Pan <jhp@endlessos.org> Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Ido Schimmel 提交于
Simply get a pointer to the data in the register payload instead of copying it to a temporary buffer. Signed-off-by: NIdo Schimmel <idosch@nvidia.com> Reviewed-by: NJiri Pirko <jiri@nvidia.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
https://patchwork.kernel.org/project/netdevbpf/list/?series=506637&state=* - Remove unused variable - Use correct integer type for string formatting. - Remove `inline` in C files Fixes: 9c1a59a2 ("gve: DQO: Add ring allocation and initialization") Fixes: a57e5de4 ("gve: DQO: Add TX path") Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Vladimir Oltean 提交于
Mention support for the SJA1110 in menuconfig. Signed-off-by: NVladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
The RX queue has an array of `gve_rx_buf_state_dqo` objects. All allocated pages have an associated buf_state object. When a buffer is posted on the RX buffer queue, the buffer ID will be the buf_state's index into the RX queue's array. On packet reception, the RX queue will have one descriptor for each buffer associated with a received packet. Each RX descriptor will have a buffer_id that was posted on the buffer queue. Notable mentions: - We use a default buffer size of 2048 bytes. Based on page size, we may post separate sections of a single page as separate buffers. - The driver holds an extra reference on pages passed up the receive path with an skb and keeps these pages on a list. When posting new buffers to the NIC, we check if any of these pages has only our reference, or another buffer sized segment of the page has no references. If so, it is free to reuse. This page recycling approach is a common netdev optimization that reduces page alloc/free calls. - Pages in the free list have a page_count bias in order to avoid an atomic increment of pagecount every time we attempt to reuse a page. # references = page_count() - bias - In order to track when a page is safe to reuse, we keep track of the last offset which had a single SKB reference. When this occurs, it implies that every single other offset is reusable. Otherwise, we don't know if offsets can be safely reused. - We maintain two free lists of pages. List #1 (recycled_buf_states) contains pages we know can be reused right away. List #2 (used_buf_states) contains pages which cannot be used right away. We only attempt to get pages from list #2 when list #1 is empty. We only attempt to use a small fixed number pages from list #2 before giving up and allocating a new page. Both lists are FIFOs in hope that by the time we attempt to reuse a page, the references were dropped. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
TX SKBs will have their buffers DMA mapped with the device. Each buffer will have at least one TX descriptor associated. Each SKB will also have a metadata descriptor. Each TX queue maintains an array of `gve_tx_pending_packet_dqo` objects. Every TX SKB will have an associated pending_packet object. A TX SKB's descriptors will use its pending_packet's index as the completion tag, which will be returned on the TX completion queue. The device implements a "flow-miss model". Most packets will simply receive a packet completion. The flow-miss system may choose to process a packet based on its contents. A TX packet which experiences a flow miss would receive a miss completion followed by a later reinjection completion. The miss-completion is received when the packet starts to be processed by the flow-miss system and the reinjection completion is received when the flow-miss system completes processing the packet and sends it on the wire. Notable mentions: - Buffers may be freed after receiving the miss-completion, but in order to avoid packet reordering, we do not complete the SKB until receiving the reinjection completion. - The driver must robustly handle the unlikely scenario where a miss completion does not have an associated reinjection completion. This is accomplished by maintaining a list of packets which have a pending reinjection completion. After a short timeout (5 seconds), the SKB and buffers are released and the pending_packet is moved to a second list which has a longer timeout (60 seconds), where the pending_packet will not be reused. When the longer timeout elapses, the driver may assume the reinjection completion would never be received and the pending_packet may be reused. - Completion handling is triggered by an interrupt and is done in the NAPI poll function. Because the TX path and completion exist in different threading contexts they maintain their own lists for free pending_packet objects. The TX path uses a lock-free approach to steal the list from the completion path. - Both the TSO context and general context descriptors have metadata bytes. The device requires that if multiple descriptors contain the same field, each descriptor must have the same value set for that field. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
When interrupts are first enabled, we also set the ratelimits, which will be static for the entire usage of the device. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
Allocate the buffer and completion ring structures. Do not populate the rings yet. That will happen in the respective rx and tx datapath follow-on patches Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
Add napi netdev device registration, interrupt handling and initial tx and rx polling stubs. The stubs will be filled in follow-on patches. Also: - LRO feature advertisement and handling - Also update ethtool logic Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
DQO queue creation requires additional parameters: - TX completion/RX buffer queue size - TX completion/RX buffer queue address - TX/RX queue size - RX buffer size Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
- Add new DQO datapath structures: - `gve_rx_buf_queue_dqo` - `gve_rx_compl_queue_dqo` - `gve_rx_buf_state_dqo` - `gve_tx_desc_dqo` - `gve_tx_pending_packet_dqo` - Incorporate these into the existing ring data structures: - `gve_rx_ring` - `gve_tx_ring` Noteworthy mentions: - `gve_rx_buf_state` represents an RX buffer which was posted to HW. Each RX queue has an array of these objects and the index into the array is used as the buffer_id when posted to HW. - `gve_tx_pending_packet_dqo` is treated similarly for TX queues. The completion_tag is the index into the array. - These two structures have links for linked lists which are represented by 16b indexes into a contiguous array of these structures. This reduces memory footprint compared to 64b pointers. - We use unions for the writeable datapath structures to reduce cache footprint. GQI specific members will renamed like DQO members in a future patch. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
General description of rings and descriptors: TX ring is used for sending TX packet buffers to the NIC. It has the following descriptors: - `gve_tx_pkt_desc_dqo` - Data buffer descriptor - `gve_tx_tso_context_desc_dqo` - TSO context descriptor - `gve_tx_general_context_desc_dqo` - Generic metadata descriptor Metadata is a collection of 12 bytes. We define `gve_tx_metadata_dqo` which represents the logical interpetation of the metadata bytes. It's helpful to define this structure because the metadata bytes exist in multiple descriptor types (including `gve_tx_tso_context_desc_dqo`), and the device requires same field has the same value in all descriptors. The TX completion ring is used to receive completions from the NIC. Having a separate ring allows for completions to be out of order. The completion descriptor `gve_tx_compl_desc` has several different types, most important are packet and descriptor completions. Descriptor completions are used to notify the driver when descriptors sent on the TX ring are done being consumed. The descriptor completion is only used to signal that space is cleared in the TX ring. A packet completion will be received when a packet transmitted on the TX queue is done being transmitted. In addition there are "miss" and "reinjection" completions. The device implements a "flow-miss model". Most packets will simply receive a packet completion. The flow-miss system may choose to process a packet based on its contents. A TX packet which experiences a flow miss would receive a miss completion followed by a later reinjection completion. The miss-completion is received when the packet starts to be processed by the flow-miss system and the reinjection completion is received when the flow-miss system completes processing the packet and sends it on the wire. The RX buffer ring is used to send buffers to HW via the `gve_rx_desc_dqo` descriptor. Received packets are put into the RX queue by the device, which populates the `gve_rx_compl_desc_dqo` descriptor. The RX descriptors refer to buffers posted by the buffer queue. Received buffers may be returned out of order, such as when HW LRO is enabled. Important concepts: - "TX" and "RX buffer" queues, which send descriptors to the device, use MMIO doorbells to notify the device of new descriptors. - "RX" and "TX completion" queues, which receive descriptors from the device, use a "generation bit" to know when a descriptor was populated by the device. The driver initializes all bits with the "current generation". The device will populate received descriptors with the "next generation" which is inverted from the current generation. When the ring wraps, the current/next generation are swapped. - It's the driver's responsibility to ensure that the RX and TX completion queues are not overrun. This can be accomplished by limiting the number of descriptors posted to HW. - TX packets have a 16 bit completion_tag and RX buffers have a 16 bit buffer_id. These will be returned on the TX completion and RX queues respectively to let the driver know which packet/buffer was completed. Bitfields are used to describe descriptor fields. This notation is more concise and readable than shift-and-mask. It is possible because the driver is restricted to little endian platforms. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
Unlike GQI, DQO RX descriptors do not contain the L3 and L4 type of the packet. L3 and L4 types are necessary in order to set the hash and csum on RX SKBs correctly. DQO RX descriptors instead contain a 10 bit PTYPE index. The PTYPE map enables the device to tell the driver how to map from PTYPE index to L3/L4 type. The device doesn't provide any guarantees about the range of possible PTYPEs, so we just use a 1024 entry array to implement a fast mapping structure. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
- In addition to TX and RX queues, DQO has TX completion and RX buffer queues. - TX completions are received when the device has completed sending a packet on the wire. - RX buffers are posted on a separate queue form the RX completions. - DQO descriptor rings are allowed to be smaller than PAGE_SIZE. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
The currently supported queue formats are: - GQI_RDA - GQI with raw DMA addressing - GQI_QPL - GQI with queue page list - DQO_RDA - DQO with raw DMA addressing The old `gve_priv.raw_addressing` value is only used for GQI_RDA, so we remove it in favor of just checking against GQI_RDA Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
The current model uses an integer ID and a fixed size struct for the parameters of each device option. The new model allows the device option structs to grow in size over time. A driver may assume that changes to device option structs will always be appended. New device options will also generally have a `supported_features_mask` so that the driver knows which fields within a particular device option are enabled. `gve_device_option.feat_mask` is changed to `required_features_mask`, and it is a bitmask which must match the value expected by the driver. This gives the device the ability to break backwards compatibility with old drivers for certain features by blocking the old drivers from trying to use the feature. We maintain ABI compatibility with the old model for GVE_DEV_OPT_ID_RAW_ADDRESSING in case a driver is using a device which does not support the new model. This patch introduces some new terminology: RDA - Raw DMA Addressing - Buffers associated with SKBs are directly DMA mapped and read/updated by the device. QPL - Queue Page Lists - Driver uses bounce buffers which are DMA mapped with the device for read/write and data is copied from/to SKBs. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
Using `page_offset` like a boolean means a page may only be split into two sections. With page sizes larger than 4k, this can be very wasteful. Future commits in this patchset use `struct gve_rx_slot_page_info` in a way which supports a fixed buffer size and a variable page size. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
Future use cases will have a different padding value. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Bailey Forrest 提交于
These functions will be shared by the GQI and DQO variants of the GVNIC driver as of follow-up patches in this series. Signed-off-by: NBailey Forrest <bcf@google.com> Reviewed-by: NWillem de Bruijn <willemb@google.com> Reviewed-by: NCatherine Sullivan <csully@google.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Yajun Deng 提交于
Modify the netdev_dbg content from int to char * in usbnet_defer_kevent(), this looks more readable. Signed-off-by: NYajun Deng <yajun.deng@linux.dev> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This adds statistic counters for the network interfaces provided by the driver. It also adds CPU port counters (which are not exposed by ethtool). This also adds support for configuring the network interface parameters via ethtool: speed, duplex, aneg etc. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This configures the Sparx5 calendars according to the bandwidth requested in the Device Tree nodes. It also checks if the total requested bandwidth is within the specs of the detected Sparx5 models limits. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This adds SwitchDev support by hardware offloading the software bridge. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This adds Sparx5 VLAN support. Sparx5 has more VLAN features than provided here, but these will be added in later series. For now we only add the basic L2 features. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This adds the Sparx5 MAC tables: listening for MAC table updates and updating on request. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This add configuration of the Sparx5 port module instances. Sparx5 has in total 65 logical ports (denoted D0 to D64) and 33 physical SerDes connections (S0 to S32). The 65th port (D64) is fixed allocated to SerDes0 (S0). The remaining 64 ports can in various multiplexing scenarios be connected to the remaining 32 SerDes using QSGMII, or USGMII or USXGMII extenders. 32 of the ports can have a 1:1 mapping to the 32 SerDes. Some additional ports (D65 to D69) are internal to the device and do not connect to port modules or SerDes macros. For example, internal ports are used for frame injection and extraction to the CPU queues. The 65 logical ports are split up into the following blocks. - 13 x 5G ports (D0-D11, D64) - 32 x 2G5 ports (D16-D47) - 12 x 10G ports (D12-D15, D48-D55) - 8 x 25G ports (D56-D63) Each logical port supports different line speeds, and depending on the speeds supported, different port modules (MAC+PCS) are needed. A port supporting 5 Gbps, 10 Gbps, or 25 Gbps as maximum line speed, will have a DEV5G, DEV10G, or DEV25G module to support the 5 Gbps, 10 Gbps (incl 5 Gbps), or 25 Gbps (including 10 Gbps and 5 Gbps) speeds. As well as, it will have a shadow DEV2G5 port module to support the lower speeds (10/100/1000/2500Mbps). When a port needs to operate at lower speed and the shadow DEV2G5 needs to be connected to its corresponding SerDes Not all interface modes are supported in this series, but will be added at a later stage. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This patch adds netdevs and phylink support for the ports in the switch. It also adds register based injection and extraction for these ports. Frame DMA support for injection and extraction will be added in a later series. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Steen Hegelund 提交于
This adds the Sparx5 basic SwitchDev driver framework with IO range mapping, switch device detection and core clock configuration. Support for ports, phylink, netdev, mactable etc. are in the following patches. Signed-off-by: NSteen Hegelund <steen.hegelund@microchip.com> Signed-off-by: NBjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: NLars Povlsen <lars.povlsen@microchip.com> Reviewed-by: NPhilipp Zabel <p.zabel@pengutronix.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Kalle Valo 提交于
Stephen reported a warning: drivers/net/wireless/intel/iwlwifi/fw/acpi.c:720:12: warning: 'iwl_acpi_eval_dsm_func' defined but not used [-Wunused-function] The warning is correct and the function is not used anywhere, so let's just remove it. Reported-by: NStephen Rothwell <sfr@canb.auug.org.au> Fixes: 7119f02b ("iwlwifi: mvm: support BIOS enable/disable for 11ax in Russia") Signed-off-by: NKalle Valo <kvalo@codeaurora.org> Acked-by: NLuca Coelho <luciano.coelho@intel.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210624052918.4946-1-kvalo@codeaurora.org
-
由 Po-Hao Huang 提交于
Fix erroneous code that leads to unreferenced objects. During H2C operations, some functions returned without freeing the memory that only the function have access to. Release these objects when they're no longer needed to avoid potentially memory leaks. Signed-off-by: NPo-Hao Huang <phhuang@realtek.com> Signed-off-by: NPing-Ke Shih <pkshih@realtek.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210624023459.10294-1-pkshih@realtek.com
-
由 Shawn Guo 提交于
With any regulatory domain requests coming from either user space or 802.11 IE (Information Element), the country is coded in ISO3166 standard. It needs to be translated to firmware country code and revision with the mapping info in settings->country_codes table. Support populate country_codes table by parsing the mapping from DT. The BRCMF_BUSTYPE_SDIO bus_type check gets separated from general DT validation, so that country code can be handled as general part rather than SDIO bus specific one. Signed-off-by: NShawn Guo <shawn.guo@linaro.org> Reviewed-by: NArend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210417075428.2671-1-shawn.guo@linaro.org
-