public inbox for stable@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox