linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/8] ACPI: unify _UID handling as integer
@ 2022-09-08 13:29 Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 1/8] ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID " Andy Shevchenko
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

This series is about unification on how we handle ACPI _UID when
it's known to be an integer-in-the-string.

The idea of merging either all via ACPI tree, or taking ACPI stuff
for the v6.1 while the rest may be picked up later on by respective
maintainers separately (currently all depends on Wolfram, other
patches have got the tags from the maintainers).

Partially compile-tested (x86-64).

Changelog v2:
- rebased pxa2xx patch to be applied against current Linux kernel code
- fixed uninitialized variable adev in use (mlxbf)
- dropped unneeded temporary variable adev (qcom_l2_pmu)
- changed type for ret in patch 8 (Hans)
- swapped conditions to check ret == 0 first (Ard)
- added tags (Mark, Ard, Hans)

Andy Shevchenko (8):
  ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID as
    integer
  ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer()
  ACPI: x86: Refactor _UID handling to use acpi_dev_uid_to_integer()
  i2c: amd-mp2-plat: Refactor _UID handling to use
    acpi_dev_uid_to_integer()
  i2c: mlxbf: Refactor _UID handling to use acpi_dev_uid_to_integer()
  perf: qcom_l2_pmu: Refactor _UID handling to use
    acpi_dev_uid_to_integer()
  spi: pxa2xx: Refactor _UID handling to use acpi_dev_uid_to_integer()
  efi/dev-path-parser: Refactor _UID handling to use
    acpi_dev_uid_to_integer()

 drivers/acpi/acpi_lpss.c               | 15 ++++++-----
 drivers/acpi/utils.c                   | 24 ++++++++++++++++++
 drivers/acpi/x86/utils.c               | 14 ++++++++---
 drivers/firmware/efi/dev-path-parser.c | 10 +++++---
 drivers/i2c/busses/i2c-amd-mp2-plat.c  | 27 +++++++-------------
 drivers/i2c/busses/i2c-mlxbf.c         | 20 +++++----------
 drivers/perf/qcom_l2_pmu.c             |  8 +++---
 drivers/spi/spi-pxa2xx.c               | 35 +++++++-------------------
 include/acpi/acpi_bus.h                |  1 +
 include/linux/acpi.h                   |  5 ++++
 10 files changed, 81 insertions(+), 78 deletions(-)

-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 1/8] ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID as integer
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 2/8] ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer() Andy Shevchenko
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

Some users interpret _UID only as integer and for them it's easier to
have an integer representation of _UID. Add respective helper for that.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/utils.c    | 24 ++++++++++++++++++++++++
 include/acpi/acpi_bus.h |  1 +
 include/linux/acpi.h    |  5 +++++
 3 files changed, 30 insertions(+)

diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 4acd6f7d1395..2ea14648a661 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -793,6 +793,30 @@ bool acpi_dev_hid_uid_match(struct acpi_device *adev,
 }
 EXPORT_SYMBOL(acpi_dev_hid_uid_match);
 
+/**
+ * acpi_dev_uid_to_integer - treat ACPI device _UID as integer
+ * @adev: ACPI device to get _UID from
+ * @integer: output buffer for integer
+ *
+ * Considers _UID as integer and converts it to @integer.
+ *
+ * Returns 0 on success, or negative error code otherwise.
+ */
+int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer)
+{
+	const char *uid;
+
+	if (!adev)
+		return -ENODEV;
+
+	uid = acpi_device_uid(adev);
+	if (!uid)
+		return -ENODATA;
+
+	return kstrtou64(uid, 0, integer);
+}
+EXPORT_SYMBOL(acpi_dev_uid_to_integer);
+
 /**
  * acpi_dev_found - Detect presence of a given ACPI device in the namespace.
  * @hid: Hardware ID of the device.
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 42f76f2c2d49..1804d7a70918 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -739,6 +739,7 @@ static inline bool acpi_device_can_poweroff(struct acpi_device *adev)
 }
 
 bool acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, const char *uid2);
+int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer);
 
 void acpi_dev_clear_dependencies(struct acpi_device *supplier);
 bool acpi_dev_ready_for_enumeration(const struct acpi_device *device);
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index ed4aa395cc49..619b2b1e4fb4 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -799,6 +799,11 @@ acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, const char *u
 	return false;
 }
 
+static inline int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer)
+{
+	return -ENODEV;
+}
+
 static inline struct acpi_device *
 acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv)
 {
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 2/8] ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 1/8] ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 3/8] ACPI: x86: " Andy Shevchenko
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/acpi_lpss.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 7a73528aa9c2..f08ffa75f4a7 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -167,10 +167,10 @@ static struct pwm_lookup byt_pwm_lookup[] = {
 
 static void byt_pwm_setup(struct lpss_private_data *pdata)
 {
-	struct acpi_device *adev = pdata->adev;
+	u64 uid;
 
 	/* Only call pwm_add_table for the first PWM controller */
-	if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
+	if (acpi_dev_uid_to_integer(pdata->adev, &uid) || uid != 1)
 		return;
 
 	pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
@@ -180,14 +180,13 @@ static void byt_pwm_setup(struct lpss_private_data *pdata)
 
 static void byt_i2c_setup(struct lpss_private_data *pdata)
 {
-	const char *uid_str = acpi_device_uid(pdata->adev);
 	acpi_handle handle = pdata->adev->handle;
 	unsigned long long shared_host = 0;
 	acpi_status status;
-	long uid = 0;
+	u64 uid;
 
-	/* Expected to always be true, but better safe then sorry */
-	if (uid_str && !kstrtol(uid_str, 10, &uid) && uid) {
+	/* Expected to always be successfull, but better safe then sorry */
+	if (!acpi_dev_uid_to_integer(pdata->adev, &uid) && uid) {
 		/* Detect I2C bus shared with PUNIT and ignore its d3 status */
 		status = acpi_evaluate_integer(handle, "_SEM", NULL, &shared_host);
 		if (ACPI_SUCCESS(status) && shared_host)
@@ -211,10 +210,10 @@ static struct pwm_lookup bsw_pwm_lookup[] = {
 
 static void bsw_pwm_setup(struct lpss_private_data *pdata)
 {
-	struct acpi_device *adev = pdata->adev;
+	u64 uid;
 
 	/* Only call pwm_add_table for the first PWM controller */
-	if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
+	if (acpi_dev_uid_to_integer(pdata->adev, &uid) || uid != 1)
 		return;
 
 	pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 3/8] ACPI: x86: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 1/8] ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID " Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 2/8] ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer() Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-08 13:29 ` [PATCH v2 4/8] i2c: amd-mp2-plat: " Andy Shevchenko
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/x86/utils.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index 664070fc8349..2764b4778ce7 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -351,11 +351,17 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
 	struct acpi_device *adev = ACPI_COMPANION(controller_parent);
 	const struct dmi_system_id *dmi_id;
 	long quirks = 0;
+	u64 uid;
+	int ret;
 
 	*skip = false;
 
-	/* !dev_is_platform() to not match on PNP enumerated debug UARTs */
-	if (!adev || !adev->pnp.unique_id || !dev_is_platform(controller_parent))
+	ret = acpi_dev_uid_to_integer(adev, &uid);
+	if (ret)
+		return 0;
+
+	/* to not match on PNP enumerated debug UARTs */
+	if (!dev_is_platform(controller_parent))
 		return 0;
 
 	dmi_id = dmi_first_match(acpi_quirk_skip_dmi_ids);
@@ -363,10 +369,10 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
 		quirks = (unsigned long)dmi_id->driver_data;
 
 	if (quirks & ACPI_QUIRK_UART1_TTY_UART2_SKIP) {
-		if (!strcmp(adev->pnp.unique_id, "1"))
+		if (uid == 1)
 			return -ENODEV; /* Create tty cdev instead of serdev */
 
-		if (!strcmp(adev->pnp.unique_id, "2"))
+		if (uid == 2)
 			*skip = true;
 	}
 
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 4/8] i2c: amd-mp2-plat: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (2 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 3/8] ACPI: x86: " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-12 20:49   ` Wolfram Sang
  2022-09-08 13:29 ` [PATCH v2 5/8] i2c: mlxbf: " Andy Shevchenko
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/i2c/busses/i2c-amd-mp2-plat.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/drivers/i2c/busses/i2c-amd-mp2-plat.c b/drivers/i2c/busses/i2c-amd-mp2-plat.c
index 84b7e6cbc67b..423fe0c8a471 100644
--- a/drivers/i2c/busses/i2c-amd-mp2-plat.c
+++ b/drivers/i2c/busses/i2c-amd-mp2-plat.c
@@ -244,14 +244,18 @@ static const struct i2c_adapter_quirks amd_i2c_dev_quirks = {
 
 static int i2c_amd_probe(struct platform_device *pdev)
 {
+	struct device *dev = &pdev->dev;
 	int ret;
 	struct amd_i2c_dev *i2c_dev;
-	struct acpi_device *adev = ACPI_COMPANION(&pdev->dev);
 	struct amd_mp2_dev *mp2_dev;
-	const char *uid;
+	u64 uid;
 
-	if (!adev)
-		return -ENODEV;
+	ret = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &uid);
+	if (ret)
+		return dev_err_probe(dev, ret, "missing UID/bus id!\n");
+	if (uid >= 2)
+		return dev_err_probe(dev, -EINVAL, "incorrect UID/bus id \"%llu\"!\n", uid);
+	dev_dbg(dev, "bus id is %llu\n", uid);
 
 	/* The ACPI namespace doesn't contain information about which MP2 PCI
 	 * device an AMDI0011 ACPI device is related to, so assume that there's
@@ -266,6 +270,7 @@ static int i2c_amd_probe(struct platform_device *pdev)
 	if (!i2c_dev)
 		return -ENOMEM;
 
+	i2c_dev->common.bus_id = uid;
 	i2c_dev->common.mp2_dev = mp2_dev;
 	i2c_dev->pdev = pdev;
 	platform_set_drvdata(pdev, i2c_dev);
@@ -276,20 +281,6 @@ static int i2c_amd_probe(struct platform_device *pdev)
 	i2c_dev->common.resume = &i2c_amd_resume;
 #endif
 
-	uid = adev->pnp.unique_id;
-	if (!uid) {
-		dev_err(&pdev->dev, "missing UID/bus id!\n");
-		return -EINVAL;
-	} else if (strcmp(uid, "0") == 0) {
-		i2c_dev->common.bus_id = 0;
-	} else if (strcmp(uid, "1") == 0) {
-		i2c_dev->common.bus_id = 1;
-	} else {
-		dev_err(&pdev->dev, "incorrect UID/bus id \"%s\"!\n", uid);
-		return -EINVAL;
-	}
-	dev_dbg(&pdev->dev, "bus id is %u\n", i2c_dev->common.bus_id);
-
 	/* Register the adapter */
 	amd_mp2_pm_runtime_get(mp2_dev);
 
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 5/8] i2c: mlxbf: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (3 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 4/8] i2c: amd-mp2-plat: " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-12 20:49   ` Wolfram Sang
  2022-09-08 13:29 ` [PATCH v2 6/8] perf: qcom_l2_pmu: " Andy Shevchenko
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/i2c/busses/i2c-mlxbf.c | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/i2c/busses/i2c-mlxbf.c b/drivers/i2c/busses/i2c-mlxbf.c
index 8716032f030a..32235c62f3d2 100644
--- a/drivers/i2c/busses/i2c-mlxbf.c
+++ b/drivers/i2c/busses/i2c-mlxbf.c
@@ -2229,35 +2229,27 @@ MODULE_DEVICE_TABLE(acpi, mlxbf_i2c_acpi_ids);
 static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
 {
 	const struct acpi_device_id *aid;
-	struct acpi_device *adev;
-	unsigned long bus_id = 0;
-	const char *uid;
+	u64 bus_id;
 	int ret;
 
 	if (acpi_disabled)
 		return -ENOENT;
 
-	adev = ACPI_COMPANION(dev);
-	if (!adev)
-		return -ENXIO;
-
 	aid = acpi_match_device(mlxbf_i2c_acpi_ids, dev);
 	if (!aid)
 		return -ENODEV;
 
 	priv->chip = (struct mlxbf_i2c_chip_info *)aid->driver_data;
 
-	uid = acpi_device_uid(adev);
-	if (!uid || !(*uid)) {
+	ret = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &bus_id);
+	if (ret) {
 		dev_err(dev, "Cannot retrieve UID\n");
-		return -ENODEV;
+		return ret;
 	}
 
-	ret = kstrtoul(uid, 0, &bus_id);
-	if (!ret)
-		priv->bus = bus_id;
+	priv->bus = bus_id;
 
-	return ret;
+	return 0;
 }
 #else
 static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 6/8] perf: qcom_l2_pmu: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (4 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 5/8] i2c: mlxbf: " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-09  4:40   ` kernel test robot
  2022-09-08 13:29 ` [PATCH v2 7/8] spi: pxa2xx: " Andy Shevchenko
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/perf/qcom_l2_pmu.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/perf/qcom_l2_pmu.c b/drivers/perf/qcom_l2_pmu.c
index 30234c261b05..ad4a41e1287f 100644
--- a/drivers/perf/qcom_l2_pmu.c
+++ b/drivers/perf/qcom_l2_pmu.c
@@ -840,16 +840,16 @@ static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
 {
 	struct platform_device *pdev = to_platform_device(dev->parent);
 	struct platform_device *sdev = to_platform_device(dev);
-	struct acpi_device *adev = ACPI_COMPANION(dev);
 	struct l2cache_pmu *l2cache_pmu = data;
 	struct cluster_pmu *cluster;
-	unsigned long fw_cluster_id;
+	u64 fw_cluster_id;
 	int err;
 	int irq;
 
-	if (!adev || kstrtoul(adev->pnp.unique_id, 10, &fw_cluster_id) < 0) {
+	err = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &fw_cluster_id);
+	if (err) {
 		dev_err(&pdev->dev, "unable to read ACPI uid\n");
-		return -ENODEV;
+		return err;
 	}
 
 	cluster = devm_kzalloc(&pdev->dev, sizeof(*cluster), GFP_KERNEL);
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 7/8] spi: pxa2xx: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (5 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 6/8] perf: qcom_l2_pmu: " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-13  1:00   ` kernel test robot
  2022-09-08 13:29 ` [PATCH v2 8/8] efi/dev-path-parser: " Andy Shevchenko
  2022-09-08 13:37 ` [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Mark Brown <broonie@kernel.org>
---
 drivers/spi/spi-pxa2xx.c | 35 +++++++++--------------------------
 1 file changed, 9 insertions(+), 26 deletions(-)

diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c
index 986ffc4bf1ed..024730dae8eb 100644
--- a/drivers/spi/spi-pxa2xx.c
+++ b/drivers/spi/spi-pxa2xx.c
@@ -1441,31 +1441,6 @@ static const struct of_device_id pxa2xx_spi_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, pxa2xx_spi_of_match);
 
-#ifdef CONFIG_ACPI
-
-static int pxa2xx_spi_get_port_id(struct device *dev)
-{
-	struct acpi_device *adev;
-	unsigned int devid;
-	int port_id = -1;
-
-	adev = ACPI_COMPANION(dev);
-	if (adev && adev->pnp.unique_id &&
-	    !kstrtouint(adev->pnp.unique_id, 0, &devid))
-		port_id = devid;
-	return port_id;
-}
-
-#else /* !CONFIG_ACPI */
-
-static int pxa2xx_spi_get_port_id(struct device *dev)
-{
-	return -1;
-}
-
-#endif /* CONFIG_ACPI */
-
-
 #ifdef CONFIG_PCI
 
 static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param)
@@ -1479,6 +1454,7 @@ static struct pxa2xx_spi_controller *
 pxa2xx_spi_init_pdata(struct platform_device *pdev)
 {
 	struct pxa2xx_spi_controller *pdata;
+	struct device *dev = &pdev->dev;
 	struct ssp_device *ssp;
 	struct resource *res;
 	struct device *parent = pdev->dev.parent;
@@ -1486,6 +1462,8 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 	const struct pci_device_id *pcidev_id = NULL;
 	enum pxa_ssp_type type;
 	const void *match;
+	int status;
+	u64 uid;
 
 	if (pcidev)
 		pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
@@ -1529,7 +1507,12 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
 
 	ssp->type = type;
 	ssp->dev = &pdev->dev;
-	ssp->port_id = pxa2xx_spi_get_port_id(&pdev->dev);
+
+	status = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &uid);
+	if (status)
+		ssp->port_id = -1;
+	else
+		ssp->port_id = uid;
 
 	pdata->is_slave = device_property_read_bool(&pdev->dev, "spi-slave");
 	pdata->num_chipselect = 1;
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 8/8] efi/dev-path-parser: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (6 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 7/8] spi: pxa2xx: " Andy Shevchenko
@ 2022-09-08 13:29 ` Andy Shevchenko
  2022-09-08 13:42   ` Hans de Goede
  2022-09-08 13:37 ` [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:29 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
an integer. Use it instead of custom approach.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
---
 drivers/firmware/efi/dev-path-parser.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/efi/dev-path-parser.c b/drivers/firmware/efi/dev-path-parser.c
index eb9c65f97841..f80d87c199c3 100644
--- a/drivers/firmware/efi/dev-path-parser.c
+++ b/drivers/firmware/efi/dev-path-parser.c
@@ -15,9 +15,11 @@
 static long __init parse_acpi_path(const struct efi_dev_path *node,
 				   struct device *parent, struct device **child)
 {
-	char hid[ACPI_ID_LEN], uid[11]; /* UINT_MAX + null byte */
 	struct acpi_device *adev;
 	struct device *phys_dev;
+	char hid[ACPI_ID_LEN];
+	u64 uid;
+	int ret;
 
 	if (node->header.length != 12)
 		return -EINVAL;
@@ -27,12 +29,12 @@ static long __init parse_acpi_path(const struct efi_dev_path *node,
 		'A' + ((node->acpi.hid >>  5) & 0x1f) - 1,
 		'A' + ((node->acpi.hid >>  0) & 0x1f) - 1,
 			node->acpi.hid >> 16);
-	sprintf(uid, "%u", node->acpi.uid);
 
 	for_each_acpi_dev_match(adev, hid, NULL, -1) {
-		if (adev->pnp.unique_id && !strcmp(adev->pnp.unique_id, uid))
+		ret = acpi_dev_uid_to_integer(adev, &uid);
+		if (ret == 0 && node->acpi.uid == uid)
 			break;
-		if (!adev->pnp.unique_id && node->acpi.uid == 0)
+		if (ret == -ENODATA && node->acpi.uid == 0)
 			break;
 	}
 	if (!adev)
-- 
2.35.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 0/8] ACPI: unify _UID handling as integer
  2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
                   ` (7 preceding siblings ...)
  2022-09-08 13:29 ` [PATCH v2 8/8] efi/dev-path-parser: " Andy Shevchenko
@ 2022-09-08 13:37 ` Andy Shevchenko
  2022-09-10 16:32   ` Rafael J. Wysocki
  8 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-08 13:37 UTC (permalink / raw)
  To: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	linux-acpi, linux-kernel, linux-efi, linux-i2c, linux-arm-msm,
	linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

On Thu, Sep 08, 2022 at 04:29:02PM +0300, Andy Shevchenko wrote:
> This series is about unification on how we handle ACPI _UID when
> it's known to be an integer-in-the-string.
> 
> The idea of merging either all via ACPI tree, or taking ACPI stuff
> for the v6.1 while the rest may be picked up later on by respective
> maintainers separately

>(currently all depends on Wolfram, other
> patches have got the tags from the maintainers).

I stand corrected, the perf patch is not tagged yet.

> Partially compile-tested (x86-64).

Forgot to mention that there is a new user of this API is pending:
https://lore.kernel.org/linux-gpio/20220908072621.3415957-1-jay.xu@rock-chips.com/

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 8/8] efi/dev-path-parser: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 ` [PATCH v2 8/8] efi/dev-path-parser: " Andy Shevchenko
@ 2022-09-08 13:42   ` Hans de Goede
  0 siblings, 0 replies; 19+ messages in thread
From: Hans de Goede @ 2022-09-08 13:42 UTC (permalink / raw)
  To: Andy Shevchenko, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	linux-acpi, linux-kernel, linux-efi, linux-i2c, linux-arm-msm,
	linux-arm-kernel, linux-spi, devel
  Cc: Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

Hi,

On 9/8/22 15:29, Andy Shevchenko wrote:
> ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
> an integer. Use it instead of custom approach.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans


> ---
>  drivers/firmware/efi/dev-path-parser.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/firmware/efi/dev-path-parser.c b/drivers/firmware/efi/dev-path-parser.c
> index eb9c65f97841..f80d87c199c3 100644
> --- a/drivers/firmware/efi/dev-path-parser.c
> +++ b/drivers/firmware/efi/dev-path-parser.c
> @@ -15,9 +15,11 @@
>  static long __init parse_acpi_path(const struct efi_dev_path *node,
>  				   struct device *parent, struct device **child)
>  {
> -	char hid[ACPI_ID_LEN], uid[11]; /* UINT_MAX + null byte */
>  	struct acpi_device *adev;
>  	struct device *phys_dev;
> +	char hid[ACPI_ID_LEN];
> +	u64 uid;
> +	int ret;
>  
>  	if (node->header.length != 12)
>  		return -EINVAL;
> @@ -27,12 +29,12 @@ static long __init parse_acpi_path(const struct efi_dev_path *node,
>  		'A' + ((node->acpi.hid >>  5) & 0x1f) - 1,
>  		'A' + ((node->acpi.hid >>  0) & 0x1f) - 1,
>  			node->acpi.hid >> 16);
> -	sprintf(uid, "%u", node->acpi.uid);
>  
>  	for_each_acpi_dev_match(adev, hid, NULL, -1) {
> -		if (adev->pnp.unique_id && !strcmp(adev->pnp.unique_id, uid))
> +		ret = acpi_dev_uid_to_integer(adev, &uid);
> +		if (ret == 0 && node->acpi.uid == uid)
>  			break;
> -		if (!adev->pnp.unique_id && node->acpi.uid == 0)
> +		if (ret == -ENODATA && node->acpi.uid == 0)
>  			break;
>  	}
>  	if (!adev)


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 6/8] perf: qcom_l2_pmu: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 ` [PATCH v2 6/8] perf: qcom_l2_pmu: " Andy Shevchenko
@ 2022-09-09  4:40   ` kernel test robot
  2022-09-09  8:44     ` Andy Shevchenko
  0 siblings, 1 reply; 19+ messages in thread
From: kernel test robot @ 2022-09-09  4:40 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: kbuild-all, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

Hi Andy,

I love your patch! Perhaps something to improve:

[auto build test WARNING on rafael-pm/linux-next]
[also build test WARNING on wsa/i2c/for-next broonie-spi/for-next efi/next linus/master v6.0-rc4 next-20220908]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/ACPI-unify-_UID-handling-as-integer/20220908-213543
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20220909/202209091254.rIFedxQL-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/9441434beecbf7fcd74ca58adbb06cc53c874179
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/ACPI-unify-_UID-handling-as-integer/20220908-213543
        git checkout 9441434beecbf7fcd74ca58adbb06cc53c874179
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/perf/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/device.h:15,
                    from include/linux/acpi.h:15,
                    from drivers/perf/qcom_l2_pmu.c:4:
   drivers/perf/qcom_l2_pmu.c: In function 'l2_cache_pmu_probe_cluster':
>> drivers/perf/qcom_l2_pmu.c:882:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
     882 |                 "Registered L2 cache PMU cluster %ld\n", fw_cluster_id);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                              ^~~
   include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                          ^~~~~~~
   drivers/perf/qcom_l2_pmu.c:881:9: note: in expansion of macro 'dev_info'
     881 |         dev_info(&pdev->dev,
         |         ^~~~~~~~
   drivers/perf/qcom_l2_pmu.c:882:52: note: format string is defined here
     882 |                 "Registered L2 cache PMU cluster %ld\n", fw_cluster_id);
         |                                                  ~~^
         |                                                    |
         |                                                    long int
         |                                                  %lld


vim +882 drivers/perf/qcom_l2_pmu.c

21bdbb7102edea Neil Leeder     2017-02-07  838  
21bdbb7102edea Neil Leeder     2017-02-07  839  static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
21bdbb7102edea Neil Leeder     2017-02-07  840  {
21bdbb7102edea Neil Leeder     2017-02-07  841  	struct platform_device *pdev = to_platform_device(dev->parent);
21bdbb7102edea Neil Leeder     2017-02-07  842  	struct platform_device *sdev = to_platform_device(dev);
21bdbb7102edea Neil Leeder     2017-02-07  843  	struct l2cache_pmu *l2cache_pmu = data;
21bdbb7102edea Neil Leeder     2017-02-07  844  	struct cluster_pmu *cluster;
9441434beecbf7 Andy Shevchenko 2022-09-08  845  	u64 fw_cluster_id;
21bdbb7102edea Neil Leeder     2017-02-07  846  	int err;
21bdbb7102edea Neil Leeder     2017-02-07  847  	int irq;
21bdbb7102edea Neil Leeder     2017-02-07  848  
9441434beecbf7 Andy Shevchenko 2022-09-08  849  	err = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &fw_cluster_id);
9441434beecbf7 Andy Shevchenko 2022-09-08  850  	if (err) {
21bdbb7102edea Neil Leeder     2017-02-07  851  		dev_err(&pdev->dev, "unable to read ACPI uid\n");
9441434beecbf7 Andy Shevchenko 2022-09-08  852  		return err;
21bdbb7102edea Neil Leeder     2017-02-07  853  	}
21bdbb7102edea Neil Leeder     2017-02-07  854  
21bdbb7102edea Neil Leeder     2017-02-07  855  	cluster = devm_kzalloc(&pdev->dev, sizeof(*cluster), GFP_KERNEL);
21bdbb7102edea Neil Leeder     2017-02-07  856  	if (!cluster)
21bdbb7102edea Neil Leeder     2017-02-07  857  		return -ENOMEM;
21bdbb7102edea Neil Leeder     2017-02-07  858  
21bdbb7102edea Neil Leeder     2017-02-07  859  	INIT_LIST_HEAD(&cluster->next);
21bdbb7102edea Neil Leeder     2017-02-07  860  	list_add(&cluster->next, &l2cache_pmu->clusters);
21bdbb7102edea Neil Leeder     2017-02-07  861  	cluster->cluster_id = fw_cluster_id;
21bdbb7102edea Neil Leeder     2017-02-07  862  
21bdbb7102edea Neil Leeder     2017-02-07  863  	irq = platform_get_irq(sdev, 0);
228f855fb57ae2 Stephen Boyd    2019-07-30  864  	if (irq < 0)
21bdbb7102edea Neil Leeder     2017-02-07  865  		return irq;
21bdbb7102edea Neil Leeder     2017-02-07  866  	cluster->irq = irq;
21bdbb7102edea Neil Leeder     2017-02-07  867  
21bdbb7102edea Neil Leeder     2017-02-07  868  	cluster->l2cache_pmu = l2cache_pmu;
21bdbb7102edea Neil Leeder     2017-02-07  869  	cluster->on_cpu = -1;
21bdbb7102edea Neil Leeder     2017-02-07  870  
21bdbb7102edea Neil Leeder     2017-02-07  871  	err = devm_request_irq(&pdev->dev, irq, l2_cache_handle_irq,
0d0f144a8f5f98 Tian Tao        2021-06-02  872  			       IRQF_NOBALANCING | IRQF_NO_THREAD |
0d0f144a8f5f98 Tian Tao        2021-06-02  873  			       IRQF_NO_AUTOEN,
21bdbb7102edea Neil Leeder     2017-02-07  874  			       "l2-cache-pmu", cluster);
21bdbb7102edea Neil Leeder     2017-02-07  875  	if (err) {
21bdbb7102edea Neil Leeder     2017-02-07  876  		dev_err(&pdev->dev,
21bdbb7102edea Neil Leeder     2017-02-07  877  			"Unable to request IRQ%d for L2 PMU counters\n", irq);
21bdbb7102edea Neil Leeder     2017-02-07  878  		return err;
21bdbb7102edea Neil Leeder     2017-02-07  879  	}
21bdbb7102edea Neil Leeder     2017-02-07  880  
21bdbb7102edea Neil Leeder     2017-02-07  881  	dev_info(&pdev->dev,
21bdbb7102edea Neil Leeder     2017-02-07 @882  		"Registered L2 cache PMU cluster %ld\n", fw_cluster_id);
21bdbb7102edea Neil Leeder     2017-02-07  883  
21bdbb7102edea Neil Leeder     2017-02-07  884  	spin_lock_init(&cluster->pmu_lock);
21bdbb7102edea Neil Leeder     2017-02-07  885  
21bdbb7102edea Neil Leeder     2017-02-07  886  	l2cache_pmu->num_pmus++;
21bdbb7102edea Neil Leeder     2017-02-07  887  
21bdbb7102edea Neil Leeder     2017-02-07  888  	return 0;
21bdbb7102edea Neil Leeder     2017-02-07  889  }
21bdbb7102edea Neil Leeder     2017-02-07  890  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 6/8] perf: qcom_l2_pmu: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-09  4:40   ` kernel test robot
@ 2022-09-09  8:44     ` Andy Shevchenko
  0 siblings, 0 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-09  8:44 UTC (permalink / raw)
  To: kernel test robot
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	linux-acpi, linux-kernel, linux-efi, linux-i2c, linux-arm-msm,
	linux-arm-kernel, linux-spi, devel, kbuild-all, Len Brown,
	Elie Morisse, Nehal Shah, Shyam Sundar S K, Khalil Blaiech,
	Andy Gross, Bjorn Andersson, Konrad Dybcio, Will Deacon,
	Mark Rutland, Daniel Mack, Haojian Zhuang, Robert Jarzmik,
	Robert Moore, Wolfram Sang

On Fri, Sep 09, 2022 at 12:40:36PM +0800, kernel test robot wrote:
> Hi Andy,
> 
> I love your patch! Perhaps something to improve:

Indeed.

> All warnings (new ones prefixed by >>):
> 
>    In file included from include/linux/device.h:15,
>                     from include/linux/acpi.h:15,
>                     from drivers/perf/qcom_l2_pmu.c:4:
>    drivers/perf/qcom_l2_pmu.c: In function 'l2_cache_pmu_probe_cluster':
> >> drivers/perf/qcom_l2_pmu.c:882:17: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]

Fixed locally.

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 0/8] ACPI: unify _UID handling as integer
  2022-09-08 13:37 ` [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
@ 2022-09-10 16:32   ` Rafael J. Wysocki
  2022-09-12 10:39     ` Andy Shevchenko
  0 siblings, 1 reply; 19+ messages in thread
From: Rafael J. Wysocki @ 2022-09-10 16:32 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	ACPI Devel Maling List, Linux Kernel Mailing List, linux-efi,
	linux-i2c, linux-arm-msm, Linux ARM, linux-spi,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	Rafael J. Wysocki, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

On Thu, Sep 8, 2022 at 3:38 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Thu, Sep 08, 2022 at 04:29:02PM +0300, Andy Shevchenko wrote:
> > This series is about unification on how we handle ACPI _UID when
> > it's known to be an integer-in-the-string.
> >
> > The idea of merging either all via ACPI tree, or taking ACPI stuff
> > for the v6.1 while the rest may be picked up later on by respective
> > maintainers separately
>
> >(currently all depends on Wolfram, other
> > patches have got the tags from the maintainers).
>
> I stand corrected, the perf patch is not tagged yet.
>
> > Partially compile-tested (x86-64).

Tentatively applied as 6.1 material.

If there are updates, we'll make changes as they go.

Thanks!

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 0/8] ACPI: unify _UID handling as integer
  2022-09-10 16:32   ` Rafael J. Wysocki
@ 2022-09-12 10:39     ` Andy Shevchenko
  2022-09-13 16:32       ` Andy Shevchenko
  0 siblings, 1 reply; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-12 10:39 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	ACPI Devel Maling List, Linux Kernel Mailing List, linux-efi,
	linux-i2c, linux-arm-msm, Linux ARM, linux-spi,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	Len Brown, Elie Morisse, Nehal Shah, Shyam Sundar S K,
	Khalil Blaiech, Andy Gross, Bjorn Andersson, Konrad Dybcio,
	Will Deacon, Mark Rutland, Daniel Mack, Haojian Zhuang,
	Robert Jarzmik, Robert Moore, Wolfram Sang

On Sat, Sep 10, 2022 at 06:32:10PM +0200, Rafael J. Wysocki wrote:
> On Thu, Sep 8, 2022 at 3:38 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:

...

> Tentatively applied as 6.1 material.

Thanks!

> If there are updates, we'll make changes as they go.

There is one at least to fix a warning in the perf patch. Should I resend
a fixed patch, just a fix, or entire series with a fixed patch?


-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 4/8] i2c: amd-mp2-plat: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 ` [PATCH v2 4/8] i2c: amd-mp2-plat: " Andy Shevchenko
@ 2022-09-12 20:49   ` Wolfram Sang
  0 siblings, 0 replies; 19+ messages in thread
