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.12 040/150] net: dsa: rtl8366rb: Fix compilation problem
Date: Wed, 5 Mar 2025 18:47:49 +0100 [thread overview]
Message-ID: <20250305174505.428634640@linuxfoundation.org> (raw)
In-Reply-To: <20250305174503.801402104@linuxfoundation.org>
6.12-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 c7a8cd0605878..ae3d49fc22b80 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
next prev parent reply other threads:[~2025-03-05 18:07 UTC|newest]
Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 17:47 [PATCH 6.12 000/150] 6.12.18-rc1 review Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 001/150] RDMA/mlx5: Fix the recovery flow of the UMR QP Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 002/150] IB/mlx5: Set and get correct qp_num for a DCT QP Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 003/150] 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.12 004/150] RDMA/mlx5: Fix a WARN during dereg_mr for DM type Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 005/150] RDMA/mana_ib: Allocate PAGE aligned doorbell index Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 006/150] RDMA/hns: Fix mbox timing out by adding retry mechanism Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 007/150] RDMA/bnxt_re: Fail probe early when not enough MSI-x vectors are reserved Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 008/150] RDMA/bnxt_re: Refactor NQ allocation Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 009/150] RDMA/bnxt_re: Cache MSIx info to a local structure Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 010/150] RDMA/bnxt_re: Add sanity checks on rdev validity Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 011/150] RDMA/bnxt_re: Allocate dev_attr information dynamically Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 012/150] RDMA/bnxt_re: Fix the statistics for Gen P7 VF Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 013/150] landlock: Fix non-TCP sockets restriction Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 014/150] scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 015/150] 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.12 016/150] NFS: O_DIRECT writes must check and adjust the file length Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 017/150] NFS: Adjust delegated timestamps for O_DIRECT reads and writes Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 018/150] SUNRPC: Prevent looping due to rpc_signal_task() races Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 019/150] NFSv4: Fix a deadlock when recovering state on a sillyrenamed file Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 020/150] SUNRPC: Handle -ETIMEDOUT return from tlshd Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 021/150] RDMA/mlx5: Fix implicit ODP hang on parent deregistration Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 022/150] RDMA/mlx5: Fix AH static rate parsing Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 023/150] scsi: core: Clear driver private data when retrying request Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 024/150] scsi: ufs: core: Set default runtime/system PM levels before ufshcd_hba_init() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 025/150] RDMA/mlx5: Fix bind QP error cleanup flow Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 026/150] RDMA/bnxt_re: Fix the page details for the srq created by kernel consumers Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 027/150] sunrpc: suppress warnings for unused procfs functions Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 028/150] ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 029/150] Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 030/150] rxrpc: rxperf: Fix missing decoding of terminal magic cookie Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 031/150] afs: Fix the server_list to unuse a displaced server rather than putting it Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 032/150] 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.12 033/150] net: loopback: Avoid sending IP packets without an Ethernet header Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 034/150] net: set the minimum for net_hotdata.netdev_budget_usecs Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 035/150] ipv4: Convert icmp_route_lookup() to dscp_t Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 036/150] ipv4: Convert ip_route_input() " Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 037/150] ipvlan: Prepare ipvlan_process_v4_outbound() to future .flowi4_tos conversion Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 038/150] ipvlan: ensure network headers are in skb linear part Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 039/150] 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.12 041/150] ASoC: es8328: fix route from DAC to output Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 042/150] ASoC: fsl: Rename stream name of SAI DAI driver Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 043/150] ipvs: Always clear ipvs_property flag in skb_scrub_packet() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 044/150] drm/xe/oa: Signal output fences Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 045/150] drm/xe/oa: Move functions up so they can be reused for config ioctl Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 046/150] drm/xe/oa: Add syncs support to OA " Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 047/150] drm/xe/oa: Allow only certain property changes from config Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 048/150] drm/xe/oa: Allow oa_exponent value of 0 Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 049/150] firmware: cs_dsp: Remove async regmap writes Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.12 050/150] ASoC: cs35l56: Prevent races when soft-resetting using SPI control Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 051/150] ALSA: hda/realtek: Fix wrong mic setup for ASUS VivoBook 15 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 052/150] net: ethernet: ti: am65-cpsw: select PAGE_POOL Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 053/150] tcp: devmem: dont write truncated dmabuf CMSGs to userspace Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 054/150] ice: add E830 HW VF mailbox message limit support Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 055/150] ice: Fix deinitializing VF in error path Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 056/150] ice: Avoid setting default Rx VSI twice in switchdev setup Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 057/150] tcp: Defer ts_recent changes until req is owned Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 058/150] drm/xe: cancel pending job timer before freeing scheduler Greg Kroah-Hartman
2025-03-06 4:29 ` Matthew Brost
2025-03-06 13:32 ` Greg Kroah-Hartman
2025-03-07 6:14 ` Matthew Brost
2025-03-07 6:19 ` Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 059/150] net: Clear old fragment checksum value in napi_reuse_skb Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 060/150] net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 061/150] net/mlx5: IRQ, Fix null string in debug print Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 062/150] net: ipv6: fix dst ref loop on input in seg6 lwt Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 063/150] net: ipv6: fix dst ref loop on input in rpl lwt Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 064/150] selftests: drv-net: Check if combined-count exists Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 065/150] idpf: fix checksums set in idpf_rx_rsc() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 066/150] net: ti: icss-iep: Reject perout generation request Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 067/150] thermal: gov_power_allocator: Fix incorrect calculation in divvy_up_power() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 068/150] perf/core: Order the PMU list to fix warning about unordered pmu_ctx_list Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 069/150] uprobes: Reject the shared zeropage in uprobe_write_opcode() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 070/150] thermal: of: Simplify thermal_of_should_bind with scoped for each OF child Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 071/150] thermal/of: Fix cdev lookup in thermal_of_should_bind() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 072/150] thermal: core: Move lists of thermal instances to trip descriptors Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 073/150] thermal: gov_power_allocator: Update total_weight on bind and cdev updates Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 074/150] io_uring/net: save msg_control for compat Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 075/150] unreachable: Unify Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 076/150] objtool: Remove annotate_{,un}reachable() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 077/150] objtool: Fix C jump table annotations for Clang Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 078/150] x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 079/150] phy: rockchip: fix Kconfig dependency more Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 080/150] phy: rockchip: naneng-combphy: compatible reset with old DT Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 081/150] riscv: KVM: Fix hart suspend status check Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 082/150] riscv: KVM: Fix hart suspend_type use Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 083/150] riscv: KVM: Fix SBI IPI error generation Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 084/150] riscv: KVM: Fix SBI TIME " Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 085/150] tracing: Fix bad hist from corrupting named_triggers list Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 086/150] ftrace: Avoid potential division by zero in function_stat_show() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 087/150] ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 088/150] ALSA: hda/realtek: Fix microphone regression on ASUS N705UD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 089/150] KVM: arm64: Ensure a VMID is allocated before programming VTTBR_EL2 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 090/150] perf/core: Add RCU read lock protection to perf_iterate_ctx() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 091/150] perf/x86: Fix low freqency setting issue Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 092/150] perf/core: Fix low freq setting via IOC_PERIOD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 093/150] drm/xe/regs: remove a duplicate definition for RING_CTL_SIZE(size) Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 094/150] drm/xe/userptr: restore invalidation list on error Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 095/150] drm/xe/userptr: fix EFAULT handling Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 096/150] drm/amdkfd: Preserve cp_hqd_pq_control on update_mqd Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 097/150] drm/amdgpu: disable BAR resize on Dell G5 SE Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 098/150] drm/amdgpu: init return value in amdgpu_ttm_clear_buffer Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 099/150] drm/amd/display: Disable PSR-SU on eDP panels Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 100/150] drm/amd/display: add a quirk to enable eDP0 on DP1 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 101/150] drm/amd/display: Fix HPD after gpu reset Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 102/150] arm64/mm: Fix Boot panic on Ampere Altra Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 103/150] arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 104/150] arm64: hugetlb: Fix flush_hugetlb_tlb_range() invalidation level Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 105/150] block: Remove zone write plugs when handling native zone append writes Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 106/150] i2c: npcm: disable interrupt enable bit before devm_request_irq Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 107/150] i2c: ls2x: Fix frequency division register access Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 108/150] usbnet: gl620a: fix endpoint checking in genelink_bind() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 109/150] net: stmmac: dwmac-loongson: Add fix_soc_reset() callback Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.12 110/150] net: phy: qcom: qca807x fix condition for DAC_DSP_BIAS_CURRENT Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 111/150] net: enetc: fix the off-by-one issue in enetc_map_tx_buffs() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 112/150] 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.12 113/150] net: enetc: VFs do not support HWTSTAMP_TX_ONESTEP_SYNC Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 114/150] net: enetc: update UDP checksum when updating originTimestamp field Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 115/150] net: enetc: correct the xdp_tx statistics Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 116/150] net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 117/150] phy: tegra: xusb: reset VBUS & ID OVERRIDE Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 118/150] phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 119/150] phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 120/150] iommu/vt-d: Remove device comparison in context_setup_pass_through_cb Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 121/150] iommu/vt-d: Fix suspicious RCU usage Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 122/150] intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 123/150] mptcp: always handle address removal under msk socket lock Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 124/150] mptcp: reset when MPTCP opts are dropped after join Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 125/150] selftests/landlock: Test that MPTCP actions are not restricted Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 126/150] vmlinux.lds: Ensure that const vars with relocations are mapped R/O Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 127/150] rcuref: Plug slowpath race in rcuref_put() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 128/150] sched/core: Prevent rescheduling when interrupts are disabled Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 129/150] 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.12 130/150] selftests/landlock: Test TCP accesses with protocol=IPPROTO_TCP Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 131/150] dm-integrity: Avoid divide by zero in table status in Inline mode Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 132/150] dm vdo: add missing spin_lock_init Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 133/150] ima: Reset IMA_NONACTION_RULE_FLAGS after post_setattr Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 134/150] scsi: ufs: core: bsg: Fix crash when arpmb command fails Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 135/150] rseq/selftests: Fix riscv rseq_offset_deref_addv inline asm Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 136/150] riscv/futex: sign extend compare value in atomic cmpxchg Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 137/150] riscv: signal: fix signal frame size Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 138/150] riscv: cacheinfo: Use of_property_present() for non-boolean properties Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 139/150] riscv: signal: fix signal_minsigstksz Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 140/150] riscv: cpufeature: use bitmap_equal() instead of memcmp() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 141/150] efi: Dont map the entire mokvar table to determine its size Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 142/150] amdgpu/pm/legacy: fix suspend/resume issues Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 143/150] x86/microcode/AMD: Return bool from find_blobs_in_containers() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 144/150] x86/microcode/AMD: Have __apply_microcode_amd() return bool Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 145/150] x86/microcode/AMD: Remove ugly linebreak in __verify_patch_section() signature Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 146/150] x86/microcode/AMD: Remove unused save_microcode_in_initrd_amd() declarations Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 147/150] x86/microcode/AMD: Merge early_apply_microcode() into its single callsite Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 148/150] x86/microcode/AMD: Get rid of the _load_microcode_amd() forward declaration Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 149/150] x86/microcode/AMD: Add get_patch_level() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.12 150/150] x86/microcode/AMD: Load only SHA256-checksummed patches Greg Kroah-Hartman
2025-03-06 1:11 ` [PATCH 6.12 000/150] 6.12.18-rc1 review SeongJae Park
2025-03-06 2:48 ` Peter Schneider
2025-03-06 8:10 ` Ron Economos
2025-03-06 12:11 ` Naresh Kamboju
2025-03-06 13:01 ` Ryan Roberts
2025-03-06 12:14 ` Jon Hunter
2025-03-06 15:54 ` Shuah Khan
2025-03-06 16:23 ` 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=20250305174505.428634640@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