* [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips
@ 2024-06-04 4:02 Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118 Guenter Roeck
` (5 more replies)
0 siblings, 6 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
Add support for SPD5118 (Jedec JESD300) compliant chips supporting
a temperature sensor and SPD NVRAM. Such devices are typically found on
DDR5 memory modules.
The first patch of the series adds SPD5118 devicetree bindings. The second
patch adds support for SPD5118 temperature sensors. The third patch adds
support for suspend/resume. The 4th patch adds support for reading the
SPD NVRAM. The 5th patch adds support for auto-detecting SPD5118 compliant
chips to i2c_register_spd() in the i2c-smbus code. The last patch of the
series adds a configuration option to make the auto-detect code in the
spd5118 driver configurable.
Note: The driver introduced with this patch series does not currently
support accessing SPD5118 compliant chips in I3C mode.
v4: Add support for detecting SPD5118 compliant chips in i2c-smbus driver
Make auto-detect code in driver optional
Fix suspend code
Ignore failure to register with nvmem core if it is disabled
Use NVMEM_DEVID_NONE instead of NVMEM_DEVID_AUTO in nvmem code,
changing nvmem attribute directories from 0-005[0-7]X to 0-005[0-7]
v3: Drop explicit bindings document; add binding to trivial devices instead
Add support for reading SPD NVRAM
v2: Drop PEC support; it only applies to I3C mode.
Update documentation
Add suspend/resume support
----------------------------------------------------------------
Guenter Roeck (6):
dt-bindings: trivial-devices: Add jedec,spd5118
hwmon: Add support for SPD5118 compliant temperature sensors
hwmon: (spd5118) Add suspend/resume support
hwmon: (spd5118) Add support for reading SPD data
i2c: smbus: Support DDR5 SPD EEPROMs
hwmon: (spd5118) Add configuration option for auto-detection
.../devicetree/bindings/trivial-devices.yaml | 2 +
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/spd5118.rst | 63 ++
drivers/hwmon/Kconfig | 30 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/spd5118.c | 661 +++++++++++++++++++++
drivers/i2c/i2c-smbus.c | 4 +
7 files changed, 762 insertions(+)
create mode 100644 Documentation/hwmon/spd5118.rst
create mode 100644 drivers/hwmon/spd5118.c
^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
` (4 subsequent siblings)
5 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck, Krzysztof Kozlowski
Add bindings for the SPD hub present in DDR5 modules.
(https://www.jedec.org/standards-documents/docs/jesd300-5b01).
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v4: Add Krzysztof's Acked-by:
v3: Drop explicit bindings file; add binding to trivial devices
instead
Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 0a419453d183..1d19e67de2a1 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -168,6 +168,8 @@ properties:
- isil,isl69269
# Intersil ISL76682 Ambient Light Sensor
- isil,isl76682
+ # JEDEC JESD300 (SPD5118) Hub and Serial Presence Detect
+ - jedec,spd5118
# Linear Technology LTC2488
- lineartechnology,ltc2488
# 5 Bit Programmable, Pulse-Width Modulator
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118 Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 8:48 ` Stephen Horvath
2024-06-07 15:55 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
` (3 subsequent siblings)
5 siblings, 2 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
Add support for SPD5118 (Jedec JESD300) compliant temperature
sensors. Such sensors are typically found on DDR5 memory modules.
Cc: René Rebe <rene@exactcode.de>
Cc: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Tested-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v4: No change
v3: Shorten JESD300-5B.01 to JESD300; 5B.01 refers to the version
of the standard
Drop unnecessary 'attr' parameter from spd5118_{read,write}_enable()
v2: Drop PEC property documentation
Add note indicating that alarm attributes are sticky until read
to documentation
Fix detect function
Fix misspelling in Makefile (CONFIG_SENSORS_SPD5118->CONFIG_SENSORS_SPD5118)
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/spd5118.rst | 55 ++++
drivers/hwmon/Kconfig | 12 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/spd5118.c | 481 ++++++++++++++++++++++++++++++++
5 files changed, 550 insertions(+)
create mode 100644 Documentation/hwmon/spd5118.rst
create mode 100644 drivers/hwmon/spd5118.c
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index 03d313af469a..6e7b8726b60c 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -215,6 +215,7 @@ Hardware Monitoring Kernel Drivers
smsc47m192
smsc47m1
sparx5-temp
+ spd5118
stpddc60
surface_fan
sy7636a-hwmon
diff --git a/Documentation/hwmon/spd5118.rst b/Documentation/hwmon/spd5118.rst
new file mode 100644
index 000000000000..a15d75aa2066
--- /dev/null
+++ b/Documentation/hwmon/spd5118.rst
@@ -0,0 +1,55 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Kernel driver spd5118
+=====================
+
+Supported chips:
+
+ * SPD5118 (JEDEC JESD300) compliant temperature sensor chips
+
+ JEDEC standard download:
+ https://www.jedec.org/standards-documents/docs/jesd300-5b01
+ (account required)
+
+
+ Prefix: 'spd5118'
+
+ Addresses scanned: I2C 0x50 - 0x57
+
+Author:
+ Guenter Roeck <linux@roeck-us.net>
+
+
+Description
+-----------
+
+This driver implements support for SPD5118 (JEDEC JESD300) compliant temperature
+sensors, which are used on many DDR5 memory modules. Some systems use the sensor
+to prevent memory overheating by automatically throttling the memory controller.
+
+The driver auto-detects SPD5118 compliant chips, but can also be instantiated
+using devicetree/firmware nodes.
+
+A SPD5118 compliant chip supports a single temperature sensor. Critical minimum,
+minimum, maximum, and critical temperature can be configured. There are alarms
+for low critical, low, high, and critical thresholds.
+
+
+Hardware monitoring sysfs entries
+---------------------------------
+
+======================= ==================================
+temp1_input Temperature (RO)
+temp1_lcrit Low critical high temperature (RW)
+temp1_min Minimum temperature (RW)
+temp1_max Maximum temperature (RW)
+temp1_crit Critical high temperature (RW)
+
+temp1_lcrit_alarm Temperature low critical alarm
+temp1_min_alarm Temperature low alarm
+temp1_max_alarm Temperature high alarm
+temp1_crit_alarm Temperature critical alarm
+======================= ==================================
+
+Alarm attributes are sticky until read and will be cleared afterwards
+unless the alarm condition still applies.
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index e14ae18a973b..7a84e7637b51 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -2181,6 +2181,18 @@ config SENSORS_INA3221
This driver can also be built as a module. If so, the module
will be called ina3221.
+config SENSORS_SPD5118
+ tristate "SPD5118 Compliant Temperature Sensors"
+ depends on I2C
+ select REGMAP_I2C
+ help
+ If you say yes here you get support for SPD5118 (JEDEC JESD300)
+ compliant temperature sensors. Such sensors are found on DDR5 memory
+ modules.
+
+ This driver can also be built as a module. If so, the module
+ will be called spd5118.
+
config SENSORS_TC74
tristate "Microchip TC74"
depends on I2C
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index e3f25475d1f0..6574ca67d761 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -207,6 +207,7 @@ obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
+obj-$(CONFIG_SENSORS_SPD5118) += spd5118.o
obj-$(CONFIG_SENSORS_STTS751) += stts751.o
obj-$(CONFIG_SENSORS_SURFACE_FAN)+= surface_fan.o
obj-$(CONFIG_SENSORS_SY7636A) += sy7636a-hwmon.o
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
new file mode 100644
index 000000000000..d3fc0ae17743
--- /dev/null
+++ b/drivers/hwmon/spd5118.c
@@ -0,0 +1,481 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Driver for Jedec 5118 compliant temperature sensors
+ *
+ * Derived from https://github.com/Steve-Tech/SPD5118-DKMS
+ * Originally from T/2 driver at https://t2sde.org/packages/linux
+ * Copyright (c) 2023 René Rebe, ExactCODE GmbH; Germany.
+ *
+ * Copyright (c) 2024 Guenter Roeck
+ *
+ * Inspired by ee1004.c and jc42.c.
+ *
+ * SPD5118 compliant temperature sensors are typically used on DDR5
+ * memory modules.
+ */
+
+#include <linux/bitops.h>
+#include <linux/bits.h>
+#include <linux/err.h>
+#include <linux/i2c.h>
+#include <linux/hwmon.h>
+#include <linux/module.h>
+#include <linux/regmap.h>
+#include <linux/units.h>
+
+/* Addresses to scan */
+static const unsigned short normal_i2c[] = {
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, I2C_CLIENT_END };
+
+/* SPD5118 registers. */
+#define SPD5118_REG_TYPE 0x00 /* MR0:MR1 */
+#define SPD5118_REG_REVISION 0x02 /* MR2 */
+#define SPD5118_REG_VENDOR 0x03 /* MR3:MR4 */
+#define SPD5118_REG_CAPABILITY 0x05 /* MR5 */
+#define SPD5118_REG_I2C_LEGACY_MODE 0x0B /* MR11 */
+#define SPD5118_REG_TEMP_CLR 0x13 /* MR19 */
+#define SPD5118_REG_ERROR_CLR 0x14 /* MR20 */
+#define SPD5118_REG_TEMP_CONFIG 0x1A /* MR26 */
+#define SPD5118_REG_TEMP_MAX 0x1c /* MR28:MR29 */
+#define SPD5118_REG_TEMP_MIN 0x1e /* MR30:MR31 */
+#define SPD5118_REG_TEMP_CRIT 0x20 /* MR32:MR33 */
+#define SPD5118_REG_TEMP_LCRIT 0x22 /* MR34:MR35 */
+#define SPD5118_REG_TEMP 0x31 /* MR49:MR50 */
+#define SPD5118_REG_TEMP_STATUS 0x33 /* MR51 */
+
+#define SPD5118_TEMP_STATUS_HIGH BIT(0)
+#define SPD5118_TEMP_STATUS_LOW BIT(1)
+#define SPD5118_TEMP_STATUS_CRIT BIT(2)
+#define SPD5118_TEMP_STATUS_LCRIT BIT(3)
+
+#define SPD5118_CAP_TS_SUPPORT BIT(1) /* temperature sensor support */
+
+#define SPD5118_TS_DISABLE BIT(0) /* temperature sensor disable */
+
+/* Temperature unit in millicelsius */
+#define SPD5118_TEMP_UNIT (MILLIDEGREE_PER_DEGREE / 4)
+/* Representable temperature range in millicelsius */
+#define SPD5118_TEMP_RANGE_MIN -256000
+#define SPD5118_TEMP_RANGE_MAX 255750
+
+static int spd5118_temp_from_reg(u16 reg)
+{
+ int temp = sign_extend32(reg >> 2, 10);
+
+ return temp * SPD5118_TEMP_UNIT;
+}
+
+static u16 spd5118_temp_to_reg(long temp)
+{
+ temp = clamp_val(temp, SPD5118_TEMP_RANGE_MIN, SPD5118_TEMP_RANGE_MAX);
+ return (DIV_ROUND_CLOSEST(temp, SPD5118_TEMP_UNIT) & 0x7ff) << 2;
+}
+
+static int spd5118_read_temp(struct regmap *regmap, u32 attr, long *val)
+{
+ int reg, err;
+ u8 regval[2];
+ u16 temp;
+
+ switch (attr) {
+ case hwmon_temp_input:
+ reg = SPD5118_REG_TEMP;
+ break;
+ case hwmon_temp_max:
+ reg = SPD5118_REG_TEMP_MAX;
+ break;
+ case hwmon_temp_min:
+ reg = SPD5118_REG_TEMP_MIN;
+ break;
+ case hwmon_temp_crit:
+ reg = SPD5118_REG_TEMP_CRIT;
+ break;
+ case hwmon_temp_lcrit:
+ reg = SPD5118_REG_TEMP_LCRIT;
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ err = regmap_bulk_read(regmap, reg, regval, 2);
+ if (err)
+ return err;
+
+ temp = (regval[1] << 8) | regval[0];
+
+ *val = spd5118_temp_from_reg(temp);
+ return 0;
+}
+
+static int spd5118_read_alarm(struct regmap *regmap, u32 attr, long *val)
+{
+ unsigned int mask, regval;
+ int err;
+
+ switch (attr) {
+ case hwmon_temp_max_alarm:
+ mask = SPD5118_TEMP_STATUS_HIGH;
+ break;
+ case hwmon_temp_min_alarm:
+ mask = SPD5118_TEMP_STATUS_LOW;
+ break;
+ case hwmon_temp_crit_alarm:
+ mask = SPD5118_TEMP_STATUS_CRIT;
+ break;
+ case hwmon_temp_lcrit_alarm:
+ mask = SPD5118_TEMP_STATUS_LCRIT;
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ err = regmap_read(regmap, SPD5118_REG_TEMP_STATUS, ®val);
+ if (err < 0)
+ return err;
+ *val = !!(regval & mask);
+ if (*val)
+ return regmap_write(regmap, SPD5118_REG_TEMP_CLR, mask);
+ return 0;
+}
+
+static int spd5118_read_enable(struct regmap *regmap, long *val)
+{
+ u32 regval;
+ int err;
+
+ err = regmap_read(regmap, SPD5118_REG_TEMP_CONFIG, ®val);
+ if (err < 0)
+ return err;
+ *val = !(regval & SPD5118_TS_DISABLE);
+ return 0;
+}
+
+static int spd5118_read(struct device *dev, enum hwmon_sensor_types type,
+ u32 attr, int channel, long *val)
+{
+ struct regmap *regmap = dev_get_drvdata(dev);
+
+ if (type != hwmon_temp)
+ return -EOPNOTSUPP;
+
+ switch (attr) {
+ case hwmon_temp_input:
+ case hwmon_temp_max:
+ case hwmon_temp_min:
+ case hwmon_temp_crit:
+ case hwmon_temp_lcrit:
+ return spd5118_read_temp(regmap, attr, val);
+ case hwmon_temp_max_alarm:
+ case hwmon_temp_min_alarm:
+ case hwmon_temp_crit_alarm:
+ case hwmon_temp_lcrit_alarm:
+ return spd5118_read_alarm(regmap, attr, val);
+ case hwmon_temp_enable:
+ return spd5118_read_enable(regmap, val);
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+
+static int spd5118_write_temp(struct regmap *regmap, u32 attr, long val)
+{
+ u8 regval[2];
+ u16 temp;
+ int reg;
+
+ switch (attr) {
+ case hwmon_temp_max:
+ reg = SPD5118_REG_TEMP_MAX;
+ break;
+ case hwmon_temp_min:
+ reg = SPD5118_REG_TEMP_MIN;
+ break;
+ case hwmon_temp_crit:
+ reg = SPD5118_REG_TEMP_CRIT;
+ break;
+ case hwmon_temp_lcrit:
+ reg = SPD5118_REG_TEMP_LCRIT;
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ temp = spd5118_temp_to_reg(val);
+ regval[0] = temp & 0xff;
+ regval[1] = temp >> 8;
+
+ return regmap_bulk_write(regmap, reg, regval, 2);
+}
+
+static int spd5118_write_enable(struct regmap *regmap, long val)
+{
+ if (val && val != 1)
+ return -EINVAL;
+
+ return regmap_update_bits(regmap, SPD5118_REG_TEMP_CONFIG,
+ SPD5118_TS_DISABLE,
+ val ? 0 : SPD5118_TS_DISABLE);
+}
+
+static int spd5118_temp_write(struct regmap *regmap, u32 attr, long val)
+{
+ switch (attr) {
+ case hwmon_temp_max:
+ case hwmon_temp_min:
+ case hwmon_temp_crit:
+ case hwmon_temp_lcrit:
+ return spd5118_write_temp(regmap, attr, val);
+ case hwmon_temp_enable:
+ return spd5118_write_enable(regmap, val);
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+
+static int spd5118_write(struct device *dev, enum hwmon_sensor_types type,
+ u32 attr, int channel, long val)
+{
+ struct regmap *regmap = dev_get_drvdata(dev);
+
+ switch (type) {
+ case hwmon_temp:
+ return spd5118_temp_write(regmap, attr, val);
+ default:
+ return -EOPNOTSUPP;
+ }
+}
+
+static umode_t spd5118_is_visible(const void *_data, enum hwmon_sensor_types type,
+ u32 attr, int channel)
+{
+ if (type != hwmon_temp)
+ return 0;
+
+ switch (attr) {
+ case hwmon_temp_input:
+ return 0444;
+ case hwmon_temp_min:
+ case hwmon_temp_max:
+ case hwmon_temp_lcrit:
+ case hwmon_temp_crit:
+ case hwmon_temp_enable:
+ return 0644;
+ case hwmon_temp_min_alarm:
+ case hwmon_temp_max_alarm:
+ case hwmon_temp_crit_alarm:
+ case hwmon_temp_lcrit_alarm:
+ return 0444;
+ default:
+ return 0;
+ }
+}
+
+static inline bool spd5118_parity8(u8 w)
+{
+ w ^= w >> 4;
+ return (0x6996 >> (w & 0xf)) & 1;
+}
+
+/*
+ * Bank and vendor id are 8-bit fields with seven data bits and odd parity.
+ * Vendor IDs 0 and 0x7f are invalid.
+ * See Jedec standard JEP106BJ for details and a list of assigned vendor IDs.
+ */
+static bool spd5118_vendor_valid(u8 bank, u8 id)
+{
+ if (!spd5118_parity8(bank) || !spd5118_parity8(id))
+ return false;
+
+ id &= 0x7f;
+ return id && id != 0x7f;
+}
+
+/* Return 0 if detection is successful, -ENODEV otherwise */
+static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
+{
+ struct i2c_adapter *adapter = client->adapter;
+ int regval;
+
+ if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA |
+ I2C_FUNC_SMBUS_WORD_DATA))
+ return -ENODEV;
+
+ regval = i2c_smbus_read_word_swapped(client, SPD5118_REG_TYPE);
+ if (regval != 0x5118)
+ return -ENODEV;
+
+ regval = i2c_smbus_read_word_data(client, SPD5118_REG_VENDOR);
+ if (regval < 0 || !spd5118_vendor_valid(regval & 0xff, regval >> 8))
+ return -ENODEV;
+
+ regval = i2c_smbus_read_byte_data(client, SPD5118_REG_CAPABILITY);
+ if (regval < 0)
+ return -ENODEV;
+ if (!(regval & SPD5118_CAP_TS_SUPPORT) || (regval & 0xfc))
+ return -ENODEV;
+
+ regval = i2c_smbus_read_byte_data(client, SPD5118_REG_TEMP_CLR);
+ if (regval)
+ return -ENODEV;
+ regval = i2c_smbus_read_byte_data(client, SPD5118_REG_ERROR_CLR);
+ if (regval)
+ return -ENODEV;
+
+ regval = i2c_smbus_read_byte_data(client, SPD5118_REG_REVISION);
+ if (regval < 0 || (regval & 0xc1))
+ return -ENODEV;
+
+ regval = i2c_smbus_read_byte_data(client, SPD5118_REG_TEMP_CONFIG);
+ if (regval < 0)
+ return -ENODEV;
+ if (regval & ~SPD5118_TS_DISABLE)
+ return -ENODEV;
+
+ strscpy(info->type, "spd5118", I2C_NAME_SIZE);
+ return 0;
+}
+
+static const struct hwmon_channel_info *spd5118_info[] = {
+ HWMON_CHANNEL_INFO(chip,
+ HWMON_C_REGISTER_TZ),
+ HWMON_CHANNEL_INFO(temp,
+ HWMON_T_INPUT |
+ HWMON_T_LCRIT | HWMON_T_LCRIT_ALARM |
+ HWMON_T_MIN | HWMON_T_MIN_ALARM |
+ HWMON_T_MAX | HWMON_T_MAX_ALARM |
+ HWMON_T_CRIT | HWMON_T_CRIT_ALARM |
+ HWMON_T_ENABLE),
+ NULL
+};
+
+static const struct hwmon_ops spd5118_hwmon_ops = {
+ .is_visible = spd5118_is_visible,
+ .read = spd5118_read,
+ .write = spd5118_write,
+};
+
+static const struct hwmon_chip_info spd5118_chip_info = {
+ .ops = &spd5118_hwmon_ops,
+ .info = spd5118_info,
+};
+
+static bool spd5118_writeable_reg(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case SPD5118_REG_TEMP_CLR:
+ case SPD5118_REG_TEMP_CONFIG:
+ case SPD5118_REG_TEMP_MAX:
+ case SPD5118_REG_TEMP_MAX + 1:
+ case SPD5118_REG_TEMP_MIN:
+ case SPD5118_REG_TEMP_MIN + 1:
+ case SPD5118_REG_TEMP_CRIT:
+ case SPD5118_REG_TEMP_CRIT + 1:
+ case SPD5118_REG_TEMP_LCRIT:
+ case SPD5118_REG_TEMP_LCRIT + 1:
+ return true;
+ default:
+ return false;
+ }
+}
+
+static bool spd5118_volatile_reg(struct device *dev, unsigned int reg)
+{
+ switch (reg) {
+ case SPD5118_REG_TEMP_CLR:
+ case SPD5118_REG_ERROR_CLR:
+ case SPD5118_REG_TEMP:
+ case SPD5118_REG_TEMP + 1:
+ case SPD5118_REG_TEMP_STATUS:
+ return true;
+ default:
+ return false;
+ }
+}
+
+static const struct regmap_config spd5118_regmap_config = {
+ .reg_bits = 8,
+ .val_bits = 8,
+ .max_register = SPD5118_REG_TEMP_STATUS,
+ .writeable_reg = spd5118_writeable_reg,
+ .volatile_reg = spd5118_volatile_reg,
+ .cache_type = REGCACHE_MAPLE,
+};
+
+static int spd5118_probe(struct i2c_client *client)
+{
+ struct device *dev = &client->dev;
+ unsigned int regval, revision, vendor, bank;
+ struct device *hwmon_dev;
+ struct regmap *regmap;
+ int err;
+
+ regmap = devm_regmap_init_i2c(client, &spd5118_regmap_config);
+ if (IS_ERR(regmap))
+ return dev_err_probe(dev, PTR_ERR(regmap), "regmap init failed\n");
+
+ err = regmap_read(regmap, SPD5118_REG_CAPABILITY, ®val);
+ if (err)
+ return err;
+ if (!(regval & SPD5118_CAP_TS_SUPPORT))
+ return -ENODEV;
+
+ err = regmap_read(regmap, SPD5118_REG_REVISION, &revision);
+ if (err)
+ return err;
+
+ err = regmap_read(regmap, SPD5118_REG_VENDOR, &bank);
+ if (err)
+ return err;
+ err = regmap_read(regmap, SPD5118_REG_VENDOR + 1, &vendor);
+ if (err)
+ return err;
+ if (!spd5118_vendor_valid(bank, vendor))
+ return -ENODEV;
+
+ hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
+ regmap, &spd5118_chip_info,
+ NULL);
+ if (IS_ERR(hwmon_dev))
+ return PTR_ERR(hwmon_dev);
+
+ /*
+ * From JESD300-5B
+ * MR2 bits [5:4]: Major revision, 1..4
+ * MR2 bits [3:1]: Minor revision, 0..8? Probably a typo, assume 1..8
+ */
+ dev_info(dev, "DDR5 temperature sensor: vendor 0x%02x:0x%02x revision %d.%d\n",
+ bank & 0x7f, vendor, ((revision >> 4) & 0x03) + 1, ((revision >> 1) & 0x07) + 1);
+
+ return 0;
+}
+
+static const struct i2c_device_id spd5118_id[] = {
+ { "spd5118", 0 },
+ { }
+};
+MODULE_DEVICE_TABLE(i2c, spd5118_id);
+
+static const struct of_device_id spd5118_of_ids[] = {
+ { .compatible = "jedec,spd5118", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, spd5118_of_ids);
+
+static struct i2c_driver spd5118_driver = {
+ .class = I2C_CLASS_HWMON,
+ .driver = {
+ .name = "spd5118",
+ .of_match_table = spd5118_of_ids,
+ },
+ .probe = spd5118_probe,
+ .id_table = spd5118_id,
+ .detect = spd5118_detect,
+ .address_list = normal_i2c,
+};
+
+module_i2c_driver(spd5118_driver);
+
+MODULE_AUTHOR("René Rebe <rene@exactcode.de>");
+MODULE_AUTHOR("Guenter Roeck <linux@roeck-us.net>");
+MODULE_DESCRIPTION("SPD 5118 driver");
+MODULE_LICENSE("GPL");
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118 Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 8:45 ` Stephen Horvath
2024-06-07 15:57 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data Guenter Roeck
` (2 subsequent siblings)
5 siblings, 2 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
Add suspend/resume support to ensure that limit and configuration
registers are updated and synchronized after a suspend/resume cycle.
Cc: Armin Wolf <W_Armin@gmx.de>
Cc: Stephen Horvath <s.horvath@outlook.com.au>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v4: Fix bug seen if the enable attribute was never read prior
to a suspend/resume cycle.
v3: No change
v2: New patch
drivers/hwmon/spd5118.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index d3fc0ae17743..d55c073ff5fd 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -20,6 +20,7 @@
#include <linux/i2c.h>
#include <linux/hwmon.h>
#include <linux/module.h>
+#include <linux/pm.h>
#include <linux/regmap.h>
#include <linux/units.h>
@@ -432,6 +433,8 @@ static int spd5118_probe(struct i2c_client *client)
if (!spd5118_vendor_valid(bank, vendor))
return -ENODEV;
+ dev_set_drvdata(dev, regmap);
+
hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
regmap, &spd5118_chip_info,
NULL);
@@ -449,6 +452,41 @@ static int spd5118_probe(struct i2c_client *client)
return 0;
}
+static int spd5118_suspend(struct device *dev)
+{
+ struct regmap *regmap = dev_get_drvdata(dev);
+ u32 regval;
+ int err;
+
+ /*
+ * Make sure the configuration register in the regmap cache is current
+ * before bypassing it.
+ */
+ err = regmap_read(regmap, SPD5118_REG_TEMP_CONFIG, ®val);
+ if (err < 0)
+ return err;
+
+ regcache_cache_bypass(regmap, true);
+ regmap_update_bits(regmap, SPD5118_REG_TEMP_CONFIG, SPD5118_TS_DISABLE,
+ SPD5118_TS_DISABLE);
+ regcache_cache_bypass(regmap, false);
+
+ regcache_cache_only(regmap, true);
+ regcache_mark_dirty(regmap);
+
+ return 0;
+}
+
+static int spd5118_resume(struct device *dev)
+{
+ struct regmap *regmap = dev_get_drvdata(dev);
+
+ regcache_cache_only(regmap, false);
+ return regcache_sync(regmap);
+}
+
+static DEFINE_SIMPLE_DEV_PM_OPS(spd5118_pm_ops, spd5118_suspend, spd5118_resume);
+
static const struct i2c_device_id spd5118_id[] = {
{ "spd5118", 0 },
{ }
@@ -466,6 +504,7 @@ static struct i2c_driver spd5118_driver = {
.driver = {
.name = "spd5118",
.of_match_table = spd5118_of_ids,
+ .pm = pm_sleep_ptr(&spd5118_pm_ops),
},
.probe = spd5118_probe,
.id_table = spd5118_id,
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
` (2 preceding siblings ...)
2024-06-04 4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 11:58 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
5 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
Add support for reading SPD NVMEM data from SPD5118 (Jedec JESD300)
compliant memory modules. NVMEM write operation is not supported.
NVMEM support is optional. If CONFIG_NVMEM is disabled, the driver will
still instantiate but not provide NVMEM attribute files.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v4: Use NVMEM_DEVID_NONE instead of NVMEM_DEVID_AUTO
Ignore nvmem registration failure if nvmem support is disabled
v3: New patch
Documentation/hwmon/spd5118.rst | 8 ++
drivers/hwmon/spd5118.c | 147 +++++++++++++++++++++++++++++++-
2 files changed, 151 insertions(+), 4 deletions(-)
diff --git a/Documentation/hwmon/spd5118.rst b/Documentation/hwmon/spd5118.rst
index a15d75aa2066..ef7338f46575 100644
--- a/Documentation/hwmon/spd5118.rst
+++ b/Documentation/hwmon/spd5118.rst
@@ -53,3 +53,11 @@ temp1_crit_alarm Temperature critical alarm
Alarm attributes are sticky until read and will be cleared afterwards
unless the alarm condition still applies.
+
+
+SPD (Serial Presence Detect) support
+------------------------------------
+
+The driver also supports reading the SPD NVRAM on SPD5118 compatible chips.
+SPD data is available from the 'eeprom' binary attribute file attached to the
+chip's I2C device.
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index d55c073ff5fd..5cb5e52c0a38 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -20,6 +20,8 @@
#include <linux/i2c.h>
#include <linux/hwmon.h>
#include <linux/module.h>
+#include <linux/mutex.h>
+#include <linux/nvmem-provider.h>
#include <linux/pm.h>
#include <linux/regmap.h>
#include <linux/units.h>
@@ -53,12 +55,31 @@ static const unsigned short normal_i2c[] = {
#define SPD5118_TS_DISABLE BIT(0) /* temperature sensor disable */
+#define SPD5118_LEGACY_MODE_ADDR BIT(3)
+#define SPD5118_LEGACY_PAGE_MASK GENMASK(2, 0)
+#define SPD5118_LEGACY_MODE_MASK (SPD5118_LEGACY_MODE_ADDR | SPD5118_LEGACY_PAGE_MASK)
+
+
+#define SPD5118_NUM_PAGES 8
+#define SPD5118_PAGE_SIZE 128
+#define SPD5118_PAGE_SHIFT 7
+#define SPD5118_PAGE_MASK GENMASK(6, 0)
+#define SPD5118_EEPROM_BASE 0x80
+#define SPD5118_EEPROM_SIZE (SPD5118_PAGE_SIZE * SPD5118_NUM_PAGES)
+
/* Temperature unit in millicelsius */
#define SPD5118_TEMP_UNIT (MILLIDEGREE_PER_DEGREE / 4)
/* Representable temperature range in millicelsius */
#define SPD5118_TEMP_RANGE_MIN -256000
#define SPD5118_TEMP_RANGE_MAX 255750
+struct spd5118_data {
+ struct regmap *regmap;
+ struct mutex nvmem_lock;
+};
+
+/* hwmon */
+
static int spd5118_temp_from_reg(u16 reg)
{
int temp = sign_extend32(reg >> 2, 10);
@@ -360,9 +381,111 @@ static const struct hwmon_chip_info spd5118_chip_info = {
.info = spd5118_info,
};
+/* nvmem */
+
+static int spd5118_nvmem_set_page(struct regmap *regmap, int page)
+{
+ unsigned int old_page;
+ int err;
+
+ err = regmap_read(regmap, SPD5118_REG_I2C_LEGACY_MODE, &old_page);
+ if (err)
+ return err;
+
+ if (page != (old_page & SPD5118_LEGACY_MODE_MASK)) {
+ /* Update page and explicitly select 1-byte addressing */
+ err = regmap_update_bits(regmap, SPD5118_REG_I2C_LEGACY_MODE,
+ SPD5118_LEGACY_MODE_MASK, page);
+ if (err)
+ return err;
+
+ /* Selected new NVMEM page, drop cached data */
+ regcache_drop_region(regmap, SPD5118_EEPROM_BASE, 0xff);
+ }
+
+ return 0;
+}
+
+static ssize_t spd5118_nvmem_read_page(struct regmap *regmap, char *buf,
+ unsigned int offset, size_t count)
+{
+ int err;
+
+ err = spd5118_nvmem_set_page(regmap, offset >> SPD5118_PAGE_SHIFT);
+ if (err)
+ return err;
+
+ offset &= SPD5118_PAGE_MASK;
+
+ /* Can't cross page boundaries */
+ if (offset + count > SPD5118_PAGE_SIZE)
+ count = SPD5118_PAGE_SIZE - offset;
+
+ err = regmap_bulk_read(regmap, SPD5118_EEPROM_BASE + offset, buf, count);
+ if (err)
+ return err;
+
+ return count;
+}
+
+static int spd5118_nvmem_read(void *priv, unsigned int off, void *val, size_t count)
+{
+ struct spd5118_data *data = priv;
+ char *buf = val;
+ int ret;
+
+ if (unlikely(!count))
+ return count;
+
+ if (off + count > SPD5118_EEPROM_SIZE)
+ return -EINVAL;
+
+ mutex_lock(&data->nvmem_lock);
+
+ while (count) {
+ ret = spd5118_nvmem_read_page(data->regmap, buf, off, count);
+ if (ret < 0) {
+ mutex_unlock(&data->nvmem_lock);
+ return ret;
+ }
+ buf += ret;
+ off += ret;
+ count -= ret;
+ }
+ mutex_unlock(&data->nvmem_lock);
+ return 0;
+}
+
+static int spd5118_nvmem_init(struct device *dev, struct spd5118_data *data)
+{
+ struct nvmem_config nvmem_config = {
+ .type = NVMEM_TYPE_EEPROM,
+ .name = dev_name(dev),
+ .id = NVMEM_DEVID_NONE,
+ .dev = dev,
+ .base_dev = dev,
+ .read_only = true,
+ .root_only = false,
+ .owner = THIS_MODULE,
+ .compat = true,
+ .reg_read = spd5118_nvmem_read,
+ .priv = data,
+ .stride = 1,
+ .word_size = 1,
+ .size = SPD5118_EEPROM_SIZE,
+ };
+ struct nvmem_device *nvmem;
+
+ nvmem = devm_nvmem_register(dev, &nvmem_config);
+ return PTR_ERR_OR_ZERO(nvmem);
+}
+
+/* regmap */
+
static bool spd5118_writeable_reg(struct device *dev, unsigned int reg)
{
switch (reg) {
+ case SPD5118_REG_I2C_LEGACY_MODE:
case SPD5118_REG_TEMP_CLR:
case SPD5118_REG_TEMP_CONFIG:
case SPD5118_REG_TEMP_MAX:
@@ -396,7 +519,7 @@ static bool spd5118_volatile_reg(struct device *dev, unsigned int reg)
static const struct regmap_config spd5118_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
- .max_register = SPD5118_REG_TEMP_STATUS,
+ .max_register = 0xff,
.writeable_reg = spd5118_writeable_reg,
.volatile_reg = spd5118_volatile_reg,
.cache_type = REGCACHE_MAPLE,
@@ -406,10 +529,15 @@ static int spd5118_probe(struct i2c_client *client)
{
struct device *dev = &client->dev;
unsigned int regval, revision, vendor, bank;
+ struct spd5118_data *data;
struct device *hwmon_dev;
struct regmap *regmap;
int err;
+ data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return -ENOMEM;
+
regmap = devm_regmap_init_i2c(client, &spd5118_regmap_config);
if (IS_ERR(regmap))
return dev_err_probe(dev, PTR_ERR(regmap), "regmap init failed\n");
@@ -433,7 +561,16 @@ static int spd5118_probe(struct i2c_client *client)
if (!spd5118_vendor_valid(bank, vendor))
return -ENODEV;
- dev_set_drvdata(dev, regmap);
+ data->regmap = regmap;
+ mutex_init(&data->nvmem_lock);
+ dev_set_drvdata(dev, data);
+
+ err = spd5118_nvmem_init(dev, data);
+ /* Ignore if NVMEM support is disabled */
+ if (err && err != -EOPNOTSUPP) {
+ dev_err_probe(dev, err, "failed to register nvmem\n");
+ return err;
+ }
hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
regmap, &spd5118_chip_info,
@@ -454,7 +591,8 @@ static int spd5118_probe(struct i2c_client *client)
static int spd5118_suspend(struct device *dev)
{
- struct regmap *regmap = dev_get_drvdata(dev);
+ struct spd5118_data *data = dev_get_drvdata(dev);
+ struct regmap *regmap = data->regmap;
u32 regval;
int err;
@@ -479,7 +617,8 @@ static int spd5118_suspend(struct device *dev)
static int spd5118_resume(struct device *dev)
{
- struct regmap *regmap = dev_get_drvdata(dev);
+ struct spd5118_data *data = dev_get_drvdata(dev);
+ struct regmap *regmap = data->regmap;
regcache_cache_only(regmap, false);
return regcache_sync(regmap);
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
` (3 preceding siblings ...)
2024-06-04 4:02 ` [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 7:32 ` Wolfram Sang
` (2 more replies)
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
5 siblings, 3 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
Detect DDR5 memory and instantiate the SPD5118 driver automatically.
Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v5: New patch
drivers/i2c/i2c-smbus.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
index 97f338b123b1..8a0dab835761 100644
--- a/drivers/i2c/i2c-smbus.c
+++ b/drivers/i2c/i2c-smbus.c
@@ -382,6 +382,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
case 0x1E: /* LPDDR4 */
name = "ee1004";
break;
+ case 0x22: /* DDR5 */
+ case 0x23: /* LPDDR5 */
+ name = "spd5118";
+ break;
default:
dev_info(&adap->dev,
"Memory type 0x%02x not supported yet, not instantiating SPD\n",
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
` (4 preceding siblings ...)
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
@ 2024-06-04 4:02 ` Guenter Roeck
2024-06-04 4:37 ` Thomas Weißschuh
` (2 more replies)
5 siblings, 3 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 4:02 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
With SPD5118 chip detection for the most part handled by the i2c-smbus
core using DMI information, the spd5118 driver no longer needs to
auto-detect spd5118 compliant chips.
Auto-detection by the driver is still needed on systems with no DMI support
or on systems with more than eight DIMMs and can not be removed entirely.
However, it affects boot time and introduces the risk of mis-identifying
chips. Add configuration option to be able to disable it on systems where
chip detection is handled outside the driver.
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
v4: New patch
drivers/hwmon/Kconfig | 18 ++++++++++++++++++
drivers/hwmon/spd5118.c | 4 +++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 7a84e7637b51..0bb1bdee3e43 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -2185,6 +2185,7 @@ config SENSORS_SPD5118
tristate "SPD5118 Compliant Temperature Sensors"
depends on I2C
select REGMAP_I2C
+ select SENSORS_SPD5118_DETECT if !DMI
help
If you say yes here you get support for SPD5118 (JEDEC JESD300)
compliant temperature sensors. Such sensors are found on DDR5 memory
@@ -2193,6 +2194,23 @@ config SENSORS_SPD5118
This driver can also be built as a module. If so, the module
will be called spd5118.
+config SENSORS_SPD5118_DETECT
+ bool "Enable detect function"
+ depends on SENSORS_SPD5118
+ default y
+ help
+ If enabled, the driver auto-detects if a chip in the SPD address
+ range is compliant to the SPD51888 standard and auto-instantiates
+ if that is the case. If disabled, SPD5118 compliant devices have
+ to be instantiated by other means. On systems with DMI support
+ this will typically be done from DMI DDR detection code in the
+ I2C SMBus subsystem.
+ Disabling the detect function will speed up boot time and reduce
+ the risk of mis-detecting SPD5118 compliant devices. In general
+ it should only be enabled if necessary.
+
+ If unsure, say Y.
+
config SENSORS_TC74
tristate "Microchip TC74"
depends on I2C
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index 5cb5e52c0a38..19d203283a21 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
}
/* Return 0 if detection is successful, -ENODEV otherwise */
-static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
+static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
{
struct i2c_adapter *adapter = client->adapter;
int regval;
@@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
},
.probe = spd5118_probe,
.id_table = spd5118_id,
+#ifdef CONFIG_SENSORS_SPD5118_DETECT
.detect = spd5118_detect,
+#endif
.address_list = normal_i2c,
};
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* Re: [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
@ 2024-06-04 4:37 ` Thomas Weißschuh
2024-06-04 14:04 ` Guenter Roeck
2024-06-04 7:44 ` Wolfram Sang
2024-06-05 2:19 ` [PATCH v4a " Guenter Roeck
2 siblings, 1 reply; 50+ messages in thread
From: Thomas Weißschuh @ 2024-06-04 4:37 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe, Armin Wolf,
Stephen Horvath
On 2024-06-03 21:02:37+0000, Guenter Roeck wrote:
> With SPD5118 chip detection for the most part handled by the i2c-smbus
> core using DMI information, the spd5118 driver no longer needs to
> auto-detect spd5118 compliant chips.
>
> Auto-detection by the driver is still needed on systems with no DMI support
> or on systems with more than eight DIMMs and can not be removed entirely.
> However, it affects boot time and introduces the risk of mis-identifying
> chips. Add configuration option to be able to disable it on systems where
> chip detection is handled outside the driver.
>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: New patch
>
> drivers/hwmon/Kconfig | 18 ++++++++++++++++++
> drivers/hwmon/spd5118.c | 4 +++-
> 2 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 7a84e7637b51..0bb1bdee3e43 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -2185,6 +2185,7 @@ config SENSORS_SPD5118
> tristate "SPD5118 Compliant Temperature Sensors"
> depends on I2C
> select REGMAP_I2C
> + select SENSORS_SPD5118_DETECT if !DMI
> help
> If you say yes here you get support for SPD5118 (JEDEC JESD300)
> compliant temperature sensors. Such sensors are found on DDR5 memory
> @@ -2193,6 +2194,23 @@ config SENSORS_SPD5118
> This driver can also be built as a module. If so, the module
> will be called spd5118.
>
> +config SENSORS_SPD5118_DETECT
> + bool "Enable detect function"
> + depends on SENSORS_SPD5118
> + default y
> + help
> + If enabled, the driver auto-detects if a chip in the SPD address
> + range is compliant to the SPD51888 standard and auto-instantiates
> + if that is the case. If disabled, SPD5118 compliant devices have
> + to be instantiated by other means. On systems with DMI support
> + this will typically be done from DMI DDR detection code in the
> + I2C SMBus subsystem.
> + Disabling the detect function will speed up boot time and reduce
> + the risk of mis-detecting SPD5118 compliant devices. In general
> + it should only be enabled if necessary.
> +
> + If unsure, say Y.
The combination of
"In general it should only be enabled if necessary."
and
"default y" / "If unsure, say Y."
looks weird.
Also right now it is not possible to disable detection on non-DMI
configurations. But when using OF, custom kernel code or userspace
instantiation then neither DMI nor CONFIG_DETECT are necessary.
The following would support those usecases, too:
config SENSORS_SPD5118_DETECT
bool "Enable detect function"
depends on SENSORS_SPD5118
default !DMI
(And no "select SENSORS_SPD5118_DETECT if !DMI")
> +
> config SENSORS_TC74
> tristate "Microchip TC74"
> depends on I2C
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index 5cb5e52c0a38..19d203283a21 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
> }
>
> /* Return 0 if detection is successful, -ENODEV otherwise */
> -static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> +static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> {
> struct i2c_adapter *adapter = client->adapter;
> int regval;
> @@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
> },
> .probe = spd5118_probe,
> .id_table = spd5118_id,
> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
> .detect = spd5118_detect,
> +#endif
> .address_list = normal_i2c,
.address_list is also only needed with CONFIG_SENSORS_SPD5118_DETECT.
If you use
.detect = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? spd5118_detect : NULL,
.address_list = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? normal_i2c : NULL,
then the need for __maybe_unused goes away and type checking is a tiny
bit better.
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
@ 2024-06-04 7:32 ` Wolfram Sang
2024-06-05 12:21 ` Paul Menzel
2024-06-07 16:06 ` Armin Wolf
2 siblings, 0 replies; 50+ messages in thread
From: Wolfram Sang @ 2024-06-04 7:32 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Armin Wolf, Stephen Horvath
[-- Attachment #1: Type: text/plain, Size: 369 bytes --]
On Mon, Jun 03, 2024 at 09:02:36PM -0700, Guenter Roeck wrote:
> Detect DDR5 memory and instantiate the SPD5118 driver automatically.
>
> Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
2024-06-04 4:37 ` Thomas Weißschuh
@ 2024-06-04 7:44 ` Wolfram Sang
2024-06-04 14:04 ` Guenter Roeck
2024-06-05 2:19 ` [PATCH v4a " Guenter Roeck
2 siblings, 1 reply; 50+ messages in thread
From: Wolfram Sang @ 2024-06-04 7:44 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Armin Wolf, Stephen Horvath
[-- Attachment #1: Type: text/plain, Size: 203 bytes --]
> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
> .detect = spd5118_detect,
> +#endif
> .address_list = normal_i2c,
> };
So, I think we have too many Kconfig symbols already. What about using
!DMI here?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support
2024-06-04 4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
@ 2024-06-04 8:45 ` Stephen Horvath
2024-06-04 14:31 ` Guenter Roeck
2024-06-07 15:57 ` Armin Wolf
1 sibling, 1 reply; 50+ messages in thread
From: Stephen Horvath @ 2024-06-04 8:45 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf
Hi,
On 4/6/24 14:02, Guenter Roeck wrote:
> Add suspend/resume support to ensure that limit and configuration
> registers are updated and synchronized after a suspend/resume cycle.
>
> Cc: Armin Wolf <W_Armin@gmx.de>
> Cc: Stephen Horvath <s.horvath@outlook.com.au>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: Fix bug seen if the enable attribute was never read prior
> to a suspend/resume cycle.
I can confirm this works for my devices, so:
Tested-by: Stephen Horvath <s.horvath@outlook.com.au>
Thanks,
Steve
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors
2024-06-04 4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
@ 2024-06-04 8:48 ` Stephen Horvath
2024-06-04 14:31 ` Guenter Roeck
2024-06-07 15:55 ` Armin Wolf
1 sibling, 1 reply; 50+ messages in thread
From: Stephen Horvath @ 2024-06-04 8:48 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf
Hi,
On 4/6/24 14:02, Guenter Roeck wrote:
> Add support for SPD5118 (Jedec JESD300) compliant temperature
> sensors. Such sensors are typically found on DDR5 memory modules.
>
> Cc: René Rebe <rene@exactcode.de>
> Cc: Thomas Weißschuh <linux@weissschuh.net>
> Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
> Tested-by: Thomas Weißschuh <linux@weissschuh.net>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: No change
>
> v3: Shorten JESD300-5B.01 to JESD300; 5B.01 refers to the version
> of the standard
> Drop unnecessary 'attr' parameter from spd5118_{read,write}_enable()
>
> v2: Drop PEC property documentation
> Add note indicating that alarm attributes are sticky until read
> to documentation
> Fix detect function
> Fix misspelling in Makefile (CONFIG_SENSORS_SPD5118->CONFIG_SENSORS_SPD5118)
>
> Documentation/hwmon/index.rst | 1 +
> Documentation/hwmon/spd5118.rst | 55 ++++
> drivers/hwmon/Kconfig | 12 +
> drivers/hwmon/Makefile | 1 +
> drivers/hwmon/spd5118.c | 481 ++++++++++++++++++++++++++++++++
> 5 files changed, 550 insertions(+)
> create mode 100644 Documentation/hwmon/spd5118.rst
> create mode 100644 drivers/hwmon/spd5118.c
>
It seems to report correct temperatures for my sticks, so I guess:
Tested-by: Stephen Horvath <s.horvath@outlook.com.au>
Thanks,
Steve
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data
2024-06-04 4:02 ` [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data Guenter Roeck
@ 2024-06-04 11:58 ` Armin Wolf
2024-06-04 14:30 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Armin Wolf @ 2024-06-04 11:58 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> Add support for reading SPD NVMEM data from SPD5118 (Jedec JESD300)
> compliant memory modules. NVMEM write operation is not supported.
>
> NVMEM support is optional. If CONFIG_NVMEM is disabled, the driver will
> still instantiate but not provide NVMEM attribute files.
>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: Use NVMEM_DEVID_NONE instead of NVMEM_DEVID_AUTO
> Ignore nvmem registration failure if nvmem support is disabled
>
> v3: New patch
>
> Documentation/hwmon/spd5118.rst | 8 ++
> drivers/hwmon/spd5118.c | 147 +++++++++++++++++++++++++++++++-
> 2 files changed, 151 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/hwmon/spd5118.rst b/Documentation/hwmon/spd5118.rst
> index a15d75aa2066..ef7338f46575 100644
> --- a/Documentation/hwmon/spd5118.rst
> +++ b/Documentation/hwmon/spd5118.rst
> @@ -53,3 +53,11 @@ temp1_crit_alarm Temperature critical alarm
>
> Alarm attributes are sticky until read and will be cleared afterwards
> unless the alarm condition still applies.
> +
> +
> +SPD (Serial Presence Detect) support
> +------------------------------------
> +
> +The driver also supports reading the SPD NVRAM on SPD5118 compatible chips.
> +SPD data is available from the 'eeprom' binary attribute file attached to the
> +chip's I2C device.
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index d55c073ff5fd..5cb5e52c0a38 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -20,6 +20,8 @@
> #include <linux/i2c.h>
> #include <linux/hwmon.h>
> #include <linux/module.h>
> +#include <linux/mutex.h>
> +#include <linux/nvmem-provider.h>
> #include <linux/pm.h>
> #include <linux/regmap.h>
> #include <linux/units.h>
> @@ -53,12 +55,31 @@ static const unsigned short normal_i2c[] = {
>
> #define SPD5118_TS_DISABLE BIT(0) /* temperature sensor disable */
>
> +#define SPD5118_LEGACY_MODE_ADDR BIT(3)
> +#define SPD5118_LEGACY_PAGE_MASK GENMASK(2, 0)
> +#define SPD5118_LEGACY_MODE_MASK (SPD5118_LEGACY_MODE_ADDR | SPD5118_LEGACY_PAGE_MASK)
> +
> +
> +#define SPD5118_NUM_PAGES 8
> +#define SPD5118_PAGE_SIZE 128
> +#define SPD5118_PAGE_SHIFT 7
> +#define SPD5118_PAGE_MASK GENMASK(6, 0)
> +#define SPD5118_EEPROM_BASE 0x80
> +#define SPD5118_EEPROM_SIZE (SPD5118_PAGE_SIZE * SPD5118_NUM_PAGES)
> +
> /* Temperature unit in millicelsius */
> #define SPD5118_TEMP_UNIT (MILLIDEGREE_PER_DEGREE / 4)
> /* Representable temperature range in millicelsius */
> #define SPD5118_TEMP_RANGE_MIN -256000
> #define SPD5118_TEMP_RANGE_MAX 255750
>
> +struct spd5118_data {
> + struct regmap *regmap;
> + struct mutex nvmem_lock;
> +};
> +
> +/* hwmon */
> +
> static int spd5118_temp_from_reg(u16 reg)
> {
> int temp = sign_extend32(reg >> 2, 10);
> @@ -360,9 +381,111 @@ static const struct hwmon_chip_info spd5118_chip_info = {
> .info = spd5118_info,
> };
>
> +/* nvmem */
> +
> +static int spd5118_nvmem_set_page(struct regmap *regmap, int page)
> +{
> + unsigned int old_page;
> + int err;
> +
> + err = regmap_read(regmap, SPD5118_REG_I2C_LEGACY_MODE, &old_page);
> + if (err)
> + return err;
> +
> + if (page != (old_page & SPD5118_LEGACY_MODE_MASK)) {
> + /* Update page and explicitly select 1-byte addressing */
> + err = regmap_update_bits(regmap, SPD5118_REG_I2C_LEGACY_MODE,
> + SPD5118_LEGACY_MODE_MASK, page);
> + if (err)
> + return err;
> +
> + /* Selected new NVMEM page, drop cached data */
> + regcache_drop_region(regmap, SPD5118_EEPROM_BASE, 0xff);
> + }
> +
> + return 0;
> +}
> +
> +static ssize_t spd5118_nvmem_read_page(struct regmap *regmap, char *buf,
> + unsigned int offset, size_t count)
> +{
> + int err;
> +
> + err = spd5118_nvmem_set_page(regmap, offset >> SPD5118_PAGE_SHIFT);
> + if (err)
> + return err;
> +
> + offset &= SPD5118_PAGE_MASK;
> +
> + /* Can't cross page boundaries */
> + if (offset + count > SPD5118_PAGE_SIZE)
> + count = SPD5118_PAGE_SIZE - offset;
> +
> + err = regmap_bulk_read(regmap, SPD5118_EEPROM_BASE + offset, buf, count);
> + if (err)
> + return err;
> +
> + return count;
> +}
> +
> +static int spd5118_nvmem_read(void *priv, unsigned int off, void *val, size_t count)
> +{
> + struct spd5118_data *data = priv;
> + char *buf = val;
> + int ret;
> +
> + if (unlikely(!count))
> + return count;
> +
> + if (off + count > SPD5118_EEPROM_SIZE)
> + return -EINVAL;
> +
> + mutex_lock(&data->nvmem_lock);
> +
> + while (count) {
> + ret = spd5118_nvmem_read_page(data->regmap, buf, off, count);
> + if (ret < 0) {
> + mutex_unlock(&data->nvmem_lock);
> + return ret;
> + }
> + buf += ret;
> + off += ret;
> + count -= ret;
> + }
> + mutex_unlock(&data->nvmem_lock);
> + return 0;
> +}
> +
> +static int spd5118_nvmem_init(struct device *dev, struct spd5118_data *data)
> +{
> + struct nvmem_config nvmem_config = {
> + .type = NVMEM_TYPE_EEPROM,
> + .name = dev_name(dev),
> + .id = NVMEM_DEVID_NONE,
> + .dev = dev,
> + .base_dev = dev,
> + .read_only = true,
> + .root_only = false,
> + .owner = THIS_MODULE,
> + .compat = true,
Hi,
do we really need this setting here?
> + .reg_read = spd5118_nvmem_read,
> + .priv = data,
> + .stride = 1,
> + .word_size = 1,
> + .size = SPD5118_EEPROM_SIZE,
> + };
> + struct nvmem_device *nvmem;
> +
> + nvmem = devm_nvmem_register(dev, &nvmem_config);
> + return PTR_ERR_OR_ZERO(nvmem);
> +}
> +
> +/* regmap */
> +
> static bool spd5118_writeable_reg(struct device *dev, unsigned int reg)
> {
> switch (reg) {
> + case SPD5118_REG_I2C_LEGACY_MODE:
> case SPD5118_REG_TEMP_CLR:
> case SPD5118_REG_TEMP_CONFIG:
> case SPD5118_REG_TEMP_MAX:
> @@ -396,7 +519,7 @@ static bool spd5118_volatile_reg(struct device *dev, unsigned int reg)
> static const struct regmap_config spd5118_regmap_config = {
> .reg_bits = 8,
> .val_bits = 8,
> - .max_register = SPD5118_REG_TEMP_STATUS,
> + .max_register = 0xff,
> .writeable_reg = spd5118_writeable_reg,
> .volatile_reg = spd5118_volatile_reg,
> .cache_type = REGCACHE_MAPLE,
> @@ -406,10 +529,15 @@ static int spd5118_probe(struct i2c_client *client)
> {
> struct device *dev = &client->dev;
> unsigned int regval, revision, vendor, bank;
> + struct spd5118_data *data;
> struct device *hwmon_dev;
> struct regmap *regmap;
> int err;
>
> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> +
> regmap = devm_regmap_init_i2c(client, &spd5118_regmap_config);
> if (IS_ERR(regmap))
> return dev_err_probe(dev, PTR_ERR(regmap), "regmap init failed\n");
> @@ -433,7 +561,16 @@ static int spd5118_probe(struct i2c_client *client)
> if (!spd5118_vendor_valid(bank, vendor))
> return -ENODEV;
>
> - dev_set_drvdata(dev, regmap);
> + data->regmap = regmap;
> + mutex_init(&data->nvmem_lock);
> + dev_set_drvdata(dev, data);
> +
> + err = spd5118_nvmem_init(dev, data);
> + /* Ignore if NVMEM support is disabled */
> + if (err && err != -EOPNOTSUPP) {
Maybe we can use IS_REACHABLE(CONFIG_NVMEM) here?
Thanks,
Armin Wolf
> + dev_err_probe(dev, err, "failed to register nvmem\n");
> + return err;
> + }
>
> hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
> regmap, &spd5118_chip_info,
> @@ -454,7 +591,8 @@ static int spd5118_probe(struct i2c_client *client)
>
> static int spd5118_suspend(struct device *dev)
> {
> - struct regmap *regmap = dev_get_drvdata(dev);
> + struct spd5118_data *data = dev_get_drvdata(dev);
> + struct regmap *regmap = data->regmap;
> u32 regval;
> int err;
>
> @@ -479,7 +617,8 @@ static int spd5118_suspend(struct device *dev)
>
> static int spd5118_resume(struct device *dev)
> {
> - struct regmap *regmap = dev_get_drvdata(dev);
> + struct spd5118_data *data = dev_get_drvdata(dev);
> + struct regmap *regmap = data->regmap;
>
> regcache_cache_only(regmap, false);
> return regcache_sync(regmap);
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 4:37 ` Thomas Weißschuh
@ 2024-06-04 14:04 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 14:04 UTC (permalink / raw)
To: Thomas Weißschuh
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe, Armin Wolf,
Stephen Horvath
On 6/3/24 21:37, Thomas Weißschuh wrote:
> On 2024-06-03 21:02:37+0000, Guenter Roeck wrote:
>> With SPD5118 chip detection for the most part handled by the i2c-smbus
>> core using DMI information, the spd5118 driver no longer needs to
>> auto-detect spd5118 compliant chips.
>>
>> Auto-detection by the driver is still needed on systems with no DMI support
>> or on systems with more than eight DIMMs and can not be removed entirely.
>> However, it affects boot time and introduces the risk of mis-identifying
>> chips. Add configuration option to be able to disable it on systems where
>> chip detection is handled outside the driver.
>>
>> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> v4: New patch
>>
>> drivers/hwmon/Kconfig | 18 ++++++++++++++++++
>> drivers/hwmon/spd5118.c | 4 +++-
>> 2 files changed, 21 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
>> index 7a84e7637b51..0bb1bdee3e43 100644
>> --- a/drivers/hwmon/Kconfig
>> +++ b/drivers/hwmon/Kconfig
>> @@ -2185,6 +2185,7 @@ config SENSORS_SPD5118
>> tristate "SPD5118 Compliant Temperature Sensors"
>> depends on I2C
>> select REGMAP_I2C
>> + select SENSORS_SPD5118_DETECT if !DMI
>> help
>> If you say yes here you get support for SPD5118 (JEDEC JESD300)
>> compliant temperature sensors. Such sensors are found on DDR5 memory
>> @@ -2193,6 +2194,23 @@ config SENSORS_SPD5118
>> This driver can also be built as a module. If so, the module
>> will be called spd5118.
>>
>> +config SENSORS_SPD5118_DETECT
>> + bool "Enable detect function"
>> + depends on SENSORS_SPD5118
>> + default y
>> + help
>> + If enabled, the driver auto-detects if a chip in the SPD address
>> + range is compliant to the SPD51888 standard and auto-instantiates
>> + if that is the case. If disabled, SPD5118 compliant devices have
>> + to be instantiated by other means. On systems with DMI support
>> + this will typically be done from DMI DDR detection code in the
>> + I2C SMBus subsystem.
>> + Disabling the detect function will speed up boot time and reduce
>> + the risk of mis-detecting SPD5118 compliant devices. In general
>> + it should only be enabled if necessary.
>> +
>> + If unsure, say Y.
>
> The combination of
>
> "In general it should only be enabled if necessary."
>
> and
>
> "default y" / "If unsure, say Y."
>
> looks weird.
>
Yes, I know. I just couldn't find a better wording.
>
> Also right now it is not possible to disable detection on non-DMI
> configurations. But when using OF, custom kernel code or userspace
> instantiation then neither DMI nor CONFIG_DETECT are necessary.
>
That is a good point.
> The following would support those usecases, too:
>
> config SENSORS_SPD5118_DETECT
> bool "Enable detect function"
> depends on SENSORS_SPD5118
> default !DMI
>
> (And no "select SENSORS_SPD5118_DETECT if !DMI")
>
I don't think "default !DMI" would be a good idea because DMI
is supported by multiple architectures, but only two X86 specific
controllers call i2c_register_spd().
"default !DMI || !X86" might work, though. I think I'll use that.
I'll rephrase the text and drop the "select".
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 7:44 ` Wolfram Sang
@ 2024-06-04 14:04 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 14:04 UTC (permalink / raw)
To: Wolfram Sang, linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Armin Wolf, Stephen Horvath
On 6/4/24 00:44, Wolfram Sang wrote:
>> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
>> .detect = spd5118_detect,
>> +#endif
>> .address_list = normal_i2c,
>> };
>
> So, I think we have too many Kconfig symbols already. What about using
> !DMI here?
>
That would be nice, but i2c_register_spd() is only called from i2c-i801.c
and, with the recent patch, from i2c-piix4.c. DMI is also supported on
arm, arm64, loongarch, and mips. i2c_register_spd() will not be called
on those systems or, more generally, if the adapter used to connect to
the DIMMs is not one of those two.
On top of that, it may be desirable to disable it for a system with DMI
support if that system boots from devicetree. I don't know if such a
system exists, but I would not want to bet that it doesn't.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data
2024-06-04 11:58 ` Armin Wolf
@ 2024-06-04 14:30 ` Guenter Roeck
2024-06-07 15:59 ` Armin Wolf
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 14:30 UTC (permalink / raw)
To: Armin Wolf, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
On 6/4/24 04:58, Armin Wolf wrote:
> Am 04.06.24 um 06:02 schrieb Guenter Roeck:
>
>> Add support for reading SPD NVMEM data from SPD5118 (Jedec JESD300)
>> compliant memory modules. NVMEM write operation is not supported.
>>
>> NVMEM support is optional. If CONFIG_NVMEM is disabled, the driver will
>> still instantiate but not provide NVMEM attribute files.
>>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> v4: Use NVMEM_DEVID_NONE instead of NVMEM_DEVID_AUTO
>> Ignore nvmem registration failure if nvmem support is disabled
>>
>> v3: New patch
>>
>> Documentation/hwmon/spd5118.rst | 8 ++
>> drivers/hwmon/spd5118.c | 147 +++++++++++++++++++++++++++++++-
[ ... ]
>> +static int spd5118_nvmem_init(struct device *dev, struct spd5118_data *data)
>> +{
>> + struct nvmem_config nvmem_config = {
>> + .type = NVMEM_TYPE_EEPROM,
>> + .name = dev_name(dev),
>> + .id = NVMEM_DEVID_NONE,
>> + .dev = dev,
>> + .base_dev = dev,
>> + .read_only = true,
>> + .root_only = false,
>> + .owner = THIS_MODULE,
>> + .compat = true,
>
> Hi,
>
> do we really need this setting here?
>
The "eeprom" file is only created if both "base_dev" and "compat" are set.
decode-dimms depends on it. While decode-dimms has to be updated anyway,
I did not want to make that more complicated than necessary.
Another option would be not to use the nvmem subsystem in the first place,
similar to the ee1004 driver, but my understanding is that the use of the
nvmem subsystem is preferred.
[ ... ]
>> +
>> + err = spd5118_nvmem_init(dev, data);
>> + /* Ignore if NVMEM support is disabled */
>> + if (err && err != -EOPNOTSUPP) {
>
> Maybe we can use IS_REACHABLE(CONFIG_NVMEM) here?
>
We could, but I prefer to avoid conditionals in the code if possible,
the dummy devm_nvmem_register() is there specifically to cover that
situation, and no other driver does that. Also, since the underlying
functions are dummy, the compiler should optimize it all away if
CONFIG_NVMEM=n.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support
2024-06-04 8:45 ` Stephen Horvath
@ 2024-06-04 14:31 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 14:31 UTC (permalink / raw)
To: Stephen Horvath, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf
On 6/4/24 01:45, Stephen Horvath wrote:
> Hi,
>
> On 4/6/24 14:02, Guenter Roeck wrote:
>> Add suspend/resume support to ensure that limit and configuration
>> registers are updated and synchronized after a suspend/resume cycle.
>>
>> Cc: Armin Wolf <W_Armin@gmx.de>
>> Cc: Stephen Horvath <s.horvath@outlook.com.au>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> v4: Fix bug seen if the enable attribute was never read prior
>> to a suspend/resume cycle.
>
> I can confirm this works for my devices, so:
>
> Tested-by: Stephen Horvath <s.horvath@outlook.com.au>
>
Thanks a lot for testing!
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors
2024-06-04 8:48 ` Stephen Horvath
@ 2024-06-04 14:31 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-04 14:31 UTC (permalink / raw)
To: Stephen Horvath, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf
On 6/4/24 01:48, Stephen Horvath wrote:
> Hi,
>
> On 4/6/24 14:02, Guenter Roeck wrote:
>> Add support for SPD5118 (Jedec JESD300) compliant temperature
>> sensors. Such sensors are typically found on DDR5 memory modules.
>>
>> Cc: René Rebe <rene@exactcode.de>
>> Cc: Thomas Weißschuh <linux@weissschuh.net>
>> Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
>> Tested-by: Thomas Weißschuh <linux@weissschuh.net>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> v4: No change
>>
>> v3: Shorten JESD300-5B.01 to JESD300; 5B.01 refers to the version
>> of the standard
>> Drop unnecessary 'attr' parameter from spd5118_{read,write}_enable()
>>
>> v2: Drop PEC property documentation
>> Add note indicating that alarm attributes are sticky until read
>> to documentation
>> Fix detect function
>> Fix misspelling in Makefile (CONFIG_SENSORS_SPD5118->CONFIG_SENSORS_SPD5118)
>>
>> Documentation/hwmon/index.rst | 1 +
>> Documentation/hwmon/spd5118.rst | 55 ++++
>> drivers/hwmon/Kconfig | 12 +
>> drivers/hwmon/Makefile | 1 +
>> drivers/hwmon/spd5118.c | 481 ++++++++++++++++++++++++++++++++
>> 5 files changed, 550 insertions(+)
>> create mode 100644 Documentation/hwmon/spd5118.rst
>> create mode 100644 drivers/hwmon/spd5118.c
>>
>
> It seems to report correct temperatures for my sticks, so I guess:
>
> Tested-by: Stephen Horvath <s.horvath@outlook.com.au>
>
Thanks!
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* [PATCH v4a 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
2024-06-04 4:37 ` Thomas Weißschuh
2024-06-04 7:44 ` Wolfram Sang
@ 2024-06-05 2:19 ` Guenter Roeck
2024-06-05 9:22 ` Thomas Weißschuh
2024-06-07 16:08 ` Armin Wolf
2 siblings, 2 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-05 2:19 UTC (permalink / raw)
To: linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh, Armin Wolf,
Stephen Horvath, Guenter Roeck
With SPD5118 chip detection for the most part handled by the i2c-smbus
core using DMI information, the spd5118 driver no longer needs to
auto-detect spd5118 compliant chips.
Auto-detection by the driver is still needed on systems with no DMI support
or on systems with more than eight DIMMs and can not be removed entirely.
However, it affects boot time and introduces the risk of mis-identifying
chips. Add configuration option to be able to disable it on systems where
chip detection is handled outside the driver.
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
Sent as v4a to avoid resending the entire series.
v4a:
Do not auto-select SENSORS_SPD5118_DETECT if DMI is disabled
Modify help text of SENSORS_SPD5118_DETECT
Default SENSORS_SPD5118_DETECT to y if (!DMI || !X86)
v4: New patch
drivers/hwmon/Kconfig | 19 +++++++++++++++++++
drivers/hwmon/spd5118.c | 4 +++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 7a84e7637b51..d5eced417fc3 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -2193,6 +2193,25 @@ config SENSORS_SPD5118
This driver can also be built as a module. If so, the module
will be called spd5118.
+config SENSORS_SPD5118_DETECT
+ bool "Enable detect function"
+ depends on SENSORS_SPD5118
+ default (!DMI || !X86)
+ help
+ If enabled, the driver auto-detects if a chip in the SPD address
+ range is compliant to the SPD51888 standard and auto-instantiates
+ if that is the case. If disabled, SPD5118 compliant devices have
+ to be instantiated by other means. On X86 systems with DMI support
+ this will typically be done from DMI DDR detection code in the
+ I2C SMBus subsystem. Devicetree based systems will instantiate
+ attached devices if the DIMMs are listed in the devicetree file.
+
+ Disabling the detect function will speed up boot time and reduce
+ the risk of mis-detecting SPD5118 compliant devices. However, it
+ may result in missed DIMMs under some circumstances.
+
+ If unsure, say Y.
+
config SENSORS_TC74
tristate "Microchip TC74"
depends on I2C
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index 5cb5e52c0a38..19d203283a21 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
}
/* Return 0 if detection is successful, -ENODEV otherwise */
-static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
+static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
{
struct i2c_adapter *adapter = client->adapter;
int regval;
@@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
},
.probe = spd5118_probe,
.id_table = spd5118_id,
+#ifdef CONFIG_SENSORS_SPD5118_DETECT
.detect = spd5118_detect,
+#endif
.address_list = normal_i2c,
};
--
2.39.2
^ permalink raw reply related [flat|nested] 50+ messages in thread
* Re: [PATCH v4a 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-05 2:19 ` [PATCH v4a " Guenter Roeck
@ 2024-06-05 9:22 ` Thomas Weißschuh
2024-06-05 14:04 ` Guenter Roeck
2024-06-07 16:08 ` Armin Wolf
1 sibling, 1 reply; 50+ messages in thread
From: Thomas Weißschuh @ 2024-06-05 9:22 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe, Armin Wolf,
Stephen Horvath
On 2024-06-04 19:19:07+0000, Guenter Roeck wrote:
> With SPD5118 chip detection for the most part handled by the i2c-smbus
> core using DMI information, the spd5118 driver no longer needs to
> auto-detect spd5118 compliant chips.
>
> Auto-detection by the driver is still needed on systems with no DMI support
> or on systems with more than eight DIMMs and can not be removed entirely.
> However, it affects boot time and introduces the risk of mis-identifying
> chips. Add configuration option to be able to disable it on systems where
> chip detection is handled outside the driver.
>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> Sent as v4a to avoid resending the entire series.
>
> v4a:
> Do not auto-select SENSORS_SPD5118_DETECT if DMI is disabled
> Modify help text of SENSORS_SPD5118_DETECT
> Default SENSORS_SPD5118_DETECT to y if (!DMI || !X86)
>
> v4: New patch
>
> drivers/hwmon/Kconfig | 19 +++++++++++++++++++
> drivers/hwmon/spd5118.c | 4 +++-
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 7a84e7637b51..d5eced417fc3 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -2193,6 +2193,25 @@ config SENSORS_SPD5118
> This driver can also be built as a module. If so, the module
> will be called spd5118.
>
> +config SENSORS_SPD5118_DETECT
> + bool "Enable detect function"
> + depends on SENSORS_SPD5118
> + default (!DMI || !X86)
> + help
> + If enabled, the driver auto-detects if a chip in the SPD address
> + range is compliant to the SPD51888 standard and auto-instantiates
> + if that is the case. If disabled, SPD5118 compliant devices have
> + to be instantiated by other means. On X86 systems with DMI support
> + this will typically be done from DMI DDR detection code in the
> + I2C SMBus subsystem. Devicetree based systems will instantiate
> + attached devices if the DIMMs are listed in the devicetree file.
> +
> + Disabling the detect function will speed up boot time and reduce
> + the risk of mis-detecting SPD5118 compliant devices. However, it
> + may result in missed DIMMs under some circumstances.
> +
> + If unsure, say Y.
> +
> config SENSORS_TC74
> tristate "Microchip TC74"
> depends on I2C
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index 5cb5e52c0a38..19d203283a21 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
> }
>
> /* Return 0 if detection is successful, -ENODEV otherwise */
> -static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> +static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> {
> struct i2c_adapter *adapter = client->adapter;
> int regval;
> @@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
> },
> .probe = spd5118_probe,
> .id_table = spd5118_id,
> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
> .detect = spd5118_detect,
> +#endif
> .address_list = normal_i2c,
> };
For the if-deffery I proposed something during the last review,
I'm not sure if you saw it. If you did, please ignore this comment:
.address_list is also only needed with CONFIG_SENSORS_SPD5118_DETECT.
If you use
.detect = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? spd5118_detect : NULL,
.address_list = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? normal_i2c : NULL,
then the need for __maybe_unused goes away and type checking is a tiny
bit better.
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
2024-06-04 7:32 ` Wolfram Sang
@ 2024-06-05 12:21 ` Paul Menzel
2024-06-05 13:56 ` Guenter Roeck
2024-06-07 16:06 ` Armin Wolf
2 siblings, 1 reply; 50+ messages in thread
From: Paul Menzel @ 2024-06-05 12:21 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Thank you so much for taking this on.
Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> Detect DDR5 memory and instantiate the SPD5118 driver automatically.
>
> Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v5: New patch
>
> drivers/i2c/i2c-smbus.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
> index 97f338b123b1..8a0dab835761 100644
> --- a/drivers/i2c/i2c-smbus.c
> +++ b/drivers/i2c/i2c-smbus.c
> @@ -382,6 +382,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
> case 0x1E: /* LPDDR4 */
> name = "ee1004";
> break;
> + case 0x22: /* DDR5 */
> + case 0x23: /* LPDDR5 */
> + name = "spd5118";
> + break;
> default:
> dev_info(&adap->dev,
> "Memory type 0x%02x not supported yet, not instantiating SPD\n",
Testing this on top of 6.10-rc2+ on a Supermicro X13SAE, Linux logs:
$ dmesg | grep -e "DMI:" -e "Linux version" -e i2c-0
[ 0.000000] Linux version
6.10.0-rc2.mx64.461-00036-g151dfab265df
(pmenzel@foreveralone.molgen.mpg.de) (gcc (GCC) 12.3.0, GNU ld (GNU
Binutils) 2.41) #74 SMP PREEMPT_DYNAMIC Wed Jun 5 08:24:59 CEST 2024
[ 0.000000] DMI: Supermicro Super Server/X13SAE, BIOS 2.0 10/17/2022
[ 0.000000] DMI: Memory slots populated: 4/4
[ 5.434488] i2c i2c-0: Successfully instantiated SPD at 0x50
[ 5.443848] i2c i2c-0: Successfully instantiated SPD at 0x51
[ 5.450033] i2c i2c-0: Successfully instantiated SPD at 0x52
[ 5.459378] i2c i2c-0: Successfully instantiated SPD at 0x53
Then with `sudo modprobe at24` and `sudo modprobe ee1004`,
`decode-dimms` shows:
$ sudo ./eeprom/decode-dimms
# decode-dimms version 4.3
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others
Number of SDRAM DIMMs detected and decoded: 0
This might be expected, and `decode-dimms` also needs to be updated.
Kind regards and thank you again for these patches,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-05 12:21 ` Paul Menzel
@ 2024-06-05 13:56 ` Guenter Roeck
2024-06-17 14:42 ` Paul Menzel
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-05 13:56 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Hi Paul,
On Wed, Jun 05, 2024 at 02:21:50PM +0200, Paul Menzel wrote:
> Dear Guenter,
>
>
> Thank you so much for taking this on.
>
> Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> > Detect DDR5 memory and instantiate the SPD5118 driver automatically.
> >
> > Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
> > Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > ---
> > v5: New patch
> >
> > drivers/i2c/i2c-smbus.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
> > index 97f338b123b1..8a0dab835761 100644
> > --- a/drivers/i2c/i2c-smbus.c
> > +++ b/drivers/i2c/i2c-smbus.c
> > @@ -382,6 +382,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
> > case 0x1E: /* LPDDR4 */
> > name = "ee1004";
> > break;
> > + case 0x22: /* DDR5 */
> > + case 0x23: /* LPDDR5 */
> > + name = "spd5118";
> > + break;
> > default:
> > dev_info(&adap->dev,
> > "Memory type 0x%02x not supported yet, not instantiating SPD\n",
>
> Testing this on top of 6.10-rc2+ on a Supermicro X13SAE, Linux logs:
>
> $ dmesg | grep -e "DMI:" -e "Linux version" -e i2c-0
> [ 0.000000] Linux version 6.10.0-rc2.mx64.461-00036-g151dfab265df
> (pmenzel@foreveralone.molgen.mpg.de) (gcc (GCC) 12.3.0, GNU ld (GNU
> Binutils) 2.41) #74 SMP PREEMPT_DYNAMIC Wed Jun 5 08:24:59 CEST 2024
> [ 0.000000] DMI: Supermicro Super Server/X13SAE, BIOS 2.0 10/17/2022
> [ 0.000000] DMI: Memory slots populated: 4/4
> [ 5.434488] i2c i2c-0: Successfully instantiated SPD at 0x50
> [ 5.443848] i2c i2c-0: Successfully instantiated SPD at 0x51
> [ 5.450033] i2c i2c-0: Successfully instantiated SPD at 0x52
> [ 5.459378] i2c i2c-0: Successfully instantiated SPD at 0x53
>
> Then with `sudo modprobe at24` and `sudo modprobe ee1004`, `decode-dimms`
> shows:
>
You'd actually have to load the spd5118 driver.
> $ sudo ./eeprom/decode-dimms
> # decode-dimms version 4.3
>
> Memory Serial Presence Detect Decoder
> By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
> Jean Delvare, Trent Piepho and others
>
>
> Number of SDRAM DIMMs detected and decoded: 0
>
> This might be expected, and `decode-dimms` also needs to be updated.
>
Correct. The hack below makes it detect the DIMMs, but the data format
is all different, so it is only really useful to validate reading
the EEPROM (i.e., the checksum over the first 512 bytes of the eeprom
is correct). With that patch applied, I get
Decoding EEPROM: /sys/bus/i2c/drivers/spd5118/0-0050
Guessing DIMM is in bank 1
Kernel driver used spd5118
---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-509 48 1 OK (0x47A2)
# of bytes written to SDRAM EEPROM 1024
Total number of bytes in EEPROM 1024
Fundamental Memory type DDR5 SDRAM
---=== Manufacturing Information ===---
Manufacturer Invalid
Custom Manufacturer Data 00 00 00 00 00 88 13 ("???????")
Manufacturing Location Code 0x08
Part Number Undefined
Revision Code 0x4C1D
Manufacturing Date 0x0C00
and so on.
Thanks,
Guenter
---
diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms
index 787b6f5..64b6e81 100755
--- a/eeprom/decode-dimms
+++ b/eeprom/decode-dimms
@@ -2407,7 +2407,12 @@ sub spd_sizes($)
my $bytes = shift;
my $type = $bytes->[2];
- if ($type == 12 || $type == 14 || $type == 16 || $type == 17) {
+ if ($type == 18 || $type == 19 || $type == 20 || $type == 21) {
+ # DDR5
+ my $spd_len = 256 * ((($bytes->[0] >> 4) & 7) + 1);
+ my $used = $spd_len;
+ return ($spd_len, $used);
+ } elsif ($type == 12 || $type == 14 || $type == 16 || $type == 17) {
# DDR4
my $spd_len = 256 * (($bytes->[0] >> 4) & 7);
my $used = 128 * ($bytes->[0] & 15);
@@ -2516,11 +2521,17 @@ sub calculate_crc($$$)
sub check_crc($)
{
my $bytes = shift;
+ my $is_ddr5 = ($bytes->[0] & 0x70) == 0x30;
my $crc_cover = $bytes->[0] & 0x80 ? 116 : 125;
+ my $crc_start = 126;
+ if ($is_ddr5) {
+ $crc_cover = 509;
+ $crc_start = 510;
+ }
my $crc = calculate_crc($bytes, 0, $crc_cover + 1);
- my $dimm_crc = ($bytes->[127] << 8) | $bytes->[126];
- return ("EEPROM CRC of bytes 0-$crc_cover",
+ my $dimm_crc = ($bytes->[$crc_start + 1] << 8) | $bytes->[$crc_start];
+ return ("EEPROM CRC of bytes 0-$crc_cover $bytes->[0] $is_ddr5",
($dimm_crc == $crc) ? 1 : 0,
sprintf("0x%04X", $dimm_crc),
sprintf("0x%04X", $crc));
@@ -2622,6 +2633,7 @@ sub get_dimm_list
if ($use_sysfs) {
@drivers = ('eeprom',
'at24',
+ 'spd5118',
'ee1004'); # DDR4
} else {
@drivers = ('eeprom');
@@ -2640,14 +2652,13 @@ sub get_dimm_list
# We look for I2C devices like 0-0050 or 2-0051
next unless $file =~ /^\d+-[\da-f]+$/i;
next unless -d "$dir/$file";
-
# Device name must be eeprom (driver eeprom)
# spd (driver at24) or ee1004 (driver ee1004)
my $attr = sysfs_device_attribute("$dir/$file", "name");
next unless defined $attr &&
($attr eq "eeprom" ||
$attr eq "spd" ||
- $attr eq "ee1004"); # DDR4
+ $attr eq "spd5118" || $attr eq "ee1004"); # DDR4
} else {
next unless $file =~ /^eeprom-/;
}
@@ -2681,7 +2692,7 @@ sub get_dimm_list
@dimm = get_dimm_list() unless $use_hexdump;
for my $i (0 .. $#dimm) {
- my @bytes = readspd(0, 128, $dimm[$i]->{file});
+ my @bytes = readspd(0, 512, $dimm[$i]->{file});
$dimm[$i]->{bytes} = \@bytes;
$dimm[$i]->{is_rambus} = $bytes[0] < 4; # Simple heuristic
if ($dimm[$i]->{is_rambus} || $bytes[2] < 9) {
^ permalink raw reply related [flat|nested] 50+ messages in thread
* Re: [PATCH v4a 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-05 9:22 ` Thomas Weißschuh
@ 2024-06-05 14:04 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-05 14:04 UTC (permalink / raw)
To: Thomas Weißschuh
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe, Armin Wolf,
Stephen Horvath
On 6/5/24 02:22, Thomas Weißschuh wrote:
> On 2024-06-04 19:19:07+0000, Guenter Roeck wrote:
>> With SPD5118 chip detection for the most part handled by the i2c-smbus
>> core using DMI information, the spd5118 driver no longer needs to
>> auto-detect spd5118 compliant chips.
>>
>> Auto-detection by the driver is still needed on systems with no DMI support
>> or on systems with more than eight DIMMs and can not be removed entirely.
>> However, it affects boot time and introduces the risk of mis-identifying
>> chips. Add configuration option to be able to disable it on systems where
>> chip detection is handled outside the driver.
>>
>> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> Sent as v4a to avoid resending the entire series.
>>
>> v4a:
>> Do not auto-select SENSORS_SPD5118_DETECT if DMI is disabled
>> Modify help text of SENSORS_SPD5118_DETECT
>> Default SENSORS_SPD5118_DETECT to y if (!DMI || !X86)
>>
>> v4: New patch
>>
>> drivers/hwmon/Kconfig | 19 +++++++++++++++++++
>> drivers/hwmon/spd5118.c | 4 +++-
>> 2 files changed, 22 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
>> index 7a84e7637b51..d5eced417fc3 100644
>> --- a/drivers/hwmon/Kconfig
>> +++ b/drivers/hwmon/Kconfig
>> @@ -2193,6 +2193,25 @@ config SENSORS_SPD5118
>> This driver can also be built as a module. If so, the module
>> will be called spd5118.
>>
>> +config SENSORS_SPD5118_DETECT
>> + bool "Enable detect function"
>> + depends on SENSORS_SPD5118
>> + default (!DMI || !X86)
>> + help
>> + If enabled, the driver auto-detects if a chip in the SPD address
>> + range is compliant to the SPD51888 standard and auto-instantiates
>> + if that is the case. If disabled, SPD5118 compliant devices have
>> + to be instantiated by other means. On X86 systems with DMI support
>> + this will typically be done from DMI DDR detection code in the
>> + I2C SMBus subsystem. Devicetree based systems will instantiate
>> + attached devices if the DIMMs are listed in the devicetree file.
>> +
>> + Disabling the detect function will speed up boot time and reduce
>> + the risk of mis-detecting SPD5118 compliant devices. However, it
>> + may result in missed DIMMs under some circumstances.
>> +
>> + If unsure, say Y.
>> +
>> config SENSORS_TC74
>> tristate "Microchip TC74"
>> depends on I2C
>> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
>> index 5cb5e52c0a38..19d203283a21 100644
>> --- a/drivers/hwmon/spd5118.c
>> +++ b/drivers/hwmon/spd5118.c
>> @@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
>> }
>>
>> /* Return 0 if detection is successful, -ENODEV otherwise */
>> -static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
>> +static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
>> {
>> struct i2c_adapter *adapter = client->adapter;
>> int regval;
>> @@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
>> },
>> .probe = spd5118_probe,
>> .id_table = spd5118_id,
>> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
>> .detect = spd5118_detect,
>> +#endif
>> .address_list = normal_i2c,
>> };
>
> For the if-deffery I proposed something during the last review,
> I'm not sure if you saw it. If you did, please ignore this comment:
>
I missed that, sorry (and I hope I didn't miss anything else).
>
> .address_list is also only needed with CONFIG_SENSORS_SPD5118_DETECT.
>
> If you use
>
> .detect = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? spd5118_detect : NULL,
> .address_list = IS_ENABLED(CONFIG_SENSORS_SPD5118_DETECT) ? normal_i2c : NULL,
>
> then the need for __maybe_unused goes away and type checking is a tiny
> bit better.
It does let me drop the #ifdef, so I agree it is a bit better.
I made that change, but I'll wait for a couple of days before sending
the updated version to give others time for additional feedback.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors
2024-06-04 4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
2024-06-04 8:48 ` Stephen Horvath
@ 2024-06-07 15:55 ` Armin Wolf
1 sibling, 0 replies; 50+ messages in thread
From: Armin Wolf @ 2024-06-07 15:55 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> Add support for SPD5118 (Jedec JESD300) compliant temperature
> sensors. Such sensors are typically found on DDR5 memory modules.
Tested-by: Armin Wolf <W_Armin@gmx.de>
> Cc: René Rebe <rene@exactcode.de>
> Cc: Thomas Weißschuh <linux@weissschuh.net>
> Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
> Tested-by: Thomas Weißschuh <linux@weissschuh.net>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: No change
>
> v3: Shorten JESD300-5B.01 to JESD300; 5B.01 refers to the version
> of the standard
> Drop unnecessary 'attr' parameter from spd5118_{read,write}_enable()
>
> v2: Drop PEC property documentation
> Add note indicating that alarm attributes are sticky until read
> to documentation
> Fix detect function
> Fix misspelling in Makefile (CONFIG_SENSORS_SPD5118->CONFIG_SENSORS_SPD5118)
>
> Documentation/hwmon/index.rst | 1 +
> Documentation/hwmon/spd5118.rst | 55 ++++
> drivers/hwmon/Kconfig | 12 +
> drivers/hwmon/Makefile | 1 +
> drivers/hwmon/spd5118.c | 481 ++++++++++++++++++++++++++++++++
> 5 files changed, 550 insertions(+)
> create mode 100644 Documentation/hwmon/spd5118.rst
> create mode 100644 drivers/hwmon/spd5118.c
>
> diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
> index 03d313af469a..6e7b8726b60c 100644
> --- a/Documentation/hwmon/index.rst
> +++ b/Documentation/hwmon/index.rst
> @@ -215,6 +215,7 @@ Hardware Monitoring Kernel Drivers
> smsc47m192
> smsc47m1
> sparx5-temp
> + spd5118
> stpddc60
> surface_fan
> sy7636a-hwmon
> diff --git a/Documentation/hwmon/spd5118.rst b/Documentation/hwmon/spd5118.rst
> new file mode 100644
> index 000000000000..a15d75aa2066
> --- /dev/null
> +++ b/Documentation/hwmon/spd5118.rst
> @@ -0,0 +1,55 @@
> +.. SPDX-License-Identifier: GPL-2.0-or-later
> +
> +Kernel driver spd5118
> +=====================
> +
> +Supported chips:
> +
> + * SPD5118 (JEDEC JESD300) compliant temperature sensor chips
> +
> + JEDEC standard download:
> + https://www.jedec.org/standards-documents/docs/jesd300-5b01
> + (account required)
> +
> +
> + Prefix: 'spd5118'
> +
> + Addresses scanned: I2C 0x50 - 0x57
> +
> +Author:
> + Guenter Roeck <linux@roeck-us.net>
> +
> +
> +Description
> +-----------
> +
> +This driver implements support for SPD5118 (JEDEC JESD300) compliant temperature
> +sensors, which are used on many DDR5 memory modules. Some systems use the sensor
> +to prevent memory overheating by automatically throttling the memory controller.
> +
> +The driver auto-detects SPD5118 compliant chips, but can also be instantiated
> +using devicetree/firmware nodes.
> +
> +A SPD5118 compliant chip supports a single temperature sensor. Critical minimum,
> +minimum, maximum, and critical temperature can be configured. There are alarms
> +for low critical, low, high, and critical thresholds.
> +
> +
> +Hardware monitoring sysfs entries
> +---------------------------------
> +
> +======================= ==================================
> +temp1_input Temperature (RO)
> +temp1_lcrit Low critical high temperature (RW)
> +temp1_min Minimum temperature (RW)
> +temp1_max Maximum temperature (RW)
> +temp1_crit Critical high temperature (RW)
> +
> +temp1_lcrit_alarm Temperature low critical alarm
> +temp1_min_alarm Temperature low alarm
> +temp1_max_alarm Temperature high alarm
> +temp1_crit_alarm Temperature critical alarm
> +======================= ==================================
> +
> +Alarm attributes are sticky until read and will be cleared afterwards
> +unless the alarm condition still applies.
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index e14ae18a973b..7a84e7637b51 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -2181,6 +2181,18 @@ config SENSORS_INA3221
> This driver can also be built as a module. If so, the module
> will be called ina3221.
>
> +config SENSORS_SPD5118
> + tristate "SPD5118 Compliant Temperature Sensors"
> + depends on I2C
> + select REGMAP_I2C
> + help
> + If you say yes here you get support for SPD5118 (JEDEC JESD300)
> + compliant temperature sensors. Such sensors are found on DDR5 memory
> + modules.
> +
> + This driver can also be built as a module. If so, the module
> + will be called spd5118.
> +
> config SENSORS_TC74
> tristate "Microchip TC74"
> depends on I2C
> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
> index e3f25475d1f0..6574ca67d761 100644
> --- a/drivers/hwmon/Makefile
> +++ b/drivers/hwmon/Makefile
> @@ -207,6 +207,7 @@ obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
> obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
> obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
> obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
> +obj-$(CONFIG_SENSORS_SPD5118) += spd5118.o
> obj-$(CONFIG_SENSORS_STTS751) += stts751.o
> obj-$(CONFIG_SENSORS_SURFACE_FAN)+= surface_fan.o
> obj-$(CONFIG_SENSORS_SY7636A) += sy7636a-hwmon.o
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> new file mode 100644
> index 000000000000..d3fc0ae17743
> --- /dev/null
> +++ b/drivers/hwmon/spd5118.c
> @@ -0,0 +1,481 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Driver for Jedec 5118 compliant temperature sensors
> + *
> + * Derived from https://github.com/Steve-Tech/SPD5118-DKMS
> + * Originally from T/2 driver at https://t2sde.org/packages/linux
> + * Copyright (c) 2023 René Rebe, ExactCODE GmbH; Germany.
> + *
> + * Copyright (c) 2024 Guenter Roeck
> + *
> + * Inspired by ee1004.c and jc42.c.
> + *
> + * SPD5118 compliant temperature sensors are typically used on DDR5
> + * memory modules.
> + */
> +
> +#include <linux/bitops.h>
> +#include <linux/bits.h>
> +#include <linux/err.h>
> +#include <linux/i2c.h>
> +#include <linux/hwmon.h>
> +#include <linux/module.h>
> +#include <linux/regmap.h>
> +#include <linux/units.h>
> +
> +/* Addresses to scan */
> +static const unsigned short normal_i2c[] = {
> + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, I2C_CLIENT_END };
> +
> +/* SPD5118 registers. */
> +#define SPD5118_REG_TYPE 0x00 /* MR0:MR1 */
> +#define SPD5118_REG_REVISION 0x02 /* MR2 */
> +#define SPD5118_REG_VENDOR 0x03 /* MR3:MR4 */
> +#define SPD5118_REG_CAPABILITY 0x05 /* MR5 */
> +#define SPD5118_REG_I2C_LEGACY_MODE 0x0B /* MR11 */
> +#define SPD5118_REG_TEMP_CLR 0x13 /* MR19 */
> +#define SPD5118_REG_ERROR_CLR 0x14 /* MR20 */
> +#define SPD5118_REG_TEMP_CONFIG 0x1A /* MR26 */
> +#define SPD5118_REG_TEMP_MAX 0x1c /* MR28:MR29 */
> +#define SPD5118_REG_TEMP_MIN 0x1e /* MR30:MR31 */
> +#define SPD5118_REG_TEMP_CRIT 0x20 /* MR32:MR33 */
> +#define SPD5118_REG_TEMP_LCRIT 0x22 /* MR34:MR35 */
> +#define SPD5118_REG_TEMP 0x31 /* MR49:MR50 */
> +#define SPD5118_REG_TEMP_STATUS 0x33 /* MR51 */
> +
> +#define SPD5118_TEMP_STATUS_HIGH BIT(0)
> +#define SPD5118_TEMP_STATUS_LOW BIT(1)
> +#define SPD5118_TEMP_STATUS_CRIT BIT(2)
> +#define SPD5118_TEMP_STATUS_LCRIT BIT(3)
> +
> +#define SPD5118_CAP_TS_SUPPORT BIT(1) /* temperature sensor support */
> +
> +#define SPD5118_TS_DISABLE BIT(0) /* temperature sensor disable */
> +
> +/* Temperature unit in millicelsius */
> +#define SPD5118_TEMP_UNIT (MILLIDEGREE_PER_DEGREE / 4)
> +/* Representable temperature range in millicelsius */
> +#define SPD5118_TEMP_RANGE_MIN -256000
> +#define SPD5118_TEMP_RANGE_MAX 255750
> +
> +static int spd5118_temp_from_reg(u16 reg)
> +{
> + int temp = sign_extend32(reg >> 2, 10);
> +
> + return temp * SPD5118_TEMP_UNIT;
> +}
> +
> +static u16 spd5118_temp_to_reg(long temp)
> +{
> + temp = clamp_val(temp, SPD5118_TEMP_RANGE_MIN, SPD5118_TEMP_RANGE_MAX);
> + return (DIV_ROUND_CLOSEST(temp, SPD5118_TEMP_UNIT) & 0x7ff) << 2;
> +}
> +
> +static int spd5118_read_temp(struct regmap *regmap, u32 attr, long *val)
> +{
> + int reg, err;
> + u8 regval[2];
> + u16 temp;
> +
> + switch (attr) {
> + case hwmon_temp_input:
> + reg = SPD5118_REG_TEMP;
> + break;
> + case hwmon_temp_max:
> + reg = SPD5118_REG_TEMP_MAX;
> + break;
> + case hwmon_temp_min:
> + reg = SPD5118_REG_TEMP_MIN;
> + break;
> + case hwmon_temp_crit:
> + reg = SPD5118_REG_TEMP_CRIT;
> + break;
> + case hwmon_temp_lcrit:
> + reg = SPD5118_REG_TEMP_LCRIT;
> + break;
> + default:
> + return -EOPNOTSUPP;
> + }
> +
> + err = regmap_bulk_read(regmap, reg, regval, 2);
> + if (err)
> + return err;
> +
> + temp = (regval[1] << 8) | regval[0];
> +
> + *val = spd5118_temp_from_reg(temp);
> + return 0;
> +}
> +
> +static int spd5118_read_alarm(struct regmap *regmap, u32 attr, long *val)
> +{
> + unsigned int mask, regval;
> + int err;
> +
> + switch (attr) {
> + case hwmon_temp_max_alarm:
> + mask = SPD5118_TEMP_STATUS_HIGH;
> + break;
> + case hwmon_temp_min_alarm:
> + mask = SPD5118_TEMP_STATUS_LOW;
> + break;
> + case hwmon_temp_crit_alarm:
> + mask = SPD5118_TEMP_STATUS_CRIT;
> + break;
> + case hwmon_temp_lcrit_alarm:
> + mask = SPD5118_TEMP_STATUS_LCRIT;
> + break;
> + default:
> + return -EOPNOTSUPP;
> + }
> +
> + err = regmap_read(regmap, SPD5118_REG_TEMP_STATUS, ®val);
> + if (err < 0)
> + return err;
> + *val = !!(regval & mask);
> + if (*val)
> + return regmap_write(regmap, SPD5118_REG_TEMP_CLR, mask);
> + return 0;
> +}
> +
> +static int spd5118_read_enable(struct regmap *regmap, long *val)
> +{
> + u32 regval;
> + int err;
> +
> + err = regmap_read(regmap, SPD5118_REG_TEMP_CONFIG, ®val);
> + if (err < 0)
> + return err;
> + *val = !(regval & SPD5118_TS_DISABLE);
> + return 0;
> +}
> +
> +static int spd5118_read(struct device *dev, enum hwmon_sensor_types type,
> + u32 attr, int channel, long *val)
> +{
> + struct regmap *regmap = dev_get_drvdata(dev);
> +
> + if (type != hwmon_temp)
> + return -EOPNOTSUPP;
> +
> + switch (attr) {
> + case hwmon_temp_input:
> + case hwmon_temp_max:
> + case hwmon_temp_min:
> + case hwmon_temp_crit:
> + case hwmon_temp_lcrit:
> + return spd5118_read_temp(regmap, attr, val);
> + case hwmon_temp_max_alarm:
> + case hwmon_temp_min_alarm:
> + case hwmon_temp_crit_alarm:
> + case hwmon_temp_lcrit_alarm:
> + return spd5118_read_alarm(regmap, attr, val);
> + case hwmon_temp_enable:
> + return spd5118_read_enable(regmap, val);
> + default:
> + return -EOPNOTSUPP;
> + }
> +}
> +
> +static int spd5118_write_temp(struct regmap *regmap, u32 attr, long val)
> +{
> + u8 regval[2];
> + u16 temp;
> + int reg;
> +
> + switch (attr) {
> + case hwmon_temp_max:
> + reg = SPD5118_REG_TEMP_MAX;
> + break;
> + case hwmon_temp_min:
> + reg = SPD5118_REG_TEMP_MIN;
> + break;
> + case hwmon_temp_crit:
> + reg = SPD5118_REG_TEMP_CRIT;
> + break;
> + case hwmon_temp_lcrit:
> + reg = SPD5118_REG_TEMP_LCRIT;
> + break;
> + default:
> + return -EOPNOTSUPP;
> + }
> +
> + temp = spd5118_temp_to_reg(val);
> + regval[0] = temp & 0xff;
> + regval[1] = temp >> 8;
> +
> + return regmap_bulk_write(regmap, reg, regval, 2);
> +}
> +
> +static int spd5118_write_enable(struct regmap *regmap, long val)
> +{
> + if (val && val != 1)
> + return -EINVAL;
> +
> + return regmap_update_bits(regmap, SPD5118_REG_TEMP_CONFIG,
> + SPD5118_TS_DISABLE,
> + val ? 0 : SPD5118_TS_DISABLE);
> +}
> +
> +static int spd5118_temp_write(struct regmap *regmap, u32 attr, long val)
> +{
> + switch (attr) {
> + case hwmon_temp_max:
> + case hwmon_temp_min:
> + case hwmon_temp_crit:
> + case hwmon_temp_lcrit:
> + return spd5118_write_temp(regmap, attr, val);
> + case hwmon_temp_enable:
> + return spd5118_write_enable(regmap, val);
> + default:
> + return -EOPNOTSUPP;
> + }
> +}
> +
> +static int spd5118_write(struct device *dev, enum hwmon_sensor_types type,
> + u32 attr, int channel, long val)
> +{
> + struct regmap *regmap = dev_get_drvdata(dev);
> +
> + switch (type) {
> + case hwmon_temp:
> + return spd5118_temp_write(regmap, attr, val);
> + default:
> + return -EOPNOTSUPP;
> + }
> +}
> +
> +static umode_t spd5118_is_visible(const void *_data, enum hwmon_sensor_types type,
> + u32 attr, int channel)
> +{
> + if (type != hwmon_temp)
> + return 0;
> +
> + switch (attr) {
> + case hwmon_temp_input:
> + return 0444;
> + case hwmon_temp_min:
> + case hwmon_temp_max:
> + case hwmon_temp_lcrit:
> + case hwmon_temp_crit:
> + case hwmon_temp_enable:
> + return 0644;
> + case hwmon_temp_min_alarm:
> + case hwmon_temp_max_alarm:
> + case hwmon_temp_crit_alarm:
> + case hwmon_temp_lcrit_alarm:
> + return 0444;
> + default:
> + return 0;
> + }
> +}
> +
> +static inline bool spd5118_parity8(u8 w)
> +{
> + w ^= w >> 4;
> + return (0x6996 >> (w & 0xf)) & 1;
> +}
> +
> +/*
> + * Bank and vendor id are 8-bit fields with seven data bits and odd parity.
> + * Vendor IDs 0 and 0x7f are invalid.
> + * See Jedec standard JEP106BJ for details and a list of assigned vendor IDs.
> + */
> +static bool spd5118_vendor_valid(u8 bank, u8 id)
> +{
> + if (!spd5118_parity8(bank) || !spd5118_parity8(id))
> + return false;
> +
> + id &= 0x7f;
> + return id && id != 0x7f;
> +}
> +
> +/* Return 0 if detection is successful, -ENODEV otherwise */
> +static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> +{
> + struct i2c_adapter *adapter = client->adapter;
> + int regval;
> +
> + if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA |
> + I2C_FUNC_SMBUS_WORD_DATA))
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_word_swapped(client, SPD5118_REG_TYPE);
> + if (regval != 0x5118)
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_word_data(client, SPD5118_REG_VENDOR);
> + if (regval < 0 || !spd5118_vendor_valid(regval & 0xff, regval >> 8))
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_byte_data(client, SPD5118_REG_CAPABILITY);
> + if (regval < 0)
> + return -ENODEV;
> + if (!(regval & SPD5118_CAP_TS_SUPPORT) || (regval & 0xfc))
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_byte_data(client, SPD5118_REG_TEMP_CLR);
> + if (regval)
> + return -ENODEV;
> + regval = i2c_smbus_read_byte_data(client, SPD5118_REG_ERROR_CLR);
> + if (regval)
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_byte_data(client, SPD5118_REG_REVISION);
> + if (regval < 0 || (regval & 0xc1))
> + return -ENODEV;
> +
> + regval = i2c_smbus_read_byte_data(client, SPD5118_REG_TEMP_CONFIG);
> + if (regval < 0)
> + return -ENODEV;
> + if (regval & ~SPD5118_TS_DISABLE)
> + return -ENODEV;
> +
> + strscpy(info->type, "spd5118", I2C_NAME_SIZE);
> + return 0;
> +}
> +
> +static const struct hwmon_channel_info *spd5118_info[] = {
> + HWMON_CHANNEL_INFO(chip,
> + HWMON_C_REGISTER_TZ),
> + HWMON_CHANNEL_INFO(temp,
> + HWMON_T_INPUT |
> + HWMON_T_LCRIT | HWMON_T_LCRIT_ALARM |
> + HWMON_T_MIN | HWMON_T_MIN_ALARM |
> + HWMON_T_MAX | HWMON_T_MAX_ALARM |
> + HWMON_T_CRIT | HWMON_T_CRIT_ALARM |
> + HWMON_T_ENABLE),
> + NULL
> +};
> +
> +static const struct hwmon_ops spd5118_hwmon_ops = {
> + .is_visible = spd5118_is_visible,
> + .read = spd5118_read,
> + .write = spd5118_write,
> +};
> +
> +static const struct hwmon_chip_info spd5118_chip_info = {
> + .ops = &spd5118_hwmon_ops,
> + .info = spd5118_info,
> +};
> +
> +static bool spd5118_writeable_reg(struct device *dev, unsigned int reg)
> +{
> + switch (reg) {
> + case SPD5118_REG_TEMP_CLR:
> + case SPD5118_REG_TEMP_CONFIG:
> + case SPD5118_REG_TEMP_MAX:
> + case SPD5118_REG_TEMP_MAX + 1:
> + case SPD5118_REG_TEMP_MIN:
> + case SPD5118_REG_TEMP_MIN + 1:
> + case SPD5118_REG_TEMP_CRIT:
> + case SPD5118_REG_TEMP_CRIT + 1:
> + case SPD5118_REG_TEMP_LCRIT:
> + case SPD5118_REG_TEMP_LCRIT + 1:
> + return true;
> + default:
> + return false;
> + }
> +}
> +
> +static bool spd5118_volatile_reg(struct device *dev, unsigned int reg)
> +{
> + switch (reg) {
> + case SPD5118_REG_TEMP_CLR:
> + case SPD5118_REG_ERROR_CLR:
> + case SPD5118_REG_TEMP:
> + case SPD5118_REG_TEMP + 1:
> + case SPD5118_REG_TEMP_STATUS:
> + return true;
> + default:
> + return false;
> + }
> +}
> +
> +static const struct regmap_config spd5118_regmap_config = {
> + .reg_bits = 8,
> + .val_bits = 8,
> + .max_register = SPD5118_REG_TEMP_STATUS,
> + .writeable_reg = spd5118_writeable_reg,
> + .volatile_reg = spd5118_volatile_reg,
> + .cache_type = REGCACHE_MAPLE,
> +};
> +
> +static int spd5118_probe(struct i2c_client *client)
> +{
> + struct device *dev = &client->dev;
> + unsigned int regval, revision, vendor, bank;
> + struct device *hwmon_dev;
> + struct regmap *regmap;
> + int err;
> +
> + regmap = devm_regmap_init_i2c(client, &spd5118_regmap_config);
> + if (IS_ERR(regmap))
> + return dev_err_probe(dev, PTR_ERR(regmap), "regmap init failed\n");
> +
> + err = regmap_read(regmap, SPD5118_REG_CAPABILITY, ®val);
> + if (err)
> + return err;
> + if (!(regval & SPD5118_CAP_TS_SUPPORT))
> + return -ENODEV;
> +
> + err = regmap_read(regmap, SPD5118_REG_REVISION, &revision);
> + if (err)
> + return err;
> +
> + err = regmap_read(regmap, SPD5118_REG_VENDOR, &bank);
> + if (err)
> + return err;
> + err = regmap_read(regmap, SPD5118_REG_VENDOR + 1, &vendor);
> + if (err)
> + return err;
> + if (!spd5118_vendor_valid(bank, vendor))
> + return -ENODEV;
> +
> + hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
> + regmap, &spd5118_chip_info,
> + NULL);
> + if (IS_ERR(hwmon_dev))
> + return PTR_ERR(hwmon_dev);
> +
> + /*
> + * From JESD300-5B
> + * MR2 bits [5:4]: Major revision, 1..4
> + * MR2 bits [3:1]: Minor revision, 0..8? Probably a typo, assume 1..8
> + */
> + dev_info(dev, "DDR5 temperature sensor: vendor 0x%02x:0x%02x revision %d.%d\n",
> + bank & 0x7f, vendor, ((revision >> 4) & 0x03) + 1, ((revision >> 1) & 0x07) + 1);
> +
> + return 0;
> +}
> +
> +static const struct i2c_device_id spd5118_id[] = {
> + { "spd5118", 0 },
> + { }
> +};
> +MODULE_DEVICE_TABLE(i2c, spd5118_id);
> +
> +static const struct of_device_id spd5118_of_ids[] = {
> + { .compatible = "jedec,spd5118", },
> + { }
> +};
> +MODULE_DEVICE_TABLE(of, spd5118_of_ids);
> +
> +static struct i2c_driver spd5118_driver = {
> + .class = I2C_CLASS_HWMON,
> + .driver = {
> + .name = "spd5118",
> + .of_match_table = spd5118_of_ids,
> + },
> + .probe = spd5118_probe,
> + .id_table = spd5118_id,
> + .detect = spd5118_detect,
> + .address_list = normal_i2c,
> +};
> +
> +module_i2c_driver(spd5118_driver);
> +
> +MODULE_AUTHOR("René Rebe <rene@exactcode.de>");
> +MODULE_AUTHOR("Guenter Roeck <linux@roeck-us.net>");
> +MODULE_DESCRIPTION("SPD 5118 driver");
> +MODULE_LICENSE("GPL");
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support
2024-06-04 4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
2024-06-04 8:45 ` Stephen Horvath
@ 2024-06-07 15:57 ` Armin Wolf
1 sibling, 0 replies; 50+ messages in thread
From: Armin Wolf @ 2024-06-07 15:57 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> Add suspend/resume support to ensure that limit and configuration
> registers are updated and synchronized after a suspend/resume cycle.
Tested-by: Armin Wolf <W_Armin@gmx.de>
>
> Cc: Armin Wolf <W_Armin@gmx.de>
> Cc: Stephen Horvath <s.horvath@outlook.com.au>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v4: Fix bug seen if the enable attribute was never read prior
> to a suspend/resume cycle.
>
> v3: No change
>
> v2: New patch
>
> drivers/hwmon/spd5118.c | 39 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index d3fc0ae17743..d55c073ff5fd 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -20,6 +20,7 @@
> #include <linux/i2c.h>
> #include <linux/hwmon.h>
> #include <linux/module.h>
> +#include <linux/pm.h>
> #include <linux/regmap.h>
> #include <linux/units.h>
>
> @@ -432,6 +433,8 @@ static int spd5118_probe(struct i2c_client *client)
> if (!spd5118_vendor_valid(bank, vendor))
> return -ENODEV;
>
> + dev_set_drvdata(dev, regmap);
> +
> hwmon_dev = devm_hwmon_device_register_with_info(dev, "spd5118",
> regmap, &spd5118_chip_info,
> NULL);
> @@ -449,6 +452,41 @@ static int spd5118_probe(struct i2c_client *client)
> return 0;
> }
>
> +static int spd5118_suspend(struct device *dev)
> +{
> + struct regmap *regmap = dev_get_drvdata(dev);
> + u32 regval;
> + int err;
> +
> + /*
> + * Make sure the configuration register in the regmap cache is current
> + * before bypassing it.
> + */
> + err = regmap_read(regmap, SPD5118_REG_TEMP_CONFIG, ®val);
> + if (err < 0)
> + return err;
> +
> + regcache_cache_bypass(regmap, true);
> + regmap_update_bits(regmap, SPD5118_REG_TEMP_CONFIG, SPD5118_TS_DISABLE,
> + SPD5118_TS_DISABLE);
> + regcache_cache_bypass(regmap, false);
> +
> + regcache_cache_only(regmap, true);
> + regcache_mark_dirty(regmap);
> +
> + return 0;
> +}
> +
> +static int spd5118_resume(struct device *dev)
> +{
> + struct regmap *regmap = dev_get_drvdata(dev);
> +
> + regcache_cache_only(regmap, false);
> + return regcache_sync(regmap);
> +}
> +
> +static DEFINE_SIMPLE_DEV_PM_OPS(spd5118_pm_ops, spd5118_suspend, spd5118_resume);
> +
> static const struct i2c_device_id spd5118_id[] = {
> { "spd5118", 0 },
> { }
> @@ -466,6 +504,7 @@ static struct i2c_driver spd5118_driver = {
> .driver = {
> .name = "spd5118",
> .of_match_table = spd5118_of_ids,
> + .pm = pm_sleep_ptr(&spd5118_pm_ops),
> },
> .probe = spd5118_probe,
> .id_table = spd5118_id,
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data
2024-06-04 14:30 ` Guenter Roeck
@ 2024-06-07 15:59 ` Armin Wolf
0 siblings, 0 replies; 50+ messages in thread
From: Armin Wolf @ 2024-06-07 15:59 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 04.06.24 um 16:30 schrieb Guenter Roeck:
> On 6/4/24 04:58, Armin Wolf wrote:
>> Am 04.06.24 um 06:02 schrieb Guenter Roeck:
>>
>>> Add support for reading SPD NVMEM data from SPD5118 (Jedec JESD300)
>>> compliant memory modules. NVMEM write operation is not supported.
>>>
>>> NVMEM support is optional. If CONFIG_NVMEM is disabled, the driver will
>>> still instantiate but not provide NVMEM attribute files.
>>>
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>> v4: Use NVMEM_DEVID_NONE instead of NVMEM_DEVID_AUTO
>>> Ignore nvmem registration failure if nvmem support is disabled
>>>
>>> v3: New patch
>>>
>>> Documentation/hwmon/spd5118.rst | 8 ++
>>> drivers/hwmon/spd5118.c | 147
>>> +++++++++++++++++++++++++++++++-
>
>
> [ ... ]
>
>>> +static int spd5118_nvmem_init(struct device *dev, struct
>>> spd5118_data *data)
>>> +{
>>> + struct nvmem_config nvmem_config = {
>>> + .type = NVMEM_TYPE_EEPROM,
>>> + .name = dev_name(dev),
>>> + .id = NVMEM_DEVID_NONE,
>>> + .dev = dev,
>>> + .base_dev = dev,
>>> + .read_only = true,
>>> + .root_only = false,
>>> + .owner = THIS_MODULE,
>>> + .compat = true,
>>
>> Hi,
>>
>> do we really need this setting here?
>>
>
> The "eeprom" file is only created if both "base_dev" and "compat" are
> set.
> decode-dimms depends on it. While decode-dimms has to be updated anyway,
> I did not want to make that more complicated than necessary.
>
I understand.
> Another option would be not to use the nvmem subsystem in the first
> place,
> similar to the ee1004 driver, but my understanding is that the use of the
> nvmem subsystem is preferred.
>
> [ ... ]
>
>>> +
>>> + err = spd5118_nvmem_init(dev, data);
>>> + /* Ignore if NVMEM support is disabled */
>>> + if (err && err != -EOPNOTSUPP) {
>>
>> Maybe we can use IS_REACHABLE(CONFIG_NVMEM) here?
>>
>
> We could, but I prefer to avoid conditionals in the code if possible,
> the dummy devm_nvmem_register() is there specifically to cover that
> situation, and no other driver does that. Also, since the underlying
> functions are dummy, the compiler should optimize it all away if
> CONFIG_NVMEM=n.
>
> Thanks,
> Guenter
>
Ok, then i am ok with with this patch.
Tested-by: Armin Wolf <W_Armin@gmx.de>
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
2024-06-04 7:32 ` Wolfram Sang
2024-06-05 12:21 ` Paul Menzel
@ 2024-06-07 16:06 ` Armin Wolf
2024-06-07 18:00 ` Wolfram Sang
2 siblings, 1 reply; 50+ messages in thread
From: Armin Wolf @ 2024-06-07 16:06 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 04.06.24 um 06:02 schrieb Guenter Roeck:
> Detect DDR5 memory and instantiate the SPD5118 driver automatically.
Hi,
the text "Only works for DDR, DDR2, DDR3 and DDR4 for now" should be updated too.
With this fixed:
Reviewed-by: Armin Wolf <W_Armin@gmx.de>
>
> Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v5: New patch
>
> drivers/i2c/i2c-smbus.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
> index 97f338b123b1..8a0dab835761 100644
> --- a/drivers/i2c/i2c-smbus.c
> +++ b/drivers/i2c/i2c-smbus.c
> @@ -382,6 +382,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
> case 0x1E: /* LPDDR4 */
> name = "ee1004";
> break;
> + case 0x22: /* DDR5 */
> + case 0x23: /* LPDDR5 */
> + name = "spd5118";
> + break;
> default:
> dev_info(&adap->dev,
> "Memory type 0x%02x not supported yet, not instantiating SPD\n",
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4a 6/6] hwmon: (spd5118) Add configuration option for auto-detection
2024-06-05 2:19 ` [PATCH v4a " Guenter Roeck
2024-06-05 9:22 ` Thomas Weißschuh
@ 2024-06-07 16:08 ` Armin Wolf
1 sibling, 0 replies; 50+ messages in thread
From: Armin Wolf @ 2024-06-07 16:08 UTC (permalink / raw)
To: Guenter Roeck, linux-hwmon
Cc: linux-i2c, linux-kernel, devicetree, Krzysztof Kozlowski,
Wolfram Sang, René Rebe, Thomas Weißschuh,
Stephen Horvath
Am 05.06.24 um 04:19 schrieb Guenter Roeck:
> With SPD5118 chip detection for the most part handled by the i2c-smbus
> core using DMI information, the spd5118 driver no longer needs to
> auto-detect spd5118 compliant chips.
>
> Auto-detection by the driver is still needed on systems with no DMI support
> or on systems with more than eight DIMMs and can not be removed entirely.
> However, it affects boot time and introduces the risk of mis-identifying
> chips. Add configuration option to be able to disable it on systems where
> chip detection is handled outside the driver.
Tested-by: Armin Wolf <W_Armin@gmx.de>
> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> Sent as v4a to avoid resending the entire series.
>
> v4a:
> Do not auto-select SENSORS_SPD5118_DETECT if DMI is disabled
> Modify help text of SENSORS_SPD5118_DETECT
> Default SENSORS_SPD5118_DETECT to y if (!DMI || !X86)
>
> v4: New patch
>
> drivers/hwmon/Kconfig | 19 +++++++++++++++++++
> drivers/hwmon/spd5118.c | 4 +++-
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 7a84e7637b51..d5eced417fc3 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -2193,6 +2193,25 @@ config SENSORS_SPD5118
> This driver can also be built as a module. If so, the module
> will be called spd5118.
>
> +config SENSORS_SPD5118_DETECT
> + bool "Enable detect function"
> + depends on SENSORS_SPD5118
> + default (!DMI || !X86)
> + help
> + If enabled, the driver auto-detects if a chip in the SPD address
> + range is compliant to the SPD51888 standard and auto-instantiates
> + if that is the case. If disabled, SPD5118 compliant devices have
> + to be instantiated by other means. On X86 systems with DMI support
> + this will typically be done from DMI DDR detection code in the
> + I2C SMBus subsystem. Devicetree based systems will instantiate
> + attached devices if the DIMMs are listed in the devicetree file.
> +
> + Disabling the detect function will speed up boot time and reduce
> + the risk of mis-detecting SPD5118 compliant devices. However, it
> + may result in missed DIMMs under some circumstances.
> +
> + If unsure, say Y.
> +
> config SENSORS_TC74
> tristate "Microchip TC74"
> depends on I2C
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index 5cb5e52c0a38..19d203283a21 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -313,7 +313,7 @@ static bool spd5118_vendor_valid(u8 bank, u8 id)
> }
>
> /* Return 0 if detection is successful, -ENODEV otherwise */
> -static int spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> +static int __maybe_unused spd5118_detect(struct i2c_client *client, struct i2c_board_info *info)
> {
> struct i2c_adapter *adapter = client->adapter;
> int regval;
> @@ -647,7 +647,9 @@ static struct i2c_driver spd5118_driver = {
> },
> .probe = spd5118_probe,
> .id_table = spd5118_id,
> +#ifdef CONFIG_SENSORS_SPD5118_DETECT
> .detect = spd5118_detect,
> +#endif
> .address_list = normal_i2c,
> };
>
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-07 16:06 ` Armin Wolf
@ 2024-06-07 18:00 ` Wolfram Sang
2024-06-10 13:52 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Wolfram Sang @ 2024-06-07 18:00 UTC (permalink / raw)
To: Armin Wolf
Cc: Guenter Roeck, linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Stephen Horvath
[-- Attachment #1: Type: text/plain, Size: 168 bytes --]
> the text "Only works for DDR, DDR2, DDR3 and DDR4 for now" should be updated too.
> With this fixed:
Yes, maybe this could be simplified to "(LP)DDR memory types"
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-07 18:00 ` Wolfram Sang
@ 2024-06-10 13:52 ` Guenter Roeck
2024-06-10 14:52 ` Wolfram Sang
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-10 13:52 UTC (permalink / raw)
To: Wolfram Sang, Armin Wolf, linux-hwmon, linux-i2c, linux-kernel,
devicetree, Krzysztof Kozlowski, René Rebe,
Thomas Weißschuh, Stephen Horvath
On 6/7/24 11:00, Wolfram Sang wrote:
>
>> the text "Only works for DDR, DDR2, DDR3 and DDR4 for now" should be updated too.
>> With this fixed:
>
> Yes, maybe this could be simplified to "(LP)DDR memory types"
>
I rephrased it to "Only works for (LP)DDR memory types up to DDR5".
How about "Only works on systems with 1 to 8 memory slots" ?
That isn't really correct anymore either, unless I misunderstand
the changes made in commit 8821c8376993 ("i2c: smbus: Prepare
i2c_register_spd for usage on muxed segments").
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-10 13:52 ` Guenter Roeck
@ 2024-06-10 14:52 ` Wolfram Sang
2024-06-10 15:55 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Wolfram Sang @ 2024-06-10 14:52 UTC (permalink / raw)
To: Guenter Roeck
Cc: Armin Wolf, linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Stephen Horvath
[-- Attachment #1: Type: text/plain, Size: 324 bytes --]
> > Yes, maybe this could be simplified to "(LP)DDR memory types"
> >
>
> I rephrased it to "Only works for (LP)DDR memory types up to DDR5".
Thanks!
> How about "Only works on systems with 1 to 8 memory slots" ?
This is a question for Heiner. I'd think it is is still correct, but I
don't know exactly.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-10 14:52 ` Wolfram Sang
@ 2024-06-10 15:55 ` Guenter Roeck
2024-06-12 16:19 ` Wolfram Sang
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-10 15:55 UTC (permalink / raw)
To: Wolfram Sang, Armin Wolf, linux-hwmon, linux-i2c, linux-kernel,
devicetree, Krzysztof Kozlowski, René Rebe,
Thomas Weißschuh, Stephen Horvath
On 6/10/24 07:52, Wolfram Sang wrote:
>
>>> Yes, maybe this could be simplified to "(LP)DDR memory types"
>>>
>>
>> I rephrased it to "Only works for (LP)DDR memory types up to DDR5".
>
> Thanks!
>
>> How about "Only works on systems with 1 to 8 memory slots" ?
>
> This is a question for Heiner. I'd think it is is still correct, but I
> don't know exactly.
>
My interpretation was that it should work if the DIMMs are connected to
multiplexed I2C busses, but probably not if they are connected to
different adapters. The error message in that case is a bit misleading,
though, because it claims that "More than 8 memory slots on a single bus",
which isn't necessarily the case. For example, it should be perfectly valid
to have up to 24 DIMMs in this system.
i2c-0/name:SMBus PIIX4 adapter port 0 at 0b00
i2c-1/name:SMBus PIIX4 adapter port 2 at 0b00
i2c-2/name:SMBus PIIX4 adapter port 1 at 0b20
... but I guess that is a question for someone with such a system to answer.
Ultimately the handling of systems with more than 8 memory slots will need
to be updated at some point. On my systems, with 'i2c: piix4: Register SPDs'
applied, I see
i2c i2c-0: 4/4 memory slots populated (from DMI)
[my system is running 6.6.y which still generates that message]
i2c i2c-0: Successfully instantiated SPD at 0x50
i2c i2c-0: Successfully instantiated SPD at 0x51
i2c i2c-0: Successfully instantiated SPD at 0x52
i2c i2c-0: Successfully instantiated SPD at 0x53
i2c i2c-1: 4/4 memory slots populated (from DMI)
i2c i2c-2: 4/4 memory slots populated (from DMI)
meaning the function is called for each adapter (which makes sense).
However, the code counting the DIMMs doesn't really take the adapter
into account, meaning adapters 1 and 2 are still probed even though
all DIMMs were already instantiated from adapter 0.
On a system with more than 8 DIMMs connected to different piix4 adapters
(without mux) we'd probably see something like
i2c i2c-0: More than 8 memory slots on a single bus, contact i801 maintainer ...
i2c i2c-1: More than 8 memory slots on a single bus, contact i801 maintainer ...
i2c i2c-2: More than 8 memory slots on a single bus, contact i801 maintainer ...
which wouldn't be very helpful. I think the main problem may be that
the i801 driver implements sub-adapters as muxes, but the piix4 driver
doesn't do (or need) that. The message is also i801 centric which doesn't
apply anymore after 'i2c: piix4: Register SPDs' is applied.
However, I would not want to even try changing that code without access
to a system using piix4 and supporting more than 8 memory slots.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-10 15:55 ` Guenter Roeck
@ 2024-06-12 16:19 ` Wolfram Sang
2024-06-24 20:06 ` Heiner Kallweit
0 siblings, 1 reply; 50+ messages in thread
From: Wolfram Sang @ 2024-06-12 16:19 UTC (permalink / raw)
To: Guenter Roeck, Heiner Kallweit
Cc: Armin Wolf, linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, René Rebe, Thomas Weißschuh,
Stephen Horvath
[-- Attachment #1: Type: text/plain, Size: 2798 bytes --]
CCing Heiner...
> > > > Yes, maybe this could be simplified to "(LP)DDR memory types"
> > > >
> > >
> > > I rephrased it to "Only works for (LP)DDR memory types up to DDR5".
> >
> > Thanks!
> >
> > > How about "Only works on systems with 1 to 8 memory slots" ?
> >
> > This is a question for Heiner. I'd think it is is still correct, but I
> > don't know exactly.
> >
>
> My interpretation was that it should work if the DIMMs are connected to
> multiplexed I2C busses, but probably not if they are connected to
> different adapters. The error message in that case is a bit misleading,
> though, because it claims that "More than 8 memory slots on a single bus",
> which isn't necessarily the case. For example, it should be perfectly valid
> to have up to 24 DIMMs in this system.
>
> i2c-0/name:SMBus PIIX4 adapter port 0 at 0b00
> i2c-1/name:SMBus PIIX4 adapter port 2 at 0b00
> i2c-2/name:SMBus PIIX4 adapter port 1 at 0b20
>
> ... but I guess that is a question for someone with such a system to answer.
>
> Ultimately the handling of systems with more than 8 memory slots will need
> to be updated at some point. On my systems, with 'i2c: piix4: Register SPDs'
> applied, I see
>
> i2c i2c-0: 4/4 memory slots populated (from DMI)
> [my system is running 6.6.y which still generates that message]
> i2c i2c-0: Successfully instantiated SPD at 0x50
> i2c i2c-0: Successfully instantiated SPD at 0x51
> i2c i2c-0: Successfully instantiated SPD at 0x52
> i2c i2c-0: Successfully instantiated SPD at 0x53
> i2c i2c-1: 4/4 memory slots populated (from DMI)
> i2c i2c-2: 4/4 memory slots populated (from DMI)
>
> meaning the function is called for each adapter (which makes sense).
> However, the code counting the DIMMs doesn't really take the adapter
> into account, meaning adapters 1 and 2 are still probed even though
> all DIMMs were already instantiated from adapter 0.
>
> On a system with more than 8 DIMMs connected to different piix4 adapters
> (without mux) we'd probably see something like
>
> i2c i2c-0: More than 8 memory slots on a single bus, contact i801 maintainer ...
> i2c i2c-1: More than 8 memory slots on a single bus, contact i801 maintainer ...
> i2c i2c-2: More than 8 memory slots on a single bus, contact i801 maintainer ...
>
> which wouldn't be very helpful. I think the main problem may be that
> the i801 driver implements sub-adapters as muxes, but the piix4 driver
> doesn't do (or need) that. The message is also i801 centric which doesn't
> apply anymore after 'i2c: piix4: Register SPDs' is applied.
>
> However, I would not want to even try changing that code without access
> to a system using piix4 and supporting more than 8 memory slots.
>
> Thanks,
> Guenter
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-05 13:56 ` Guenter Roeck
@ 2024-06-17 14:42 ` Paul Menzel
2024-06-17 15:49 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Paul Menzel @ 2024-06-17 14:42 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 05.06.24 um 15:56 schrieb Guenter Roeck:
> On Wed, Jun 05, 2024 at 02:21:50PM +0200, Paul Menzel wrote:
>> Am 04.06.24 um 06:02 schrieb Guenter Roeck:
>>> Detect DDR5 memory and instantiate the SPD5118 driver automatically.
>>>
>>> Suggested-by: Thomas Weißschuh <linux@weissschuh.net>
>>> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>> v5: New patch
>>>
>>> drivers/i2c/i2c-smbus.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c
>>> index 97f338b123b1..8a0dab835761 100644
>>> --- a/drivers/i2c/i2c-smbus.c
>>> +++ b/drivers/i2c/i2c-smbus.c
>>> @@ -382,6 +382,10 @@ void i2c_register_spd(struct i2c_adapter *adap)
>>> case 0x1E: /* LPDDR4 */
>>> name = "ee1004";
>>> break;
>>> + case 0x22: /* DDR5 */
>>> + case 0x23: /* LPDDR5 */
>>> + name = "spd5118";
>>> + break;
>>> default:
>>> dev_info(&adap->dev,
>>> "Memory type 0x%02x not supported yet, not instantiating SPD\n",
>>
>> Testing this on top of 6.10-rc2+ on a Supermicro X13SAE, Linux logs:
>>
>> $ dmesg | grep -e "DMI:" -e "Linux version" -e i2c-0
>> [ 0.000000] Linux version 6.10.0-rc2.mx64.461-00036-g151dfab265df (pmenzel@foreveralone.molgen.mpg.de) (gcc (GCC) 12.3.0, GNU ld (GNU Binutils) 2.41) #74 SMP PREEMPT_DYNAMIC Wed Jun 5 08:24:59 CEST 2024
>> [ 0.000000] DMI: Supermicro Super Server/X13SAE, BIOS 2.0 10/17/2022
>> [ 0.000000] DMI: Memory slots populated: 4/4
>> [ 5.434488] i2c i2c-0: Successfully instantiated SPD at 0x50
>> [ 5.443848] i2c i2c-0: Successfully instantiated SPD at 0x51
>> [ 5.450033] i2c i2c-0: Successfully instantiated SPD at 0x52
>> [ 5.459378] i2c i2c-0: Successfully instantiated SPD at 0x53
>>
>> Then with `sudo modprobe at24` and `sudo modprobe ee1004`, `decode-dimms`
>> shows:
>>
> You'd actually have to load the spd5118 driver.
Indeed. I didn’t check with the last version, but using your patch set
v5 [1] on top of Linux 6.10-rc4, it was loaded:
$ lsmod | grep 5118
spd5118 12288 0
regmap_i2c 12288 1 spd5118
$ dmesg | grep 5118
[ 6.551827] spd5118 0-0050: DDR5 temperature sensor: vendor
0x06:0x32 revision 1.6
[ 6.562267] spd5118 0-0051: DDR5 temperature sensor: vendor
0x06:0x32 revision 1.6
[ 6.572727] spd5118 0-0052: DDR5 temperature sensor: vendor
0x06:0x32 revision 1.6
[ 6.575536] spd5118 0-0053: DDR5 temperature sensor: vendor
0x06:0x32 revision 1.6
>> $ sudo ./eeprom/decode-dimms
>> # decode-dimms version 4.3
>>
>> Memory Serial Presence Detect Decoder
>> By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
>> Jean Delvare, Trent Piepho and others
>>
>>
>> Number of SDRAM DIMMs detected and decoded: 0
>>
>> This might be expected, and `decode-dimms` also needs to be updated.
>
> Correct. The hack below makes it detect the DIMMs, but the data format
> is all different, so it is only really useful to validate reading
> the EEPROM (i.e., the checksum over the first 512 bytes of the eeprom
> is correct). With that patch applied, I get
>
> Decoding EEPROM: /sys/bus/i2c/drivers/spd5118/0-0050
> Guessing DIMM is in bank 1
> Kernel driver used spd5118
>
> ---=== SPD EEPROM Information ===---
> EEPROM CRC of bytes 0-509 48 1 OK (0x47A2)
> # of bytes written to SDRAM EEPROM 1024
> Total number of bytes in EEPROM 1024
> Fundamental Memory type DDR5 SDRAM
>
> ---=== Manufacturing Information ===---
> Manufacturer Invalid
> Custom Manufacturer Data 00 00 00 00 00 88 13 ("???????")
> Manufacturing Location Code 0x08
> Part Number Undefined
> Revision Code 0x4C1D
> Manufacturing Date 0x0C00
>
> and so on.
> ---
> diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms
> index 787b6f5..64b6e81 100755
> --- a/eeprom/decode-dimms
> +++ b/eeprom/decode-dimms
> @@ -2407,7 +2407,12 @@ sub spd_sizes($)
> my $bytes = shift;
> my $type = $bytes->[2];
>
> - if ($type == 12 || $type == 14 || $type == 16 || $type == 17) {
> + if ($type == 18 || $type == 19 || $type == 20 || $type == 21) {
> + # DDR5
> + my $spd_len = 256 * ((($bytes->[0] >> 4) & 7) + 1);
> + my $used = $spd_len;
> + return ($spd_len, $used);
> + } elsif ($type == 12 || $type == 14 || $type == 16 || $type == 17) {
> # DDR4
> my $spd_len = 256 * (($bytes->[0] >> 4) & 7);
> my $used = 128 * ($bytes->[0] & 15);
> @@ -2516,11 +2521,17 @@ sub calculate_crc($$$)
> sub check_crc($)
> {
> my $bytes = shift;
> + my $is_ddr5 = ($bytes->[0] & 0x70) == 0x30;
> my $crc_cover = $bytes->[0] & 0x80 ? 116 : 125;
> + my $crc_start = 126;
> + if ($is_ddr5) {
> + $crc_cover = 509;
> + $crc_start = 510;
> + }
> my $crc = calculate_crc($bytes, 0, $crc_cover + 1);
>
> - my $dimm_crc = ($bytes->[127] << 8) | $bytes->[126];
> - return ("EEPROM CRC of bytes 0-$crc_cover",
> + my $dimm_crc = ($bytes->[$crc_start + 1] << 8) | $bytes->[$crc_start];
> + return ("EEPROM CRC of bytes 0-$crc_cover $bytes->[0] $is_ddr5",
> ($dimm_crc == $crc) ? 1 : 0,
> sprintf("0x%04X", $dimm_crc),
> sprintf("0x%04X", $crc));
> @@ -2622,6 +2633,7 @@ sub get_dimm_list
> if ($use_sysfs) {
> @drivers = ('eeprom',
> 'at24',
> + 'spd5118',
> 'ee1004'); # DDR4
> } else {
> @drivers = ('eeprom');
> @@ -2640,14 +2652,13 @@ sub get_dimm_list
> # We look for I2C devices like 0-0050 or 2-0051
> next unless $file =~ /^\d+-[\da-f]+$/i;
> next unless -d "$dir/$file";
> -
> # Device name must be eeprom (driver eeprom)
> # spd (driver at24) or ee1004 (driver ee1004)
> my $attr = sysfs_device_attribute("$dir/$file", "name");
> next unless defined $attr &&
> ($attr eq "eeprom" ||
> $attr eq "spd" ||
> - $attr eq "ee1004"); # DDR4
> + $attr eq "spd5118" || $attr eq "ee1004"); # DDR4
> } else {
> next unless $file =~ /^eeprom-/;
> }
> @@ -2681,7 +2692,7 @@ sub get_dimm_list
> @dimm = get_dimm_list() unless $use_hexdump;
>
> for my $i (0 .. $#dimm) {
> - my @bytes = readspd(0, 128, $dimm[$i]->{file});
> + my @bytes = readspd(0, 512, $dimm[$i]->{file});
> $dimm[$i]->{bytes} = \@bytes;
> $dimm[$i]->{is_rambus} = $bytes[0] < 4; # Simple heuristic
> if ($dimm[$i]->{is_rambus} || $bytes[2] < 9) {
I applied your patch
$ git log --oneline --no-decorate -2
00058a6 eeprom: Add basic spd5118 support
a0e5865 i2cdetect: only use "newer" I2C_FUNC_* flags if they exist
but reading eeprom fails:
$ sudo ./eeprom/decode-dimms
Cannot read /sys/bus/i2c/drivers/spd5118/0-0050/eeprom at
./eeprom/decode-dimms line 2465.
Kind regards,
Paul
[1]:
https://lore.kernel.org/all/20240610144103.1970359-1-linux@roeck-us.net/
PS:
$ ls -lR /sys/bus/i2c/drivers/spd5118/
/sys/bus/i2c/drivers/spd5118/:
total 0
lrwxrwxrwx 1 root root 0 Jun 17 15:31 0-0050 ->
../../../../devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050
lrwxrwxrwx 1 root root 0 Jun 17 15:31 0-0051 ->
../../../../devices/pci0000:00/0000:00:1f.4/i2c-0/0-0051
lrwxrwxrwx 1 root root 0 Jun 17 15:31 0-0052 ->
../../../../devices/pci0000:00/0000:00:1f.4/i2c-0/0-0052
lrwxrwxrwx 1 root root 0 Jun 17 15:31 0-0053 ->
../../../../devices/pci0000:00/0000:00:1f.4/i2c-0/0-0053
--w------- 1 root root 4096 Jun 17 15:31 bind
lrwxrwxrwx 1 root root 0 Jun 17 15:31 module ->
../../../../module/spd5118
--w------- 1 root root 4096 Jun 17 15:25 uevent
--w------- 1 root root 4096 Jun 17 15:31 unbind
$ ls -lR /sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050':
total 0
drwxr-xr-x 3 root root 0 Jun 17 15:25 0-0050
lrwxrwxrwx 1 root root 0 Jun 17 15:25 driver ->
../../../../../bus/i2c/drivers/spd5118
-r--r--r-- 1 root root 1024 Jun 17 15:31 eeprom
drwxr-xr-x 3 root root 0 Jun 17 15:25 hwmon
-r--r--r-- 1 root root 4096 Jun 17 16:39 modalias
-r--r--r-- 1 root root 4096 Jun 17 15:31 name
drwxr-xr-x 2 root root 0 Jun 17 16:39 power
lrwxrwxrwx 1 root root 0 Jun 17 15:25 subsystem -> ../../../../../bus/i2c
-rw-r--r-- 1 root root 4096 Jun 17 15:25 uevent
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050':
total 0
-r--r--r-- 1 root root 1024 Jun 17 16:39 nvmem
drwxr-xr-x 2 root root 0 Jun 17 16:39 power
lrwxrwxrwx 1 root root 0 Jun 17 16:39 subsystem ->
../../../../../../bus/nvmem
-r--r--r-- 1 root root 4096 Jun 17 16:39 type
-rw-r--r-- 1 root root 4096 Jun 17 15:25 uevent
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power':
total 0
-rw-r--r-- 1 root root 4096 Jun 17 16:39 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 Jun 17 16:39 control
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_active_time
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_status
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_suspended_time
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/hwmon':
total 0
drwxr-xr-x 3 root root 0 Jun 17 15:25 hwmon1
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/hwmon/hwmon1':
total 0
lrwxrwxrwx 1 root root 0 Jun 17 15:35 device -> ../../../0-0050
-r--r--r-- 1 root root 4096 Jun 17 15:35 name
drwxr-xr-x 2 root root 0 Jun 17 15:35 power
lrwxrwxrwx 1 root root 0 Jun 17 15:35 subsystem ->
../../../../../../../class/hwmon
-rw-r--r-- 1 root root 4096 Jun 17 15:35 temp1_crit
-r--r--r-- 1 root root 4096 Jun 17 15:35 temp1_crit_alarm
-rw-r--r-- 1 root root 4096 Jun 17 15:35 temp1_enable
-r--r--r-- 1 root root 4096 Jun 17 15:35 temp1_input
-rw-r--r-- 1 root root 4096 Jun 17 15:35 temp1_lcrit
-r--r--r-- 1 root root 4096 Jun 17 15:35 temp1_lcrit_alarm
-rw-r--r-- 1 root root 4096 Jun 17 15:35 temp1_max
-r--r--r-- 1 root root 4096 Jun 17 15:35 temp1_max_alarm
-rw-r--r-- 1 root root 4096 Jun 17 15:35 temp1_min
-r--r--r-- 1 root root 4096 Jun 17 15:35 temp1_min_alarm
-rw-r--r-- 1 root root 4096 Jun 17 15:25 uevent
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/hwmon/hwmon1/power':
total 0
-rw-r--r-- 1 root root 4096 Jun 17 16:39 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 Jun 17 16:39 control
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_active_time
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_status
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_suspended_time
'/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power':
total 0
-rw-r--r-- 1 root root 4096 Jun 17 16:39 autosuspend_delay_ms
-rw-r--r-- 1 root root 4096 Jun 17 16:39 control
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_active_time
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_status
-r--r--r-- 1 root root 4096 Jun 17 16:39 runtime_suspended_time
$ sudo grep -R . /sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050 |
head -1000
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power/autosuspend_delay_ms:
Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/uevent:
Permission denied
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/uevent:DRIVER=spd5118
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/uevent:MODALIAS=i2c:spd5118
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power/runtime_status:unsupported
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/power/autosuspend_delay_ms:
Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/drivers_autoprobe:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/power/runtime_status:unsupported
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0052/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0050:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0053/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/subsystem:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/0-0051/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/power/autosuspend_delay_ms:
Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/subsystem:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/power/runtime_status:unsupported
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/type:Unknown
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/devices/cmos_nvram0/nvmem:
binary file matches
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/subsystem/drivers_probe:
Permission denied
grep: /sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/0-0050/nvmem: No
such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/uevent:
Permission denied
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0052:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/drivers_autoprobe:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0050/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0053/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/type:EEPROM
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/0-0051/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/type:Unknown
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/devices/cmos_nvram0/nvmem:
binary file matches
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/subsystem/drivers_probe:
Permission denied
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/0-0052/nvmem:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/uevent:DRIVER=spd5118
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/uevent:MODALIAS=i2c:spd5118
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/driver:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/power/control:auto
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/eeprom:
No such device or address
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/uevent:
Permission denied
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/0-0052:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/drivers_autoprobe:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-3:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-1/device:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:DRIVER=i915
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:PCI_CLASS=30000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:PCI_ID=8086:A780
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:PCI_SUBSYS_ID=15D9:1C47
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:PCI_SLOT_NAME=0000:00:02.0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/uevent:MODALIAS=pci:v00008086d0000A780sv000015D9sd00001C47bc03sc00i00
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/sriov_vf_total_msix:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/sriov_stride:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-1/delete_device:
Permission denied
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-1/subsystem:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-1/new_device:
Permission denied
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/i2c-1/name:i915
gmbus dpa
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/sriov_offset:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/power_state:D0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/uevent:MAJOR=29
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/uevent:MINOR=0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/uevent:DEVNAME=fb0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/rotate:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver
/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/device:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/dev:29:0
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fb0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/stride:5120
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/virtual_size:1280,720
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/pan:0,0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/bits_per_pixel:32
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/cursor_blink:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/rotate:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/power/control:auto
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/subsystem/fbcon/rotate_all:
Permission denied
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/rom:
Invalid
argument/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/state:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/modes:U:1280x720p-0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/graphics/fb0/name:i915drmfb
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/sriov_drivers_autoprobe:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/broken_parity_status:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/sriov_totalvfs:7
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/subsystem_device:0x1c47
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/iommu_group/devices/0000:00:02.0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/dma_mask_bits:39
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/vendor:0x8086
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/iommu_group/type:DMA-FQ
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/iommu_group/reserved_regions:0x000000007c000000
0x00000000803fffff direct-relaxable
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/iommu_group/reserved_regions:0x00000000fee00000
0x00000000feefffff msi
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/local_cpus:ffffffff
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/uevent:DRIVER=video
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/uevent:MODALIAS=acpi:LNXVIDEO:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:
00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/uevent:
Permission
denied/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/adr:0x0000001f
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/path:\_SB_.PC00.GFX0.DD2F
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/drivers_autoprobe:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/firmware_node:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/location:0x00000000
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/power/runtime_active_time:4563704
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/power/runtime_status:active
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/power/autosuspend_delay_ms:
Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/over_current_count:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/state:not
attached
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/early_stop:no
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/waiting_for_supplier:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/connect_type:unknown
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/physical_node/quirks:00000000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/adr:0x00000010
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/device:6b/path:\_SB_.PC00.XHCI.RHUB.USR2
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/uevent:MODALIAS=acpi:ACPI0007:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/device:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/power/control:auto
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/type:Processor
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/max_state:3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/uevent:MODALIAS=acpi:ACPI0007:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/thermal_cooling:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/above:9366
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/time:4539433544
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/residency:2096
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/latency:1048
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/usage:59777
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/desc:ACPI
FFH MWAIT 0x60
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/below:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/name:C3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state3/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/above:23762
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/time:2634180
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/residency:2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/latency:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/usage:129756
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/desc:ACPI
FFH MWAIT 0x0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/below:1419
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state1/name:C1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/above:6378
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/time:9805813
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/residency:254
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/latency:127
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/usage:17479
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/desc:ACPI
FFH MWAIT 0x21
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/below:3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/name:C2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state2/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/above:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/time:51869
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/power:4294967295
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/residency:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/latency:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/usage:9906
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/desc:CPUIDLE
CORE POLL IDLE
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/below:1319
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/cpuidle/state0/name:POLL
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/uevent:DRIVER=processor
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/uevent:MODALIAS=cpu:type:x86,ven0000fam0006mod00B7:feature:,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000B,000C,000D,000E,000F,0010,0011,0013,0015,0016,0017,0018,0019,001A,001B,001C,001D,001F,002B,0034,003A,003B,003D,0068,006A,006B,006C,006D,006F,0070,0074,0075,0076,0078,0079,007C,007F,0080,0081,0082,0083,0084,0085,0086,0087,0088,0089,008B,008C,008D,008E,008F,0093,0094,0095,0096,0097,0098,0099,009A,009B,009C,009D,009E,00C0,00C5,00C8,00E1,00E3,00EA,00F0,00F1,00F3,00F5,00F9,00FA,00FB,00FE,00FF,0100,0101,0102,0103,0111,0120,0121,0123,0125,0126,0127,0128,0129,012A,012D,0132,0133,0134,0137,0138,0139,013D,0140,0141,0142,0143,0164,0165,0166,016B,0171,017B,0184,018B,0196,01C0,01C1,01C2,01C4,01C5,01C6,01C7,01C8,01C9,01CA,01CB,01CE,01CF,01D0,01D1,01D2,01D3,01D4,01D6,01D7,01F9,0202,0203,0204,0205,0207,0208,0209,020A,0216,0217,021B,021C,021F,0244,024A,024E,024F,0252,0253,0254,025A,025B,025C,025D,025E,025F,0282,02A2,02A3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/hotplug/target:236
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/hotplug/state:236
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/hotplug/fail:-1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/core_throttle_count:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/core_throttle_max_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/core_throttle_total_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/package_throttle_max_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/package_throttle_total_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/thermal_throttle/package_throttle_count:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/crasgrep:
h_notes_size:368
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/firmware_node:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/node0:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/uevent:
Permission denied
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/phys_index:00000020
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory32:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/drivers_autoprobe:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/node0:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/phys_index:0000003c
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory60/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/phys_index:00000003
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory3/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/phys_index:00000016
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory22/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/phys_index:00000032
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory50/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/phys_index:0000000c
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory12/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/phys_index:00000028
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory40/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/phys_index:0000001e
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory30/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/phys_index:0000003b
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory59/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/phys_index:00000014
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory20/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/phys_index:00000031
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory49/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/phys_index:0000000a
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory10/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/phys_index:00000027
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory39/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/phys_index:0000001d
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory29/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/phys_index:00000039
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory57/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/phys_index:00000013
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory19/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/phys_index:0000002f
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory47/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/phys_index:00000025
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory37/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/phys_index:00000008
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory8/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/phys_index:0000001b
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory27/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/phys_index:00000037
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory55/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/phys_index:00000011
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory17/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/phys_index:0000002d
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory45/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/phys_index:00000023
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory35/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/phys_index:0000003f
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory63/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/phys_index:00000006
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory6/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/phys_index:00000019
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory25/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/phys_index:00000035
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory53/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/phys_index:0000000f
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory15/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/phys_index:0000002b
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory43/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/phys_index:00000021
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory33/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/phys_index:0000003d
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory61/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/phys_index:00000004
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory4/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/phys_index:00000017
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory23/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/phys_index:00000033
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory51/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/phys_index:0000000d
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory13/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/phys_index:00000029
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory41/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/phys_index:0000001f
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory31/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/phys_index:00000002
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory2/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/phys_index:00000015
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory21/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/phys_index:0000000b
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory11/removable:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/node0:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/phys_index:0000003a
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory58/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/phys_index:00000000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/valid_zones:none
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory0/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/phys_index:00000030
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory48/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/phys_index:00000026
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory38/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/phys_index:00000009
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory9/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/phys_index:0000001c
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory28/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/phys_index:00000038
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory56/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/phys_index:00000012
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory18/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/phys_index:0000002e
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory46/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/phys_index:00000024
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory36/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/phys_index:00000040
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory64/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/phys_index:00000007
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory7/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/phys_index:0000001a
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory26/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/phys_index:00000036
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory54/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/phys_index:00000010
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory16/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/phys_index:0000002c
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory44/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/phys_index:00000022
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory34/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/phys_index:0000003e
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/node0:
warning: recursive directory
loop/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory62/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/phys_index:00000005
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory5/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/phys_index:00000018
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory24/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/phys_index:00000034
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory52/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/power/autosuspend_delay_ms/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/power/runtime_status:unsupported
: Input/output error
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/phys_index:0000000e
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/node0:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory14/removable:1
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/power/autosuspend_delay_ms:
Input/output
error/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/power/runtime_status:unsupported
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/subsystem:
warning: recursive directory loop
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/phys_device:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/phys_index:0000002a
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/valid_zones:Normal
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/drivers_probe/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/subsystem/devices/memory42/removable:1
: Permission denied
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/state:online
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/memory32/removable:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/above:93438
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/time:4146824781
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/residency:2096
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/latency:1048
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/usage:323351
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/desc:ACPI
FFH MWAIT 0x60
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/below:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/name:C3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state3/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/above:2123
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/time:12585020
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/residency:2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/latency:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/usage:231154
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/desc:ACPI
FFH MWAIT 0x0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/below:447
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state1/name:C1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/above:17457
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/time:368439660
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/residency:254
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/latency:127
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/usage:409671
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/desc:ACPI
FFH MWAIT 0x21
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/below:5
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/name:C2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state2/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/above:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/time:347745
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/power:4294967295
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/residency:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/latency:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/usage:5813
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/desc:CPUIDLE
CORE POLL IDLE
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/below:5773
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/cpuidle/state0/name:POLL
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/uevent:DRIVER=processor
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/uevent:MODALIAS=cpu:type:x86,ven0000fam0006mod00B7:feature:,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000B,000C,000D,000E,000F,0010,0011,0013,0015,0016,0017,0018,0019,001A,001B,001C,001D,001F,002B,0034,003A,003B,003D,0068,006A,006B,006C,006D,006F,0070,0074,0075,0076,0078,0079,007C,007F,0080,0081,0082,0083,0084,0085,0086,0087,0088,0089,008B,008C,008D,008E,008F,0093,0094,0095,0096,0097,0098,0099,009A,009B,009C,009D,009E,00C0,00C5,00C8,00E1,00E3,00EA,00F0,00F1,00F3,00F5,00F9,00FA,00FB,00FE,00FF,0100,0101,0102,0103,0111,0120,0121,0123,0125,0126,0127,0128,0129,012A,012D,0132,0133,0134,0137,0138,0139,013D,0140,0141,0142,0143,0164,0165,0166,016B,0171,017B,0184,018B,0196,01C0,01C1,01C2,01C4,01C5,01C6,01C7,01C8,01C9,01CA,01CB,01CE,01CF,01D0,01D1,01D2,01D3,01D4,01D6,01D7,01F9,0202,0203,0204,0205,0207,0208,0209,020A,0216,0217,021B,021C,021F,0244,024A,024E,024F,0252,0253,0254,025A,025B,025C,025D,025E,025F,0282,02A2,02A3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/hotplug/target:236
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/hotplug/state:236
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/hotplug/fail:-1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/core_throttle_count:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/core_throttle_max_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-00grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/firmware_node:
warning: recursive directory loop
52/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/core_throttle_total_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/package_throttle_max_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/package_throttle_total_time_ms:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/thermal_throttle/package_throttle_count:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/crash_notes_size:368
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/node0:
warning: recursive directory loop
grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/autosuspend_delay_ms:
Input/output error
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/runtime_active_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/energy_perf_bias:6
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/pm_qos_resume_latency_us:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/runtime_status:unsupported
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/runtime_suspended_time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/power/control:auto
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/microcode/processor_flags:0x2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/microcode/version:0x119
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/online:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/cluster_cpus:00f00000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/die_id:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/cluster_cpus_list:20-23
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/physical_package_id:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/core_cpus_list:21
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/die_cpus_list:0-31
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/core_siblings:ffffffff
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/cluster_id:72
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/core_siblings_list:0-31
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/package_cpus:ffffffff
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/package_cpus_list:0-31
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/grep:
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu21:
warning: recursive directory loop
subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/die_cpus:ffffffff
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/thread_siblings_list:21
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/core_id:37
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/core_cpus:00200000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/topology/thread_siblings:00200000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/feedback_ctrs:ref:202133099880
del:64086048649
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/lowest_nonlinear_perf:15
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/highest_perf:43
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/nominal_freq:3000
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/lowest_freq:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/nominal_perf:22
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/lowest_perf:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/grep:
devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/reference_perf:22
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/uevent/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/acpi_cppc/wraparound_time:18446744073709551615
: Permission denied
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/above:12579
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/time:4506539525
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/residency:2096
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/latency:1048
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/usage:13299
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/desc:ACPI
FFH MWAIT 0x60
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/below:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/name:C3
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state3/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/above:5213
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/time:327152
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/residency:2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/latency:1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/usage:10185
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/desc:ACPI
FFH MWAIT 0x0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/below:278
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state1/name:C1
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/above:134
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/time:617470
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/rejected:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/power:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/residency:254
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/latency:127
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/usage:766
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/desc:ACPI
FFH MWAIT 0x21
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/below:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/default_status:enabled
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/name:C2
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/s2idle/time:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state2/s2idle/usage:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state0/disable:0
/sys/devices/pci0000:00/0000:00:1f.4/i2c-0/0-0050/driver/0-0052/subsystem/devices/i2c-3/device/firmware_node/device:54/subsystem/devices/ACPI0007:15/thermal_cooling/subsystem/cooling_device13/device/physical_node/node0/cpu21/driver/cpu11/cpuidle/state0/above:0
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-17 14:42 ` Paul Menzel
@ 2024-06-17 15:49 ` Guenter Roeck
2024-06-18 10:25 ` Paul Menzel
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-17 15:49 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Hi Paul,
On Mon, Jun 17, 2024 at 04:42:47PM +0200, Paul Menzel wrote:
[ ... ]
>
> I applied your patch
>
> $ git log --oneline --no-decorate -2
> 00058a6 eeprom: Add basic spd5118 support
> a0e5865 i2cdetect: only use "newer" I2C_FUNC_* flags if they exist
>
> but reading eeprom fails:
>
> $ sudo ./eeprom/decode-dimms
decode-dimms does not need sudo, but that should not make a difference.
> Cannot read /sys/bus/i2c/drivers/spd5118/0-0050/eeprom at
> ./eeprom/decode-dimms line 2465.
>
Well, it _is_ a hack ;-), but that specific operation should not fail.
Please try the following:
ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
sudo i2cdump -y -f 0 0x50
All those should work, and the size of /tmp/eeprom should be
1024 bytes. The output of i2cdump should start with something like
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 51 18 0a 86 32 03 32 00 00 00 00 07 ff 7f 00 00 Q???2?2......?..
^^
and with
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 7f 00 00 Q???2?2......?..
^^
after executing the "sensors" command.
Other than that, I can see that your system is an Intel system,
meaning the i2c controller would be i801, not piix4. I wonder
if that makes a difference. Has anyone else seeing this tested
eeprom access with i801 (or any other controller besides piix4),
by any chance ?
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-17 15:49 ` Guenter Roeck
@ 2024-06-18 10:25 ` Paul Menzel
2024-06-18 13:32 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 10:25 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Thank you for your support.
Am 17.06.24 um 17:49 schrieb Guenter Roeck:
> On Mon, Jun 17, 2024 at 04:42:47PM +0200, Paul Menzel wrote:
> [ ... ]
>>
>> I applied your patch
>>
>> $ git log --oneline --no-decorate -2
>> 00058a6 eeprom: Add basic spd5118 support
>> a0e5865 i2cdetect: only use "newer" I2C_FUNC_* flags if they exist
>>
>> but reading eeprom fails:
>>
>> $ sudo ./eeprom/decode-dimms
>
> decode-dimms does not need sudo, but that should not make a difference.
>
>> Cannot read /sys/bus/i2c/drivers/spd5118/0-0050/eeprom at ./eeprom/decode-dimms line 2465.
>>
> Well, it _is_ a hack ;-), but that specific operation should not fail.
>
> Please try the following:
>
> ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
> cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
> od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
$ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
-r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers
/spd5118/0-0050/eeprom
$ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No
such device or address
$ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such
device or address
0000000
> sudo i2cdump -y -f 0 0x50
$ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
No size specified (using byte-data access)
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such
file or directory
> All those should work, and the size of /tmp/eeprom should be
> 1024 bytes. The output of i2cdump should start with something like
>
> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
> 00: 51 18 0a 86 32 03 32 00 00 00 00 07 ff 7f 00 00 Q???2?2......?..
> ^^
>
> and with
>
> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
> 00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 7f 00 00 Q???2?2......?..
> ^^
>
> after executing the "sensors" command.
Hopefully, I didn’t do something silly, that it does not work on my
system yet. `sensors` is able to read stuff:
```
$ sensors
spd5118-i2c-0-53
Adapter: SMBus I801 adapter at efa0
temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
spd5118-i2c-0-51
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +32.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +27.0°C (high = +80.0°C, crit = +100.0°C)
Core 4: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 8: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 12: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 16: +25.0°C (high = +80.0°C, crit = +100.0°C)
Core 20: +26.0°C (high = +80.0°C, crit = +100.0°C)
Core 24: +24.0°C (high = +80.0°C, crit = +100.0°C)
Core 28: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 32: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 33: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 34: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 35: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 36: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 37: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 38: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 39: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 40: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 41: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 42: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 43: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 44: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 45: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 46: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 47: +30.0°C (high = +80.0°C, crit = +100.0°C)
spd5118-i2c-0-52
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
spd5118-i2c-0-50
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
```
> Other than that, I can see that your system is an Intel system,
> meaning the i2c controller would be i801, not piix4. I wonder
> if that makes a difference. Has anyone else seeing this tested
> eeprom access with i801 (or any other controller besides piix4),
> by any chance?
Sorry, I only have Intel systems with DDR5 RAM at disposal.
Kind regards,
Paul
PS:
```
$ lsmod | grep i2c
i2c_algo_bit 12288 1 i915
regmap_i2c 12288 1 spd5118
$ grep I2C /boot/config-6.10.0-rc4.mx64.461-00047-g801b6aad6fa7
CONFIG_REGMAP_I2C=m
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_MOUSE_ELAN_I2C is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_TCG_TIS_I2C is not set
CONFIG_TCG_TIS_I2C_CR50=m
CONFIG_TCG_TIS_I2C_ATMEL=m
CONFIG_TCG_TIS_I2C_INFINEON=m
CONFIG_TCG_TIS_I2C_NUVOTON=m
CONFIG_TCG_TIS_ST33ZP24_I2C=m
# I2C support
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=y
# Multiplexer I2C Chip support
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
# CONFIG_I2C_MUX_REG is not set
# CONFIG_I2C_MUX_MLXCPLD is not set
# end of Multiplexer I2C Chip support
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=y
CONFIG_I2C_ALGOBIT=m
# I2C Hardware Bus support
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
# CONFIG_I2C_AMD_MP2 is not set
CONFIG_I2C_I801=y
CONFIG_I2C_ISCH=m
# CONFIG_I2C_ISMT is not set
CONFIG_I2C_PIIX4=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
# CONFIG_I2C_NVIDIA_GPU is not set
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
# CONFIG_I2C_ZHAOXIN is not set
# CONFIG_I2C_SCMI is not set
# I2C system bus drivers (mostly embedded / system-on-chip)
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set
# External I2C/SMBus adapter drivers
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_CP2615 is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PCI1XXXX is not set
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set
# Other I2C/SMBus bus drivers
# CONFIG_I2C_MLXCPLD is not set
# CONFIG_I2C_VIRTIO is not set
# end of I2C Hardware Bus support
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# end of I2C support
# I2C GPIO expanders
# end of I2C GPIO expanders
# CONFIG_SENSORS_LTC2947_I2C is not set
# CONFIG_SENSORS_NCT6775_I2C is not set
# CONFIG_SENSORS_OCC_P8_I2C is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CS42L43_I2C is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS6594_I2C is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_ATC260X_I2C is not set
CONFIG_VIDEO_V4L2_I2C=y
# audio, video and radio I2C drivers auto-selected by 'Autoselect
ancillary drivers'
# I2C encoder or helper chips
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
# end of I2C encoder or helper chips
CONFIG_I2C_HID=y
# CONFIG_I2C_HID_ACPI is not set
# CONFIG_I2C_HID_OF is not set
# I2C RTC drivers
CONFIG_RTC_I2C_AND_SPI=y
# SPI and I2C RTC drivers
```
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 10:25 ` Paul Menzel
@ 2024-06-18 13:32 ` Guenter Roeck
2024-06-18 13:51 ` Paul Menzel
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 13:32 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Hi Paul,
On 6/18/24 03:25, Paul Menzel wrote:
[ ... ]
>
> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers /spd5118/0-0050/eeprom
> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
That suggests that the i801 driver got an error when trying some chip operation.
Unfortunately I have no idea what that error or the failed operation might be.
> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
> 0000000
>
>> sudo i2cdump -y -f 0 0x50
>
> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
> No size specified (using byte-data access)
> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>
This should work after you load the "i2c-dev" module.
If you get it to work, please provide the output. Maybe it helps tracking down
the problem.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 13:32 ` Guenter Roeck
@ 2024-06-18 13:51 ` Paul Menzel
2024-06-18 14:23 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 13:51 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 18.06.24 um 15:32 schrieb Guenter Roeck:
> On 6/18/24 03:25, Paul Menzel wrote:
> [ ... ]
>>
>> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
>> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
>
> That suggests that the i801 driver got an error when trying some chip
> operation.
> Unfortunately I have no idea what that error or the failed operation
> might be.
>
>> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
>> 0000000
>>
>>> sudo i2cdump -y -f 0 0x50
>>
>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>> No size specified (using byte-data access)
>> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>>
> This should work after you load the "i2c-dev" module.
Silly me. Thank you.
> If you get it to work, please provide the output. Maybe it helps
> tracking down the problem.
```
$ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
```
So (00,b) = 0x00 opposed to 0x07 in your example output.
$ sensors
[…]
Then there is no change:
```
$ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
```
Kind regards,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 13:51 ` Paul Menzel
@ 2024-06-18 14:23 ` Guenter Roeck
2024-06-18 14:59 ` Paul Menzel
0 siblings, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 14:23 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
On 6/18/24 06:51, Paul Menzel wrote:
> Dear Guenter,
>
>
> Am 18.06.24 um 15:32 schrieb Guenter Roeck:
>
>> On 6/18/24 03:25, Paul Menzel wrote:
>> [ ... ]
>>>
>>> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
>>> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
>>
>> That suggests that the i801 driver got an error when trying some chip operation.
>> Unfortunately I have no idea what that error or the failed operation might be.
>>
>>> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
>>> 0000000
>>>
>>>> sudo i2cdump -y -f 0 0x50
>>>
>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>> No size specified (using byte-data access)
>>> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>>>
>> This should work after you load the "i2c-dev" module.
>
> Silly me. Thank you.
>
>> If you get it to work, please provide the output. Maybe it helps tracking down the problem.
>
> ```
> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
> No size specified (using byte-data access)
> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
> 00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
> 10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
> 20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
> 30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
> 90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
> a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
> d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> ```
>
> So (00,b) = 0x00 opposed to 0x07 in your example output.
>
Yes, that assumed that reading the nvram/eeprom succeeded, which it didn't.
The value might also be 7 directly after booting and before loading
the spd5118 driver.
Anyway, it almost looks like setting the page doesn't work, or maybe write
operations in general.
Can you try the following ?
dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=64 bs=1
and
dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=1 bs=64
That should only try to read from page 0.
Also, please try to set a temperature limit, either temp1_max
or temp1_crit. Setting temp1_max to, say, 56000, or temp1_crit
to 84000 should do.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 14:23 ` Guenter Roeck
@ 2024-06-18 14:59 ` Paul Menzel
2024-06-18 15:10 ` Guenter Roeck
2024-06-18 15:12 ` Guenter Roeck
0 siblings, 2 replies; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 14:59 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 18.06.24 um 16:23 schrieb Guenter Roeck:
> On 6/18/24 06:51, Paul Menzel wrote:
>> Am 18.06.24 um 15:32 schrieb Guenter Roeck:
>>
>>> On 6/18/24 03:25, Paul Menzel wrote:
>>> [ ... ]
>>>>
>>>> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
>>>> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
>>>
>>> That suggests that the i801 driver got an error when trying some chip
>>> operation.
>>> Unfortunately I have no idea what that error or the failed operation
>>> might be.
>>>
>>>> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
>>>> 0000000
>>>>
>>>>> sudo i2cdump -y -f 0 0x50
>>>>
>>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>>> No size specified (using byte-data access)
>>>> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>>>>
>>> This should work after you load the "i2c-dev" module.
>>
>> Silly me. Thank you.
>>
>>> If you get it to work, please provide the output. Maybe it helps
>>> tracking down the problem.
>>
>> ```
>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>> No size specified (using byte-data access)
>> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
>> 00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
>> 20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
>> 30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> 80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
>> 90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
>> a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
>> d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>> ```
>>
>> So (00,b) = 0x00 opposed to 0x07 in your example output.
>>
>
> Yes, that assumed that reading the nvram/eeprom succeeded, which it didn't.
> The value might also be 7 directly after booting and before loading
> the spd5118 driver.
>
> Anyway, it almost looks like setting the page doesn't work, or maybe write
> operations in general.
>
> Can you try the following ?
>
> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=64
> bs=1
>
> and
>
> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=1
> bs=64
>
> That should only try to read from page 0.
$ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom
of=/tmp/eeprom count=64 bs=1
64+0 records in
64+0 records out
64 bytes copied, 0.046002 s, 1.4 kB/s
$ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom
of=/tmp/eeprom count=1 bs=64
1+0 records in
1+0 records out
64 bytes copied, 0.000215414 s, 297 kB/s
> Also, please try to set a temperature limit, either temp1_max
> or temp1_crit. Setting temp1_max to, say, 56000, or temp1_crit
> to 84000 should do.
I did
$ tail -3 /etc/sensors3.conf
chip "spd5118-*"
set temp1_max 56000
set temp1_crit 84000
but it stays with the defaults:
```
$ sensors
spd5118-i2c-0-53
Adapter: SMBus I801 adapter at efa0
temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
spd5118-i2c-0-51
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +32.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 4: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 8: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 12: +27.0°C (high = +80.0°C, crit = +100.0°C)
Core 16: +25.0°C (high = +80.0°C, crit = +100.0°C)
Core 20: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 24: +25.0°C (high = +80.0°C, crit = +100.0°C)
Core 28: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 32: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 33: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 34: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 35: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 36: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 37: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 38: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 39: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 40: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 41: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 42: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 43: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 44: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 45: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 46: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 47: +30.0°C (high = +80.0°C, crit = +100.0°C)
spd5118-i2c-0-52
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
spd5118-i2c-0-50
Adapter: SMBus I801 adapter at efa0
temp1: +21.5°C (low = +0.0°C, high = +55.0°C)
(crit low = +0.0°C, crit = +85.0°C)
```
Sorry, if I did something wrong.
Kind regards,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 14:59 ` Paul Menzel
@ 2024-06-18 15:10 ` Guenter Roeck
2024-06-18 15:25 ` Paul Menzel
2024-06-18 15:12 ` Guenter Roeck
1 sibling, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 15:10 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Hi Paul,
On 6/18/24 07:59, Paul Menzel wrote:
[ ... ]
> I did
>
> $ tail -3 /etc/sensors3.conf
> chip "spd5118-*"
> set temp1_max 56000
> set temp1_crit 84000
>
> but it stays with the defaults:
>
> ```
> $ sensors
> spd5118-i2c-0-53
> Adapter: SMBus I801 adapter at efa0
> temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
> (crit low = +0.0°C, crit = +85.0°C)
>
You'd have to write directly into the attribute files.
For example, if you have
$ grep . /sys/class/hwmon/*/name
/sys/class/hwmon/hwmon0/name:nvme
/sys/class/hwmon/hwmon1/name:nct6687
/sys/class/hwmon/hwmon2/name:k10temp
/sys/class/hwmon/hwmon3/name:spd5118
/sys/class/hwmon/hwmon4/name:spd5118
/sys/class/hwmon/hwmon5/name:spd5118
/sys/class/hwmon/hwmon6/name:spd5118
/sys/class/hwmon/hwmon7/name:mt7921_phy0
/sys/class/hwmon/hwmon8/name:amdgpu
you could run
sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 14:59 ` Paul Menzel
2024-06-18 15:10 ` Guenter Roeck
@ 2024-06-18 15:12 ` Guenter Roeck
2024-06-18 15:27 ` Paul Menzel
1 sibling, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 15:12 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
On 6/18/24 07:59, Paul Menzel wrote:
> Dear Guenter,
>
>
> Am 18.06.24 um 16:23 schrieb Guenter Roeck:
>> On 6/18/24 06:51, Paul Menzel wrote:
>
>>> Am 18.06.24 um 15:32 schrieb Guenter Roeck:
>>>
>>>> On 6/18/24 03:25, Paul Menzel wrote:
>>>> [ ... ]
>>>>>
>>>>> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
>>>>> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
>>>>
>>>> That suggests that the i801 driver got an error when trying some chip operation.
>>>> Unfortunately I have no idea what that error or the failed operation might be.
>>>>
>>>>> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
>>>>> 0000000
>>>>>
>>>>>> sudo i2cdump -y -f 0 0x50
>>>>>
>>>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>>>> No size specified (using byte-data access)
>>>>> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>>>>>
>>>> This should work after you load the "i2c-dev" module.
>>>
>>> Silly me. Thank you.
>>>
>>>> If you get it to work, please provide the output. Maybe it helps tracking down the problem.
>>>
>>> ```
>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>> No size specified (using byte-data access)
>>> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
>>> 00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
>>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
>>> 20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
>>> 30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
>>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> 80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
>>> 90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
>>> a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
>>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
>>> d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
>>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>> ```
>>>
>>> So (00,b) = 0x00 opposed to 0x07 in your example output.
>>>
>>
>> Yes, that assumed that reading the nvram/eeprom succeeded, which it didn't.
>> The value might also be 7 directly after booting and before loading
>> the spd5118 driver.
>>
>> Anyway, it almost looks like setting the page doesn't work, or maybe write
>> operations in general.
>>
>> Can you try the following ?
>>
>> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=64 bs=1
>>
>> and
>>
>> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=1 bs=64
>>
>> That should only try to read from page 0.
>
> $ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=64 bs=1
> 64+0 records in
> 64+0 records out
> 64 bytes copied, 0.046002 s, 1.4 kB/s
> $ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=1 bs=64
> 1+0 records in
> 1+0 records out
> 64 bytes copied, 0.000215414 s, 297 kB/s
>
>> Also, please try to set a temperature limit, either temp1_max
>> or temp1_crit. Setting temp1_max to, say, 56000, or temp1_crit
>> to 84000 should do.
>
> I did
>
> $ tail -3 /etc/sensors3.conf
> chip "spd5118-*"
> set temp1_max 56000
> set temp1_crit 84000
>
> but it stays with the defaults:
>
> ```
> $ sensors
Did you run "sudo sensors -s" ?
I don't know if that would report errors, though.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 15:10 ` Guenter Roeck
@ 2024-06-18 15:25 ` Paul Menzel
2024-06-18 15:43 ` Guenter Roeck
2024-06-18 18:16 ` Guenter Roeck
0 siblings, 2 replies; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 15:25 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 18.06.24 um 17:10 schrieb Guenter Roeck:
> On 6/18/24 07:59, Paul Menzel wrote:
> [ ... ]
>
>> I did
>>
>> $ tail -3 /etc/sensors3.conf
>> chip "spd5118-*"
>> set temp1_max 56000
>> set temp1_crit 84000
>>
>> but it stays with the defaults:
>>
>> ```
>> $ sensors
>> spd5118-i2c-0-53
>> Adapter: SMBus I801 adapter at efa0
>> temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
>> (crit low = +0.0°C, crit = +85.0°C)
>>
>
> You'd have to write directly into the attribute files.
> For example, if you have
>
> $ grep . /sys/class/hwmon/*/name
> /sys/class/hwmon/hwmon0/name:nvme
> /sys/class/hwmon/hwmon1/name:nct6687
> /sys/class/hwmon/hwmon2/name:k10temp
> /sys/class/hwmon/hwmon3/name:spd5118
> /sys/class/hwmon/hwmon4/name:spd5118
> /sys/class/hwmon/hwmon5/name:spd5118
> /sys/class/hwmon/hwmon6/name:spd5118
> /sys/class/hwmon/hwmon7/name:mt7921_phy0
> /sys/class/hwmon/hwmon8/name:amdgpu
>
> you could run
>
> sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
$ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
bash: line 1: echo: write error: No such device or address
Kind regards,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 15:12 ` Guenter Roeck
@ 2024-06-18 15:27 ` Paul Menzel
0 siblings, 0 replies; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 15:27 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 18.06.24 um 17:12 schrieb Guenter Roeck:
> On 6/18/24 07:59, Paul Menzel wrote:
>> Am 18.06.24 um 16:23 schrieb Guenter Roeck:
>>> On 6/18/24 06:51, Paul Menzel wrote:
>>
>>>> Am 18.06.24 um 15:32 schrieb Guenter Roeck:
>>>>
>>>>> On 6/18/24 03:25, Paul Menzel wrote:
>>>>> [ ... ]
>>>>>>
>>>>>> $ ls -l /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>>> -r--r--r-- 1 root root 1024 Jun 18 12:17 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>>> $ cp /sys/bus/i2c/drivers/spd5118/0-0050/eeprom /tmp
>>>>>> cp: error reading '/sys/bus/i2c/drivers/spd5118/0-0050/eeprom': No such device or address
>>>>>
>>>>> That suggests that the i801 driver got an error when trying some
>>>>> chip operation.
>>>>> Unfortunately I have no idea what that error or the failed
>>>>> operation might be.
>>>>>
>>>>>> $ od -t x1 /sys/bus/i2c/drivers/spd5118/0-0050/eeprom
>>>>>> od: /sys/bus/i2c/drivers/spd5118/0-0050/eeprom: read error: No such device or address
>>>>>> 0000000
>>>>>>
>>>>>>> sudo i2cdump -y -f 0 0x50
>>>>>>
>>>>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>>>>> No size specified (using byte-data access)
>>>>>> Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
>>>>>>
>>>>> This should work after you load the "i2c-dev" module.
>>>>
>>>> Silly me. Thank you.
>>>>
>>>>> If you get it to work, please provide the output. Maybe it helps
>>>>> tracking down the problem.
>>>>
>>>> ```
>>>> $ sudo LD_LIBRARY_PATH=~/src/i2c-tools/lib tools/i2cdump -y -f 0 0x50
>>>> No size specified (using byte-data access)
>>>> 0 1 2 3 4 5 6 7 8 9 a b c d e f
>>>> 0123456789abcdef
>>>> 00: 51 18 0a 86 32 03 32 00 00 00 00 00 ff 01 00 00 Q???2?2......?..
>>>> 10: 00 00 00 00 00 00 00 00 00 00 00 00 70 03 00 00 ............p?..
>>>> 20: 50 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 P?..............
>>>> 30: 00 58 01 00 00 00 00 00 00 00 00 00 00 00 00 00 .X?.............
>>>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> 80: 30 10 12 02 04 00 20 62 00 00 00 00 90 02 00 00 0????. b....??..
>>>> 90: 00 00 00 00 a0 01 f2 03 7a 0d 00 00 00 00 80 3e ....????z?....?>
>>>> a0: 80 3e 80 3e 00 7d 80 bb 30 75 27 01 a0 00 82 00 ?>?>.}??0u'??.?.
>>>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> c0: 00 00 00 00 00 00 88 13 08 88 13 08 20 4e 20 10 ......?????? N ?
>>>> d0: 27 10 15 34 20 10 27 10 c4 09 04 4c 1d 0c 00 00 '??4 ?'????L??..
>>>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>>>> ```
>>>>
>>>> So (00,b) = 0x00 opposed to 0x07 in your example output.
>>>>
>>>
>>> Yes, that assumed that reading the nvram/eeprom succeeded, which it didn't.
>>> The value might also be 7 directly after booting and before loading
>>> the spd5118 driver.
>>>
>>> Anyway, it almost looks like setting the page doesn't work, or maybe write
>>> operations in general.
>>>
>>> Can you try the following ?
>>>
>>> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom
>>> count=64 bs=1
>>>
>>> and
>>>
>>> dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom
>>> count=1 bs=64
>>>
>>> That should only try to read from page 0.
>>
>> $ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=64 bs=1
>> 64+0 records in
>> 64+0 records out
>> 64 bytes copied, 0.046002 s, 1.4 kB/s
>> $ sudo dd if=/sys/bus/i2c/drivers/spd5118/0-0050/eeprom of=/tmp/eeprom count=1 bs=64
>> 1+0 records in
>> 1+0 records out
>> 64 bytes copied, 0.000215414 s, 297 kB/s
>>
>>> Also, please try to set a temperature limit, either temp1_max
>>> or temp1_crit. Setting temp1_max to, say, 56000, or temp1_crit
>>> to 84000 should do.
>>
>> I did
>>
>> $ tail -3 /etc/sensors3.conf
>> chip "spd5118-*"
>> set temp1_max 56000
>> set temp1_crit 84000
>>
>> but it stays with the defaults:
>>
>> ```
>> $ sensors
>
> Did you run "sudo sensors -s" ?
No, I did not.
> I don't know if that would report errors, though.
It looks like it does:
$ sudo sensors -s
Error: File /etc/sensors3.conf, line 522: Failed to set value
Error: File /etc/sensors3.conf, line 523: Failed to set value
spd5118-i2c-0-53: At least one "set" statement failed
Error: File /etc/sensors3.conf, line 522: Failed to set value
Error: File /etc/sensors3.conf, line 523: Failed to set value
spd5118-i2c-0-51: At least one "set" statement failed
Error: File /etc/sensors3.conf, line 522: Failed to set value
Error: File /etc/sensors3.conf, line 523: Failed to set value
spd5118-i2c-0-52: At least one "set" statement failed
Error: File /etc/sensors3.conf, line 522: Failed to set value
Error: File /etc/sensors3.conf, line 523: Failed to set value
spd5118-i2c-0-50: At least one "set" statement failed
Kind regards,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 15:25 ` Paul Menzel
@ 2024-06-18 15:43 ` Guenter Roeck
2024-06-18 18:16 ` Guenter Roeck
1 sibling, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 15:43 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
On 6/18/24 08:25, Paul Menzel wrote:
[ ... ]
>> sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>
> $ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
> bash: line 1: echo: write error: No such device or address
>
So, as I suspected, that means that all write operations fail,
meaning the write operation used by regmap is not supported by
the chip and/or by the i2c controller.
That makes me wonder if the same problem is seen with other variants
of the same problem. If so, we may have to drop regmap support
completely.
Does anyone else of those listening in have a Intel/i801 system
and could possibly test if they have the same problem ?
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 15:25 ` Paul Menzel
2024-06-18 15:43 ` Guenter Roeck
@ 2024-06-18 18:16 ` Guenter Roeck
2024-06-18 18:59 ` Paul Menzel
1 sibling, 1 reply; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 18:16 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
On 6/18/24 08:25, Paul Menzel wrote:
> Dear Guenter,
>
>
> Am 18.06.24 um 17:10 schrieb Guenter Roeck:
>> On 6/18/24 07:59, Paul Menzel wrote:
>> [ ... ]
>>
>>> I did
>>>
>>> $ tail -3 /etc/sensors3.conf
>>> chip "spd5118-*"
>>> set temp1_max 56000
>>> set temp1_crit 84000
>>>
>>> but it stays with the defaults:
>>>
>>> ```
>>> $ sensors
>>> spd5118-i2c-0-53
>>> Adapter: SMBus I801 adapter at efa0
>>> temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
>>> (crit low = +0.0°C, crit = +85.0°C)
>>>
>>
>> You'd have to write directly into the attribute files.
>> For example, if you have
>>
>> $ grep . /sys/class/hwmon/*/name
>> /sys/class/hwmon/hwmon0/name:nvme
>> /sys/class/hwmon/hwmon1/name:nct6687
>> /sys/class/hwmon/hwmon2/name:k10temp
>> /sys/class/hwmon/hwmon3/name:spd5118
>> /sys/class/hwmon/hwmon4/name:spd5118
>> /sys/class/hwmon/hwmon5/name:spd5118
>> /sys/class/hwmon/hwmon6/name:spd5118
>> /sys/class/hwmon/hwmon7/name:mt7921_phy0
>> /sys/class/hwmon/hwmon8/name:amdgpu
>>
>> you could run
>>
>> sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>
> $ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
> bash: line 1: echo: write error: No such device or address
>
Please add
.use_single_write = true,
to the regmap configuration (spd5118_regmap_config) to see if it helps.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 18:16 ` Guenter Roeck
@ 2024-06-18 18:59 ` Paul Menzel
2024-06-18 19:31 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Paul Menzel @ 2024-06-18 18:59 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
Dear Guenter,
Am 18.06.24 um 20:16 schrieb Guenter Roeck:
> On 6/18/24 08:25, Paul Menzel wrote:
>> Am 18.06.24 um 17:10 schrieb Guenter Roeck:
>>> On 6/18/24 07:59, Paul Menzel wrote:
>>> [ ... ]
>>>
>>>> I did
>>>>
>>>> $ tail -3 /etc/sensors3.conf
>>>> chip "spd5118-*"
>>>> set temp1_max 56000
>>>> set temp1_crit 84000
>>>>
>>>> but it stays with the defaults:
>>>>
>>>> ```
>>>> $ sensors
>>>> spd5118-i2c-0-53
>>>> Adapter: SMBus I801 adapter at efa0
>>>> temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
>>>> (crit low = +0.0°C, crit = +85.0°C)
>>>>
>>>
>>> You'd have to write directly into the attribute files.
>>> For example, if you have
>>>
>>> $ grep . /sys/class/hwmon/*/name
>>> /sys/class/hwmon/hwmon0/name:nvme
>>> /sys/class/hwmon/hwmon1/name:nct6687
>>> /sys/class/hwmon/hwmon2/name:k10temp
>>> /sys/class/hwmon/hwmon3/name:spd5118
>>> /sys/class/hwmon/hwmon4/name:spd5118
>>> /sys/class/hwmon/hwmon5/name:spd5118
>>> /sys/class/hwmon/hwmon6/name:spd5118
>>> /sys/class/hwmon/hwmon7/name:mt7921_phy0
>>> /sys/class/hwmon/hwmon8/name:amdgpu
>>>
>>> you could run
>>>
>>> sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>>
>> $ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>> bash: line 1: echo: write error: No such device or address
>>
>
> Please add
>
> .use_single_write = true,
>
> to the regmap configuration (spd5118_regmap_config) to see if it helps.
Unfortunately, it does not:
$ git log --no-decorate -p -1
commit c27ae51b689d7bdb7baf10c434438d501bd384aa
Author: Paul Menzel <pmenzel@molgen.mpg.de>
Date: Tue Jun 18 20:26:17 2024 +0200
hwmon: spd5118: Use .use_single_write = true,
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index ac94a67793605..33a628840597e 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -522,6 +522,7 @@ static const struct regmap_config
spd5118_regmap_config = {
.writeable_reg = spd5118_writeable_reg,
.volatile_reg = spd5118_volatile_reg,
.cache_type = REGCACHE_MAPLE,
+ .use_single_write = true,
};
static int spd5118_probe(struct i2c_client *client)
$ uname -r
6.10.0-rc4.mx64.461-00048-gc27ae51b689d
$ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
bash: line 1: echo: write error: No such device or address
Kind regards,
Paul
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-18 18:59 ` Paul Menzel
@ 2024-06-18 19:31 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-18 19:31 UTC (permalink / raw)
To: Paul Menzel
Cc: linux-hwmon, linux-i2c, linux-kernel, devicetree,
Krzysztof Kozlowski, Wolfram Sang, René Rebe,
Thomas Weißschuh, Armin Wolf, Stephen Horvath
On 6/18/24 11:59, Paul Menzel wrote:
> Dear Guenter,
>
>
> Am 18.06.24 um 20:16 schrieb Guenter Roeck:
>> On 6/18/24 08:25, Paul Menzel wrote:
>
>>> Am 18.06.24 um 17:10 schrieb Guenter Roeck:
>>>> On 6/18/24 07:59, Paul Menzel wrote:
>>>> [ ... ]
>>>>
>>>>> I did
>>>>>
>>>>> $ tail -3 /etc/sensors3.conf
>>>>> chip "spd5118-*"
>>>>> set temp1_max 56000
>>>>> set temp1_crit 84000
>>>>>
>>>>> but it stays with the defaults:
>>>>>
>>>>> ```
>>>>> $ sensors
>>>>> spd5118-i2c-0-53
>>>>> Adapter: SMBus I801 adapter at efa0
>>>>> temp1: +20.8°C (low = +0.0°C, high = +55.0°C)
>>>>> (crit low = +0.0°C, crit = +85.0°C)
>>>>>
>>>>
>>>> You'd have to write directly into the attribute files.
>>>> For example, if you have
>>>>
>>>> $ grep . /sys/class/hwmon/*/name
>>>> /sys/class/hwmon/hwmon0/name:nvme
>>>> /sys/class/hwmon/hwmon1/name:nct6687
>>>> /sys/class/hwmon/hwmon2/name:k10temp
>>>> /sys/class/hwmon/hwmon3/name:spd5118
>>>> /sys/class/hwmon/hwmon4/name:spd5118
>>>> /sys/class/hwmon/hwmon5/name:spd5118
>>>> /sys/class/hwmon/hwmon6/name:spd5118
>>>> /sys/class/hwmon/hwmon7/name:mt7921_phy0
>>>> /sys/class/hwmon/hwmon8/name:amdgpu
>>>>
>>>> you could run
>>>>
>>>> sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>>>
>>> $ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
>>> bash: line 1: echo: write error: No such device or address
>>>
>>
>> Please add
>>
>> .use_single_write = true,
>>
>> to the regmap configuration (spd5118_regmap_config) to see if it helps.
>
> Unfortunately, it does not:
>
> $ git log --no-decorate -p -1
> commit c27ae51b689d7bdb7baf10c434438d501bd384aa
> Author: Paul Menzel <pmenzel@molgen.mpg.de>
> Date: Tue Jun 18 20:26:17 2024 +0200
>
> hwmon: spd5118: Use .use_single_write = true,
>
> diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
> index ac94a67793605..33a628840597e 100644
> --- a/drivers/hwmon/spd5118.c
> +++ b/drivers/hwmon/spd5118.c
> @@ -522,6 +522,7 @@ static const struct regmap_config spd5118_regmap_config = {
> .writeable_reg = spd5118_writeable_reg,
> .volatile_reg = spd5118_volatile_reg,
> .cache_type = REGCACHE_MAPLE,
> + .use_single_write = true,
> };
>
> static int spd5118_probe(struct i2c_client *client)
>
> $ uname -r
> 6.10.0-rc4.mx64.461-00048-gc27ae51b689d
> $ sudo bash -c 'echo 56000 > /sys/class/hwmon/hwmon3/temp1_max'
> bash: line 1: echo: write error: No such device or address
>
>
Too bad. Still, thanks for trying!
I have a more comprehensive patch series which I think _should_ work.
I'll send it out for testing shortly.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-12 16:19 ` Wolfram Sang
@ 2024-06-24 20:06 ` Heiner Kallweit
2024-06-24 20:30 ` Guenter Roeck
0 siblings, 1 reply; 50+ messages in thread
From: Heiner Kallweit @ 2024-06-24 20:06 UTC (permalink / raw)
To: Wolfram Sang, Guenter Roeck, Armin Wolf, linux-hwmon, linux-i2c,
linux-kernel, devicetree, Krzysztof Kozlowski, René Rebe,
Thomas Weißschuh, Stephen Horvath
On 12.06.2024 18:19, Wolfram Sang wrote:
>
> CCing Heiner...
>
>>>>> Yes, maybe this could be simplified to "(LP)DDR memory types"
>>>>>
>>>>
>>>> I rephrased it to "Only works for (LP)DDR memory types up to DDR5".
>>>
>>> Thanks!
>>>
>>>> How about "Only works on systems with 1 to 8 memory slots" ?
>>>
>>> This is a question for Heiner. I'd think it is is still correct, but I
>>> don't know exactly.
>>>
>>
>> My interpretation was that it should work if the DIMMs are connected to
>> multiplexed I2C busses, but probably not if they are connected to
>> different adapters. The error message in that case is a bit misleading,
>> though, because it claims that "More than 8 memory slots on a single bus",
>> which isn't necessarily the case. For example, it should be perfectly valid
>> to have up to 24 DIMMs in this system.
>>
>> i2c-0/name:SMBus PIIX4 adapter port 0 at 0b00
>> i2c-1/name:SMBus PIIX4 adapter port 2 at 0b00
>> i2c-2/name:SMBus PIIX4 adapter port 1 at 0b20
>>
>> ... but I guess that is a question for someone with such a system to answer.
>>
>> Ultimately the handling of systems with more than 8 memory slots will need
>> to be updated at some point. On my systems, with 'i2c: piix4: Register SPDs'
>> applied, I see
>>
>> i2c i2c-0: 4/4 memory slots populated (from DMI)
>> [my system is running 6.6.y which still generates that message]
>> i2c i2c-0: Successfully instantiated SPD at 0x50
>> i2c i2c-0: Successfully instantiated SPD at 0x51
>> i2c i2c-0: Successfully instantiated SPD at 0x52
>> i2c i2c-0: Successfully instantiated SPD at 0x53
>> i2c i2c-1: 4/4 memory slots populated (from DMI)
>> i2c i2c-2: 4/4 memory slots populated (from DMI)
>>
>> meaning the function is called for each adapter (which makes sense).
>> However, the code counting the DIMMs doesn't really take the adapter
>> into account, meaning adapters 1 and 2 are still probed even though
>> all DIMMs were already instantiated from adapter 0.
>>
>> On a system with more than 8 DIMMs connected to different piix4 adapters
>> (without mux) we'd probably see something like
>>
>> i2c i2c-0: More than 8 memory slots on a single bus, contact i801 maintainer ...
>> i2c i2c-1: More than 8 memory slots on a single bus, contact i801 maintainer ...
>> i2c i2c-2: More than 8 memory slots on a single bus, contact i801 maintainer ...
>>
>> which wouldn't be very helpful. I think the main problem may be that
>> the i801 driver implements sub-adapters as muxes, but the piix4 driver
>> doesn't do (or need) that. The message is also i801 centric which doesn't
>> apply anymore after 'i2c: piix4: Register SPDs' is applied.
>>
>> However, I would not want to even try changing that code without access
>> to a system using piix4 and supporting more than 8 memory slots.
>>
>> Thanks,
>> Guenter
>>
>>
It seems Intel systems never have more than one i801 SMBUS adapter,
therefore systems with more than 8 memory slots have to use muxing.
The current code was developed for the Intel use case, and therefore
doesn't consider that a system may have dedicated SMBUS controllers
per 8 memory slots. So support for this scenario has to be added.
^ permalink raw reply [flat|nested] 50+ messages in thread
* Re: [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs
2024-06-24 20:06 ` Heiner Kallweit
@ 2024-06-24 20:30 ` Guenter Roeck
0 siblings, 0 replies; 50+ messages in thread
From: Guenter Roeck @ 2024-06-24 20:30 UTC (permalink / raw)
To: Heiner Kallweit, Wolfram Sang, Armin Wolf, linux-hwmon, linux-i2c,
linux-kernel, devicetree, Krzysztof Kozlowski, René Rebe,
Thomas Weißschuh, Stephen Horvath
On 6/24/24 13:06, Heiner Kallweit wrote:
[ ... ]
> It seems Intel systems never have more than one i801 SMBUS adapter,
> therefore systems with more than 8 memory slots have to use muxing.
> The current code was developed for the Intel use case, and therefore
> doesn't consider that a system may have dedicated SMBUS controllers
> per 8 memory slots. So support for this scenario has to be added.
>
I absolutely agree, hopefully by someone with such a system.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 50+ messages in thread
end of thread, other threads:[~2024-06-24 20:30 UTC | newest]
Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-04 4:02 [PATCH v4 0/6] hwmon: Add support for SPD5118 compliant chips Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 1/6] dt-bindings: trivial-devices: Add jedec,spd5118 Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 2/6] hwmon: Add support for SPD5118 compliant temperature sensors Guenter Roeck
2024-06-04 8:48 ` Stephen Horvath
2024-06-04 14:31 ` Guenter Roeck
2024-06-07 15:55 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 3/6] hwmon: (spd5118) Add suspend/resume support Guenter Roeck
2024-06-04 8:45 ` Stephen Horvath
2024-06-04 14:31 ` Guenter Roeck
2024-06-07 15:57 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 4/6] hwmon: (spd5118) Add support for reading SPD data Guenter Roeck
2024-06-04 11:58 ` Armin Wolf
2024-06-04 14:30 ` Guenter Roeck
2024-06-07 15:59 ` Armin Wolf
2024-06-04 4:02 ` [PATCH v4 5/6] i2c: smbus: Support DDR5 SPD EEPROMs Guenter Roeck
2024-06-04 7:32 ` Wolfram Sang
2024-06-05 12:21 ` Paul Menzel
2024-06-05 13:56 ` Guenter Roeck
2024-06-17 14:42 ` Paul Menzel
2024-06-17 15:49 ` Guenter Roeck
2024-06-18 10:25 ` Paul Menzel
2024-06-18 13:32 ` Guenter Roeck
2024-06-18 13:51 ` Paul Menzel
2024-06-18 14:23 ` Guenter Roeck
2024-06-18 14:59 ` Paul Menzel
2024-06-18 15:10 ` Guenter Roeck
2024-06-18 15:25 ` Paul Menzel
2024-06-18 15:43 ` Guenter Roeck
2024-06-18 18:16 ` Guenter Roeck
2024-06-18 18:59 ` Paul Menzel
2024-06-18 19:31 ` Guenter Roeck
2024-06-18 15:12 ` Guenter Roeck
2024-06-18 15:27 ` Paul Menzel
2024-06-07 16:06 ` Armin Wolf
2024-06-07 18:00 ` Wolfram Sang
2024-06-10 13:52 ` Guenter Roeck
2024-06-10 14:52 ` Wolfram Sang
2024-06-10 15:55 ` Guenter Roeck
2024-06-12 16:19 ` Wolfram Sang
2024-06-24 20:06 ` Heiner Kallweit
2024-06-24 20:30 ` Guenter Roeck
2024-06-04 4:02 ` [PATCH v4 6/6] hwmon: (spd5118) Add configuration option for auto-detection Guenter Roeck
2024-06-04 4:37 ` Thomas Weißschuh
2024-06-04 14:04 ` Guenter Roeck
2024-06-04 7:44 ` Wolfram Sang
2024-06-04 14:04 ` Guenter Roeck
2024-06-05 2:19 ` [PATCH v4a " Guenter Roeck
2024-06-05 9:22 ` Thomas Weißschuh
2024-06-05 14:04 ` Guenter Roeck
2024-06-07 16:08 ` Armin Wolf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).