From: Wolfram Sang @ 2022-09-12 20:49 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	linux-acpi, linux-kernel, linux-efi, linux-i2c, linux-arm-msm,
	linux-arm-kernel, linux-spi, devel, Rafael J. Wysocki, Len Brown,
	Elie Morisse, Nehal Shah, Shyam Sundar S K, Khalil Blaiech,
	Andy Gross, Bjorn Andersson, Konrad Dybcio, Will Deacon,
	Mark Rutland, Daniel Mack, Haojian Zhuang, Robert Jarzmik,
	Robert Moore


[-- Attachment #1.1: Type: text/plain, Size: 361 bytes --]

On Thu, Sep 08, 2022 at 04:29:06PM +0300, Andy Shevchenko wrote:
> ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
> an integer. Use it instead of custom approach.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Acked-by: Wolfram Sang <wsa@kernel.org>


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 5/8] i2c: mlxbf: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 ` [PATCH v2 5/8] i2c: mlxbf: " Andy Shevchenko
@ 2022-09-12 20:49   ` Wolfram Sang
  0 siblings, 0 replies; 19+ messages in thread
From: Wolfram Sang @ 2022-09-12 20:49 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	linux-acpi, linux-kernel, linux-efi, linux-i2c, linux-arm-msm,
	linux-arm-kernel, linux-spi, devel, Rafael J. Wysocki, Len Brown,
	Elie Morisse, Nehal Shah, Shyam Sundar S K, Khalil Blaiech,
	Andy Gross, Bjorn Andersson, Konrad Dybcio, Will Deacon,
	Mark Rutland, Daniel Mack, Haojian Zhuang, Robert Jarzmik,
	Robert Moore


[-- Attachment #1.1: Type: text/plain, Size: 361 bytes --]

On Thu, Sep 08, 2022 at 04:29:07PM +0300, Andy Shevchenko wrote:
> ACPI utils provide acpi_dev_uid_to_integer() helper to extract _UID as
> an integer. Use it instead of custom approach.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Acked-by: Wolfram Sang <wsa@kernel.org>


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 7/8] spi: pxa2xx: Refactor _UID handling to use acpi_dev_uid_to_integer()
  2022-09-08 13:29 ` [PATCH v2 7/8] spi: pxa2xx: " Andy Shevchenko
@ 2022-09-13  1:00   ` kernel test robot
  0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2022-09-13  1:00 UTC (permalink / raw)
  To: Andy Shevchenko, Hans de Goede, Rafael J. Wysocki,
	Ard Biesheuvel, Mark Brown, linux-acpi, linux-kernel, linux-efi,
	linux-i2c, linux-arm-msm, linux-arm-kernel, linux-spi, devel
  Cc: kbuild-all, Len Brown, Elie Morisse, Nehal Shah,
	Shyam Sundar S K, Khalil Blaiech, Andy Gross, Bjorn Andersson,
	Konrad Dybcio, Will Deacon, Mark Rutland, Daniel Mack,
	Haojian Zhuang, Robert Jarzmik, Robert Moore, Wolfram Sang

Hi Andy,

I love your patch! Perhaps something to improve:

