]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
airoha: update patches for 6.18
authorKenneth Kasilag <kenneth@kasilag.me>
Thu, 2 Apr 2026 01:24:00 +0000 (01:24 +0000)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Wed, 3 Jun 2026 07:06:33 +0000 (09:06 +0200)
Fix patch compatibility for kernel 6.18 on airoha.

Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me>
Link: https://github.com/openwrt/openwrt/pull/21019
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
target/linux/airoha/patches-6.18/102-02-v6.19-net-airoha-npu-Add-airoha_npu_soc_data-struct.patch
target/linux/airoha/patches-6.18/109-01-v6.19-pinctrl-airoha-generalize-pins-group-function-confs-.patch
target/linux/airoha/patches-6.18/109-02-v6.19-pinctrl-airoha-convert-PHY-LED-GPIO-to-macro.patch
target/linux/airoha/patches-6.18/109-03-v6.19-pinctrl-airoha-convert-PWM-GPIO-to-macro.patch
target/linux/airoha/patches-6.18/109-05-v6.19-pinctrl-airoha-add-support-for-Airoha-AN7583-PINs.patch
target/linux/airoha/patches-6.18/220-06-phy-move-Airoha-PCIe-PHY-driver-to-dedicated-directo.patch
target/linux/airoha/patches-6.18/310-09-net-pcs-airoha-add-PCS-driver-for-Airoha-AN7581-SoC.patch
target/linux/airoha/patches-6.18/886-uart-add-en7523-support.patch
target/linux/airoha/patches-6.18/915-01-net-netfilter-flowtable-Add-the-capability-to-offloa.patch
target/linux/airoha/patches-6.18/920-01-net-airoha-Introduce-airoha_gdm_dev-struct.patch
target/linux/airoha/patches-6.18/920-06-net-airoha-Support-multiple-net_devices-for-a-single.patch

index 09972a9b629bc985fd36a3c87e3f6bfc33573682..4d2e71241011c28654a926e41484108c0e52c599 100644 (file)
@@ -1,7 +1,7 @@
 From 0850ae496d534847ec2c26744521c1bce04ec59d Mon Sep 17 00:00:00 2001
 From: Lorenzo Bianconi <lorenzo@kernel.org>
 Date: Mon, 13 Oct 2025 15:58:50 +0200
-Subject: [PATCH 2/3] net: airoha: npu: Add airoha_npu_soc_data struct
+Subject: [PATCH] net: airoha: npu: Add airoha_npu_soc_data struct
 
 Introduce airoha_npu_soc_data structure in order to generalize per-SoC
 NPU firmware info. Introduce airoha_npu_load_firmware utility routine.
@@ -15,6 +15,8 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  drivers/net/ethernet/airoha/airoha_npu.c | 77 ++++++++++++++++--------
  1 file changed, 51 insertions(+), 26 deletions(-)
 
+diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
+index 8c883f2b2d36b7..41944cc5f6b062 100644
 --- a/drivers/net/ethernet/airoha/airoha_npu.c
 +++ b/drivers/net/ethernet/airoha/airoha_npu.c
 @@ -103,6 +103,16 @@ enum {
@@ -34,12 +36,12 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  #define MBOX_MSG_FUNC_ID      GENMASK(14, 11)
  #define MBOX_MSG_STATIC_BUF   BIT(5)
  #define MBOX_MSG_STATUS               GENMASK(4, 2)
-@@ -182,49 +192,53 @@ static int airoha_npu_send_msg(struct ai
+@@ -182,49 +192,53 @@ static int airoha_npu_send_msg(struct airoha_npu *npu, int func_id,
        return ret;
  }
  
 -static int airoha_npu_run_firmware(struct device *dev, void __iomem *base,
--                                 struct reserved_mem *rmem)
+-                                 struct resource *res)
 +static int airoha_npu_load_firmware(struct device *dev, void __iomem *addr,
 +                                  const struct airoha_npu_fw *fw_info)
  {
@@ -61,7 +63,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                goto out;
        }
  
--      addr = devm_ioremap(dev, rmem->base, rmem->size);
+-      addr = devm_ioremap_resource(dev, res);
 -      if (IS_ERR(addr)) {
 -              ret = PTR_ERR(addr);
 -              goto out;
@@ -84,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 -              goto out;
 -      }
 +static int airoha_npu_run_firmware(struct device *dev, void __iomem *base,
-+                                 struct reserved_mem *rmem)
++                                 struct resource *res)
 +{
 +      const struct airoha_npu_soc_data *soc;
 +      void __iomem *addr;
@@ -98,7 +100,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 +              return -EINVAL;
  
 -      return ret;
-+      addr = devm_ioremap(dev, rmem->base, rmem->size);
++      addr = devm_ioremap_resource(dev, res);
 +      if (IS_ERR(addr))
 +              return PTR_ERR(addr);
 +
@@ -113,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static irqreturn_t airoha_npu_mbox_handler(int irq, void *npu_instance)
-@@ -596,8 +610,19 @@ void airoha_npu_put(struct airoha_npu *n
+@@ -597,8 +611,19 @@ void airoha_npu_put(struct airoha_npu *npu)
  }
  EXPORT_SYMBOL_GPL(airoha_npu_put);
  
index 9546fa3e83cab353d2455e361c58b09110115df5..bcb056b31a9aaaa0b0ada6bf465bd669a940d7b8 100644 (file)
@@ -1,7 +1,7 @@
 From 4043b0c45f8555a079bdac69a19ed08695a47a7b Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth@gmail.com>
 Date: Fri, 7 Nov 2025 00:57:04 +0100
-Subject: [PATCH 1/5] pinctrl: airoha: generalize pins/group/function/confs
+Subject: [PATCH] pinctrl: airoha: generalize pins/group/function/confs
  handling
 
 In preparation for support of Airoha AN7583, generalize
@@ -17,6 +17,8 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  drivers/pinctrl/mediatek/pinctrl-airoha.c | 567 ++++++++++++----------
  1 file changed, 318 insertions(+), 249 deletions(-)
 
+diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
+index f1cf2578fe423e..32e5c1b32d5071 100644
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
 @@ -30,15 +30,15 @@
@@ -90,7 +92,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_PIN(0, "uart1_txd"),
        PINCTRL_PIN(1, "uart1_rxd"),
        PINCTRL_PIN(2, "i2c_scl"),
-@@ -427,172 +457,172 @@ static struct pinctrl_pin_desc airoha_pi
+@@ -427,172 +457,172 @@ static struct pinctrl_pin_desc airoha_pinctrl_pins[] = {
        PINCTRL_PIN(63, "pcie_reset2"),
  };
  
@@ -429,7 +431,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  };
  
  static const char *const pon_groups[] = { "pon" };
