All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, kernel test robot <lkp@intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.13 036/157] net: dsa: rtl8366rb: Fix compilation problem
Date: Wed,  5 Mar 2025 18:47:52 +0100	[thread overview]
Message-ID: <20250305174506.748213072@linuxfoundation.org> (raw)
In-Reply-To: <20250305174505.268725418@linuxfoundation.org>

6.13-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Walleij <linus.walleij@linaro.org>

[ Upstream commit f15176b8b6e72ac30e14fd273282d2b72562d26b ]

When the kernel is compiled without LED framework support the
rtl8366rb fails to build like this:

rtl8366rb.o: in function `rtl8366rb_setup_led':
rtl8366rb.c:953:(.text.unlikely.rtl8366rb_setup_led+0xe8):
  undefined reference to `led_init_default_state_get'
rtl8366rb.c:980:(.text.unlikely.rtl8366rb_setup_led+0x240):
  undefined reference to `devm_led_classdev_register_ext'

As this is constantly coming up in different randconfig builds,
bite the bullet and create a separate file for the offending
code, split out a header with all stuff needed both in the
core driver and the leds code.

Add a new bool Kconfig option for the LED compile target, such
that it depends on LEDS_CLASS=y || LEDS_CLASS=RTL8366RB
which make LED support always available when LEDS_CLASS is
compiled into the kernel and enforce that if the LEDS_CLASS
is a module, then the RTL8366RB driver needs to be a module
as well so that modprobe can resolve the dependencies.

Fixes: 32d617005475 ("net: dsa: realtek: add LED drivers for rtl8366rb")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202502070525.xMUImayb-lkp@intel.com/
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/dsa/realtek/Kconfig          |   6 +
 drivers/net/dsa/realtek/Makefile         |   3 +
 drivers/net/dsa/realtek/rtl8366rb-leds.c | 177 ++++++++++++++++
 drivers/net/dsa/realtek/rtl8366rb.c      | 258 +----------------------
 drivers/net/dsa/realtek/rtl8366rb.h      | 107 ++++++++++
 5 files changed, 299 insertions(+), 252 deletions(-)
 create mode 100644 drivers/net/dsa/realtek/rtl8366rb-leds.c
 create mode 100644 drivers/net/dsa/realtek/rtl8366rb.h

diff --git a/drivers/net/dsa/realtek/Kconfig b/drivers/net/dsa/realtek/Kconfig
index 6989972eebc30..10687722d14c0 100644
--- a/drivers/net/dsa/realtek/Kconfig
+++ b/drivers/net/dsa/realtek/Kconfig
@@ -43,4 +43,10 @@ config NET_DSA_REALTEK_RTL8366RB
 	help
 	  Select to enable support for Realtek RTL8366RB.
 
+config NET_DSA_REALTEK_RTL8366RB_LEDS
+	bool "Support RTL8366RB LED control"
+	depends on (LEDS_CLASS=y || LEDS_CLASS=NET_DSA_REALTEK_RTL8366RB)
+	depends on NET_DSA_REALTEK_RTL8366RB
+	default NET_DSA_REALTEK_RTL8366RB
+
 endif
diff --git a/drivers/net/dsa/realtek/Makefile b/drivers/net/dsa/realtek/Makefile
index 35491dc20d6d6..17367bcba496c 100644
--- a/drivers/net/dsa/realtek/Makefile
+++ b/drivers/net/dsa/realtek/Makefile
@@ -12,4 +12,7 @@ endif
 
 obj-$(CONFIG_NET_DSA_REALTEK_RTL8366RB) += rtl8366.o
 rtl8366-objs 				:= rtl8366-core.o rtl8366rb.o
+ifdef CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS
+rtl8366-objs 				+= rtl8366rb-leds.o
+endif
 obj-$(CONFIG_NET_DSA_REALTEK_RTL8365MB) += rtl8365mb.o
diff --git a/drivers/net/dsa/realtek/rtl8366rb-leds.c b/drivers/net/dsa/realtek/rtl8366rb-leds.c
new file mode 100644
index 0000000000000..99c890681ae60
--- /dev/null
+++ b/drivers/net/dsa/realtek/rtl8366rb-leds.c
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/bitops.h>
+#include <linux/regmap.h>
+#include <net/dsa.h>
+#include "rtl83xx.h"
+#include "rtl8366rb.h"
+
+static inline u32 rtl8366rb_led_group_port_mask(u8 led_group, u8 port)
+{
+	switch (led_group) {
+	case 0:
+		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
+	case 1:
+		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
+	case 2:
+		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
+	case 3:
+		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
+	default:
+		return 0;
+	}
+}
+
+static int rb8366rb_get_port_led(struct rtl8366rb_led *led)
+{
+	struct realtek_priv *priv = led->priv;
+	u8 led_group = led->led_group;
+	u8 port_num = led->port_num;
+	int ret;
+	u32 val;
+
+	ret = regmap_read(priv->map, RTL8366RB_LED_X_X_CTRL_REG(led_group),
+			  &val);
+	if (ret) {
+		dev_err(priv->dev, "error reading LED on port %d group %d\n",
+			led_group, port_num);
+		return ret;
+	}
+
+	return !!(val & rtl8366rb_led_group_port_mask(led_group, port_num));
+}
+
+static int rb8366rb_set_port_led(struct rtl8366rb_led *led, bool enable)
+{
+	struct realtek_priv *priv = led->priv;
+	u8 led_group = led->led_group;
+	u8 port_num = led->port_num;
+	int ret;
+
+	ret = regmap_update_bits(priv->map,
+				 RTL8366RB_LED_X_X_CTRL_REG(led_group),
+				 rtl8366rb_led_group_port_mask(led_group,
+							       port_num),
+				 enable ? 0xffff : 0);
+	if (ret) {
+		dev_err(priv->dev, "error updating LED on port %d group %d\n",
+			led_group, port_num);
+		return ret;
+	}
+
+	/* Change the LED group to manual controlled LEDs if required */
+	ret = rb8366rb_set_ledgroup_mode(priv, led_group,
+					 RTL8366RB_LEDGROUP_FORCE);
+
+	if (ret) {
+		dev_err(priv->dev, "error updating LED GROUP group %d\n",
+			led_group);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int
+rtl8366rb_cled_brightness_set_blocking(struct led_classdev *ldev,
+				       enum led_brightness brightness)
+{
+	struct rtl8366rb_led *led = container_of(ldev, struct rtl8366rb_led,
+						 cdev);
+
+	return rb8366rb_set_port_led(led, brightness == LED_ON);
+}
+
+static int rtl8366rb_setup_led(struct realtek_priv *priv, struct dsa_port *dp,
+			       struct fwnode_handle *led_fwnode)
+{
+	struct rtl8366rb *rb = priv->chip_data;
+	struct led_init_data init_data = { };
+	enum led_default_state state;
+	struct rtl8366rb_led *led;
+	u32 led_group;
+	int ret;
+
+	ret = fwnode_property_read_u32(led_fwnode, "reg", &led_group);
+	if (ret)
+		return ret;
+
+	if (led_group >= RTL8366RB_NUM_LEDGROUPS) {
+		dev_warn(priv->dev, "Invalid LED reg %d defined for port %d",
+			 led_group, dp->index);
+		return -EINVAL;
+	}
+
+	led = &rb->leds[dp->index][led_group];
+	led->port_num = dp->index;
+	led->led_group = led_group;
+	led->priv = priv;
+
+	state = led_init_default_state_get(led_fwnode);
+	switch (state) {
+	case LEDS_DEFSTATE_ON:
+		led->cdev.brightness = 1;
+		rb8366rb_set_port_led(led, 1);
+		break;
+	case LEDS_DEFSTATE_KEEP:
+		led->cdev.brightness =
+			rb8366rb_get_port_led(led);
+		break;
+	case LEDS_DEFSTATE_OFF:
+	default:
+		led->cdev.brightness = 0;
+		rb8366rb_set_port_led(led, 0);
+	}
+
+	led->cdev.max_brightness = 1;
+	led->cdev.brightness_set_blocking =
+		rtl8366rb_cled_brightness_set_blocking;
+	init_data.fwnode = led_fwnode;
+	init_data.devname_mandatory = true;
+
+	init_data.devicename = kasprintf(GFP_KERNEL, "Realtek-%d:0%d:%d",
+					 dp->ds->index, dp->index, led_group);
+	if (!init_data.devicename)
+		return -ENOMEM;
+
+	ret = devm_led_classdev_register_ext(priv->dev, &led->cdev, &init_data);
+	if (ret) {
+		dev_warn(priv->dev, "Failed to init LED %d for port %d",
+			 led_group, dp->index);
+		return ret;
+	}
+
+	return 0;
+}
+
+int rtl8366rb_setup_leds(struct realtek_priv *priv)
+{
+	struct dsa_switch *ds = &priv->ds;
+	struct device_node *leds_np;
+	struct dsa_port *dp;
+	int ret = 0;
+
+	dsa_switch_for_each_port(dp, ds) {
+		if (!dp->dn)
+			continue;
+
+		leds_np = of_get_child_by_name(dp->dn, "leds");
+		if (!leds_np) {
+			dev_dbg(priv->dev, "No leds defined for port %d",
+				dp->index);
+			continue;
+		}
+
+		for_each_child_of_node_scoped(leds_np, led_np) {
+			ret = rtl8366rb_setup_led(priv, dp,
+						  of_fwnode_handle(led_np));
+			if (ret)
+				break;
+		}
+
+		of_node_put(leds_np);
+		if (ret)
+			return ret;
+	}
+	return 0;
+}
diff --git a/drivers/net/dsa/realtek/rtl8366rb.c b/drivers/net/dsa/realtek/rtl8366rb.c
index 23374178a1760..6bf8427f14fbd 100644
--- a/drivers/net/dsa/realtek/rtl8366rb.c
+++ b/drivers/net/dsa/realtek/rtl8366rb.c
@@ -26,11 +26,7 @@
 #include "realtek-smi.h"
 #include "realtek-mdio.h"
 #include "rtl83xx.h"
-
-#define RTL8366RB_PORT_NUM_CPU		5
-#define RTL8366RB_NUM_PORTS		6
-#define RTL8366RB_PHY_NO_MAX		4
-#define RTL8366RB_PHY_ADDR_MAX		31
+#include "rtl8366rb.h"
 
 /* Switch Global Configuration register */
 #define RTL8366RB_SGCR				0x0000
@@ -175,39 +171,6 @@
  */
 #define RTL8366RB_VLAN_INGRESS_CTRL2_REG	0x037f
 
-/* LED control registers */
-/* The LED blink rate is global; it is used by all triggers in all groups. */
-#define RTL8366RB_LED_BLINKRATE_REG		0x0430
-#define RTL8366RB_LED_BLINKRATE_MASK		0x0007
-#define RTL8366RB_LED_BLINKRATE_28MS		0x0000
-#define RTL8366RB_LED_BLINKRATE_56MS		0x0001
-#define RTL8366RB_LED_BLINKRATE_84MS		0x0002
-#define RTL8366RB_LED_BLINKRATE_111MS		0x0003
-#define RTL8366RB_LED_BLINKRATE_222MS		0x0004
-#define RTL8366RB_LED_BLINKRATE_446MS		0x0005
-
-/* LED trigger event for each group */
-#define RTL8366RB_LED_CTRL_REG			0x0431
-#define RTL8366RB_LED_CTRL_OFFSET(led_group)	\
-	(4 * (led_group))
-#define RTL8366RB_LED_CTRL_MASK(led_group)	\
-	(0xf << RTL8366RB_LED_CTRL_OFFSET(led_group))
-
-/* The RTL8366RB_LED_X_X registers are used to manually set the LED state only
- * when the corresponding LED group in RTL8366RB_LED_CTRL_REG is
- * RTL8366RB_LEDGROUP_FORCE. Otherwise, it is ignored.
- */
-#define RTL8366RB_LED_0_1_CTRL_REG		0x0432
-#define RTL8366RB_LED_2_3_CTRL_REG		0x0433
-#define RTL8366RB_LED_X_X_CTRL_REG(led_group)	\
-	((led_group) <= 1 ? \
-		RTL8366RB_LED_0_1_CTRL_REG : \
-		RTL8366RB_LED_2_3_CTRL_REG)
-#define RTL8366RB_LED_0_X_CTRL_MASK		GENMASK(5, 0)
-#define RTL8366RB_LED_X_1_CTRL_MASK		GENMASK(11, 6)
-#define RTL8366RB_LED_2_X_CTRL_MASK		GENMASK(5, 0)
-#define RTL8366RB_LED_X_3_CTRL_MASK		GENMASK(11, 6)
-
 #define RTL8366RB_MIB_COUNT			33
 #define RTL8366RB_GLOBAL_MIB_COUNT		1
 #define RTL8366RB_MIB_COUNTER_PORT_OFFSET	0x0050
@@ -243,7 +206,6 @@
 #define RTL8366RB_PORT_STATUS_AN_MASK		0x0080
 
 #define RTL8366RB_NUM_VLANS		16
-#define RTL8366RB_NUM_LEDGROUPS		4
 #define RTL8366RB_NUM_VIDS		4096
 #define RTL8366RB_PRIORITYMAX		7
 #define RTL8366RB_NUM_FIDS		8
@@ -350,46 +312,6 @@
 #define RTL8366RB_GREEN_FEATURE_TX	BIT(0)
 #define RTL8366RB_GREEN_FEATURE_RX	BIT(2)
 
-enum rtl8366_ledgroup_mode {
-	RTL8366RB_LEDGROUP_OFF			= 0x0,
-	RTL8366RB_LEDGROUP_DUP_COL		= 0x1,
-	RTL8366RB_LEDGROUP_LINK_ACT		= 0x2,
-	RTL8366RB_LEDGROUP_SPD1000		= 0x3,
-	RTL8366RB_LEDGROUP_SPD100		= 0x4,
-	RTL8366RB_LEDGROUP_SPD10		= 0x5,
-	RTL8366RB_LEDGROUP_SPD1000_ACT		= 0x6,
-	RTL8366RB_LEDGROUP_SPD100_ACT		= 0x7,
-	RTL8366RB_LEDGROUP_SPD10_ACT		= 0x8,
-	RTL8366RB_LEDGROUP_SPD100_10_ACT	= 0x9,
-	RTL8366RB_LEDGROUP_FIBER		= 0xa,
-	RTL8366RB_LEDGROUP_AN_FAULT		= 0xb,
-	RTL8366RB_LEDGROUP_LINK_RX		= 0xc,
-	RTL8366RB_LEDGROUP_LINK_TX		= 0xd,
-	RTL8366RB_LEDGROUP_MASTER		= 0xe,
-	RTL8366RB_LEDGROUP_FORCE		= 0xf,
-
-	__RTL8366RB_LEDGROUP_MODE_MAX
-};
-
-struct rtl8366rb_led {
-	u8 port_num;
-	u8 led_group;
-	struct realtek_priv *priv;
-	struct led_classdev cdev;
-};
-
-/**
- * struct rtl8366rb - RTL8366RB-specific data
- * @max_mtu: per-port max MTU setting
- * @pvid_enabled: if PVID is set for respective port
- * @leds: per-port and per-ledgroup led info
- */
-struct rtl8366rb {
-	unsigned int max_mtu[RTL8366RB_NUM_PORTS];
-	bool pvid_enabled[RTL8366RB_NUM_PORTS];
-	struct rtl8366rb_led leds[RTL8366RB_NUM_PORTS][RTL8366RB_NUM_LEDGROUPS];
-};
-
 static struct rtl8366_mib_counter rtl8366rb_mib_counters[] = {
 	{ 0,  0, 4, "IfInOctets"				},
 	{ 0,  4, 4, "EtherStatsOctets"				},
@@ -830,9 +752,10 @@ static int rtl8366rb_jam_table(const struct rtl8366rb_jam_tbl_entry *jam_table,
 	return 0;
 }
 
-static int rb8366rb_set_ledgroup_mode(struct realtek_priv *priv,
-				      u8 led_group,
-				      enum rtl8366_ledgroup_mode mode)
+/* This code is used also with LEDs disabled */
+int rb8366rb_set_ledgroup_mode(struct realtek_priv *priv,
+			       u8 led_group,
+			       enum rtl8366_ledgroup_mode mode)
 {
 	int ret;
 	u32 val;
@@ -849,144 +772,7 @@ static int rb8366rb_set_ledgroup_mode(struct realtek_priv *priv,
 	return 0;
 }
 
-static inline u32 rtl8366rb_led_group_port_mask(u8 led_group, u8 port)
-{
-	switch (led_group) {
-	case 0:
-		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
-	case 1:
-		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
-	case 2:
-		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
-	case 3:
-		return FIELD_PREP(RTL8366RB_LED_0_X_CTRL_MASK, BIT(port));
-	default:
-		return 0;
-	}
-}
-
-static int rb8366rb_get_port_led(struct rtl8366rb_led *led)
-{
-	struct realtek_priv *priv = led->priv;
-	u8 led_group = led->led_group;
-	u8 port_num = led->port_num;
-	int ret;
-	u32 val;
-
-	ret = regmap_read(priv->map, RTL8366RB_LED_X_X_CTRL_REG(led_group),
-			  &val);
-	if (ret) {
-		dev_err(priv->dev, "error reading LED on port %d group %d\n",
-			led_group, port_num);
-		return ret;
-	}
-
-	return !!(val & rtl8366rb_led_group_port_mask(led_group, port_num));
-}
-
-static int rb8366rb_set_port_led(struct rtl8366rb_led *led, bool enable)
-{
-	struct realtek_priv *priv = led->priv;
-	u8 led_group = led->led_group;
-	u8 port_num = led->port_num;
-	int ret;
-
-	ret = regmap_update_bits(priv->map,
-				 RTL8366RB_LED_X_X_CTRL_REG(led_group),
-				 rtl8366rb_led_group_port_mask(led_group,
-							       port_num),
-				 enable ? 0xffff : 0);
-	if (ret) {
-		dev_err(priv->dev, "error updating LED on port %d group %d\n",
-			led_group, port_num);
-		return ret;
-	}
-
-	/* Change the LED group to manual controlled LEDs if required */
-	ret = rb8366rb_set_ledgroup_mode(priv, led_group,
-					 RTL8366RB_LEDGROUP_FORCE);
-
-	if (ret) {
-		dev_err(priv->dev, "error updating LED GROUP group %d\n",
-			led_group);
-		return ret;
-	}
-
-	return 0;
-}
-
-static int
-rtl8366rb_cled_brightness_set_blocking(struct led_classdev *ldev,
-				       enum led_brightness brightness)
-{
-	struct rtl8366rb_led *led = container_of(ldev, struct rtl8366rb_led,
-						 cdev);
-
-	return rb8366rb_set_port_led(led, brightness == LED_ON);
-}
-
-static int rtl8366rb_setup_led(struct realtek_priv *priv, struct dsa_port *dp,
-			       struct fwnode_handle *led_fwnode)
-{
-	struct rtl8366rb *rb = priv->chip_data;
-	struct led_init_data init_data = { };
-	enum led_default_state state;
-	struct rtl8366rb_led *led;
-	u32 led_group;
-	int ret;
-
-	ret = fwnode_property_read_u32(led_fwnode, "reg", &led_group);
-	if (ret)
-		return ret;
-
-	if (led_group >= RTL8366RB_NUM_LEDGROUPS) {
-		dev_warn(priv->dev, "Invalid LED reg %d defined for port %d",
-			 led_group, dp->index);
-		return -EINVAL;
-	}
-
-	led = &rb->leds[dp->index][led_group];
-	led->port_num = dp->index;
-	led->led_group = led_group;
-	led->priv = priv;
-
-	state = led_init_default_state_get(led_fwnode);
-	switch (state) {
-	case LEDS_DEFSTATE_ON:
-		led->cdev.brightness = 1;
-		rb8366rb_set_port_led(led, 1);
-		break;
-	case LEDS_DEFSTATE_KEEP:
-		led->cdev.brightness =
-			rb8366rb_get_port_led(led);
-		break;
-	case LEDS_DEFSTATE_OFF:
-	default:
-		led->cdev.brightness = 0;
-		rb8366rb_set_port_led(led, 0);
-	}
-
-	led->cdev.max_brightness = 1;
-	led->cdev.brightness_set_blocking =
-		rtl8366rb_cled_brightness_set_blocking;
-	init_data.fwnode = led_fwnode;
-	init_data.devname_mandatory = true;
-
-	init_data.devicename = kasprintf(GFP_KERNEL, "Realtek-%d:0%d:%d",
-					 dp->ds->index, dp->index, led_group);
-	if (!init_data.devicename)
-		return -ENOMEM;
-
-	ret = devm_led_classdev_register_ext(priv->dev, &led->cdev, &init_data);
-	if (ret) {
-		dev_warn(priv->dev, "Failed to init LED %d for port %d",
-			 led_group, dp->index);
-		return ret;
-	}
-
-	return 0;
-}
-
+/* This code is used also with LEDs disabled */
 static int rtl8366rb_setup_all_leds_off(struct realtek_priv *priv)
 {
 	int ret = 0;
@@ -1007,38 +793,6 @@ static int rtl8366rb_setup_all_leds_off(struct realtek_priv *priv)
 	return ret;
 }
 
-static int rtl8366rb_setup_leds(struct realtek_priv *priv)
-{
-	struct dsa_switch *ds = &priv->ds;
-	struct device_node *leds_np;
-	struct dsa_port *dp;
-	int ret = 0;
-
-	dsa_switch_for_each_port(dp, ds) {
-		if (!dp->dn)
-			continue;
-
-		leds_np = of_get_child_by_name(dp->dn, "leds");
-		if (!leds_np) {
-			dev_dbg(priv->dev, "No leds defined for port %d",
-				dp->index);
-			continue;
-		}
-
-		for_each_child_of_node_scoped(leds_np, led_np) {
-			ret = rtl8366rb_setup_led(priv, dp,
-						  of_fwnode_handle(led_np));
-			if (ret)
-				break;
-		}
-
-		of_node_put(leds_np);
-		if (ret)
-			return ret;
-	}
-	return 0;
-}
-
 static int rtl8366rb_setup(struct dsa_switch *ds)
 {
 	struct realtek_priv *priv = ds->priv;
diff --git a/drivers/net/dsa/realtek/rtl8366rb.h b/drivers/net/dsa/realtek/rtl8366rb.h
new file mode 100644
index 0000000000000..685ff3275faa1
--- /dev/null
+++ b/drivers/net/dsa/realtek/rtl8366rb.h
@@ -0,0 +1,107 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#ifndef _RTL8366RB_H
+#define _RTL8366RB_H
+
+#include "realtek.h"
+
+#define RTL8366RB_PORT_NUM_CPU		5
+#define RTL8366RB_NUM_PORTS		6
+#define RTL8366RB_PHY_NO_MAX		4
+#define RTL8366RB_NUM_LEDGROUPS		4
+#define RTL8366RB_PHY_ADDR_MAX		31
+
+/* LED control registers */
+/* The LED blink rate is global; it is used by all triggers in all groups. */
+#define RTL8366RB_LED_BLINKRATE_REG		0x0430
+#define RTL8366RB_LED_BLINKRATE_MASK		0x0007
+#define RTL8366RB_LED_BLINKRATE_28MS		0x0000
+#define RTL8366RB_LED_BLINKRATE_56MS		0x0001
+#define RTL8366RB_LED_BLINKRATE_84MS		0x0002
+#define RTL8366RB_LED_BLINKRATE_111MS		0x0003
+#define RTL8366RB_LED_BLINKRATE_222MS		0x0004
+#define RTL8366RB_LED_BLINKRATE_446MS		0x0005
+
+/* LED trigger event for each group */
+#define RTL8366RB_LED_CTRL_REG			0x0431
+#define RTL8366RB_LED_CTRL_OFFSET(led_group)	\
+	(4 * (led_group))
+#define RTL8366RB_LED_CTRL_MASK(led_group)	\
+	(0xf << RTL8366RB_LED_CTRL_OFFSET(led_group))
+
+/* The RTL8366RB_LED_X_X registers are used to manually set the LED state only
+ * when the corresponding LED group in RTL8366RB_LED_CTRL_REG is
+ * RTL8366RB_LEDGROUP_FORCE. Otherwise, it is ignored.
+ */
+#define RTL8366RB_LED_0_1_CTRL_REG		0x0432
+#define RTL8366RB_LED_2_3_CTRL_REG		0x0433
+#define RTL8366RB_LED_X_X_CTRL_REG(led_group)	\
+	((led_group) <= 1 ? \
+		RTL8366RB_LED_0_1_CTRL_REG : \
+		RTL8366RB_LED_2_3_CTRL_REG)
+#define RTL8366RB_LED_0_X_CTRL_MASK		GENMASK(5, 0)
+#define RTL8366RB_LED_X_1_CTRL_MASK		GENMASK(11, 6)
+#define RTL8366RB_LED_2_X_CTRL_MASK		GENMASK(5, 0)
+#define RTL8366RB_LED_X_3_CTRL_MASK		GENMASK(11, 6)
+
+enum rtl8366_ledgroup_mode {
+	RTL8366RB_LEDGROUP_OFF			= 0x0,
+	RTL8366RB_LEDGROUP_DUP_COL		= 0x1,
+	RTL8366RB_LEDGROUP_LINK_ACT		= 0x2,
+	RTL8366RB_LEDGROUP_SPD1000		= 0x3,
+	RTL8366RB_LEDGROUP_SPD100		= 0x4,
+	RTL8366RB_LEDGROUP_SPD10		= 0x5,
+	RTL8366RB_LEDGROUP_SPD1000_ACT		= 0x6,
+	RTL8366RB_LEDGROUP_SPD100_ACT		= 0x7,
+	RTL8366RB_LEDGROUP_SPD10_ACT		= 0x8,
+	RTL8366RB_LEDGROUP_SPD100_10_ACT	= 0x9,
+	RTL8366RB_LEDGROUP_FIBER		= 0xa,
+	RTL8366RB_LEDGROUP_AN_FAULT		= 0xb,
+	RTL8366RB_LEDGROUP_LINK_RX		= 0xc,
+	RTL8366RB_LEDGROUP_LINK_TX		= 0xd,
+	RTL8366RB_LEDGROUP_MASTER		= 0xe,
+	RTL8366RB_LEDGROUP_FORCE		= 0xf,
+
+	__RTL8366RB_LEDGROUP_MODE_MAX
+};
+
+#if IS_ENABLED(CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS)
+
+struct rtl8366rb_led {
+	u8 port_num;
+	u8 led_group;
+	struct realtek_priv *priv;
+	struct led_classdev cdev;
+};
+
+int rtl8366rb_setup_leds(struct realtek_priv *priv);
+
+#else
+
+static inline int rtl8366rb_setup_leds(struct realtek_priv *priv)
+{
+	return 0;
+}
+
+#endif /* IS_ENABLED(CONFIG_LEDS_CLASS) */
+
+/**
+ * struct rtl8366rb - RTL8366RB-specific data
+ * @max_mtu: per-port max MTU setting
+ * @pvid_enabled: if PVID is set for respective port
+ * @leds: per-port and per-ledgroup led info
+ */
+struct rtl8366rb {
+	unsigned int max_mtu[RTL8366RB_NUM_PORTS];
+	bool pvid_enabled[RTL8366RB_NUM_PORTS];
+#if IS_ENABLED(CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS)
+	struct rtl8366rb_led leds[RTL8366RB_NUM_PORTS][RTL8366RB_NUM_LEDGROUPS];
+#endif
+};
+
+/* This code is used also with LEDs disabled */
+int rb8366rb_set_ledgroup_mode(struct realtek_priv *priv,
+			       u8 led_group,
+			       enum rtl8366_ledgroup_mode mode);
+
+#endif /* _RTL8366RB_H */
-- 
2.39.5




  parent reply	other threads:[~2025-03-05 18:14 UTC|newest]

Thread overview: 179+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-05 17:47 [PATCH 6.13 000/157] 6.13.6-rc1 review Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 001/157] RDMA/mlx5: Fix the recovery flow of the UMR QP Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 002/157] IB/mlx5: Set and get correct qp_num for a DCT QP Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 003/157] RDMA/mlx5: Fix a race for DMABUF MR which can lead to CQE with error Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 004/157] RDMA/mlx5: Fix a WARN during dereg_mr for DM type Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 005/157] RDMA/mana_ib: Allocate PAGE aligned doorbell index Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 006/157] RDMA/hns: Fix mbox timing out by adding retry mechanism Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 007/157] RDMA/bnxt_re: Add sanity checks on rdev validity Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 008/157] RDMA/bnxt_re: Allocate dev_attr information dynamically Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 009/157] RDMA/bnxt_re: Fix the statistics for Gen P7 VF Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 010/157] landlock: Fix non-TCP sockets restriction Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 011/157] scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 012/157] ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 013/157] NFS: O_DIRECT writes must check and adjust the file length Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 014/157] NFS: Adjust delegated timestamps for O_DIRECT reads and writes Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 015/157] SUNRPC: Prevent looping due to rpc_signal_task() races Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 016/157] NFSv4: Fix a deadlock when recovering state on a sillyrenamed file Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 017/157] SUNRPC: Handle -ETIMEDOUT return from tlshd Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 018/157] RDMA/mlx5: Fix implicit ODP hang on parent deregistration Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 019/157] RDMA/mlx5: Fix AH static rate parsing Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 020/157] scsi: core: Clear driver private data when retrying request Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 021/157] scsi: ufs: core: Set default runtime/system PM levels before ufshcd_hba_init() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 022/157] RDMA/mlx5: Fix bind QP error cleanup flow Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 023/157] RDMA/bnxt_re: Fix the page details for the srq created by kernel consumers Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 024/157] sunrpc: suppress warnings for unused procfs functions Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 025/157] ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 026/157] Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 027/157] rxrpc: rxperf: Fix missing decoding of terminal magic cookie Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 028/157] afs: Fix the server_list to unuse a displaced server rather than putting it Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 029/157] afs: Give an afs_server object a ref on the afs_cell object it points to Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 030/157] net: Add net_passive_inc() and net_passive_dec() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 031/157] net: better track kernel sockets lifetime Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 032/157] net: loopback: Avoid sending IP packets without an Ethernet header Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 033/157] net: set the minimum for net_hotdata.netdev_budget_usecs Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 034/157] ipvlan: ensure network headers are in skb linear part Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 035/157] net: cadence: macb: Synchronize stats calculations Greg Kroah-Hartman
2025-03-05 17:47 ` Greg Kroah-Hartman [this message]
2025-03-05 17:47 ` [PATCH 6.13 037/157] ASoC: es8328: fix route from DAC to output Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 038/157] ASoC: fsl: Rename stream name of SAI DAI driver Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 039/157] ipvs: Always clear ipvs_property flag in skb_scrub_packet() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 040/157] drm/xe/oa: Allow oa_exponent value of 0 Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 041/157] firmware: cs_dsp: Remove async regmap writes Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 042/157] ASoC: cs35l56: Prevent races when soft-resetting using SPI control Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.13 043/157] ALSA: hda/realtek: Fix wrong mic setup for ASUS VivoBook 15 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 044/157] drm/amdgpu/gfx: only call mes for enforce isolation if supported Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 045/157] drm/amdgpu/mes: keep enforce isolation up to date Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 046/157] drm/amd/display: restore edid reading from a given i2c adapter Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 047/157] net: ethernet: ti: am65-cpsw: select PAGE_POOL Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 048/157] tcp: devmem: dont write truncated dmabuf CMSGs to userspace Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 049/157] ice: Fix deinitializing VF in error path Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 050/157] ice: Avoid setting default Rx VSI twice in switchdev setup Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 051/157] tcp: Defer ts_recent changes until req is owned Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 052/157] drm/xe: cancel pending job timer before freeing scheduler Greg Kroah-Hartman
2025-03-06  4:28   ` Matthew Brost
2025-03-05 17:48 ` [PATCH 6.13 053/157] net: Clear old fragment checksum value in napi_reuse_skb Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 054/157] net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 055/157] net/mlx5: Fix vport QoS cleanup on error Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 056/157] net/mlx5: Restore missing trace event when enabling vport QoS Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 057/157] net/mlx5: IRQ, Fix null string in debug print Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 058/157] net: ipv6: fix dst ref loop on input in seg6 lwt Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 059/157] net: ipv6: fix dst ref loop on input in rpl lwt Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 060/157] selftests: drv-net: Check if combined-count exists Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 061/157] idpf: fix checksums set in idpf_rx_rsc() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 062/157] net: ti: icss-iep: Reject perout generation request Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 063/157] thermal: gov_power_allocator: Fix incorrect calculation in divvy_up_power() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 064/157] perf/core: Order the PMU list to fix warning about unordered pmu_ctx_list Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 065/157] uprobes: Reject the shared zeropage in uprobe_write_opcode() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 066/157] thermal/of: Fix cdev lookup in thermal_of_should_bind() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 067/157] thermal: gov_power_allocator: Update total_weight on bind and cdev updates Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 068/157] io_uring/net: save msg_control for compat Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 069/157] unreachable: Unify Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 070/157] objtool: Remove annotate_{,un}reachable() Greg Kroah-Hartman
2025-03-07 21:26   ` Nathan Chancellor
2025-03-09  9:26     ` Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 071/157] objtool: Fix C jump table annotations for Clang Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 072/157] x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 073/157] uprobes: Remove too strict lockdep_assert() condition in hprobe_expire() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 074/157] phy: rockchip: fix Kconfig dependency more Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 075/157] phy: rockchip: naneng-combphy: compatible reset with old DT Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 076/157] phy: stm32: Fix constant-value overflow assertion Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 077/157] riscv: KVM: Fix hart suspend status check Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 078/157] riscv: KVM: Fix hart suspend_type use Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 079/157] riscv: KVM: Fix SBI IPI error generation Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 080/157] riscv: KVM: Fix SBI TIME " Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 081/157] tracing: Fix bad hist from corrupting named_triggers list Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 082/157] ftrace: Avoid potential division by zero in function_stat_show() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 083/157] ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 084/157] ALSA: hda/realtek: Fix microphone regression on ASUS N705UD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 085/157] KVM: arm64: Ensure a VMID is allocated before programming VTTBR_EL2 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 086/157] perf/core: Add RCU read lock protection to perf_iterate_ctx() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 087/157] perf/x86: Fix low freqency setting issue Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 088/157] perf/core: Fix low freq setting via IOC_PERIOD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 089/157] drm/xe/regs: remove a duplicate definition for RING_CTL_SIZE(size) Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 090/157] drm/xe/userptr: restore invalidation list on error Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 091/157] drm/xe/userptr: fix EFAULT handling Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 092/157] drm/fbdev-dma: Add shadow buffering for deferred I/O Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 093/157] drm/amdkfd: Preserve cp_hqd_pq_control on update_mqd Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 094/157] drm/amdgpu: disable BAR resize on Dell G5 SE Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 095/157] drm/amdgpu: init return value in amdgpu_ttm_clear_buffer Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 096/157] drm/amd/display: Disable PSR-SU on eDP panels Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 097/157] drm/amd/display: add a quirk to enable eDP0 on DP1 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 098/157] drm/amd/display: Fix HPD after gpu reset Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 099/157] arm64/mm: Fix Boot panic on Ampere Altra Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 100/157] arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes Greg Kroah-Hartman
2025-03-06  8:07   ` Jiri Slaby
2025-03-06  8:08     ` Jiri Slaby
2025-03-06 11:49       ` Ryan Roberts
2025-03-06 11:57         ` Greg Kroah-Hartman
2025-03-06 12:03           ` Jiri Slaby
2025-03-06 12:59             ` Ryan Roberts
2025-03-06 12:59           ` Ryan Roberts
2025-03-05 17:48 ` [PATCH 6.13 101/157] arm64: hugetlb: Fix flush_hugetlb_tlb_range() invalidation level Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 102/157] block: Remove zone write plugs when handling native zone append writes Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.13 103/157] btrfs: skip inodes without loaded extent maps when shrinking extent maps Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 104/157] btrfs: do regular iput instead of delayed iput during extent map shrinking Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 105/157] btrfs: fix use-after-free on inode when scanning root during em shrinking Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 106/157] btrfs: fix data overwriting bug during buffered write when block size < page size Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 107/157] i2c: npcm: disable interrupt enable bit before devm_request_irq Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 108/157] i2c: ls2x: Fix frequency division register access Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 109/157] i2c: amd-asf: Fix EOI register write to enable successive interrupts Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 110/157] usbnet: gl620a: fix endpoint checking in genelink_bind() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 111/157] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 112/157] net: phy: qcom: qca807x fix condition for DAC_DSP_BIAS_CURRENT Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 113/157] net: enetc: fix the off-by-one issue in enetc_map_tx_buffs() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 114/157] net: enetc: keep track of correct Tx BD count in enetc_map_tx_tso_buffs() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 115/157] net: enetc: VFs do not support HWTSTAMP_TX_ONESTEP_SYNC Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 116/157] net: enetc: update UDP checksum when updating originTimestamp field Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 117/157] net: enetc: correct the xdp_tx statistics Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 118/157] net: enetc: remove the mm_lock from the ENETC v4 driver Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 119/157] net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 120/157] net: enetc: add missing enetc4_link_deinit() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 121/157] phy: tegra: xusb: reset VBUS & ID OVERRIDE Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 122/157] phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 123/157] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 124/157] gve: unlink old napi when stopping a queue using queue API Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 125/157] iommu/vt-d: Remove device comparison in context_setup_pass_through_cb Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 126/157] iommu/vt-d: Fix suspicious RCU usage Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 127/157] amdgpu/pm/legacy: fix suspend/resume issues Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 128/157] intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 129/157] mptcp: always handle address removal under msk socket lock Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 130/157] mptcp: reset when MPTCP opts are dropped after join Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 131/157] selftests/landlock: Test that MPTCP actions are not restricted Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 132/157] vmlinux.lds: Ensure that const vars with relocations are mapped R/O Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 133/157] rcuref: Plug slowpath race in rcuref_put() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 134/157] sched/core: Prevent rescheduling when interrupts are disabled Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 135/157] sched_ext: Fix pick_task_scx() picking non-queued tasks when its called without balance() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 136/157] selftests/landlock: Test TCP accesses with protocol=IPPROTO_TCP Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 137/157] fuse: revert back to __readahead_folio() for readahead Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 138/157] dm-integrity: Avoid divide by zero in table status in Inline mode Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 139/157] dm vdo: add missing spin_lock_init Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 140/157] ima: Reset IMA_NONACTION_RULE_FLAGS after post_setattr Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 141/157] scsi: ufs: core: bsg: Fix crash when arpmb command fails Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 142/157] rseq/selftests: Fix riscv rseq_offset_deref_addv inline asm Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 143/157] riscv/atomic: Do proper sign extension also for unsigned in arch_cmpxchg Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 144/157] riscv/futex: sign extend compare value in atomic cmpxchg Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 145/157] riscv: signal: fix signal frame size Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 146/157] riscv: cacheinfo: Use of_property_present() for non-boolean properties Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 147/157] riscv: signal: fix signal_minsigstksz Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 148/157] riscv: cpufeature: use bitmap_equal() instead of memcmp() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 149/157] efi: Dont map the entire mokvar table to determine its size Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 150/157] x86/microcode/AMD: Return bool from find_blobs_in_containers() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 151/157] x86/microcode/AMD: Have __apply_microcode_amd() return bool Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 152/157] x86/microcode/AMD: Remove ugly linebreak in __verify_patch_section() signature Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 153/157] x86/microcode/AMD: Remove unused save_microcode_in_initrd_amd() declarations Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 154/157] x86/microcode/AMD: Merge early_apply_microcode() into its single callsite Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 155/157] x86/microcode/AMD: Get rid of the _load_microcode_amd() forward declaration Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 156/157] x86/microcode/AMD: Add get_patch_level() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.13 157/157] x86/microcode/AMD: Load only SHA256-checksummed patches Greg Kroah-Hartman
2025-03-05 19:04 ` [PATCH 6.13 000/157] 6.13.6-rc1 review Ronald Warsow
2025-03-05 19:37   ` Pavel Machek
2025-03-05 20:12 ` Mark Brown
2025-03-06 14:21   ` Greg Kroah-Hartman
2025-03-06  1:11 ` SeongJae Park
2025-03-06  3:43 ` Peter Schneider
2025-03-06  8:03 ` Ron Economos
2025-03-06 12:21 ` Naresh Kamboju
2025-03-06 12:54 ` Takeshi Ogasawara
2025-03-06 15:53 ` Shuah Khan
2025-03-06 16:26 ` Hardik Garg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250305174506.748213072@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=linus.walleij@linaro.org \
    --cc=lkp@intel.com \
    --cc=olteanv@gmail.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.