]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: bump 6.6 to 6.6.90 18775/head
authorShiji Yang <yangshiji66@outlook.com>
Sat, 10 May 2025 15:52:16 +0000 (23:52 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 13 May 2025 19:43:34 +0000 (21:43 +0200)
Remove upstreamed patches:
  bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch [1]
  pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch [2]

Manually rebased patches:
  generic/hack-6.6/781-usb-net-rndis-support-asr.patch [3]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=f377434945f528217e65fc5b18781caeba19ce72
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=e0272844995aff8cbf2cc88b78c2b35ca51eda43
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.90&id=222b6685efe0d8c1cdb078a67bbe806f56d18f94
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18775
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
43 files changed:
target/linux/bcm27xx/patches-6.6/950-0161-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
target/linux/bcm27xx/patches-6.6/950-0163-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch
target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch [deleted file]
target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
target/linux/bcm27xx/patches-6.6/950-1021-module-Avoid-ABI-changes-when-debug-info-is-disabled.patch
target/linux/bcm27xx/patches-6.6/950-1377-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch
target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-6.6/611-01-v6.11-udp-Allow-GSO-transmit-from-devices-with-no-checksum.patch
target/linux/generic/backport-6.6/611-03-v6.11-udp-Fall-back-to-software-USO-if-IPv6-extension-head.patch
target/linux/generic/backport-6.6/621-v6.10-01-net-move-skb_gro_receive_list-from-udp-to-core.patch
target/linux/generic/backport-6.6/751-01-v6.8-net-ethernet-mediatek-split-tx-and-rx-fields-in-mtk_.patch
target/linux/generic/backport-6.6/751-02-v6.8-net-ethernet-mediatek-use-QDMA-instead-of-ADMAv2-on-.patch
target/linux/generic/backport-6.6/752-25-v6.10-net-ethernet-mtk_eth_soc-handle-dma-buffer-size-soc-.patch
target/linux/generic/backport-6.6/752-26-v6.10-net-ethernet-mtk_eth_soc-ppe-add-support-for-multipl.patch
target/linux/generic/backport-6.6/752-28-v6.10-net-ethernet-mediatek-Allow-gaps-in-MAC-allocation.patch
target/linux/generic/backport-6.6/752-30-v6.10-net-ethernet-mtk_eth_soc-implement-.-get-set-_pausep.patch
target/linux/generic/backport-6.6/753-v6.15-net-ethernet-mediatek-add-EEE-support.patch
target/linux/generic/hack-6.6/204-module_strip.patch
target/linux/generic/hack-6.6/721-net-add-packet-mangeling.patch
target/linux/generic/hack-6.6/730-net-ethernet-mtk_eth_soc-add-hw-dump-for-forced-rese.patch
target/linux/generic/hack-6.6/781-usb-net-rndis-support-asr.patch
target/linux/generic/kernel-6.6
target/linux/generic/pending-6.6/655-increase_skb_pad.patch
target/linux/generic/pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch [deleted file]
target/linux/generic/pending-6.6/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
target/linux/generic/pending-6.6/730-net-ethernet-mtk_eth_soc-reset-all-TX-queues-on-DMA-.patch
target/linux/generic/pending-6.6/734-net-ethernet-mediatek-enlarge-DMA-reserve-buffer.patch
target/linux/generic/pending-6.6/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
target/linux/generic/pending-6.6/738-01-net-ethernet-mtk_eth_soc-reduce-rx-ring-size-for-older.patch
target/linux/generic/pending-6.6/738-02-net-ethernet-mtk_eth_soc-do-not-enable-page-pool-sta.patch
target/linux/imx/patches-6.6/600-PCI-imx6-Start-link-at-max-gen-first-for-IMX8MM-and-IMX8MP.patch
target/linux/ipq40xx/patches-6.6/701-net-dsa-add-out-of-band-tagging-protocol.patch
target/linux/mpc85xx/patches-6.6/010-powerpc-add-compressed-zImage-for-mpc85xx.patch
target/linux/mpc85xx/patches-6.6/100-powerpc-85xx-tl-wdr4900-v1-support.patch
target/linux/mpc85xx/patches-6.6/101-powerpc-85xx-hiveap-330-support.patch
target/linux/mpc85xx/patches-6.6/106-powerpc-85xx-ws-ap3710i-support.patch
target/linux/mpc85xx/patches-6.6/107-powerpc-85xx-add-ws-ap3825i-support.patch
target/linux/mpc85xx/patches-6.6/110-powerpc-85xx-br200-wp-support.patch
target/linux/ramips/patches-6.6/870-Input-sx951x-add-Semtech-SX9512-SX9513-driver.patch
target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
target/linux/starfive/patches-6.6/0110-usb-xhci-using-dma_alloc_noncoherent-to-alloc-low-me.patch

index 157fedf27080a8181d4833a7511064079ef96d2e..886391d46f2ccd499c407a4bcc545108a8bee06a 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1498,6 +1498,109 @@ command_cleanup:
+@@ -1524,6 +1524,109 @@ command_cleanup:
  }
  
  /*
@@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5360,6 +5463,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5386,6 +5489,7 @@ static const struct hc_driver xhci_hc_dr
        .endpoint_reset =       xhci_endpoint_reset,
        .check_bandwidth =      xhci_check_bandwidth,
        .reset_bandwidth =      xhci_reset_bandwidth,
index 70401f6e7b5aefffd3b6b99c4d8e76f4d82a9677..b5c72fb89f0310b5e7d595eb7d3901c4cde34d06 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1587,7 +1587,7 @@ static void xhci_fixup_endpoint(struct u
+@@ -1613,7 +1613,7 @@ static void xhci_fixup_endpoint(struct u
                return;
        }
        ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-6.6/950-0481-xhci-Use-more-event-ring-segment-table-entries.patch
deleted file mode 100644 (file)
index 8747256..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-From d631e7354399aa2fb6079b72f515acd6d080c203 Mon Sep 17 00:00:00 2001
-From: Jonathan Bell <jonathan@raspberrypi.com>
-Date: Thu, 13 Jul 2023 14:43:21 +0100
-Subject: [PATCH 0481/1085] xhci: Use more event ring segment table entries
-
-Users have reported log spam created by "Event Ring Full" xHC event
-TRBs. These are caused by interrupt latency in conjunction with a very
-busy set of devices on the bus. The errors are benign, but throughput
-will suffer as the xHC will pause processing of transfers until the
-event ring is drained by the kernel. Expand the number of event TRB slots
-available by increasing the number of event ring segments in the ERST.
-
-Controllers have a hardware-defined limit as to the number of ERST
-entries they can process, so make the actual number in use
-min(ERST_MAX_SEGS, hw_max).
-
-Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
----
- drivers/usb/host/xhci-mem.c | 9 +++++++--
- drivers/usb/host/xhci.h     | 5 +++--
- 2 files changed, 10 insertions(+), 4 deletions(-)
-
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -2241,12 +2241,17 @@ xhci_alloc_interrupter(struct xhci_hcd *
-       struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
-       struct xhci_interrupter *ir;
-       int ret;
-+      unsigned int nr_event_segs;
-       ir = kzalloc_node(sizeof(*ir), flags, dev_to_node(dev));
-       if (!ir)
-               return NULL;
--      ir->event_ring = xhci_ring_alloc(xhci, ERST_NUM_SEGS, 1, TYPE_EVENT,
-+      nr_event_segs = min_t(unsigned int,
-+                            1 << HCS_ERST_MAX(xhci->hcs_params2),
-+                            ERST_MAX_SEGS);
-+
-+      ir->event_ring = xhci_ring_alloc(xhci, nr_event_segs, 1, TYPE_EVENT,
-                                       0, flags);
-       if (!ir->event_ring) {
-               xhci_warn(xhci, "Failed to allocate interrupter event ring\n");
-@@ -2283,7 +2288,7 @@ xhci_add_interrupter(struct xhci_hcd *xh
-       /* set ERST count with the number of entries in the segment table */
-       erst_size = readl(&ir->ir_set->erst_size);
-       erst_size &= ERST_SIZE_MASK;
--      erst_size |= ERST_NUM_SEGS;
-+      erst_size |= ir->event_ring->num_segs;
-       writel(erst_size, &ir->ir_set->erst_size);
-       erst_base = xhci_read_64(xhci, &ir->ir_set->erst_base);
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -1426,8 +1426,9 @@ struct urb_priv {
-  * Each segment table entry is 4*32bits long.  1K seems like an ok size:
-  * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
-  * meaning 64 ring segments.
-- * Initial allocated size of the ERST, in number of entries */
--#define       ERST_NUM_SEGS   1
-+ */
-+/* Maximum number of segments in the ERST */
-+#define       ERST_MAX_SEGS   8
- /* Poll every 60 seconds */
- #define       POLL_TIMEOUT    60
- /* Stop endpoint command timeout (secs) for URB cancellation watchdog timer */
index e295c225f787ef1d2344a0452c95e3ea04bae5bf..7ab01e4623a68b1a2b48b540487e19edff38a486 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1664,6 +1664,9 @@ struct xhci_hcd {
+@@ -1660,6 +1660,9 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
  
index b6cfc1b7a880de8a11e2f13c43a18aacb38655bc..cad297ab7393c6af9dfba58982029041a40f3d21 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -1400,6 +1400,7 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1405,6 +1405,7 @@ int xhci_endpoint_init(struct xhci_hcd *
        unsigned int ep_index;
        struct xhci_ep_ctx *ep_ctx;
        struct xhci_ring *ep_ring;
@@ -42,7 +42,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        unsigned int max_packet;
        enum xhci_ring_type ring_type;
        u32 max_esit_payload;
-@@ -1409,6 +1410,8 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1414,6 +1415,8 @@ int xhci_endpoint_init(struct xhci_hcd *
        unsigned int mult;
        unsigned int avg_trb_len;
        unsigned int err_count = 0;
@@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  
        ep_index = xhci_get_endpoint_index(&ep->desc);
        ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
-@@ -1440,9 +1443,35 @@ int xhci_endpoint_init(struct xhci_hcd *
+@@ -1445,9 +1448,35 @@ int xhci_endpoint_init(struct xhci_hcd *
  
        mult = xhci_get_endpoint_mult(udev, ep);
        max_packet = usb_endpoint_maxp(&ep->desc);
@@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1666,6 +1666,7 @@ struct xhci_hcd {
+@@ -1662,6 +1662,7 @@ struct xhci_hcd {
  
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
index 5ab3a2239694697d35ed6f28f91b220a6a686bf4..e1c96d25bb27d5bd3243bc6e50ede0865754d4cc 100644 (file)
@@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        return 0;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1667,6 +1667,7 @@ struct xhci_hcd {
+@@ -1663,6 +1663,7 @@ struct xhci_hcd {
  /* Downstream VLI fixes */
  #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
  #define XHCI_VLI_SS_BULK_OUT_BUG      BIT_ULL(57)
index 99b153d0bed020261ee26ddc7068dc68465a0e99..8ea7e963866667de5623807414d38809cdbb9441 100644 (file)
@@ -15,7 +15,7 @@ Define these members unconditionally, so that there is no ABI change.
 
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
-@@ -510,7 +510,7 @@ struct module {
+@@ -512,7 +512,7 @@ struct module {
        unsigned int num_bpf_raw_events;
        struct bpf_raw_event_map *bpf_raw_events;
  #endif
index 230537f50565d9fe7837b0710660bacd0e31db7e..fc004dc57d34afd749fecbefa87635821747b514 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -716,6 +716,14 @@ void xhci_setup_streams_ep_input_ctx(str
+@@ -721,6 +721,14 @@ void xhci_setup_streams_ep_input_ctx(str
        ep_ctx->ep_info &= cpu_to_le32(~EP_MAXPSTREAMS_MASK);
        ep_ctx->ep_info |= cpu_to_le32(EP_MAXPSTREAMS(max_primary_streams)
                                       | EP_HAS_LSA);
index aef84351482e954960d6225afc5f0e988b3f3137..5886cef55adb1f2eb40276c4ebe4bfb4ed32f6b7 100644 (file)
@@ -85,7 +85,7 @@ it on BCM4708 family.
  /*
   * Reset a halted HC.
   *
-@@ -481,6 +524,15 @@ static int xhci_run_finished(struct xhci
+@@ -498,6 +541,15 @@ static int xhci_run_finished(struct xhci
                return -ENODEV;
        }
  
@@ -103,7 +103,7 @@ it on BCM4708 family.
        if (xhci->quirks & XHCI_NEC_HOST)
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1662,6 +1662,7 @@ struct xhci_hcd {
+@@ -1659,6 +1659,7 @@ struct xhci_hcd {
  #define XHCI_WRITE_64_HI_LO   BIT_ULL(47)
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
index d1673ec7d4a60c039e890fa6b0b7dd6b2b2d38f4..4cafd27fdcd4bdb82d36b8aab1b019b16f96803e 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                }
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -384,6 +384,14 @@ struct sk_buff *__udp_gso_segment(struct
+@@ -443,6 +443,14 @@ struct sk_buff *__udp_gso_segment(struct
        else
                uh->check = gso_make_checksum(seg, ~check) ? : CSUM_MANGLED_0;
  
index e8eceb880c8dbdbd1deef56551f1a846aaa7e618..d3df5162ac68ed4a34fa3f7d56fd36b788fb7c06 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -283,6 +283,12 @@ struct sk_buff *__udp_gso_segment(struct
+@@ -342,6 +342,12 @@ struct sk_buff *__udp_gso_segment(struct
                     !(skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST)))
                return ERR_PTR(-EINVAL);
  
index 2e3b3fe12e430c61372f2ceac69829d267436fff..3904662d1a74fdc2d0117b28f9ab500574c024bc 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  {
 --- a/net/ipv4/udp_offload.c
 +++ b/net/ipv4/udp_offload.c
-@@ -474,33 +474,6 @@ out:
+@@ -533,33 +533,6 @@ out:
        return segs;
  }
  
index 8fb4b6fef534813b2a3a045a2c63274e49466913..ab12cc925fe9e8602cf97ebf5ffb2f9cb66da47d 100644 (file)
@@ -167,7 +167,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        skb->ip_summed = CHECKSUM_UNNECESSARY;
                else
                        skb_checksum_none_assert(skb);
-@@ -2276,7 +2276,7 @@ static int mtk_poll_tx_qdma(struct mtk_e
+@@ -2280,7 +2280,7 @@ static int mtk_poll_tx_qdma(struct mtk_e
                        break;
  
                tx_buf = mtk_desc_to_tx_buf(ring, desc,
@@ -176,7 +176,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (!tx_buf->data)
                        break;
  
-@@ -2327,7 +2327,7 @@ static int mtk_poll_tx_pdma(struct mtk_e
+@@ -2331,7 +2331,7 @@ static int mtk_poll_tx_pdma(struct mtk_e
                }
                mtk_tx_unmap(eth, tx_buf, &bq, true);
  
@@ -185,7 +185,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                ring->last_free = desc;
                atomic_inc(&ring->free_count);
  
-@@ -2417,7 +2417,7 @@ static int mtk_napi_rx(struct napi_struc
+@@ -2421,7 +2421,7 @@ static int mtk_napi_rx(struct napi_struc
        do {
                int rx_done;
  
@@ -194,7 +194,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        reg_map->pdma.irq_status);
                rx_done = mtk_poll_rx(napi, budget - rx_done_total, eth);
                rx_done_total += rx_done;
-@@ -2433,10 +2433,10 @@ static int mtk_napi_rx(struct napi_struc
+@@ -2437,10 +2437,10 @@ static int mtk_napi_rx(struct napi_struc
                        return budget;
  
        } while (mtk_r32(eth, reg_map->pdma.irq_status) &
@@ -207,7 +207,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        return rx_done_total;
  }
-@@ -2445,7 +2445,7 @@ static int mtk_tx_alloc(struct mtk_eth *
+@@ -2449,7 +2449,7 @@ static int mtk_tx_alloc(struct mtk_eth *
  {
        const struct mtk_soc_data *soc = eth->soc;
        struct mtk_tx_ring *ring = &eth->tx_ring;
@@ -216,7 +216,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        struct mtk_tx_dma_v2 *txd;
        int ring_size;
        u32 ofs, val;
-@@ -2568,14 +2568,14 @@ static void mtk_tx_clean(struct mtk_eth
+@@ -2572,14 +2572,14 @@ static void mtk_tx_clean(struct mtk_eth
        }
        if (!MTK_HAS_CAPS(soc->caps, MTK_SRAM) && ring->dma) {
                dma_free_coherent(eth->dma_dev,
@@ -233,7 +233,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                  ring->dma_pdma, ring->phys_pdma);
                ring->dma_pdma = NULL;
        }
-@@ -2630,15 +2630,15 @@ static int mtk_rx_alloc(struct mtk_eth *
+@@ -2634,15 +2634,15 @@ static int mtk_rx_alloc(struct mtk_eth *
        if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SRAM) ||
            rx_flag != MTK_RX_FLAGS_NORMAL) {
                ring->dma = dma_alloc_coherent(eth->dma_dev,
@@ -253,7 +253,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        if (!ring->dma)
-@@ -2649,7 +2649,7 @@ static int mtk_rx_alloc(struct mtk_eth *
+@@ -2653,7 +2653,7 @@ static int mtk_rx_alloc(struct mtk_eth *
                dma_addr_t dma_addr;
                void *data;
  
@@ -262,7 +262,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (ring->page_pool) {
                        data = mtk_page_pool_get_buff(ring->page_pool,
                                                      &dma_addr, GFP_KERNEL);
-@@ -2740,7 +2740,7 @@ static void mtk_rx_clean(struct mtk_eth
+@@ -2744,7 +2744,7 @@ static void mtk_rx_clean(struct mtk_eth
                        if (!ring->data[i])
                                continue;
  
@@ -271,7 +271,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        if (!rxd->rxd1)
                                continue;
  
-@@ -2757,7 +2757,7 @@ static void mtk_rx_clean(struct mtk_eth
+@@ -2761,7 +2761,7 @@ static void mtk_rx_clean(struct mtk_eth
  
        if (!in_sram && ring->dma) {
                dma_free_coherent(eth->dma_dev,
@@ -280,7 +280,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                  ring->dma, ring->phys);
                ring->dma = NULL;
        }
-@@ -3120,7 +3120,7 @@ static void mtk_dma_free(struct mtk_eth
+@@ -3124,7 +3124,7 @@ static void mtk_dma_free(struct mtk_eth
                        netdev_reset_queue(eth->netdev[i]);
        if (!MTK_HAS_CAPS(soc->caps, MTK_SRAM) && eth->scratch_ring) {
                dma_free_coherent(eth->dma_dev,
@@ -289,7 +289,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                  eth->scratch_ring, eth->phy_scratch_ring);
                eth->scratch_ring = NULL;
                eth->phy_scratch_ring = 0;
-@@ -3170,7 +3170,7 @@ static irqreturn_t mtk_handle_irq_rx(int
+@@ -3174,7 +3174,7 @@ static irqreturn_t mtk_handle_irq_rx(int
  
        eth->rx_events++;
        if (likely(napi_schedule_prep(&eth->rx_napi))) {
@@ -298,7 +298,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                __napi_schedule(&eth->rx_napi);
        }
  
-@@ -3196,9 +3196,9 @@ static irqreturn_t mtk_handle_irq(int ir
+@@ -3200,9 +3200,9 @@ static irqreturn_t mtk_handle_irq(int ir
        const struct mtk_reg_map *reg_map = eth->soc->reg_map;
  
        if (mtk_r32(eth, reg_map->pdma.irq_mask) &
@@ -310,7 +310,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        mtk_handle_irq_rx(irq, _eth);
        }
        if (mtk_r32(eth, reg_map->tx_irq_mask) & MTK_TX_DONE_INT) {
-@@ -3216,10 +3216,10 @@ static void mtk_poll_controller(struct n
+@@ -3220,10 +3220,10 @@ static void mtk_poll_controller(struct n
        struct mtk_eth *eth = mac->hw;
  
        mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
@@ -323,7 +323,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  #endif
  
-@@ -3383,7 +3383,7 @@ static int mtk_open(struct net_device *d
+@@ -3387,7 +3387,7 @@ static int mtk_open(struct net_device *d
                napi_enable(&eth->tx_napi);
                napi_enable(&eth->rx_napi);
                mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
@@ -332,7 +332,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                refcount_set(&eth->dma_refcnt, 1);
        }
        else
-@@ -3467,7 +3467,7 @@ static int mtk_stop(struct net_device *d
+@@ -3471,7 +3471,7 @@ static int mtk_stop(struct net_device *d
        mtk_gdm_config(eth, MTK_GDMA_DROP_ALL);
  
        mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
@@ -341,7 +341,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        napi_disable(&eth->tx_napi);
        napi_disable(&eth->rx_napi);
  
-@@ -3943,9 +3943,9 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3947,9 +3947,9 @@ static int mtk_hw_init(struct mtk_eth *e
  
        /* FE int grouping */
        mtk_w32(eth, MTK_TX_DONE_INT, reg_map->pdma.int_grp);
@@ -353,7 +353,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
  
        if (mtk_is_netsys_v3_or_greater(eth)) {
-@@ -5053,11 +5053,15 @@ static const struct mtk_soc_data mt2701_
+@@ -5057,11 +5057,15 @@ static const struct mtk_soc_data mt2701_
        .required_clks = MT7623_CLKS_BITMAP,
        .required_pctl = true,
        .version = 1,
@@ -374,7 +374,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5073,11 +5077,15 @@ static const struct mtk_soc_data mt7621_
+@@ -5077,11 +5081,15 @@ static const struct mtk_soc_data mt7621_
        .offload_version = 1,
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
@@ -395,7 +395,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5095,11 +5103,15 @@ static const struct mtk_soc_data mt7622_
+@@ -5099,11 +5107,15 @@ static const struct mtk_soc_data mt7622_
        .hash_offset = 2,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
@@ -416,7 +416,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5116,11 +5128,15 @@ static const struct mtk_soc_data mt7623_
+@@ -5120,11 +5132,15 @@ static const struct mtk_soc_data mt7623_
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .disable_pll_modes = true,
@@ -437,7 +437,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5135,11 +5151,15 @@ static const struct mtk_soc_data mt7629_
+@@ -5139,11 +5155,15 @@ static const struct mtk_soc_data mt7629_
        .required_pctl = false,
        .has_accounting = true,
        .version = 1,
@@ -458,7 +458,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5157,11 +5177,15 @@ static const struct mtk_soc_data mt7981_
+@@ -5161,11 +5181,15 @@ static const struct mtk_soc_data mt7981_
        .hash_offset = 4,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
@@ -479,7 +479,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
        },
-@@ -5179,11 +5203,15 @@ static const struct mtk_soc_data mt7986_
+@@ -5183,11 +5207,15 @@ static const struct mtk_soc_data mt7986_
        .hash_offset = 4,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
@@ -500,7 +500,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
        },
-@@ -5201,11 +5229,15 @@ static const struct mtk_soc_data mt7988_
+@@ -5205,11 +5233,15 @@ static const struct mtk_soc_data mt7988_
        .hash_offset = 4,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V3_SIZE,
@@ -521,7 +521,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
        },
-@@ -5218,11 +5250,15 @@ static const struct mtk_soc_data rt5350_
+@@ -5222,11 +5254,15 @@ static const struct mtk_soc_data rt5350_
        .required_clks = MT7628_CLKS_BITMAP,
        .required_pctl = false,
        .version = 1,
index 2499f48bc60284d9c44d5f73d16c8ff3c36f3e6b..27c512864e0b938e048a1401b9a64aca9ce51fbe 100644 (file)
@@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        reason = FIELD_GET(MTK_RXD5_PPE_CPU_REASON, trxd.rxd5);
                        hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY;
                        if (hash != MTK_RXD5_FOE_ENTRY)
-@@ -2686,7 +2686,7 @@ static int mtk_rx_alloc(struct mtk_eth *
+@@ -2690,7 +2690,7 @@ static int mtk_rx_alloc(struct mtk_eth *
  
                rxd->rxd3 = 0;
                rxd->rxd4 = 0;
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        rxd->rxd5 = 0;
                        rxd->rxd6 = 0;
                        rxd->rxd7 = 0;
-@@ -3889,7 +3889,7 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3893,7 +3893,7 @@ static int mtk_hw_init(struct mtk_eth *e
        else
                mtk_hw_reset(eth);
  
@@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* Set FE to PDMAv2 if necessary */
                val = mtk_r32(eth, MTK_FE_GLO_MISC);
                mtk_w32(eth,  val | BIT(4), MTK_FE_GLO_MISC);
-@@ -5183,11 +5183,11 @@ static const struct mtk_soc_data mt7981_
+@@ -5187,11 +5187,11 @@ static const struct mtk_soc_data mt7981_
                .dma_len_offset = 8,
        },
        .rx = {
@@ -110,7 +110,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        },
  };
  
-@@ -5209,11 +5209,11 @@ static const struct mtk_soc_data mt7986_
+@@ -5213,11 +5213,11 @@ static const struct mtk_soc_data mt7986_
                .dma_len_offset = 8,
        },
        .rx = {
index ddb810718644ca3c8f3eb7888adfbbcad17a506d..27dac7214b72b5a1feade922ec22cd640ac78727 100644 (file)
@@ -123,7 +123,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                }
        }
  
-@@ -2457,7 +2463,7 @@ static int mtk_tx_alloc(struct mtk_eth *
+@@ -2461,7 +2467,7 @@ static int mtk_tx_alloc(struct mtk_eth *
        if (MTK_HAS_CAPS(soc->caps, MTK_QDMA))
                ring_size = MTK_QDMA_RING_SIZE;
        else
@@ -132,7 +132,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        ring->buf = kcalloc(ring_size, sizeof(*ring->buf),
                               GFP_KERNEL);
-@@ -2465,8 +2471,8 @@ static int mtk_tx_alloc(struct mtk_eth *
+@@ -2469,8 +2475,8 @@ static int mtk_tx_alloc(struct mtk_eth *
                goto no_tx_mem;
  
        if (MTK_HAS_CAPS(soc->caps, MTK_SRAM)) {
@@ -143,7 +143,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        } else {
                ring->dma = dma_alloc_coherent(eth->dma_dev, ring_size * sz,
                                               &ring->phys, GFP_KERNEL);
-@@ -2588,6 +2594,7 @@ static void mtk_tx_clean(struct mtk_eth
+@@ -2592,6 +2598,7 @@ static void mtk_tx_clean(struct mtk_eth
  static int mtk_rx_alloc(struct mtk_eth *eth, int ring_no, int rx_flag)
  {
        const struct mtk_reg_map *reg_map = eth->soc->reg_map;
@@ -151,7 +151,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        struct mtk_rx_ring *ring;
        int rx_data_len, rx_dma_size, tx_ring_size;
        int i;
-@@ -2595,7 +2602,7 @@ static int mtk_rx_alloc(struct mtk_eth *
+@@ -2599,7 +2606,7 @@ static int mtk_rx_alloc(struct mtk_eth *
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
                tx_ring_size = MTK_QDMA_RING_SIZE;
        else
@@ -160,7 +160,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        if (rx_flag == MTK_RX_FLAGS_QDMA) {
                if (ring_no)
-@@ -2610,7 +2617,7 @@ static int mtk_rx_alloc(struct mtk_eth *
+@@ -2614,7 +2621,7 @@ static int mtk_rx_alloc(struct mtk_eth *
                rx_dma_size = MTK_HW_LRO_DMA_SIZE;
        } else {
                rx_data_len = ETH_DATA_LEN;
@@ -169,7 +169,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  
        ring->frag_size = mtk_max_frag_size(rx_data_len);
-@@ -3139,7 +3146,10 @@ static void mtk_dma_free(struct mtk_eth
+@@ -3143,7 +3150,10 @@ static void mtk_dma_free(struct mtk_eth
                        mtk_rx_clean(eth, &eth->rx_ring[i], false);
        }
  
@@ -181,7 +181,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  
  static bool mtk_hw_reset_check(struct mtk_eth *eth)
-@@ -5061,11 +5071,14 @@ static const struct mtk_soc_data mt2701_
+@@ -5065,11 +5075,14 @@ static const struct mtk_soc_data mt2701_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -196,7 +196,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5085,11 +5098,14 @@ static const struct mtk_soc_data mt7621_
+@@ -5089,11 +5102,14 @@ static const struct mtk_soc_data mt7621_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -211,7 +211,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5111,11 +5127,14 @@ static const struct mtk_soc_data mt7622_
+@@ -5115,11 +5131,14 @@ static const struct mtk_soc_data mt7622_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -226,7 +226,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5136,11 +5155,14 @@ static const struct mtk_soc_data mt7623_
+@@ -5140,11 +5159,14 @@ static const struct mtk_soc_data mt7623_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -241,7 +241,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5159,11 +5181,14 @@ static const struct mtk_soc_data mt7629_
+@@ -5163,11 +5185,14 @@ static const struct mtk_soc_data mt7629_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -256,7 +256,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5185,6 +5210,8 @@ static const struct mtk_soc_data mt7981_
+@@ -5189,6 +5214,8 @@ static const struct mtk_soc_data mt7981_
                .desc_size = sizeof(struct mtk_tx_dma_v2),
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
@@ -265,7 +265,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
        .rx = {
                .desc_size = sizeof(struct mtk_rx_dma),
-@@ -5192,6 +5219,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5196,6 +5223,7 @@ static const struct mtk_soc_data mt7981_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -273,7 +273,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
  };
  
-@@ -5211,6 +5239,8 @@ static const struct mtk_soc_data mt7986_
+@@ -5215,6 +5243,8 @@ static const struct mtk_soc_data mt7986_
                .desc_size = sizeof(struct mtk_tx_dma_v2),
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
@@ -282,7 +282,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
        .rx = {
                .desc_size = sizeof(struct mtk_rx_dma),
-@@ -5218,6 +5248,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5222,6 +5252,7 @@ static const struct mtk_soc_data mt7986_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -290,7 +290,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
  };
  
-@@ -5237,6 +5268,8 @@ static const struct mtk_soc_data mt7988_
+@@ -5241,6 +5272,8 @@ static const struct mtk_soc_data mt7988_
                .desc_size = sizeof(struct mtk_tx_dma_v2),
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
@@ -299,7 +299,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
        .rx = {
                .desc_size = sizeof(struct mtk_rx_dma_v2),
-@@ -5244,6 +5277,7 @@ static const struct mtk_soc_data mt7988_
+@@ -5248,6 +5281,7 @@ static const struct mtk_soc_data mt7988_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN_V2,
                .dma_len_offset = 8,
@@ -307,7 +307,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
  };
  
-@@ -5258,6 +5292,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5262,6 +5296,7 @@ static const struct mtk_soc_data rt5350_
                .desc_size = sizeof(struct mtk_tx_dma),
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -315,7 +315,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        },
        .rx = {
                .desc_size = sizeof(struct mtk_rx_dma),
-@@ -5265,6 +5300,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5269,6 +5304,7 @@ static const struct mtk_soc_data rt5350_
                .dma_l4_valid = RX_DMA_L4_VALID_PDMA,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
index bdf5bd0945d56d6b7c72d1a03a079241d84bad32..1c5a7ae1006ec2e6d89ba59a75a4b40c8c902834 100644 (file)
@@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
                skb_record_rx_queue(skb, 0);
                napi_gro_receive(napi, skb);
-@@ -3276,37 +3287,27 @@ static int mtk_start_dma(struct mtk_eth
+@@ -3280,37 +3291,27 @@ static int mtk_start_dma(struct mtk_eth
        return 0;
  }
  
@@ -134,7 +134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  
-@@ -3366,7 +3367,10 @@ static int mtk_open(struct net_device *d
+@@ -3370,7 +3371,10 @@ static int mtk_open(struct net_device *d
  {
        struct mtk_mac *mac = netdev_priv(dev);
        struct mtk_eth *eth = mac->hw;
@@ -146,7 +146,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
        if (err) {
-@@ -3390,18 +3394,38 @@ static int mtk_open(struct net_device *d
+@@ -3394,18 +3398,38 @@ static int mtk_open(struct net_device *d
                for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
                        mtk_ppe_start(eth->ppe[i]);
  
@@ -190,7 +190,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        phylink_start(mac->phylink);
        netif_tx_start_all_queues(dev);
-@@ -3478,7 +3502,8 @@ static int mtk_stop(struct net_device *d
+@@ -3482,7 +3506,8 @@ static int mtk_stop(struct net_device *d
        if (!refcount_dec_and_test(&eth->dma_refcnt))
                return 0;
  
@@ -200,7 +200,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
        mtk_rx_irq_disable(eth, eth->soc->rx.irq_done_mask);
-@@ -4973,23 +4998,24 @@ static int mtk_probe(struct platform_dev
+@@ -4977,23 +5002,24 @@ static int mtk_probe(struct platform_dev
        }
  
        if (eth->soc->offload_version) {
@@ -233,7 +233,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        }
  
        for (i = 0; i < MTK_MAX_DEVS; i++) {
-@@ -5092,6 +5118,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5096,6 +5122,7 @@ static const struct mtk_soc_data mt7621_
        .required_pctl = false,
        .version = 1,
        .offload_version = 1,
@@ -241,7 +241,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .tx = {
-@@ -5120,6 +5147,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5124,6 +5151,7 @@ static const struct mtk_soc_data mt7622_
        .required_pctl = false,
        .version = 1,
        .offload_version = 2,
@@ -249,7 +249,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .hash_offset = 2,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
-@@ -5148,6 +5176,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5152,6 +5180,7 @@ static const struct mtk_soc_data mt7623_
        .required_pctl = true,
        .version = 1,
        .offload_version = 1,
@@ -257,7 +257,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .hash_offset = 2,
        .foe_entry_size = MTK_FOE_ENTRY_V1_SIZE,
        .disable_pll_modes = true,
-@@ -5203,6 +5232,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5207,6 +5236,7 @@ static const struct mtk_soc_data mt7981_
        .required_pctl = false,
        .version = 2,
        .offload_version = 2,
@@ -265,7 +265,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .hash_offset = 4,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
-@@ -5232,6 +5262,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5236,6 +5266,7 @@ static const struct mtk_soc_data mt7986_
        .required_pctl = false,
        .version = 2,
        .offload_version = 2,
@@ -273,7 +273,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        .hash_offset = 4,
        .has_accounting = true,
        .foe_entry_size = MTK_FOE_ENTRY_V2_SIZE,
-@@ -5261,6 +5292,7 @@ static const struct mtk_soc_data mt7988_
+@@ -5265,6 +5296,7 @@ static const struct mtk_soc_data mt7988_
        .required_pctl = false,
        .version = 3,
        .offload_version = 2,
index b62586b992f6c988246fe343297537f2b721e3d6..77061eb3554fee251e22717fd88d910db0f78fa0 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3396,7 +3396,7 @@ static int mtk_open(struct net_device *d
+@@ -3400,7 +3400,7 @@ static int mtk_open(struct net_device *d
  
                for (i = 0; i < MTK_MAX_DEVS; i++) {
                        if (!eth->netdev[i])
index 970812c6b201ea0b3ad0b87cbce4cc653dad769a..272ceb3b45e7e70c499800a61b4024891a729049 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4478,6 +4478,20 @@ static int mtk_set_rxnfc(struct net_devi
+@@ -4482,6 +4482,20 @@ static int mtk_set_rxnfc(struct net_devi
        return ret;
  }
  
@@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
                            struct net_device *sb_dev)
  {
-@@ -4506,8 +4520,10 @@ static const struct ethtool_ops mtk_etht
+@@ -4510,8 +4524,10 @@ static const struct ethtool_ops mtk_etht
        .get_strings            = mtk_get_strings,
        .get_sset_count         = mtk_get_sset_count,
        .get_ethtool_stats      = mtk_get_ethtool_stats,
index 824002080303eecb5cd67e50548c2a3dc3689553..009f211a2c155db92a41c711f6729388bddd9319 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
        mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK;
        mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
  }
-@@ -4492,6 +4502,61 @@ static int mtk_set_pauseparam(struct net
+@@ -4496,6 +4506,61 @@ static int mtk_set_pauseparam(struct net
        return phylink_ethtool_set_pauseparam(mac->phylink, pause);
  }
  
@@ -101,7 +101,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
  static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
                            struct net_device *sb_dev)
  {
-@@ -4524,6 +4589,8 @@ static const struct ethtool_ops mtk_etht
+@@ -4528,6 +4593,8 @@ static const struct ethtool_ops mtk_etht
        .set_pauseparam         = mtk_set_pauseparam,
        .get_rxnfc              = mtk_get_rxnfc,
        .set_rxnfc              = mtk_set_rxnfc,
@@ -110,7 +110,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
  };
  
  static const struct net_device_ops mtk_netdev_ops = {
-@@ -4584,6 +4651,8 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4588,6 +4655,8 @@ static int mtk_add_mac(struct mtk_eth *e
        }
        mac = netdev_priv(eth->netdev[id]);
        eth->mac[id] = mac;
index 24ec94f51564608202f9646e8e82ad6e2ec091b7..ccadee1e5a671e4be990a534b19cf8f9a48125a5 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
-@@ -164,6 +164,7 @@ extern void cleanup_module(void);
+@@ -166,6 +166,7 @@ struct module_kobject *lookup_or_create_
  
  /* Generic info of form tag = "info" */
  #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  /* For userspace: you can also call me... */
  #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
-@@ -233,12 +234,12 @@ extern void cleanup_module(void);
+@@ -235,12 +236,12 @@ struct module_kobject *lookup_or_create_
   * Author(s), use "Name <email>" or just "Name", for multiple
   * authors use multiple MODULE_AUTHOR() statements/lines.
   */
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /* Creates an alias so file2alias.c can find device table. */
  #define MODULE_DEVICE_TABLE(type, name)                                       \
  extern typeof(name) __mod_##type##__##name##_device_table             \
-@@ -265,7 +266,9 @@ extern typeof(name) __mod_##type##__##na
+@@ -267,7 +268,9 @@ extern typeof(name) __mod_##type##__##na
   */
  
  #if defined(MODULE) || !defined(CONFIG_SYSFS)
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #else
  #define MODULE_VERSION(_version)                                      \
        MODULE_INFO(version, _version);                                 \
-@@ -288,7 +291,7 @@ extern typeof(name) __mod_##type##__##na
+@@ -290,7 +293,7 @@ extern typeof(name) __mod_##type##__##na
  /* Optional firmware file (or files) needed by the module
   * format is simply firmware file name.  Multiple firmware
   * files require multiple MODULE_FIRMWARE() specifiers */
index 0935a0b9c0aea6400332afb916813e7408286678..8b784836a003da628c0ababe26b3ad7b433f19c7 100644 (file)
@@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -3095,6 +3095,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -3098,6 +3098,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -3260,16 +3264,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -3263,16 +3267,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
index bda5cb539942edbcacfc39d470ced04facf065de..95a6aa8cb82b41680a488b96bc2a495fef187b80 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
                .glo_cfg        = 0x4604,
                .rst_idx        = 0x4608,
                .delay_irq      = 0x460c,
-@@ -3895,6 +3898,56 @@ static void mtk_set_mcr_max_rx(struct mt
+@@ -3899,6 +3902,56 @@ static void mtk_set_mcr_max_rx(struct mt
                mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
  }
  
@@ -94,7 +94,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
  static void mtk_hw_reset(struct mtk_eth *eth)
  {
        u32 val;
-@@ -4370,6 +4423,8 @@ static void mtk_pending_work(struct work
+@@ -4374,6 +4427,8 @@ static void mtk_pending_work(struct work
        rtnl_lock();
        set_bit(MTK_RESETTING, &eth->state);
  
index d5cc7e0a7ef3efd7702b24ee066d87786b89441a..47339b6c22f7b2ffa1c2384e6554e3cd31d30a08 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/usb/rndis_host.c
 +++ b/drivers/net/usb/rndis_host.c
-@@ -640,6 +640,16 @@ static const struct driver_info   wwan_rnd
+@@ -630,6 +630,16 @@ static const struct driver_info   zte_rndi
        .tx_fixup =     rndis_tx_fixup,
  };
  
@@ -30,7 +30,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /*-------------------------------------------------------------------------*/
  
  static const struct usb_device_id     products [] = {
-@@ -676,6 +686,36 @@ static const struct usb_device_id produc
+@@ -666,6 +676,36 @@ static const struct usb_device_id produc
        USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
        .driver_info = (unsigned long) &rndis_info,
  }, {
@@ -64,6 +64,6 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                                    USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
 +      .driver_info = (unsigned long) &asr_rndis_info,
 +}, {
-       /* Mobile Broadband Modem, seen in Novatel Verizon USB730L and
-        * Telit FN990A (RNDIS)
-        */
+       /* Novatel Verizon USB730L */
+       USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
+       .driver_info = (unsigned long) &rndis_info,
index f3ca0941dda83d33760e627263264092aa607c4f..e4ac53448d5984e71bca9960a1911d6fee4d4776 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .89
-LINUX_KERNEL_HASH-6.6.89 = c21af7d36068e4ac0704c242eac8459212e6bf4a5d09df941b9b4d17dc1eba00
+LINUX_VERSION-6.6 = .90
+LINUX_KERNEL_HASH-6.6.90 = ff856748671629c1fefef219099e0b4b81131c2d325e768cb0806e204157014e
index ce7db566e5ac0f499adf480f83ccf69967d9b32d..4f3bb060519a719bb69db8dbcff6714d5b489ab0 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -3062,7 +3062,7 @@ static inline int pskb_network_may_pull(
+@@ -3065,7 +3065,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
diff --git a/target/linux/generic/pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch b/target/linux/generic/pending-6.6/691-net-ipv6-fix-UDPv6-GSO-segmentation-with-NAT.patch
deleted file mode 100644 (file)
index 6bbe2ca..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Sat, 26 Apr 2025 17:18:03 +0200
-Subject: [PATCH] net: ipv6: fix UDPv6 GSO segmentation with NAT
-
-If any address or port is changed, update it in all packets and recalculate
-checksum.
-
-Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/ipv4/udp_offload.c
-+++ b/net/ipv4/udp_offload.c
-@@ -247,6 +247,62 @@ static struct sk_buff *__udpv4_gso_segme
-       return segs;
- }
-+static void __udpv6_gso_segment_csum(struct sk_buff *seg,
-+                                   struct in6_addr *oldip,
-+                                   const struct in6_addr *newip,
-+                                   __be16 *oldport, __be16 newport)
-+{
-+      struct udphdr *uh = udp_hdr(seg);
-+
-+      if (ipv6_addr_equal(oldip, newip) && *oldport == newport)
-+              return;
-+
-+      if (uh->check) {
-+              inet_proto_csum_replace16(&uh->check, seg, oldip->s6_addr32,
-+                                        newip->s6_addr32, true);
-+
-+              inet_proto_csum_replace2(&uh->check, seg, *oldport, newport,
-+                                       false);
-+              if (!uh->check)
-+                      uh->check = CSUM_MANGLED_0;
-+      }
-+
-+      *oldip = *newip;
-+      *oldport = newport;
-+}
-+
-+static struct sk_buff *__udpv6_gso_segment_list_csum(struct sk_buff *segs)
-+{
-+      const struct ipv6hdr *iph;
-+      const struct udphdr *uh;
-+      struct ipv6hdr *iph2;
-+      struct sk_buff *seg;
-+      struct udphdr *uh2;
-+
-+      seg = segs;
-+      uh = udp_hdr(seg);
-+      iph = ipv6_hdr(seg);
-+      uh2 = udp_hdr(seg->next);
-+      iph2 = ipv6_hdr(seg->next);
-+
-+      if (!(*(const u32 *)&uh->source ^ *(const u32 *)&uh2->source) &&
-+          ipv6_addr_equal(&iph->saddr, &iph2->saddr) &&
-+          ipv6_addr_equal(&iph->daddr, &iph2->daddr))
-+              return segs;
-+
-+      while ((seg = seg->next)) {
-+              uh2 = udp_hdr(seg);
-+              iph2 = ipv6_hdr(seg);
-+
-+              __udpv6_gso_segment_csum(seg, &iph2->saddr, &iph->saddr,
-+                                       &uh2->source, uh->source);
-+              __udpv6_gso_segment_csum(seg, &iph2->daddr, &iph->daddr,
-+                                       &uh2->dest, uh->dest);
-+      }
-+
-+      return segs;
-+}
-+
- static struct sk_buff *__udp_gso_segment_list(struct sk_buff *skb,
-                                             netdev_features_t features,
-                                             bool is_ipv6)
-@@ -259,7 +315,10 @@ static struct sk_buff *__udp_gso_segment
-       udp_hdr(skb)->len = htons(sizeof(struct udphdr) + mss);
--      return is_ipv6 ? skb : __udpv4_gso_segment_list_csum(skb);
-+      if (is_ipv6)
-+              return __udpv6_gso_segment_list_csum(skb);
-+      else
-+              return __udpv4_gso_segment_list_csum(skb);
- }
- struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
index 05ff78e798c3a9414bdb7d14fcb485befc63efda..05f64f7587b8695e2b4739e69637a7bbc7c95808 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5121,6 +5121,8 @@ static int mtk_probe(struct platform_dev
+@@ -5125,6 +5125,8 @@ static int mtk_probe(struct platform_dev
         * for NAPI to work
         */
        init_dummy_netdev(&eth->dummy_dev);
index 572c07eb70c35cb16d54359186f8813aac3a11c6..8d8e3d83ba1939d900e339f34d609cdebffc683f 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3145,11 +3145,19 @@ static int mtk_dma_init(struct mtk_eth *
+@@ -3149,11 +3149,19 @@ static int mtk_dma_init(struct mtk_eth *
  static void mtk_dma_free(struct mtk_eth *eth)
  {
        const struct mtk_soc_data *soc = eth->soc;
index ffe4c5e1f893d38d6f7458fb30b990084ebbc376..7274c4a817d6431dd4cac15b869aee24028418f9 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Chad Monroe <chad@monroe.io>
  /* QDMA Flow Control Register */
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3319,12 +3319,14 @@ static int mtk_start_dma(struct mtk_eth
+@@ -3323,12 +3323,14 @@ static int mtk_start_dma(struct mtk_eth
                       MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO |
                       MTK_RX_2B_OFFSET | MTK_TX_WB_DDONE;
  
index 669a3c0f4a6b1cc833fc0f1ed1a585d0f3fcdab7..392e94dc8a91c1b19025b6641ac96913c0669602 100644 (file)
@@ -490,7 +490,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        .mac_finish = mtk_mac_finish,
        .mac_link_down = mtk_mac_link_down,
        .mac_link_up = mtk_mac_link_up,
-@@ -3427,6 +3568,9 @@ static int mtk_open(struct net_device *d
+@@ -3431,6 +3572,9 @@ static int mtk_open(struct net_device *d
  
        ppe_num = eth->soc->ppe_num;
  
@@ -500,7 +500,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
        if (err) {
                netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
-@@ -3577,6 +3721,9 @@ static int mtk_stop(struct net_device *d
+@@ -3581,6 +3725,9 @@ static int mtk_stop(struct net_device *d
        for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
                mtk_ppe_stop(eth->ppe[i]);
  
@@ -510,7 +510,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        return 0;
  }
  
-@@ -4663,6 +4810,7 @@ static const struct net_device_ops mtk_n
+@@ -4667,6 +4814,7 @@ static const struct net_device_ops mtk_n
  static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
  {
        const __be32 *_id = of_get_property(np, "reg", NULL);
@@ -518,7 +518,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        phy_interface_t phy_mode;
        struct phylink *phylink;
        struct mtk_mac *mac;
-@@ -4701,16 +4849,41 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4705,16 +4853,41 @@ static int mtk_add_mac(struct mtk_eth *e
        mac->id = id;
        mac->hw = eth;
        mac->of_node = np;
@@ -568,7 +568,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        }
  
        memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
-@@ -4793,8 +4966,21 @@ static int mtk_add_mac(struct mtk_eth *e
+@@ -4797,8 +4970,21 @@ static int mtk_add_mac(struct mtk_eth *e
                phy_interface_zero(mac->phylink_config.supported_interfaces);
                __set_bit(PHY_INTERFACE_MODE_INTERNAL,
                          mac->phylink_config.supported_interfaces);
@@ -590,7 +590,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),
                                 phy_mode, &mtk_phylink_ops);
-@@ -4845,6 +5031,26 @@ free_netdev:
+@@ -4849,6 +5035,26 @@ free_netdev:
        return err;
  }
  
@@ -617,7 +617,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
  {
        struct net_device *dev, *tmp;
-@@ -4991,7 +5197,8 @@ static int mtk_probe(struct platform_dev
+@@ -4995,7 +5201,8 @@ static int mtk_probe(struct platform_dev
                        regmap_write(cci, 0, 3);
        }
  
@@ -627,7 +627,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                err = mtk_sgmii_init(eth);
  
                if (err)
-@@ -5102,6 +5309,24 @@ static int mtk_probe(struct platform_dev
+@@ -5106,6 +5313,24 @@ static int mtk_probe(struct platform_dev
                }
        }
  
@@ -652,7 +652,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
                err = devm_request_irq(eth->dev, eth->irq[0],
                                       mtk_handle_irq, 0,
-@@ -5205,6 +5430,11 @@ static int mtk_remove(struct platform_de
+@@ -5209,6 +5434,11 @@ static int mtk_remove(struct platform_de
                mtk_stop(eth->netdev[i]);
                mac = netdev_priv(eth->netdev[i]);
                phylink_disconnect_phy(mac->phylink);
index 6076fa2ed9feb4a401c593d28bc23c658f267dc5..f8b3bb84595f04ee872da17e08985e13e8b2a084 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5466,7 +5466,7 @@ static const struct mtk_soc_data mt2701_
+@@ -5470,7 +5470,7 @@ static const struct mtk_soc_data mt2701_
                .desc_size = sizeof(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5494,7 +5494,7 @@ static const struct mtk_soc_data mt7621_
+@@ -5498,7 +5498,7 @@ static const struct mtk_soc_data mt7621_
                .desc_size = sizeof(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5524,7 +5524,7 @@ static const struct mtk_soc_data mt7622_
+@@ -5528,7 +5528,7 @@ static const struct mtk_soc_data mt7622_
                .desc_size = sizeof(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5553,7 +5553,7 @@ static const struct mtk_soc_data mt7623_
+@@ -5557,7 +5557,7 @@ static const struct mtk_soc_data mt7623_
                .desc_size = sizeof(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5579,7 +5579,7 @@ static const struct mtk_soc_data mt7629_
+@@ -5583,7 +5583,7 @@ static const struct mtk_soc_data mt7629_
                .desc_size = sizeof(struct mtk_rx_dma),
                .irq_done_mask = MTK_RX_DONE_INT,
                .dma_l4_valid = RX_DMA_L4_VALID,
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
        },
-@@ -5611,7 +5611,7 @@ static const struct mtk_soc_data mt7981_
+@@ -5615,7 +5615,7 @@ static const struct mtk_soc_data mt7981_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        },
  };
  
-@@ -5641,7 +5641,7 @@ static const struct mtk_soc_data mt7986_
+@@ -5645,7 +5645,7 @@ static const struct mtk_soc_data mt7986_
                .dma_l4_valid = RX_DMA_L4_VALID_V2,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
@@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        },
  };
  
-@@ -5694,7 +5694,7 @@ static const struct mtk_soc_data rt5350_
+@@ -5698,7 +5698,7 @@ static const struct mtk_soc_data rt5350_
                .dma_l4_valid = RX_DMA_L4_VALID_PDMA,
                .dma_max_len = MTK_TX_DMA_BUF_LEN,
                .dma_len_offset = 16,
index 078365705d05930e8213ddbf47d73ee499c5e58b..349af33524e6c638b893cf40a067bb286ffa1aad 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -4578,6 +4578,7 @@ static int mtk_get_sset_count(struct net
+@@ -4582,6 +4582,7 @@ static int mtk_get_sset_count(struct net
  
  static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
  {
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct page_pool_stats stats = {};
        int i;
  
-@@ -4590,6 +4591,7 @@ static void mtk_ethtool_pp_stats(struct
+@@ -4594,6 +4595,7 @@ static void mtk_ethtool_pp_stats(struct
                page_pool_get_stats(ring->page_pool, &stats);
        }
        page_pool_ethtool_stats_get(data, &stats);
index 95069c2c4386409bc0bd9cd5c507ee383548a429..d8818369bcd4313fbe65100d2234e2fa3584d225 100644 (file)
@@ -100,7 +100,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
        return 0;
  
  err_reset_phy:
-@@ -1456,14 +1455,16 @@ static const struct imx6_pcie_drvdata dr
+@@ -1457,14 +1456,16 @@ static const struct imx6_pcie_drvdata dr
        },
        [IMX8MM] = {
                .variant = IMX8MM,
index 8c7567fa9382a9ac0a0c7cf44724e13c9c1813de..dc70104b1c0f3eae8795d7b59c858804408f402b 100644 (file)
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
 +#endif
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -4657,6 +4657,9 @@ enum skb_ext_id {
+@@ -4683,6 +4683,9 @@ enum skb_ext_id {
  #if IS_ENABLED(CONFIG_MCTP_FLOWS)
        SKB_EXT_MCTP,
  #endif
index eeb501dfebc17077a730634bb6b47d8747de0bfa..c2b46afd1c4f84fde0cffb1938d9d4f814455857 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
                                           cuImage.mpc8572ds
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -258,6 +258,11 @@ if [ -n "$esm_blob" -a "$platform" != "p
+@@ -256,6 +256,11 @@ if [ -n "$esm_blob" -a "$platform" != "p
  fi
  
  case "$platform" in
index 2f8d4d4e3d57a9cbd5f9cb59fd020e6cf605039a..e16b97b730b8898420a85813f66518f928dfc935 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
  
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -350,6 +350,11 @@ adder875-redboot)
+@@ -348,6 +348,11 @@ adder875-redboot)
      platformo="$object/fixed-head.o $object/redboot-8xx.o"
      binary=y
      ;;
index 85de47bfb5760bd002c0ee039187f2791ca4078f..2a46aee63eeb6466f3e161059a33646c725f6fb3 100644 (file)
@@ -48,7 +48,7 @@
  image-$(CONFIG_MVME7100)                += dtbImage.mvme7100
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -350,6 +350,7 @@ adder875-redboot)
+@@ -348,6 +348,7 @@ adder875-redboot)
      platformo="$object/fixed-head.o $object/redboot-8xx.o"
      binary=y
      ;;
index 983772131c31cc2afc87e400ed21b114dc143f3f..9e8ed55875a6837331db91764cc16867b5d3cb29 100644 (file)
@@ -48,7 +48,7 @@
  
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -351,7 +351,8 @@ adder875-redboot)
+@@ -349,7 +349,8 @@ adder875-redboot)
      binary=y
      ;;
  simpleboot-hiveap-330|\
index 29e3b221335530ce25768c5d22a874d87d976408..c50012d975846cbe71665e201fff5dcc87c6fb2d 100644 (file)
@@ -55,7 +55,7 @@ WS-AP3825i AP.
  
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -352,7 +352,8 @@ adder875-redboot)
+@@ -350,7 +350,8 @@ adder875-redboot)
      ;;
  simpleboot-hiveap-330|\
  simpleboot-tl-wdr4900-v1|\
index 28a2bed017f07f3691c25a2e76a271411f41a23c..d967191e66bcf6073c1f379891cabe64ac6393f2 100644 (file)
@@ -47,7 +47,7 @@
  image-$(CONFIG_WS_AP3710I)            += simpleImage.ws-ap3710i
 --- a/arch/powerpc/boot/wrapper
 +++ b/arch/powerpc/boot/wrapper
-@@ -350,6 +350,7 @@ adder875-redboot)
+@@ -348,6 +348,7 @@ adder875-redboot)
      platformo="$object/fixed-head.o $object/redboot-8xx.o"
      binary=y
      ;;
index 340fb3c342697ec142bdd642f719e0258942cbeb..9b724e9d5266feaad597a4783d31fe4abcc266bd 100644 (file)
@@ -25,8 +25,6 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  3 files changed, 502 insertions(+)
  create mode 100644 drivers/input/keyboard/sx951x.c
 
-diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
-index 1d0c5f4c0f99..6dc397389c64 100644
 --- a/drivers/input/keyboard/Kconfig
 +++ b/drivers/input/keyboard/Kconfig
 @@ -616,6 +616,17 @@ config KEYBOARD_SUNKBD
@@ -47,11 +45,9 @@ index 1d0c5f4c0f99..6dc397389c64 100644
  config KEYBOARD_SH_KEYSC
        tristate "SuperH KEYSC keypad support"
        depends on ARCH_SHMOBILE || COMPILE_TEST
-diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
-index aecef00c5d09..e59ca83c30ec 100644
 --- a/drivers/input/keyboard/Makefile
 +++ b/drivers/input/keyboard/Makefile
-@@ -66,6 +66,7 @@ obj-$(CONFIG_KEYBOARD_STOWAWAY)              += stowaway.o
+@@ -66,6 +66,7 @@ obj-$(CONFIG_KEYBOARD_STOWAWAY)              += stow
  obj-$(CONFIG_KEYBOARD_ST_KEYSCAN)     += st-keyscan.o
  obj-$(CONFIG_KEYBOARD_SUN4I_LRADC)    += sun4i-lradc-keys.o
  obj-$(CONFIG_KEYBOARD_SUNKBD)         += sunkbd.o
@@ -59,9 +55,6 @@ index aecef00c5d09..e59ca83c30ec 100644
  obj-$(CONFIG_KEYBOARD_TC3589X)                += tc3589x-keypad.o
  obj-$(CONFIG_KEYBOARD_TEGRA)          += tegra-kbc.o
  obj-$(CONFIG_KEYBOARD_TM2_TOUCHKEY)   += tm2-touchkey.o
-diff --git a/drivers/input/keyboard/sx951x.c b/drivers/input/keyboard/sx951x.c
-new file mode 100644
-index 000000000000..66355036aa95
 --- /dev/null
 +++ b/drivers/input/keyboard/sx951x.c
 @@ -0,0 +1,490 @@
@@ -555,6 +548,3 @@ index 000000000000..66355036aa95
 +MODULE_DESCRIPTION("Semtech SX9512/SX9513 driver");
 +MODULE_AUTHOR("David Bauer <mail@david-bauer.net>");
 +MODULE_LICENSE("GPL");
--- 
-2.47.2
-
index 2da2b322b0090d58c57d9c9e26d5bfe7c271be40..052972af30da03e588e9a727ff107b69797633c9 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -1842,6 +1843,7 @@ xhci_free_interrupter(struct xhci_hcd *x
+@@ -1878,6 +1879,7 @@ EXPORT_SYMBOL_GPL(xhci_remove_secondary_
  void xhci_mem_cleanup(struct xhci_hcd *xhci)
  {
        struct device   *dev = xhci_to_hcd(xhci)->self.sysdev;
@@ -58,7 +58,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        int i, j, num_ports;
  
        cancel_delayed_work_sync(&xhci->cmd_timer);
-@@ -1887,6 +1889,13 @@ void xhci_mem_cleanup(struct xhci_hcd *x
+@@ -1928,6 +1930,13 @@ void xhci_mem_cleanup(struct xhci_hcd *x
        xhci_dbg_trace(xhci, trace_xhci_dbg_init,
                        "Freed medium stream array pool");
  
@@ -72,9 +72,9 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        if (xhci->dcbaa)
                dma_free_coherent(dev, sizeof(*xhci->dcbaa),
                                xhci->dcbaa, xhci->dcbaa->dma);
-@@ -2300,6 +2309,55 @@ xhci_add_interrupter(struct xhci_hcd *xh
-       return 0;
+@@ -2399,6 +2408,55 @@ xhci_create_secondary_interrupter(struct
  }
+ EXPORT_SYMBOL_GPL(xhci_create_secondary_interrupter);
  
 +int xhci_setup_local_lowmem(struct xhci_hcd *xhci, size_t size)
 +{
@@ -127,8 +127,8 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
 +
  int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags)
  {
-       dma_addr_t      dma;
-@@ -2437,6 +2495,12 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+       struct xhci_interrupter *ir;
+@@ -2540,6 +2598,12 @@ int xhci_mem_init(struct xhci_hcd *xhci,
  
        xhci->isoc_bei_interval = AVOID_BEI_INTERVAL_MAX;
  
@@ -181,7 +181,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -1286,6 +1288,55 @@ static void xhci_unmap_temp_buf(struct u
+@@ -1312,6 +1314,55 @@ static void xhci_unmap_temp_buf(struct u
        urb->transfer_buffer = NULL;
  }
  
@@ -237,7 +237,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /*
   * Bypass the DMA mapping if URB is suitable for Immediate Transfer (IDT),
   * we'll copy the actual data into the TRB address register. This is limited to
-@@ -1306,9 +1357,11 @@ static int xhci_map_urb_for_dma(struct u
+@@ -1332,9 +1383,11 @@ static int xhci_map_urb_for_dma(struct u
                if (xhci_urb_temp_buffer_required(hcd, urb))
                        return xhci_map_temp_buffer(hcd, urb);
        }
@@ -249,7 +249,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  static void xhci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
  {
        struct xhci_hcd *xhci;
-@@ -1321,8 +1374,10 @@ static void xhci_unmap_urb_for_dma(struc
+@@ -1347,8 +1400,10 @@ static void xhci_unmap_urb_for_dma(struc
  
        if ((xhci->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK) && unmap_temp_buf)
                xhci_unmap_temp_buf(hcd, urb);
@@ -263,7 +263,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /**
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1509,6 +1509,13 @@ struct xhci_hub {
+@@ -1506,6 +1506,13 @@ struct xhci_hub {
        u8                      min_rev;
  };
  
@@ -277,7 +277,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
  /* There is one xhci_hcd structure per controller */
  struct xhci_hcd {
        struct usb_hcd *main_hcd;
-@@ -1663,6 +1670,8 @@ struct xhci_hcd {
+@@ -1660,6 +1667,8 @@ struct xhci_hcd {
  #define XHCI_CDNS_SCTX_QUIRK  BIT_ULL(48)
  #define XHCI_ETRON_HOST       BIT_ULL(49)
  
@@ -286,7 +286,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
        struct xhci_port        *hw_ports;
-@@ -1692,6 +1701,8 @@ struct xhci_hcd {
+@@ -1689,6 +1698,8 @@ struct xhci_hcd {
        struct list_head        regset_list;
  
        void                    *dbc;
index fad99301e6a1b9821f8e3c6618f3f42f3e595d39..b955ba810355e11f71bb97709648516de44c3415 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -1891,7 +1891,8 @@ void xhci_mem_cleanup(struct xhci_hcd *x
+@@ -1932,7 +1932,8 @@ void xhci_mem_cleanup(struct xhci_hcd *x
  
        if (xhci->lowmem_pool.pool) {
                pool = &xhci->lowmem_pool;
@@ -26,7 +26,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
                gen_pool_destroy(pool->pool);
                pool->pool = NULL;
        }
-@@ -2320,15 +2321,15 @@ int xhci_setup_local_lowmem(struct xhci_
+@@ -2419,15 +2420,15 @@ int xhci_setup_local_lowmem(struct xhci_
        if (!pool->pool) {
                /* minimal alloc one page */
                pool->pool = gen_pool_create(PAGE_SHIFT, dev_to_node(hcd->self.sysdev));
@@ -48,7 +48,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
                goto destroy_pool;
        }
  
-@@ -2338,11 +2339,11 @@ int xhci_setup_local_lowmem(struct xhci_
+@@ -2437,11 +2438,11 @@ int xhci_setup_local_lowmem(struct xhci_
         * for it.
         */
        err = gen_pool_add_virt(pool->pool, (unsigned long)buffer,
@@ -62,7 +62,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
                goto destroy_pool;
        }
  
-@@ -2365,7 +2366,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+@@ -2465,7 +2466,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
        unsigned int    val, val2;
        u64             val_64;
        u32             page_size, temp;
@@ -71,7 +71,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
  
        INIT_LIST_HEAD(&xhci->cmd_list);
  
-@@ -2496,9 +2497,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+@@ -2599,9 +2600,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
        xhci->isoc_bei_interval = AVOID_BEI_INTERVAL_MAX;
  
        if (xhci->quirks & XHCI_LOCAL_BUFFER) {