-@@ -1955,33 +1985,33 @@ static const struct airoha_pinctrl_func_
+@@ -1955,33 +1985,33 @@ static const struct airoha_pinctrl_func_group phy4_led1_func_group[] = {
        },
  };
  
@@ -488,7 +490,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PU, UART1_TXD_PU_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PU, UART1_RXD_PU_MASK),
        PINCTRL_CONF_DESC(2, REG_I2C_SDA_PU, I2C_SDA_PU_MASK),
-@@ -2042,7 +2072,7 @@ static const struct airoha_pinctrl_conf
+@@ -2042,7 +2072,7 @@ static const struct airoha_pinctrl_conf airoha_pinctrl_pullup_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PU, PCIE2_RESET_PU_MASK),
  };
  
@@ -497,7 +499,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PD, UART1_TXD_PD_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PD, UART1_RXD_PD_MASK),
        PINCTRL_CONF_DESC(2, REG_I2C_SDA_PD, I2C_SDA_PD_MASK),
-@@ -2103,7 +2133,7 @@ static const struct airoha_pinctrl_conf
+@@ -2103,7 +2133,7 @@ static const struct airoha_pinctrl_conf airoha_pinctrl_pulldown_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PD, PCIE2_RESET_PD_MASK),
  };
  
@@ -506,7 +508,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E2, UART1_TXD_E2_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E2, UART1_RXD_E2_MASK),
        PINCTRL_CONF_DESC(2, REG_I2C_SDA_E2, I2C_SDA_E2_MASK),
-@@ -2164,7 +2194,7 @@ static const struct airoha_pinctrl_conf
+@@ -2164,7 +2194,7 @@ static const struct airoha_pinctrl_conf airoha_pinctrl_drive_e2_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E2, PCIE2_RESET_E2_MASK),
  };
  
@@ -515,7 +517,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E4, UART1_TXD_E4_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E4, UART1_RXD_E4_MASK),
        PINCTRL_CONF_DESC(2, REG_I2C_SDA_E4, I2C_SDA_E4_MASK),
-@@ -2225,7 +2255,7 @@ static const struct airoha_pinctrl_conf
+@@ -2225,7 +2255,7 @@ static const struct airoha_pinctrl_conf airoha_pinctrl_drive_e4_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E4, PCIE2_RESET_E4_MASK),
  };
  
@@ -524,7 +526,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        PINCTRL_CONF_DESC(61, REG_PCIE_RESET_OD, PCIE0_RESET_OD_MASK),
        PINCTRL_CONF_DESC(62, REG_PCIE_RESET_OD, PCIE1_RESET_OD_MASK),
        PINCTRL_CONF_DESC(63, REG_PCIE_RESET_OD, PCIE2_RESET_OD_MASK),
