]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
qualcommbe: drop duplicated patches 20503/head
authorLeo Barsky <leobrsky@proton.me>
Wed, 22 Oct 2025 14:24:07 +0000 (10:24 -0400)
committerRobert Marko <robimarko@gmail.com>
Wed, 22 Oct 2025 18:16:59 +0000 (20:16 +0200)
Drop duplicaded patches:
0010-v6.14-net-phy-add-phy_inband_caps.patch
0011-v6.14-net-phylink-add-pcs_inband_caps-method.patch
in: generic/backport-6.12/
601-04-v6.14-net-phy-add-phy_inband_caps.patch
601-09-v6.14-net-phylink-add-pcs_inband_caps-method.patch
Fixes: 813ecda1f387e529bddb059acc7cef27bf821537
Signed-off-by: Leo Barsky <leobrsky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/20503
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/qualcommbe/patches-6.12/0010-v6.14-net-phy-add-phy_inband_caps.patch [deleted file]
target/linux/qualcommbe/patches-6.12/0011-v6.14-net-phylink-add-pcs_inband_caps-method.patch [deleted file]

diff --git a/target/linux/qualcommbe/patches-6.12/0010-v6.14-net-phy-add-phy_inband_caps.patch b/target/linux/qualcommbe/patches-6.12/0010-v6.14-net-phy-add-phy_inband_caps.patch
deleted file mode 100644 (file)
index b9eef83..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From 7b0f0f00a301906cc78d3c8974ea14ad8db29f0c Mon Sep 17 00:00:00 2001
-From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
-Date: Tue, 3 Dec 2024 15:31:02 +0000
-Subject: [PATCH 10/22] v6.14: net: phy: add phy_inband_caps()
-
-Add a method to query the PHY's in-band capabilities for a PHY
-interface mode.
-
-Where the interface mode does not have in-band capability, or the PHY
-driver has not been updated to return this information, then
-phy_inband_caps() should return zero. Otherwise, PHY drivers will
-return a value consisting of the following flags:
-
-LINK_INBAND_DISABLE indicates that the hardware does not support
-in-band signalling, or can have in-band signalling configured via
-software to be disabled.
-
-LINK_INBAND_ENABLE indicates that the hardware will use in-band
-signalling, or can have in-band signalling configured via software
-to be enabled.
-
-LINK_INBAND_BYPASS indicates that the hardware has the ability to
-bypass in-band signalling when enabled after a timeout if the link
-partner does not respond to its in-band signalling.
-
-This reports the PHY capabilities for the particular interface mode,
-not the current configuration.
-
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-Link: https://patch.msgid.link/E1tIUre-006ITz-KF@rmk-PC.armlinux.org.uk
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/phy/phy.c | 21 +++++++++++++++++++++
- include/linux/phy.h   | 28 ++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+)
-
---- a/drivers/net/phy/phy.c
-+++ b/drivers/net/phy/phy.c
-@@ -1049,6 +1049,27 @@ static int phy_check_link_status(struct
- }
- /**
-+ * phy_inband_caps - query which in-band signalling modes are supported
-+ * @phydev: a pointer to a &struct phy_device
-+ * @interface: the interface mode for the PHY
-+ *
-+ * Returns zero if it is unknown what in-band signalling is supported by the
-+ * PHY (e.g. because the PHY driver doesn't implement the method.) Otherwise,
-+ * returns a bit mask of the LINK_INBAND_* values from
-+ * &enum link_inband_signalling to describe which inband modes are supported
-+ * by the PHY for this interface mode.
-+ */
-+unsigned int phy_inband_caps(struct phy_device *phydev,
-+                           phy_interface_t interface)
-+{
-+      if (phydev->drv && phydev->drv->inband_caps)
-+              return phydev->drv->inband_caps(phydev, interface);
-+
-+      return 0;
-+}
-+EXPORT_SYMBOL_GPL(phy_inband_caps);
-+
-+/**
-  * _phy_start_aneg - start auto-negotiation for this PHY device
-  * @phydev: the phy_device struct
-  *
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -816,6 +816,24 @@ struct phy_tdr_config {
- #define PHY_PAIR_ALL -1
- /**
-+ * enum link_inband_signalling - in-band signalling modes that are supported
-+ *
-+ * @LINK_INBAND_DISABLE: in-band signalling can be disabled
-+ * @LINK_INBAND_ENABLE: in-band signalling can be enabled without bypass
-+ * @LINK_INBAND_BYPASS: in-band signalling can be enabled with bypass
-+ *
-+ * The possible and required bits can only be used if the valid bit is set.
-+ * If possible is clear, that means inband signalling can not be used.
-+ * Required is only valid when possible is set, and means that inband
-+ * signalling must be used.
-+ */
-+enum link_inband_signalling {
-+      LINK_INBAND_DISABLE             = BIT(0),
-+      LINK_INBAND_ENABLE              = BIT(1),
-+      LINK_INBAND_BYPASS              = BIT(2),
-+};
-+
-+/**
-  * struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
-  * Avoidance) Reconciliation Sublayer.
-  *
-@@ -955,6 +973,14 @@ struct phy_driver {
-       int (*get_features)(struct phy_device *phydev);
-       /**
-+       * @inband_caps: query whether in-band is supported for the given PHY
-+       * interface mode. Returns a bitmask of bits defined by enum
-+       * link_inband_signalling.
-+       */
-+      unsigned int (*inband_caps)(struct phy_device *phydev,
-+                                  phy_interface_t interface);
-+
-+      /**
-        * @get_rate_matching: Get the supported type of rate matching for a
-        * particular phy interface. This is used by phy consumers to determine
-        * whether to advertise lower-speed modes for that interface. It is
-@@ -1840,6 +1866,8 @@ int phy_config_aneg(struct phy_device *p
- int _phy_start_aneg(struct phy_device *phydev);
- int phy_start_aneg(struct phy_device *phydev);
- int phy_aneg_done(struct phy_device *phydev);
-+unsigned int phy_inband_caps(struct phy_device *phydev,
-+                           phy_interface_t interface);
- int phy_speed_down(struct phy_device *phydev, bool sync);
- int phy_speed_up(struct phy_device *phydev);
- bool phy_check_valid(int speed, int duplex, unsigned long *features);
diff --git a/target/linux/qualcommbe/patches-6.12/0011-v6.14-net-phylink-add-pcs_inband_caps-method.patch b/target/linux/qualcommbe/patches-6.12/0011-v6.14-net-phylink-add-pcs_inband_caps-method.patch
deleted file mode 100644 (file)
index 689428c..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-From 2d530b1085104f6aa0dfa35c908ac7c531941bf6 Mon Sep 17 00:00:00 2001
-From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
-Date: Tue, 3 Dec 2024 15:31:28 +0000
-Subject: [PATCH 11/22] v6.14: net: phylink: add pcs_inband_caps() method
-
-Add a pcs_inband_caps() method to query the PCS for its inband link
-capabilities, and use this to determine whether link modes used with
-optical SFPs can be supported.
-
-When a PCS does not provide a method, we allow inband negotiation to
-be either on or off, making this a no-op until the pcs_inband_caps()
-method is implemented by a PCS driver.
-
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-Link: https://patch.msgid.link/E1tIUs4-006IUU-7K@rmk-PC.armlinux.org.uk
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/phy/phylink.c | 60 +++++++++++++++++++++++++++++++++++++++
- include/linux/phylink.h   | 17 +++++++++++
- 2 files changed, 77 insertions(+)
-
---- a/drivers/net/phy/phylink.c
-+++ b/drivers/net/phy/phylink.c
-@@ -988,6 +988,15 @@ static void phylink_resolve_an_pause(str
-       }
- }
-+static unsigned int phylink_pcs_inband_caps(struct phylink_pcs *pcs,
-+                                  phy_interface_t interface)
-+{
-+      if (pcs && pcs->ops->pcs_inband_caps)
-+              return pcs->ops->pcs_inband_caps(pcs, interface);
-+
-+      return 0;
-+}
-+
- static void phylink_pcs_pre_config(struct phylink_pcs *pcs,
-                                  phy_interface_t interface)
- {
-@@ -1041,6 +1050,24 @@ static void phylink_pcs_link_up(struct p
-               pcs->ops->pcs_link_up(pcs, neg_mode, interface, speed, duplex);
- }
-+/* Query inband for a specific interface mode, asking the MAC for the
-+ * PCS which will be used to handle the interface mode.
-+ */
-+static unsigned int phylink_inband_caps(struct phylink *pl,
-+                                       phy_interface_t interface)
-+{
-+      struct phylink_pcs *pcs;
-+
-+      if (!pl->mac_ops->mac_select_pcs)
-+              return 0;
-+
-+      pcs = pl->mac_ops->mac_select_pcs(pl->config, interface);
-+      if (!pcs)
-+              return 0;
-+
-+      return phylink_pcs_inband_caps(pcs, interface);
-+}
-+
- static void phylink_pcs_poll_stop(struct phylink *pl)
- {
-       if (pl->cfg_link_an_mode == MLO_AN_INBAND)
-@@ -2532,6 +2559,26 @@ int phylink_ethtool_ksettings_get(struct
- }
- EXPORT_SYMBOL_GPL(phylink_ethtool_ksettings_get);
-+static bool phylink_validate_pcs_inband_autoneg(struct phylink *pl,
-+                                              phy_interface_t interface,
-+                                              unsigned long *adv)
-+{
-+      unsigned int inband = phylink_inband_caps(pl, interface);
-+      unsigned int mask;
-+
-+      /* If the PCS doesn't implement inband support, be permissive. */
-+      if (!inband)
-+              return true;
-+
-+      if (linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, adv))
-+              mask = LINK_INBAND_ENABLE;
-+      else
-+              mask = LINK_INBAND_DISABLE;
-+
-+      /* Check whether the PCS implements the required mode */
-+      return !!(inband & mask);
-+}
-+
- /**
-  * phylink_ethtool_ksettings_set() - set the link settings
-  * @pl: a pointer to a &struct phylink returned from phylink_create()
-@@ -2667,6 +2714,13 @@ int phylink_ethtool_ksettings_set(struct
-           phylink_is_empty_linkmode(config.advertising))
-               return -EINVAL;
-+      /* Validate the autonegotiation state. We don't have a PHY in this
-+       * situation, so the PCS is the media-facing entity.
-+       */
-+      if (!phylink_validate_pcs_inband_autoneg(pl, config.interface,
-+                                               config.advertising))
-+              return -EINVAL;
-+
-       mutex_lock(&pl->state_mutex);
-       pl->link_config.speed = config.speed;
-       pl->link_config.duplex = config.duplex;
-@@ -3351,6 +3405,12 @@ static int phylink_sfp_config_optical(st
-       phylink_dbg(pl, "optical SFP: chosen %s interface\n",
-                   phy_modes(interface));
-+      if (!phylink_validate_pcs_inband_autoneg(pl, interface,
-+                                               config.advertising)) {
-+              phylink_err(pl, "autoneg setting not compatible with PCS");
-+              return -EINVAL;
-+      }
-+
-       config.interface = interface;
-       /* Ignore errors if we're expecting a PHY to attach later */
---- a/include/linux/phylink.h
-+++ b/include/linux/phylink.h
-@@ -419,6 +419,7 @@ struct phylink_pcs {
- /**
-  * struct phylink_pcs_ops - MAC PCS operations structure.
-  * @pcs_validate: validate the link configuration.
-+ * @pcs_inband_caps: query inband support for interface mode.
-  * @pcs_enable: enable the PCS.
-  * @pcs_disable: disable the PCS.
-  * @pcs_pre_config: pre-mac_config method (for errata)
-@@ -434,6 +435,8 @@ struct phylink_pcs {
- struct phylink_pcs_ops {
-       int (*pcs_validate)(struct phylink_pcs *pcs, unsigned long *supported,
-                           const struct phylink_link_state *state);
-+      unsigned int (*pcs_inband_caps)(struct phylink_pcs *pcs,
-+                                      phy_interface_t interface);
-       int (*pcs_enable)(struct phylink_pcs *pcs);
-       void (*pcs_disable)(struct phylink_pcs *pcs);
-       void (*pcs_pre_config)(struct phylink_pcs *pcs,
-@@ -471,6 +474,20 @@ int pcs_validate(struct phylink_pcs *pcs
-                const struct phylink_link_state *state);
- /**
-+ * pcs_inband_caps - query PCS in-band capabilities for interface mode.
-+ * @pcs: a pointer to a &struct phylink_pcs.
-+ * @interface: interface mode to be queried
-+ *
-+ * Returns zero if it is unknown what in-band signalling is supported by the
-+ * PHY (e.g. because the PHY driver doesn't implement the method.) Otherwise,
-+ * returns a bit mask of the LINK_INBAND_* values from
-+ * &enum link_inband_signalling to describe which inband modes are supported
-+ * for this interface mode.
-+ */
-+unsigned int pcs_inband_caps(struct phylink_pcs *pcs,
-+                           phy_interface_t interface);
-+
-+/**
-  * pcs_enable() - enable the PCS.
-  * @pcs: a pointer to a &struct phylink_pcs.
-  */