[auto build test WARNING on rafael-pm/linux-next]
[also build test WARNING on wsa/i2c/for-next broonie-spi/for-next efi/next linus/master v6.0-rc5 next-20220912]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/ACPI-unify-_UID-handling-as-integer/20220908-213543
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: x86_64-buildonly-randconfig-r006-20220912 (https://download.01.org/0day-ci/archive/20220913/202209130810.dgrshDMB-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/ea7999676bc9f75bb4165358cda640b340fe34d0
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/ACPI-unify-_UID-handling-as-integer/20220908-213543
        git checkout ea7999676bc9f75bb4165358cda640b340fe34d0
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/spi/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/spi/spi-pxa2xx.c: In function 'pxa2xx_spi_init_pdata':
>> drivers/spi/spi-pxa2xx.c:1457:24: warning: unused variable 'dev' [-Wunused-variable]
    1457 |         struct device *dev = &pdev->dev;
         |                        ^~~


vim +/dev +1457 drivers/spi/spi-pxa2xx.c

  1452	
  1453	static struct pxa2xx_spi_controller *
  1454	pxa2xx_spi_init_pdata(struct platform_device *pdev)
  1455	{
  1456		struct pxa2xx_spi_controller *pdata;
> 1457		struct device *dev = &pdev->dev;
  1458		struct ssp_device *ssp;
  1459		struct resource *res;
  1460		struct device *parent = pdev->dev.parent;
  1461		struct pci_dev *pcidev = dev_is_pci(parent) ? to_pci_dev(parent) : NULL;
  1462		const struct pci_device_id *pcidev_id = NULL;
  1463		enum pxa_ssp_type type;
  1464		const void *match;
  1465		int status;
  1466		u64 uid;
  1467	
  1468		if (pcidev)
  1469			pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
  1470	
  1471		match = device_get_match_data(&pdev->dev);
  1472		if (match)
  1473			type = (enum pxa_ssp_type)match;
  1474		else if (pcidev_id)
  1475			type = (enum pxa_ssp_type)pcidev_id->driver_data;
  1476		else
  1477			return ERR_PTR(-EINVAL);
  1478	
  1479		pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
  1480		if (!pdata)
  1481			return ERR_PTR(-ENOMEM);
  1482	
  1483		ssp = &pdata->ssp;
  1484	
  1485		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1486		ssp->mmio_base = devm_ioremap_resource(&pdev->dev, res);
  1487		if (IS_ERR(ssp->mmio_base))
  1488			return ERR_CAST(ssp->mmio_base);
  1489	
  1490		ssp->phys_base = res->start;
  1491	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 0/8] ACPI: unify _UID handling as integer
  2022-09-12 10:39     ` Andy Shevchenko
@ 2022-09-13 16:32       ` Andy Shevchenko
  0 siblings, 0 replies; 19+ messages in thread
From: Andy Shevchenko @ 2022-09-13 16:32 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Hans de Goede, Rafael J. Wysocki, Ard Biesheuvel, Mark Brown,
	ACPI Devel Maling List, Linux Kernel Mailing List, linux-efi,
	linux-i2c, linux-arm-msm, Linux ARM, linux-spi,
	open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
	Len Brown, Elie Morisse, Nehal Shah, Shyam Sundar S K,
	Khalil Blaiech, Andy Gross, Bjorn Andersson, Konrad Dybcio,
	Will Deacon, Mark Rutland, Daniel Mack, Haojian Zhuang,
	Robert Jarzmik, Robert Moore, Wolfram Sang

On Mon, Sep 12, 2022 at 01:39:00PM +0300, Andy Shevchenko wrote:
> On Sat, Sep 10, 2022 at 06:32:10PM +0200, Rafael J. Wysocki wrote:
> > On Thu, Sep 8, 2022 at 3:38 PM Andy Shevchenko
> > <andriy.shevchenko@linux.intel.com> wrote:

...

> > Tentatively applied as 6.1 material.
> 
> Thanks!
> 
> > If there are updates, we'll make changes as they go.
> 
> There is one at least to fix a warning in the perf patch. Should I resend
> a fixed patch, just a fix, or entire series with a fixed patch?

Since LKP found one small issue with SPI patch when CONFIG_ACPI=n, I decided
to send a v3. Please, replace this by a new version in your tree, thanks!

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-09-13 16:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-08 13:29 [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
2022-09-08 13:29 ` [PATCH v2 1/8] ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID " Andy Shevchenko
2022-09-08 13:29 ` [PATCH v2 2/8] ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer() Andy Shevchenko
2022-09-08 13:29 ` [PATCH v2 3/8] ACPI: x86: " Andy Shevchenko
2022-09-08 13:29 ` [PATCH v2 4/8] i2c: amd-mp2-plat: " Andy Shevchenko
2022-09-12 20:49   ` Wolfram Sang
2022-09-08 13:29 ` [PATCH v2 5/8] i2c: mlxbf: " Andy Shevchenko
2022-09-12 20:49   ` Wolfram Sang
2022-09-08 13:29 ` [PATCH v2 6/8] perf: qcom_l2_pmu: " Andy Shevchenko
2022-09-09  4:40   ` kernel test robot
2022-09-09  8:44     ` Andy Shevchenko
2022-09-08 13:29 ` [PATCH v2 7/8] spi: pxa2xx: " Andy Shevchenko
2022-09-13  1:00   ` kernel test robot
2022-09-08 13:29 ` [PATCH v2 8/8] efi/dev-path-parser: " Andy Shevchenko
2022-09-08 13:42   ` Hans de Goede
2022-09-08 13:37 ` [PATCH v2 0/8] ACPI: unify _UID handling as integer Andy Shevchenko
2022-09-10 16:32   ` Rafael J. Wysocki
2022-09-12 10:39     ` Andy Shevchenko
2022-09-13 16:32       ` Andy Shevchenko

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).