Commit f90e5a3d authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'mtk_eth_soc-flo-offload-plus-wireless'



Felix Fietkau says:

====================
MediaTek SoC flow offload improvements + wireless support

This series contains the following improvements to mediatek ethernet flow
offload support:

- support dma-coherent on ethernet to improve performance
- add ipv6 offload support
- rework hardware flow table entry handling to improve dealing with hash
  collisions and competing flows
- support creating offload entries from user space
- support creating offload entries with just source/destination mac address,
  vlan and output device information
- add driver changes for supporting the Wireless Ethernet Dispatch core,
  which can be used to offload flows from ethernet to MT7915 PCIe WLAN
  devices

Changes in v2:
- add missing dt-bindings patches
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 44ec5f71 33fc42de
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-pcie-mirror.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: MediaTek PCIE Mirror Controller for MT7622

maintainers:
  - Lorenzo Bianconi <lorenzo@kernel.org>
  - Felix Fietkau <nbd@nbd.name>

description:
  The mediatek PCIE mirror provides a configuration interface for PCIE
  controller on MT7622 soc.

properties:
  compatible:
    items:
      - enum:
          - mediatek,mt7622-pcie-mirror
      - const: syscon

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    soc {
      #address-cells = <2>;
      #size-cells = <2>;
      pcie_mirror: pcie-mirror@10000400 {
        compatible = "mediatek,mt7622-pcie-mirror", "syscon";
        reg = <0 0x10000400 0 0x10>;
      };
    };
+50 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/arm/mediatek/mediatek,mt7622-wed.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: MediaTek Wireless Ethernet Dispatch Controller for MT7622

maintainers:
  - Lorenzo Bianconi <lorenzo@kernel.org>
  - Felix Fietkau <nbd@nbd.name>

description:
  The mediatek wireless ethernet dispatch controller can be configured to
  intercept and handle access to the WLAN DMA queues and PCIe interrupts
  and implement hardware flow offloading from ethernet to WLAN.

properties:
  compatible:
    items:
      - enum:
          - mediatek,mt7622-wed
      - const: syscon

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    soc {
      #address-cells = <2>;
      #size-cells = <2>;
      wed0: wed@1020a000 {
        compatible = "mediatek,mt7622-wed","syscon";
        reg = <0 0x1020a000 0 0x1000>;
        interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
      };
    };
+10 −0
Original line number Diff line number Diff line
@@ -41,6 +41,16 @@ Required properties:
- mediatek,pctl: phandle to the syscon node that handles the ports slew rate
	and driver current: only for MT2701 and MT7623 SoC

Optional properties:
- dma-coherent: present if dma operations are coherent
- mediatek,cci-control: phandle to the cache coherent interconnect node
- mediatek,hifsys: phandle to the mediatek hifsys controller used to provide
	various clocks and reset to the system.
- mediatek,wed: a list of phandles to wireless ethernet dispatch nodes for
	MT7622 SoC.
- mediatek,pcie-mirror: phandle to the mediatek pcie-mirror controller for
	MT7622 SoC.

* Ethernet MAC node

Required properties:
+31 −1
Original line number Diff line number Diff line
@@ -357,7 +357,7 @@
		};

		cci_control2: slave-if@5000 {
			compatible = "arm,cci-400-ctrl-if";
			compatible = "arm,cci-400-ctrl-if", "syscon";
			interface-type = "ace";
			reg = <0x5000 0x1000>;
		};
@@ -901,6 +901,11 @@
		};
	};

	hifsys: syscon@1af00000 {
		compatible = "mediatek,mt7622-hifsys", "syscon";
		reg = <0 0x1af00000 0 0x70>;
	};

	ethsys: syscon@1b000000 {
		compatible = "mediatek,mt7622-ethsys",
			     "syscon";
@@ -919,6 +924,26 @@
		#dma-cells = <1>;
	};

	pcie_mirror: pcie-mirror@10000400 {
		compatible = "mediatek,mt7622-pcie-mirror",
			     "syscon";
		reg = <0 0x10000400 0 0x10>;
	};

	wed0: wed@1020a000 {
		compatible = "mediatek,mt7622-wed",
			     "syscon";
		reg = <0 0x1020a000 0 0x1000>;
		interrupts = <GIC_SPI 214 IRQ_TYPE_LEVEL_LOW>;
	};

	wed1: wed@1020b000 {
		compatible = "mediatek,mt7622-wed",
			     "syscon";
		reg = <0 0x1020b000 0 0x1000>;
		interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_LOW>;
	};

	eth: ethernet@1b100000 {
		compatible = "mediatek,mt7622-eth",
			     "mediatek,mt2701-eth",
@@ -945,6 +970,11 @@
		power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
		mediatek,ethsys = <&ethsys>;
		mediatek,sgmiisys = <&sgmiisys>;
		mediatek,cci-control = <&cci_control2>;
		mediatek,wed = <&wed0>, <&wed1>;
		mediatek,pcie-mirror = <&pcie_mirror>;
		mediatek,hifsys = <&hifsys>;
		dma-coherent;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
+4 −0
Original line number Diff line number Diff line
@@ -7,6 +7,10 @@ config NET_VENDOR_MEDIATEK

if NET_VENDOR_MEDIATEK

config NET_MEDIATEK_SOC_WED
	depends on ARCH_MEDIATEK || COMPILE_TEST
	def_bool NET_MEDIATEK_SOC != n

config NET_MEDIATEK_SOC
	tristate "MediaTek SoC Gigabit Ethernet support"
	depends on NET_DSA || !NET_DSA
Loading