-@@ -2547,12 +2577,17 @@ airoha_pinctrl_get_conf_reg(const struct
+@@ -2546,12 +2576,17 @@ airoha_pinctrl_get_conf_reg(const struct airoha_pinctrl_conf *conf,
  }
  
  static int airoha_pinctrl_get_conf(struct airoha_pinctrl *pinctrl,
@@ -545,7 +547,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        if (!reg)
                return -EINVAL;
  
-@@ -2565,12 +2600,17 @@ static int airoha_pinctrl_get_conf(struc
+@@ -2564,12 +2599,17 @@ static int airoha_pinctrl_get_conf(struct airoha_pinctrl *pinctrl,
  }
  
  static int airoha_pinctrl_set_conf(struct airoha_pinctrl *pinctrl,
@@ -566,7 +568,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        if (!reg)
                return -EINVAL;
  
-@@ -2583,44 +2623,34 @@ static int airoha_pinctrl_set_conf(struc
+@@ -2582,44 +2622,34 @@ static int airoha_pinctrl_set_conf(struct airoha_pinctrl *pinctrl,
  }
  
  #define airoha_pinctrl_get_pullup_conf(pinctrl, pin, val)                     \
@@ -621,7 +623,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                                (pin), (val))
  
  static int airoha_pinconf_get_direction(struct pinctrl_dev *pctrl_dev, u32 p)
-@@ -2799,12 +2829,13 @@ static int airoha_pinconf_set(struct pin
+@@ -2796,12 +2826,13 @@ static int airoha_pinconf_set(struct pinctrl_dev *pctrl_dev,
  static int airoha_pinconf_group_get(struct pinctrl_dev *pctrl_dev,
                                    unsigned int group, unsigned long *config)
  {
@@ -637,7 +639,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                                       config))
                        return -ENOTSUPP;
  
-@@ -2821,13 +2852,14 @@ static int airoha_pinconf_group_set(stru
+@@ -2818,13 +2849,14 @@ static int airoha_pinconf_group_set(struct pinctrl_dev *pctrl_dev,
                                    unsigned int group, unsigned long *configs,
                                    unsigned int num_configs)
  {
@@ -654,11 +656,11 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                                         configs, num_configs);
                if (err)
                        return err;
-@@ -2853,23 +2885,16 @@ static const struct pinctrl_ops airoha_p
+@@ -2850,23 +2882,16 @@ static const struct pinctrl_ops airoha_pctlops = {
        .dt_free_map = pinconf_generic_dt_free_map,
  };
  
--static struct pinctrl_desc airoha_pinctrl_desc = {
+-static const struct pinctrl_desc airoha_pinctrl_desc = {
 -      .name = KBUILD_MODNAME,
 -      .owner = THIS_MODULE,
 -      .pctlops = &airoha_pctlops,
@@ -681,7 +683,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        pinctrl = devm_kzalloc(dev, sizeof(*pinctrl), GFP_KERNEL);
        if (!pinctrl)
                return -ENOMEM;
-@@ -2884,14 +2909,23 @@ static int airoha_pinctrl_probe(struct p
+@@ -2881,14 +2906,23 @@ static int airoha_pinctrl_probe(struct platform_device *pdev)
  
        pinctrl->chip_scu = map;
  
@@ -708,7 +710,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  
                err = pinctrl_generic_add_group(pinctrl->ctrl, grp->name,
                                                grp->pins, grp->npins,
-@@ -2904,10 +2938,10 @@ static int airoha_pinctrl_probe(struct p
+@@ -2901,10 +2935,10 @@ static int airoha_pinctrl_probe(struct platform_device *pdev)
        }
  
        /* build functions */
@@ -718,10 +720,10 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  
 -              func = &airoha_pinctrl_funcs[i];
 +              func = &data->funcs[i];
-               err = pinmux_generic_add_function(pinctrl->ctrl,
-                                                 func->desc.name,
-                                                 func->desc.groups,
-@@ -2920,6 +2954,10 @@ static int airoha_pinctrl_probe(struct p
+               err = pinmux_generic_add_pinfunction(pinctrl->ctrl,
+                                                    &func->desc,
+                                                    (void *)func);
+@@ -2915,6 +2949,10 @@ static int airoha_pinctrl_probe(struct platform_device *pdev)
                }
        }
  
@@ -732,7 +734,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        err = pinctrl_enable(pinctrl->ctrl);
        if (err)
                return err;
-@@ -2928,8 +2966,39 @@ static int airoha_pinctrl_probe(struct p
+@@ -2923,8 +2961,39 @@ static int airoha_pinctrl_probe(struct platform_device *pdev)
        return airoha_pinctrl_add_gpiochip(pinctrl, pdev);
  }
  
index 569fcafaa24aa762e002cb9b1f047c7474ea6f15..6f2ebc12375d4ae5674a6dc7b461801a90d5a97f 100644 (file)
@@ -1,7 +1,7 @@
 From 579839c9548cf2a85e873ad787bc2fa6610bf8ab Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth@gmail.com>
 Date: Fri, 7 Nov 2025 00:57:05 +0100
-Subject: [PATCH 2/5] pinctrl: airoha: convert PHY LED GPIO to macro
+Subject: [PATCH] pinctrl: airoha: convert PHY LED GPIO to macro
 
 PHY LED GPIO pinctrl struct definition is very similar across the
 different 4 PHY and 2 LED and it can be generelized to a macro.
@@ -14,9 +14,11 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  drivers/pinctrl/mediatek/pinctrl-airoha.c | 588 ++++------------------
  1 file changed, 100 insertions(+), 488 deletions(-)
 
+diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
+index 32e5c1b32d5071..cb0edc2a66a1e6 100644
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -1473,516 +1473,128 @@ static const struct airoha_pinctrl_func_
+@@ -1473,516 +1473,128 @@ static const struct airoha_pinctrl_func_group pwm_func_group[] = {
        },
  };
  
index cab0517f7ec1552f3dbed9ceff24a9fe9e2186bf..0cd944b2ba2ad2fefbd5c09b49622458d1a5b7b7 100644 (file)
@@ -1,7 +1,7 @@
 From 1552ad5d649cff9d170e5bc1d13ab1487333b4b7 Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth@gmail.com>
 Date: Fri, 7 Nov 2025 00:57:06 +0100
-Subject: [PATCH 3/5] pinctrl: airoha: convert PWM GPIO to macro
+Subject: [PATCH] pinctrl: airoha: convert PWM GPIO to macro
 
 The PWM GPIO struct definition follow the same pattern for every GPIO
 pin hence it can be converted to a macro.
@@ -15,9 +15,11 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  drivers/pinctrl/mediatek/pinctrl-airoha.c | 465 ++++------------------
  1 file changed, 68 insertions(+), 397 deletions(-)
 
+diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
+index cb0edc2a66a1e6..f3cf48bdd1f83d 100644
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
-@@ -1073,404 +1073,75 @@ static const struct airoha_pinctrl_func_
+@@ -1073,404 +1073,75 @@ static const struct airoha_pinctrl_func_group pcie_reset_func_group[] = {
  };
  
  /* PWM */
index b33af2bb78b05545db84c16a5bbc49ae92bed17c..990a154d12b771aa04b9331ab4909b6534708903 100644 (file)
@@ -1,7 +1,7 @@
 From 3ffeb17a9a27a668efb6fbd074835e187910a9bb Mon Sep 17 00:00:00 2001
 From: Christian Marangi <ansuelsmth@gmail.com>
 Date: Fri, 7 Nov 2025 00:57:08 +0100
-Subject: [PATCH 5/5] pinctrl: airoha: add support for Airoha AN7583 PINs
+Subject: [PATCH] pinctrl: airoha: add support for Airoha AN7583 PINs
 
 Add all the required entry to add suppot for Airoha AN7583 PINs.
 
@@ -14,6 +14,8 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  drivers/pinctrl/mediatek/pinctrl-airoha.c | 747 +++++++++++++++++++++-
  1 file changed, 740 insertions(+), 7 deletions(-)
 
+diff --git a/drivers/pinctrl/mediatek/pinctrl-airoha.c b/drivers/pinctrl/mediatek/pinctrl-airoha.c
+index f3cf48bdd1f83d..bfcedc7f920b1e 100644
 --- a/drivers/pinctrl/mediatek/pinctrl-airoha.c
 +++ b/drivers/pinctrl/mediatek/pinctrl-airoha.c
 @@ -70,6 +70,7 @@
@@ -94,7 +96,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  #define UART1_RXD_PD_MASK                     BIT(3)
  #define UART1_TXD_PD_MASK                     BIT(2)
  #define I2C_SCL_PD_MASK                               BIT(1)
-@@ -625,10 +642,223 @@ static const struct pingroup en7581_pinc
+@@ -625,10 +642,223 @@ static const struct pingroup en7581_pinctrl_groups[] = {
        PINCTRL_PIN_GROUP("pcie_reset2", en7581_pcie_reset2),
  };
  
@@ -318,7 +320,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const char *const uart_groups[] = { "uart2", "uart2_cts_rts", "hsuart",
                                           "hsuart_cts_rts", "uart4",
                                           "uart5" };
-@@ -641,11 +871,16 @@ static const char *const pcm_spi_groups[
+@@ -641,11 +871,16 @@ static const char *const pcm_spi_groups[] = { "pcm_spi", "pcm_spi_int",
                                              "pcm_spi_cs2_p156",
                                              "pcm_spi_cs2_p128",
                                              "pcm_spi_cs3", "pcm_spi_cs4" };
@@ -335,7 +337,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const char *const pwm_groups[] = { "gpio0", "gpio1",
                                          "gpio2", "gpio3",
                                          "gpio4", "gpio5",
-@@ -684,6 +919,22 @@ static const char *const phy3_led1_group
+@@ -684,6 +919,22 @@ static const char *const phy3_led1_groups[] = { "gpio43", "gpio44",
                                                "gpio45", "gpio46" };
  static const char *const phy4_led1_groups[] = { "gpio43", "gpio44",
                                                "gpio45", "gpio46" };
@@ -358,7 +360,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  
  static const struct airoha_pinctrl_func_group pon_func_group[] = {
        {
-@@ -761,6 +1012,25 @@ static const struct airoha_pinctrl_func_
+@@ -761,6 +1012,25 @@ static const struct airoha_pinctrl_func_group mdio_func_group[] = {
        },
  };
  
@@ -384,7 +386,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func_group uart_func_group[] = {
        {
                .name = "uart2",
-@@ -1002,6 +1272,73 @@ static const struct airoha_pinctrl_func_
+@@ -1002,6 +1272,73 @@ static const struct airoha_pinctrl_func_group pcm_spi_func_group[] = {
        },
  };
  
@@ -458,7 +460,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func_group i2s_func_group[] = {
        {
                .name = "i2s",
-@@ -1072,6 +1409,28 @@ static const struct airoha_pinctrl_func_
+@@ -1072,6 +1409,28 @@ static const struct airoha_pinctrl_func_group pcie_reset_func_group[] = {
        },
  };
  
@@ -487,7 +489,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  /* PWM */
  #define AIROHA_PINCTRL_PWM(gpio, mux_val)             \
        {                                               \
-@@ -1268,6 +1627,94 @@ static const struct airoha_pinctrl_func_
+@@ -1268,6 +1627,94 @@ static const struct airoha_pinctrl_func_group phy4_led1_func_group[] = {
                                LAN3_LED_MAPPING_MASK, LAN3_PHY_LED_MAP(2)),
  };
  
@@ -582,7 +584,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_func en7581_pinctrl_funcs[] = {
        PINCTRL_FUNC_DESC("pon", pon),
        PINCTRL_FUNC_DESC("tod_1pps", tod_1pps),
-@@ -1294,6 +1741,31 @@ static const struct airoha_pinctrl_func
+@@ -1294,6 +1741,31 @@ static const struct airoha_pinctrl_func en7581_pinctrl_funcs[] = {
        PINCTRL_FUNC_DESC("phy4_led1", phy4_led1),
  };
  
@@ -614,7 +616,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_pullup_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PU, UART1_TXD_PU_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PU, UART1_RXD_PU_MASK),
-@@ -1355,6 +1827,62 @@ static const struct airoha_pinctrl_conf
+@@ -1355,6 +1827,62 @@ static const struct airoha_pinctrl_conf en7581_pinctrl_pullup_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PU, PCIE2_RESET_PU_MASK),
  };
  
@@ -677,7 +679,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_pulldown_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_PD, UART1_TXD_PD_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_PD, UART1_RXD_PD_MASK),
-@@ -1416,6 +1944,62 @@ static const struct airoha_pinctrl_conf
+@@ -1416,6 +1944,62 @@ static const struct airoha_pinctrl_conf en7581_pinctrl_pulldown_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_PD, PCIE2_RESET_PD_MASK),
  };
  
@@ -740,7 +742,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e2_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E2, UART1_TXD_E2_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E2, UART1_RXD_E2_MASK),
-@@ -1477,6 +2061,62 @@ static const struct airoha_pinctrl_conf
+@@ -1477,6 +2061,62 @@ static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e2_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E2, PCIE2_RESET_E2_MASK),
  };
  
@@ -803,7 +805,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e4_conf[] = {
        PINCTRL_CONF_DESC(0, REG_I2C_SDA_E4, UART1_TXD_E4_MASK),
        PINCTRL_CONF_DESC(1, REG_I2C_SDA_E4, UART1_RXD_E4_MASK),
-@@ -1538,12 +2178,73 @@ static const struct airoha_pinctrl_conf
+@@ -1538,12 +2178,73 @@ static const struct airoha_pinctrl_conf en7581_pinctrl_drive_e4_conf[] = {
        PINCTRL_CONF_DESC(63, REG_I2C_SDA_E4, PCIE2_RESET_E4_MASK),
  };
  
@@ -877,7 +879,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  static int airoha_convert_pin_to_reg_offset(struct pinctrl_dev *pctrl_dev,
                                            struct pinctrl_gpio_range *range,
                                            int pin)
-@@ -1709,7 +2410,7 @@ static const struct irq_chip airoha_gpio
+@@ -1708,7 +2409,7 @@ static const struct irq_chip airoha_gpio_irq_chip = {
  };
  
  static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
@@ -886,7 +888,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  {
        struct airoha_pinctrl_gpiochip *chip = &pinctrl->gpiochip;
        struct gpio_chip *gc = &chip->chip;
-@@ -1744,7 +2445,7 @@ static int airoha_pinctrl_add_gpiochip(s
+@@ -1743,7 +2444,7 @@ static int airoha_pinctrl_add_gpiochip(struct airoha_pinctrl *pinctrl,
                return irq;
  
        err = devm_request_irq(dev, irq, airoha_irq_handler, IRQF_SHARED,
@@ -895,7 +897,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        if (err) {
                dev_err(dev, "error requesting irq %d: %d\n", irq, err);
                return err;
-@@ -1808,8 +2509,8 @@ static int airoha_pinmux_set_mux(struct
+@@ -1807,8 +2508,8 @@ static int airoha_pinmux_set_mux(struct pinctrl_dev *pctrl_dev,
  }
  
  static int airoha_pinmux_set_direction(struct pinctrl_dev *pctrl_dev,
@@ -906,7 +908,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  {
        struct airoha_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctrl_dev);
        u32 mask, index;
-@@ -1899,7 +2600,7 @@ static int airoha_pinctrl_set_conf(struc
+@@ -1898,7 +2599,7 @@ static int airoha_pinctrl_set_conf(struct airoha_pinctrl *pinctrl,
  
  
        if (regmap_update_bits(pinctrl->chip_scu, reg->offset, reg->mask,
@@ -915,7 +917,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                return -EINVAL;
  
        return 0;
-@@ -2118,8 +2819,8 @@ static int airoha_pinconf_group_get(stru
+@@ -2115,8 +2816,8 @@ static int airoha_pinconf_group_get(struct pinctrl_dev *pctrl_dev,
  
        for (i = 0; i < pinctrl->grps[group].npins; i++) {
                if (airoha_pinconf_get(pctrl_dev,
@@ -926,7 +928,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
                        return -ENOTSUPP;
  
                if (i && cur_config != *config)
-@@ -2280,8 +2981,40 @@ static const struct airoha_pinctrl_match
+@@ -2275,8 +2976,40 @@ static const struct airoha_pinctrl_match_data en7581_pinctrl_match_data = {
        },
  };
  
index e61de0441e3d7bb360c307da0102c9d0029e0fa3..d130789c9bef9511da94a2e79aad0f18db4aa5e6 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 #  M:  Lorenzo Bianconi <lorenzo@kernel.org>
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
-@@ -72,16 +72,7 @@ config PHY_CAN_TRANSCEIVER
+@@ -102,16 +102,6 @@ config PHY_CAN_TRANSCEIVER
          functional modes using gpios and sets the attribute max link
          rate, for CAN drivers.
  
@@ -54,19 +54,27 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 -        This driver create the basic PHY instance and provides initialize
 -        callback for PCIe GEN3 port.
 -
+ config PHY_NXP_PTN3222
+       tristate "NXP PTN3222 1-port eUSB2 to USB2 redriver"
+       depends on I2C
+@@ -123,6 +113,7 @@ config PHY_NXP_PTN3222
+         schemes. It supports all three USB 2.0 data rates: Low Speed, Full
+         Speed and High Speed.
 +source "drivers/phy/airoha/Kconfig"
  source "drivers/phy/allwinner/Kconfig"
  source "drivers/phy/amlogic/Kconfig"
  source "drivers/phy/broadcom/Kconfig"
 --- a/drivers/phy/Makefile
 +++ b/drivers/phy/Makefile
-@@ -10,8 +10,8 @@ obj-$(CONFIG_PHY_LPC18XX_USB_OTG)    += phy
- obj-$(CONFIG_PHY_XGENE)                       += phy-xgene.o
+@@ -13,9 +13,9 @@ obj-$(CONFIG_PHY_XGENE)                      += phy-xgene.o
  obj-$(CONFIG_PHY_PISTACHIO_USB)               += phy-pistachio-usb.o
+ obj-$(CONFIG_PHY_SNPS_EUSB2)          += phy-snps-eusb2.o
  obj-$(CONFIG_USB_LGM_PHY)             += phy-lgm-usb.o
 -obj-$(CONFIG_PHY_AIROHA_PCIE)         += phy-airoha-pcie.o
--obj-y                                 += allwinner/   \
-+obj-y                                 += airoha/      \
+ obj-$(CONFIG_PHY_NXP_PTN3222)         += phy-nxp-ptn3222.o
+-obj-$(CONFIG_GENERIC_PHY)             += allwinner/   \
++obj-$(CONFIG_GENERIC_PHY)             += airoha/      \
 +                                         allwinner/   \
                                           amlogic/     \
                                           broadcom/    \
index 1f3137f70b0f41de2f2b2afde6ba82d4fd864249..7c6c687b300c86e32bc72ac9496b6729826aabcd 100644 (file)
@@ -28,20 +28,19 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/net/pcs/Kconfig
 +++ b/drivers/net/pcs/Kconfig
-@@ -51,4 +51,6 @@ config PCS_RZN1_MIIC
-         on RZ/N1 SoCs. This PCS converts MII to RMII/RGMII or can be set in
-         pass-through mode for MII.
+@@ -55,4 +55,6 @@ config PCS_RZN1_MIIC
+         Renesas RZ/N1, RZ/N2H, and RZ/T2H SoCs. This PCS converts MII to
+         RMII/RGMII, or can be set in pass-through mode for MII.
  
 +source "drivers/net/pcs/airoha/Kconfig"
 +
  endmenu
 --- a/drivers/net/pcs/Makefile
 +++ b/drivers/net/pcs/Makefile
-@@ -10,3 +10,5 @@ obj-$(CONFIG_PCS_LYNX)               += pcs-lynx.o
+@@ -10,3 +10,4 @@ obj-$(CONFIG_PCS_LYNX)               += pcs-lynx.o
  obj-$(CONFIG_PCS_MTK_LYNXI)   += pcs-mtk-lynxi.o
- obj-$(CONFIG_PCS_RZN1_MIIC)   += pcs-rzn1-miic.o
  obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o
-+
+ obj-$(CONFIG_PCS_RZN1_MIIC)   += pcs-rzn1-miic.o
 +obj-$(CONFIG_PCS_AIROHA)      += airoha/
 --- /dev/null
 +++ b/drivers/net/pcs/airoha/Kconfig
@@ -70,7 +69,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +endif
 --- /dev/null
 +++ b/drivers/net/pcs/airoha/pcs-airoha-common.c
-@@ -0,0 +1,1312 @@
+@@ -0,0 +1,1313 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (c) 2024 AIROHA Inc
@@ -387,7 +386,8 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +}
 +
 +static void airoha_pcs_get_state_sgmii(struct airoha_pcs_priv *priv,
-+                                     int index, struct phylink_link_state *state)
++                                     int index, unsigned int neg_mode,
++                                     struct phylink_link_state *state)
 +{
 +      struct airoha_pcs_maps *maps = &priv->maps[index];
 +      u32 bmsr, lpa;
@@ -403,7 +403,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +              AIROHA_PCS_HSGMII_AN_SGMII_LINK_STATUS) & bmsr;
 +      lpa = AIROHA_PCS_HSGMII_AN_SGMII_PARTNER_ABILITY & lpa;
 +
-+      phylink_mii_c22_pcs_decode_state(state, bmsr, lpa);
++      phylink_mii_c22_pcs_decode_state(state, neg_mode, bmsr, lpa);
 +}
 +
 +static void airoha_pcs_get_state_hsgmii(struct airoha_pcs_priv *priv, int index,
@@ -493,6 +493,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +}
 +
 +static void airoha_pcs_get_state(struct phylink_pcs *pcs,
++                               unsigned int neg_mode,
 +                               struct phylink_link_state *state)
 +{
 +      struct airoha_pcs_port *port = to_airoha_pcs_port(pcs);
@@ -501,7 +502,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +      switch (state->interface) {
 +      case PHY_INTERFACE_MODE_SGMII:
 +      case PHY_INTERFACE_MODE_1000BASEX:
-+              airoha_pcs_get_state_sgmii(priv, port->index, state);
++              airoha_pcs_get_state_sgmii(priv, port->index, neg_mode, state);
 +              break;
 +      case PHY_INTERFACE_MODE_2500BASEX:
 +              airoha_pcs_get_state_hsgmii(priv, port->index, state);
@@ -1282,7 +1283,6 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +              port->priv = priv;
 +              port->index = index;
 +              port->pcs.poll = true;
-+              port->pcs.neg_mode = true;
 +              port->pcs.ops = &airoha_pcs_ops;
 +
 +              switch (data->port_type) {
index 486208f71ad2effc5cf2e5c7fbc7fd19dae315b3..f6ea73fa4771fd1cf88a35a2e63cf2542105ea51 100644 (file)
                               unsigned int quot);
  int fsl8250_handle_irq(struct uart_port *port);
 +int en7523_set_uart_baud_rate(struct uart_port *port, unsigned int baud);
+ void serial8250_handle_irq_locked(struct uart_port *port, unsigned int iir);
  int serial8250_handle_irq(struct uart_port *port, unsigned int iir);
  u16 serial8250_rx_chars(struct uart_8250_port *up, u16 lsr);
- void serial8250_read_char(struct uart_8250_port *up, u16 lsr);
index e11d368888cca8497cda180823c791ff826cd4c9..5229eb47987b35e933c11a9308616731894961be 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                        struct dst_entry *dst_cache;
 --- a/net/netfilter/nf_flow_table_ip.c
 +++ b/net/netfilter/nf_flow_table_ip.c
-@@ -372,6 +372,7 @@ static int nf_flow_offload_forward(struc
+@@ -376,6 +376,7 @@ static int nf_flow_offload_forward(struc
        struct flow_offload *flow;
        unsigned int thoff, mtu;
        struct iphdr *iph;
@@ -45,7 +45,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  
        dir = tuplehash->tuple.dir;
        flow = container_of(tuplehash, struct flow_offload, tuplehash[dir]);
-@@ -401,6 +402,12 @@ static int nf_flow_offload_forward(struc
+@@ -405,6 +406,12 @@ static int nf_flow_offload_forward(struc
        iph = ip_hdr(skb);
        nf_flow_nat_ip(flow, skb, thoff, dir, iph);
  
@@ -58,7 +58,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
        ip_decrease_ttl(iph);
        skb_clear_tstamp(skb);
  
-@@ -651,6 +658,7 @@ static int nf_flow_offload_ipv6_forward(
+@@ -655,6 +662,7 @@ static int nf_flow_offload_ipv6_forward(
        struct flow_offload *flow;
        unsigned int thoff, mtu;
        struct ipv6hdr *ip6h;
@@ -66,7 +66,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  
        dir = tuplehash->tuple.dir;
        flow = container_of(tuplehash, struct flow_offload, tuplehash[dir]);
-@@ -679,6 +687,12 @@ static int nf_flow_offload_ipv6_forward(
+@@ -683,6 +691,12 @@ static int nf_flow_offload_ipv6_forward(
        ip6h = ipv6_hdr(skb);
        nf_flow_nat_ipv6(flow, skb, dir, ip6h);
  
@@ -107,8 +107,8 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  #include <linux/netfilter/nf_conntrack_common.h>
  #include <linux/netfilter/nf_tables.h>
 +#include <net/dsfield.h>
- #include <net/ip.h> /* for ipv4 options. */
- #include <net/inet_dscp.h>
+ #include <net/ip.h>
+ #include <net/flow.h>
  #include <net/netfilter/nf_tables.h>
 @@ -279,6 +280,27 @@ static int nft_flow_route(const struct n
        return 0;
index 0bb339c9104acba4f8a252d02c84a29a151f3192..6d2eee04462105e63adbf9446f54157e60b6bf84 100644 (file)
@@ -961,7 +961,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                             u8 fport);
 --- a/drivers/net/ethernet/airoha/airoha_ppe.c
 +++ b/drivers/net/ethernet/airoha/airoha_ppe.c
-@@ -297,12 +297,12 @@ static void airoha_ppe_foe_set_bridge_ad
+@@ -299,12 +299,12 @@ static void airoha_ppe_foe_set_bridge_ad
  
  static int airoha_ppe_foe_entry_prepare(struct airoha_eth *eth,
                                        struct airoha_foe_entry *hwe,
@@ -976,7 +976,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
        struct airoha_foe_mac_info_common *l2;
        u8 smac_id = 0xf;
  
-@@ -318,10 +318,11 @@ static int airoha_ppe_foe_entry_prepare(
+@@ -320,10 +320,11 @@ static int airoha_ppe_foe_entry_prepare(
        hwe->ib1 = val;
  
        val = FIELD_PREP(AIROHA_FOE_IB2_PORT_AG, 0x1f);
@@ -990,7 +990,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                        val |= FIELD_PREP(AIROHA_FOE_IB2_NBQ, info.idx) |
                               FIELD_PREP(AIROHA_FOE_IB2_PSE_PORT,
                                          FE_PSE_PORT_CDM4);
-@@ -331,12 +332,14 @@ static int airoha_ppe_foe_entry_prepare(
+@@ -333,12 +334,14 @@ static int airoha_ppe_foe_entry_prepare(
                                     FIELD_PREP(AIROHA_FOE_MAC_WDMA_WCID,
                                                info.wcid);
                } else {
@@ -1007,7 +1007,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                        if (dsa_port >= 0 || eth->ports[1])
                                pse_port = port->id == 4 ? FE_PSE_PORT_GDM4
                                                         : port->id;
-@@ -1483,7 +1486,7 @@ void airoha_ppe_check_skb(struct airoha_
+@@ -1485,7 +1488,7 @@ void airoha_ppe_check_skb(struct airoha_
  void airoha_ppe_init_upd_mem(struct airoha_gdm_port *port)
  {
        struct airoha_eth *eth = port->qdma->eth;
index 22f4d2920dcdb5f9da5d408c372e2e79b7ea7bca..ad848a432a7cf4ccb6abd75c8462965f391d945b 100644 (file)
@@ -236,7 +236,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
                airoha_ppe_set_cpu_port(dev, i, AIROHA_GDM2_IDX);
  
        if (port->id == AIROHA_GDM4_IDX && airoha_is_7581(eth)) {
--              u32 mask = FC_ID_OF_SRC_PORT_MASK(port->nbq);
+-              u32 mask = FC_ID_OF_SRC_PORT_MASK(nbq);
 +              u32 mask = FC_ID_OF_SRC_PORT_MASK(dev->nbq);
  
                airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6, mask,