* [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005
@ 2024-04-25 12:57 Hans de Goede
2024-04-25 12:57 ` [PATCH v3 1/4] iio: core: Add iio_read_acpi_mount_matrix() helper function Hans de Goede
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Hans de Goede @ 2024-04-25 12:57 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hans de Goede, Lars-Peter Clausen, Sean Rhodes, linux-iio
Hi All,
Here is v2 of the patch series to refactor the ACPI ROTM orientation matrix
handling in kxcjk-1013 + bmc150-accel to share the code instead of having
2 copies and then also use the shared implementation in the mxc4005 driver
since some MXC6655 ACPI firmware nodes also include this.
Changes in v2:
- Add comment about the Microsoft specification for the "ROTM" ACPI method
Changes in v3:
- Add the new iio_read_acpi_mount_matrix() helper to industrialio.ko instead
of making it a static inline
Regards,
Hans
Hans de Goede (4):
iio: core: Add iio_read_acpi_mount_matrix() helper function
iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper
iio: bmc150-accel-core: Use iio_read_acpi_mount_matrix() helper
iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method
drivers/iio/Makefile | 1 +
drivers/iio/accel/bmc150-accel-core.c | 44 +-------------
drivers/iio/accel/kxcjk-1013.c | 80 +------------------------
drivers/iio/accel/mxc4005.c | 22 +++++++
drivers/iio/industrialio-acpi.c | 85 +++++++++++++++++++++++++++
include/linux/iio/iio.h | 13 ++++
6 files changed, 124 insertions(+), 121 deletions(-)
create mode 100644 drivers/iio/industrialio-acpi.c
--
2.44.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 1/4] iio: core: Add iio_read_acpi_mount_matrix() helper function
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
@ 2024-04-25 12:57 ` Hans de Goede
2024-04-25 12:57 ` [PATCH v3 2/4] iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper Hans de Goede
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2024-04-25 12:57 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hans de Goede, Lars-Peter Clausen, Sean Rhodes, linux-iio,
Rafael J . Wysocki
The ACPI "ROTM" rotation matrix parsing code atm is already duplicated
between bmc150-accel-core.c and kxcjk-1013.c and a third user of this
is coming.
Add an iio_read_acpi_mount_matrix() helper function for this.
The 2 existing copies of the code are identical, except that
the kxcjk-1013.c has slightly better error logging.
To new helper is a 1:1 copy of the kxcjk-1013.c version, the only change
is the addition of a "char *acpi_method" parameter since some bmc150
dual-accel setups (360° hinges with 1 accel in kbd/base + 1 in display)
declare both accels in a single ACPI device with 2 different method names
for the 2 matrices. This new acpi_method parameter is not "const char *"
because the pathname parameter to acpi_evaluate_object() is not const.
The 2 existing copies of this function will be removed in further patches
in this series.
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v3:
- New patch in v3 of this series.
---
drivers/iio/Makefile | 1 +
drivers/iio/industrialio-acpi.c | 85 +++++++++++++++++++++++++++++++++
include/linux/iio/iio.h | 13 +++++
3 files changed, 99 insertions(+)
create mode 100644 drivers/iio/industrialio-acpi.c
diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile
index 0ba0e1521ba4..cb80ef837e84 100644
--- a/drivers/iio/Makefile
+++ b/drivers/iio/Makefile
@@ -7,6 +7,7 @@ obj-$(CONFIG_IIO) += industrialio.o
industrialio-y := industrialio-core.o industrialio-event.o inkern.o
industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o
industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o
+industrialio-$(CONFIG_ACPI) += industrialio-acpi.o
obj-$(CONFIG_IIO_CONFIGFS) += industrialio-configfs.o
obj-$(CONFIG_IIO_GTS_HELPER) += industrialio-gts-helper.o
diff --git a/drivers/iio/industrialio-acpi.c b/drivers/iio/industrialio-acpi.c
new file mode 100644
index 000000000000..c47bf0c22e4f
--- /dev/null
+++ b/drivers/iio/industrialio-acpi.c
@@ -0,0 +1,85 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/* IIO ACPI helper functions */
+
+#include <linux/acpi.h>
+#include <linux/dev_printk.h>
+#include <linux/iio/iio.h>
+#include <linux/sprintf.h>
+
+/**
+ * iio_read_acpi_mount_matrix() - Read accelerometer mount matrix info from ACPI
+ * @dev: Device structure
+ * @matrix: iio_mount_matrix struct to fill
+ * @method_name: ACPI method name to read the matrix from, usually "ROTM"
+ *
+ * Try to read the mount-matrix by calling the specified method on the device's
+ * ACPI firmware-node. If the device has no ACPI firmware-node; or the method
+ * does not exist then this will fail silently. This expects the method to
+ * return data in the ACPI "ROTM" format defined by Microsoft:
+ * https://learn.microsoft.com/en-us/windows-hardware/drivers/sensors/sensors-acpi-entries
+ * This is a Microsoft extension and not part of the official ACPI spec.
+ * The method name is configurable because some dual-accel setups define 2 mount
+ * matrices in a single ACPI device using separate "ROMK" and "ROMS" methods.
+ *
+ * Returns: true if the matrix was successfully, false otherwise.
+ */
+bool iio_read_acpi_mount_matrix(struct device *dev,
+ struct iio_mount_matrix *orientation,
+ char *acpi_method)
+{
+ struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
+ struct acpi_device *adev = ACPI_COMPANION(dev);
+ char *str;
+ union acpi_object *obj, *elements;
+ acpi_status status;
+ int i, j, val[3];
+ bool ret = false;
+
+ if (!adev || !acpi_has_method(adev->handle, acpi_method))
+ return false;
+
+ status = acpi_evaluate_object(adev->handle, acpi_method, NULL, &buffer);
+ if (ACPI_FAILURE(status)) {
+ dev_err(dev, "Failed to get ACPI mount matrix: %d\n", status);
+ return false;
+ }
+
+ obj = buffer.pointer;
+ if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count != 3) {
+ dev_err(dev, "Unknown ACPI mount matrix package format\n");
+ goto out_free_buffer;
+ }
+
+ elements = obj->package.elements;
+ for (i = 0; i < 3; i++) {
+ if (elements[i].type != ACPI_TYPE_STRING) {
+ dev_err(dev, "Unknown ACPI mount matrix element format\n");
+ goto out_free_buffer;
+ }
+
+ str = elements[i].string.pointer;
+ if (sscanf(str, "%d %d %d", &val[0], &val[1], &val[2]) != 3) {
+ dev_err(dev, "Incorrect ACPI mount matrix string format\n");
+ goto out_free_buffer;
+ }
+
+ for (j = 0; j < 3; j++) {
+ switch (val[j]) {
+ case -1: str = "-1"; break;
+ case 0: str = "0"; break;
+ case 1: str = "1"; break;
+ default:
+ dev_err(dev, "Invalid value in ACPI mount matrix: %d\n", val[j]);
+ goto out_free_buffer;
+ }
+ orientation->rotation[i * 3 + j] = str;
+ }
+ }
+
+ ret = true;
+
+out_free_buffer:
+ kfree(buffer.pointer);
+ return ret;
+}
+EXPORT_SYMBOL_GPL(iio_read_acpi_mount_matrix);
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index e370a7bb3300..4ed41e70c86e 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -788,6 +788,19 @@ static inline struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)
}
#endif
+#ifdef CONFIG_ACPI
+bool iio_read_acpi_mount_matrix(struct device *dev,
+ struct iio_mount_matrix *matrix,
+ char *method_name);
+#else
+static inline bool iio_read_acpi_mount_matrix(struct device *dev,
+ struct iio_mount_matrix *matrix,
+ char *method_name)
+{
+ return false;
+}
+#endif
+
ssize_t iio_format_value(char *buf, unsigned int type, int size, int *vals);
int iio_str_to_fixpoint(const char *str, int fract_mult, int *integer,
--
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/4] iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
2024-04-25 12:57 ` [PATCH v3 1/4] iio: core: Add iio_read_acpi_mount_matrix() helper function Hans de Goede
@ 2024-04-25 12:57 ` Hans de Goede
2024-04-25 12:57 ` [PATCH v3 3/4] iio: bmc150-accel-core: Use " Hans de Goede
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2024-04-25 12:57 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hans de Goede, Lars-Peter Clausen, Sean Rhodes, linux-iio,
Rafael J . Wysocki
Replace the duplicate ACPI "ROTM" data parsing code with the new
shared iio_read_acpi_mount_matrix() helper.
This also removes the limiting of the "ROTM" mount matrix to only ACPI
devices with an ACPI HID (Hardware-ID) of "KIOX000A". If kxcjk-1013 ACPI
devices with another HID have a ROTM method that should still be parsed
and if the method is not there then iio_read_acpi_mount_matrix() will
fail silently.
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/iio/accel/kxcjk-1013.c | 80 +---------------------------------
1 file changed, 1 insertion(+), 79 deletions(-)
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index 126e8bdd6d0e..8280d2bef0a3 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -636,84 +636,6 @@ static int kxcjk1013_set_power_state(struct kxcjk1013_data *data, bool on)
return 0;
}
-#ifdef CONFIG_ACPI
-static bool kxj_acpi_orientation(struct device *dev,
- struct iio_mount_matrix *orientation)
-{
- struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- struct acpi_device *adev = ACPI_COMPANION(dev);
- char *str;
- union acpi_object *obj, *elements;
- acpi_status status;
- int i, j, val[3];
- bool ret = false;
-
- if (!acpi_has_method(adev->handle, "ROTM"))
- return false;
-
- status = acpi_evaluate_object(adev->handle, "ROTM", NULL, &buffer);
- if (ACPI_FAILURE(status)) {
- dev_err(dev, "Failed to get ACPI mount matrix: %d\n", status);
- return false;
- }
-
- obj = buffer.pointer;
- if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count != 3) {
- dev_err(dev, "Unknown ACPI mount matrix package format\n");
- goto out_free_buffer;
- }
-
- elements = obj->package.elements;
- for (i = 0; i < 3; i++) {
- if (elements[i].type != ACPI_TYPE_STRING) {
- dev_err(dev, "Unknown ACPI mount matrix element format\n");
- goto out_free_buffer;
- }
-
- str = elements[i].string.pointer;
- if (sscanf(str, "%d %d %d", &val[0], &val[1], &val[2]) != 3) {
- dev_err(dev, "Incorrect ACPI mount matrix string format\n");
- goto out_free_buffer;
- }
-
- for (j = 0; j < 3; j++) {
- switch (val[j]) {
- case -1: str = "-1"; break;
- case 0: str = "0"; break;
- case 1: str = "1"; break;
- default:
- dev_err(dev, "Invalid value in ACPI mount matrix: %d\n", val[j]);
- goto out_free_buffer;
- }
- orientation->rotation[i * 3 + j] = str;
- }
- }
-
- ret = true;
-
-out_free_buffer:
- kfree(buffer.pointer);
- return ret;
-}
-
-static bool kxj1009_apply_acpi_orientation(struct device *dev,
- struct iio_mount_matrix *orientation)
-{
- struct acpi_device *adev = ACPI_COMPANION(dev);
-
- if (adev && acpi_dev_hid_uid_match(adev, "KIOX000A", NULL))
- return kxj_acpi_orientation(dev, orientation);
-
- return false;
-}
-#else
-static bool kxj1009_apply_acpi_orientation(struct device *dev,
- struct iio_mount_matrix *orientation)
-{
- return false;
-}
-#endif
-
static int kxcjk1013_chip_update_thresholds(struct kxcjk1013_data *data)
{
int ret;
@@ -1544,7 +1466,7 @@ static int kxcjk1013_probe(struct i2c_client *client)
} else {
data->active_high_intr = true; /* default polarity */
- if (!kxj1009_apply_acpi_orientation(&client->dev, &data->orientation)) {
+ if (!iio_read_acpi_mount_matrix(&client->dev, &data->orientation, "ROTM")) {
ret = iio_read_mount_matrix(&client->dev, &data->orientation);
if (ret)
return ret;
--
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 3/4] iio: bmc150-accel-core: Use iio_read_acpi_mount_matrix() helper
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
2024-04-25 12:57 ` [PATCH v3 1/4] iio: core: Add iio_read_acpi_mount_matrix() helper function Hans de Goede
2024-04-25 12:57 ` [PATCH v3 2/4] iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper Hans de Goede
@ 2024-04-25 12:57 ` Hans de Goede
2024-04-25 12:57 ` [PATCH v3 4/4] iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method Hans de Goede
2024-04-28 13:30 ` [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Jonathan Cameron
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2024-04-25 12:57 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hans de Goede, Lars-Peter Clausen, Sean Rhodes, linux-iio,
Rafael J . Wysocki
Replace the duplicate ACPI "ROTM" data parsing code with the new
shared iio_read_acpi_mount_matrix() helper.
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/iio/accel/bmc150-accel-core.c | 44 ++-------------------------
1 file changed, 2 insertions(+), 42 deletions(-)
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
index 110591804b4c..ae0cd48a3e29 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -386,13 +386,9 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on)
static bool bmc150_apply_bosc0200_acpi_orientation(struct device *dev,
struct iio_mount_matrix *orientation)
{
- struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct acpi_device *adev = ACPI_COMPANION(dev);
- char *name, *alt_name, *label, *str;
- union acpi_object *obj, *elements;
- acpi_status status;
- int i, j, val[3];
+ char *name, *alt_name, *label;
if (strcmp(dev_name(dev), "i2c-BOSC0200:base") == 0) {
alt_name = "ROMK";
@@ -411,43 +407,7 @@ static bool bmc150_apply_bosc0200_acpi_orientation(struct device *dev,
return false;
}
- status = acpi_evaluate_object(adev->handle, name, NULL, &buffer);
- if (ACPI_FAILURE(status)) {
- dev_warn(dev, "Failed to get ACPI mount matrix: %d\n", status);
- return false;
- }
-
- obj = buffer.pointer;
- if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count != 3)
- goto unknown_format;
-
- elements = obj->package.elements;
- for (i = 0; i < 3; i++) {
- if (elements[i].type != ACPI_TYPE_STRING)
- goto unknown_format;
-
- str = elements[i].string.pointer;
- if (sscanf(str, "%d %d %d", &val[0], &val[1], &val[2]) != 3)
- goto unknown_format;
-
- for (j = 0; j < 3; j++) {
- switch (val[j]) {
- case -1: str = "-1"; break;
- case 0: str = "0"; break;
- case 1: str = "1"; break;
- default: goto unknown_format;
- }
- orientation->rotation[i * 3 + j] = str;
- }
- }
-
- kfree(buffer.pointer);
- return true;
-
-unknown_format:
- dev_warn(dev, "Unknown ACPI mount matrix format, ignoring\n");
- kfree(buffer.pointer);
- return false;
+ return iio_read_acpi_mount_matrix(dev, orientation, name);
}
static bool bmc150_apply_dual250e_acpi_orientation(struct device *dev,
--
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 4/4] iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
` (2 preceding siblings ...)
2024-04-25 12:57 ` [PATCH v3 3/4] iio: bmc150-accel-core: Use " Hans de Goede
@ 2024-04-25 12:57 ` Hans de Goede
2024-04-28 13:30 ` [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Jonathan Cameron
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2024-04-25 12:57 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hans de Goede, Lars-Peter Clausen, Sean Rhodes, linux-iio,
Rafael J . Wysocki
Some devices use the semi-standard ACPI "ROTM" method to store
the accelerometers orientation matrix.
Add support for this using the new iio_read_acpi_mount_matrix() helper, if
the helper fails to read the matrix fall back to iio_read_mount_matrix()
which will try to get it from device-properties (devicetree) and if
that fails it will fill the matrix with the identity matrix.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218578
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/iio/accel/mxc4005.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c
index 9f38d3a08299..72f29e2af6df 100644
--- a/drivers/iio/accel/mxc4005.c
+++ b/drivers/iio/accel/mxc4005.c
@@ -65,6 +65,7 @@ struct mxc4005_data {
struct mutex mutex;
struct regmap *regmap;
struct iio_trigger *dready_trig;
+ struct iio_mount_matrix orientation;
/* Ensure timestamp is naturally aligned */
struct {
__be16 chans[3];
@@ -272,6 +273,20 @@ static int mxc4005_write_raw(struct iio_dev *indio_dev,
}
}
+static const struct iio_mount_matrix *
+mxc4005_get_mount_matrix(const struct iio_dev *indio_dev,
+ const struct iio_chan_spec *chan)
+{
+ struct mxc4005_data *data = iio_priv(indio_dev);
+
+ return &data->orientation;
+}
+
+static const struct iio_chan_spec_ext_info mxc4005_ext_info[] = {
+ IIO_MOUNT_MATRIX(IIO_SHARED_BY_TYPE, mxc4005_get_mount_matrix),
+ { }
+};
+
static const struct iio_info mxc4005_info = {
.read_raw = mxc4005_read_raw,
.write_raw = mxc4005_write_raw,
@@ -298,6 +313,7 @@ static const unsigned long mxc4005_scan_masks[] = {
.shift = 4, \
.endianness = IIO_BE, \
}, \
+ .ext_info = mxc4005_ext_info, \
}
static const struct iio_chan_spec mxc4005_channels[] = {
@@ -440,6 +456,12 @@ static int mxc4005_probe(struct i2c_client *client)
mutex_init(&data->mutex);
+ if (!iio_read_acpi_mount_matrix(&client->dev, &data->orientation, "ROTM")) {
+ ret = iio_read_mount_matrix(&client->dev, &data->orientation);
+ if (ret)
+ return ret;
+ }
+
indio_dev->channels = mxc4005_channels;
indio_dev->num_channels = ARRAY_SIZE(mxc4005_channels);
indio_dev->available_scan_masks = mxc4005_scan_masks;
--
2.44.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
` (3 preceding siblings ...)
2024-04-25 12:57 ` [PATCH v3 4/4] iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method Hans de Goede
@ 2024-04-28 13:30 ` Jonathan Cameron
4 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2024-04-28 13:30 UTC (permalink / raw)
To: Hans de Goede; +Cc: Lars-Peter Clausen, Sean Rhodes, linux-iio
On Thu, 25 Apr 2024 14:57:50 +0200
Hans de Goede <hdegoede@redhat.com> wrote:
> Hi All,
>
> Here is v2 of the patch series to refactor the ACPI ROTM orientation matrix
> handling in kxcjk-1013 + bmc150-accel to share the code instead of having
> 2 copies and then also use the shared implementation in the mxc4005 driver
> since some MXC6655 ACPI firmware nodes also include this.
>
> Changes in v2:
> - Add comment about the Microsoft specification for the "ROTM" ACPI method
>
> Changes in v3:
> - Add the new iio_read_acpi_mount_matrix() helper to industrialio.ko instead
> of making it a static inline
>
> Regards,
>
> Hans
LGTM
Applied to the togreg branch of iio.git and pushed out as testing for 0-day
to play with it.
Thanks for tidying this up.
Jonathan
>
>
> Hans de Goede (4):
> iio: core: Add iio_read_acpi_mount_matrix() helper function
> iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper
> iio: bmc150-accel-core: Use iio_read_acpi_mount_matrix() helper
> iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method
>
> drivers/iio/Makefile | 1 +
> drivers/iio/accel/bmc150-accel-core.c | 44 +-------------
> drivers/iio/accel/kxcjk-1013.c | 80 +------------------------
> drivers/iio/accel/mxc4005.c | 22 +++++++
> drivers/iio/industrialio-acpi.c | 85 +++++++++++++++++++++++++++
> include/linux/iio/iio.h | 13 ++++
> 6 files changed, 124 insertions(+), 121 deletions(-)
> create mode 100644 drivers/iio/industrialio-acpi.c
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-28 13:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-25 12:57 [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Hans de Goede
2024-04-25 12:57 ` [PATCH v3 1/4] iio: core: Add iio_read_acpi_mount_matrix() helper function Hans de Goede
2024-04-25 12:57 ` [PATCH v3 2/4] iio: accel: kxcjk-1013: Use new iio_read_acpi_mount_matrix() helper Hans de Goede
2024-04-25 12:57 ` [PATCH v3 3/4] iio: bmc150-accel-core: Use " Hans de Goede
2024-04-25 12:57 ` [PATCH v3 4/4] iio: accel: mxc4005: Read orientation matrix from ACPI ROTM method Hans de Goede
2024-04-28 13:30 ` [PATCH v3 0/4] iio: accel: Share ACPI ROTM parsing between drivers and add it to mxc4005 Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox