* [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
@ 2017-11-03 17:56 Andy Shevchenko
2017-11-03 18:08 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2017-11-03 17:56 UTC (permalink / raw)
To: Jonathan Cameron, linux-iio, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler
Cc: Andy Shevchenko, Srinivas Pandruvada
The ID is added to proper sensor by the commit 6ed5ac50a3e0
("iio: imu: inv_mpu6050: ACPI enumeration").
Remove it from wrong place, otherwise user will get:
ak8975 i2c-INVN6500:00: mounting matrix not found: using identity...
ak8975 i2c-INVN6500:00: Unexpected device
Fixes: 6ed5ac50a3e0 ("iio: imu: inv_mpu6050: ACPI enumeration").
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/iio/magnetometer/ak8975.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
index 42a827a66512..f29a00729fa0 100644
--- a/drivers/iio/magnetometer/ak8975.c
+++ b/drivers/iio/magnetometer/ak8975.c
@@ -787,7 +787,6 @@ static const struct iio_info ak8975_info = {
static const struct acpi_device_id ak_acpi_match[] = {
{"AK8975", AK8975},
{"AK8963", AK8963},
- {"INVN6500", AK8963},
{"AK009911", AK09911},
{"AK09911", AK09911},
{"AK09912", AK09912},
--
2.14.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-03 17:56 [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID Andy Shevchenko
@ 2017-11-03 18:08 ` Andy Shevchenko
2017-11-03 18:14 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2017-11-03 18:08 UTC (permalink / raw)
To: Jonathan Cameron, linux-iio, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler
Cc: Srinivas Pandruvada
On Fri, 2017-11-03 at 19:56 +0200, Andy Shevchenko wrote:
> The ID is added to proper sensor by the commit 6ed5ac50a3e0
> ("iio: imu: inv_mpu6050: ACPI enumeration").
>
> Remove it from wrong place, otherwise user will get:
>
> ak8975 i2c-INVN6500:00: mounting matrix not found: using identity...
> ak8975 i2c-INVN6500:00: Unexpected device
>
After applying I have got
inv-mpu6050-i2c i2c-INVN6500:00: mounting matrix not found: using
identity...
...
i2c i2c-4: Added multiplexed i2c bus 14
ak8975 14-000c: mounting matrix not found: using identity...
Nevertheless, I didn't try before with both drivers enabled. It might be
that my fix is not needed.
Shrinivas, can you comment on this?
> Fixes: 6ed5ac50a3e0 ("iio: imu: inv_mpu6050: ACPI enumeration").
> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/iio/magnetometer/ak8975.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/iio/magnetometer/ak8975.c
> b/drivers/iio/magnetometer/ak8975.c
> index 42a827a66512..f29a00729fa0 100644
> --- a/drivers/iio/magnetometer/ak8975.c
> +++ b/drivers/iio/magnetometer/ak8975.c
> @@ -787,7 +787,6 @@ static const struct iio_info ak8975_info = {
> static const struct acpi_device_id ak_acpi_match[] = {
> {"AK8975", AK8975},
> {"AK8963", AK8963},
> - {"INVN6500", AK8963},
> {"AK009911", AK09911},
> {"AK09911", AK09911},
> {"AK09912", AK09912},
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-03 18:08 ` Andy Shevchenko
@ 2017-11-03 18:14 ` Andy Shevchenko
2017-11-03 18:46 ` Srinivas Pandruvada
0 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2017-11-03 18:14 UTC (permalink / raw)
To: Jonathan Cameron, linux-iio, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler
Cc: Srinivas Pandruvada
On Fri, 2017-11-03 at 20:08 +0200, Andy Shevchenko wrote:
> On Fri, 2017-11-03 at 19:56 +0200, Andy Shevchenko wrote:
> > The ID is added to proper sensor by the commit 6ed5ac50a3e0
> > ("iio: imu: inv_mpu6050: ACPI enumeration").
> >
> > Remove it from wrong place, otherwise user will get:
> >
> > ak8975 i2c-INVN6500:00: mounting matrix not found: using
> > identity...
> > ak8975 i2c-INVN6500:00: Unexpected device
> >
>
> After applying I have got
>
> inv-mpu6050-i2c i2c-INVN6500:00: mounting matrix not found: using
> identity...
>
> ...
>
> i2c i2c-4: Added multiplexed i2c bus 14
> ak8975 14-000c: mounting matrix not found: using identity...
>
>
> Nevertheless, I didn't try before with both drivers enabled. It might
> be
> that my fix is not needed.
>
> Shrinivas, can you comment on this?
DSDT looks promising:
Device (SENS) {
Name (_HID, "INVN6500" /* InvenSense MPU-6500 Six Axis Gyroscope and
Accelerometer */)
...
Name (CNF0, Package (0x04) {
Package (0x04) { "MPU6500", ... },
Package (0x04) { "MPU6500", ... },
Package (0x04) { "AK8963", ... },
Thus it is properly enumerated IIUC.
I think the patch at the end is correct.
>
>
> > Fixes: 6ed5ac50a3e0 ("iio: imu: inv_mpu6050: ACPI enumeration").
> > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> > drivers/iio/magnetometer/ak8975.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/iio/magnetometer/ak8975.c
> > b/drivers/iio/magnetometer/ak8975.c
> > index 42a827a66512..f29a00729fa0 100644
> > --- a/drivers/iio/magnetometer/ak8975.c
> > +++ b/drivers/iio/magnetometer/ak8975.c
> > @@ -787,7 +787,6 @@ static const struct iio_info ak8975_info = {
> > static const struct acpi_device_id ak_acpi_match[] = {
> > {"AK8975", AK8975},
> > {"AK8963", AK8963},
> > - {"INVN6500", AK8963},
> > {"AK009911", AK09911},
> > {"AK09911", AK09911},
> > {"AK09912", AK09912},
>
>
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-03 18:14 ` Andy Shevchenko
@ 2017-11-03 18:46 ` Srinivas Pandruvada
2017-11-05 12:42 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Srinivas Pandruvada @ 2017-11-03 18:46 UTC (permalink / raw)
To: Andy Shevchenko, Jonathan Cameron, linux-iio, Hartmut Knaack,
Lars-Peter Clausen, Peter Meerwald-Stadler
On Fri, 2017-11-03 at 20:14 +0200, Andy Shevchenko wrote:
> On Fri, 2017-11-03 at 20:08 +0200, Andy Shevchenko wrote:
> > On Fri, 2017-11-03 at 19:56 +0200, Andy Shevchenko wrote:
> > > The ID is added to proper sensor by the commit 6ed5ac50a3e0
> > > ("iio: imu: inv_mpu6050: ACPI enumeration").
> > >
> > > Remove it from wrong place, otherwise user will get:
> > >
> > > ak8975 i2c-INVN6500:00: mounting matrix not found: using
> > > identity...
> > > ak8975 i2c-INVN6500:00: Unexpected device
> > >
> >
> > After applying I have got
> >
> > inv-mpu6050-i2c i2c-INVN6500:00: mounting matrix not found: using
> > identity...
> >
> > ...
> >
> > i2c i2c-4: Added multiplexed i2c bus 14
> > ak8975 14-000c: mounting matrix not found: using identity...
> >
> >
> > Nevertheless, I didn't try before with both drivers enabled. It
> > might
> > be
> > that my fix is not needed.
> >
> > Shrinivas, can you comment on this?
>
> DSDT looks promising:
>
> Device (SENS) {
> Name (_HID, "INVN6500" /* InvenSense MPU-6500 Six Axis Gyroscope
> and
> Accelerometer */)
> ...
>
> Name (CNF0, Package (0x04) {
> Package (0x04) { "MPU6500", ... },
> Package (0x04) { "MPU6500", ... },
> Package (0x04) { "AK8963", ... },
>
> Thus it is properly enumerated IIUC.
>
> I think the patch at the end is correct.
The AK8963 is using INVN6500. The reason is that this INVN 6500 has
another master mode where a secondary sensor can be connected to it as
an i2c slave.
So Windows config uses this mode and hence added in the same package.
But Linux INVN driver is not capable of this master mode. We use
something called "bypass" mode. In this the second sensor will also be
directly connected to host i2c. We have another driver handling this
sensor (ak8975), so we have to add this id.
Thanks,
Srinivas
>
> >
> >
> > > Fixes: 6ed5ac50a3e0 ("iio: imu: inv_mpu6050: ACPI enumeration").
> > > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com
> > > >
> > > ---
> > > drivers/iio/magnetometer/ak8975.c | 1 -
> > > 1 file changed, 1 deletion(-)
> > >
> > > diff --git a/drivers/iio/magnetometer/ak8975.c
> > > b/drivers/iio/magnetometer/ak8975.c
> > > index 42a827a66512..f29a00729fa0 100644
> > > --- a/drivers/iio/magnetometer/ak8975.c
> > > +++ b/drivers/iio/magnetometer/ak8975.c
> > > @@ -787,7 +787,6 @@ static const struct iio_info ak8975_info = {
> > > static const struct acpi_device_id ak_acpi_match[] = {
> > > {"AK8975", AK8975},
> > > {"AK8963", AK8963},
> > > - {"INVN6500", AK8963},
> > > {"AK009911", AK09911},
> > > {"AK09911", AK09911},
> > > {"AK09912", AK09912},
> >
> >
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-03 18:46 ` Srinivas Pandruvada
@ 2017-11-05 12:42 ` Andy Shevchenko
2017-11-06 2:03 ` Srinivas Pandruvada
0 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2017-11-05 12:42 UTC (permalink / raw)
To: Srinivas Pandruvada, Jonathan Cameron, linux-iio, Hartmut Knaack,
Lars-Peter Clausen, Peter Meerwald-Stadler
On Fri, 2017-11-03 at 11:46 -0700, Srinivas Pandruvada wrote:
> On Fri, 2017-11-03 at 20:14 +0200, Andy Shevchenko wrote:
> > On Fri, 2017-11-03 at 20:08 +0200, Andy Shevchenko wrote:
> > > On Fri, 2017-11-03 at 19:56 +0200, Andy Shevchenko wrote:
> > > > The ID is added to proper sensor by the commit 6ed5ac50a3e0
> > > > ("iio: imu: inv_mpu6050: ACPI enumeration").
> > > >
> > > > Remove it from wrong place, otherwise user will get:
> > > >
> > > > ak8975 i2c-INVN6500:00: mounting matrix not found: using
> > > > identity...
> > > > ak8975 i2c-INVN6500:00: Unexpected device
> > > >
> > >
> > > After applying I have got
> > >
> > > inv-mpu6050-i2c i2c-INVN6500:00: mounting matrix not found: using
> > > identity...
> > >
> > > ...
> > >
> > > i2c i2c-4: Added multiplexed i2c bus 14
> > > ak8975 14-000c: mounting matrix not found: using identity...
> > >
> > >
> > > Nevertheless, I didn't try before with both drivers enabled. It
> > > might
> > > be
> > > that my fix is not needed.
> > >
> > > Shrinivas, can you comment on this?
> >
> > DSDT looks promising:
> >
> > Device (SENS) {
> > Name (_HID, "INVN6500" /* InvenSense MPU-6500 Six Axis Gyroscope
> > and
> > Accelerometer */)
> > ...
> >
> > Name (CNF0, Package (0x04) {
> > Package (0x04) { "MPU6500", ... },
> > Package (0x04) { "MPU6500", ... },
> > Package (0x04) { "AK8963", ... },
> >
> > Thus it is properly enumerated IIUC.
> >
> > I think the patch at the end is correct.
>
> The AK8963 is using INVN6500. The reason is that this INVN 6500 has
> another master mode where a secondary sensor can be connected to it as
> an i2c slave.
> So Windows config uses this mode and hence added in the same package.
>
> But Linux INVN driver is not capable of this master mode. We use
> something called "bypass" mode. In this the second sensor will also be
> directly connected to host i2c. We have another driver handling this
> sensor (ak8975), so we have to add this id.
But ak8975 is enumerated. See above log. So, I think the INVN6500 ID in
ak 8975 driver is simple not required.
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-05 12:42 ` Andy Shevchenko
@ 2017-11-06 2:03 ` Srinivas Pandruvada
2017-11-08 16:38 ` Andy Shevchenko
0 siblings, 1 reply; 8+ messages in thread
From: Srinivas Pandruvada @ 2017-11-06 2:03 UTC (permalink / raw)
To: Andy Shevchenko, Jonathan Cameron, linux-iio, Hartmut Knaack,
Lars-Peter Clausen, Peter Meerwald-Stadler
On Sun, 2017-11-05 at 14:42 +0200, Andy Shevchenko wrote:
> On Fri, 2017-11-03 at 11:46 -0700, Srinivas Pandruvada wrote:
> > On Fri, 2017-11-03 at 20:14 +0200, Andy Shevchenko wrote:
> > > On Fri, 2017-11-03 at 20:08 +0200, Andy Shevchenko wrote:
> > > > On Fri, 2017-11-03 at 19:56 +0200, Andy Shevchenko wrote:
> > > > > The ID is added to proper sensor by the commit 6ed5ac50a3e0
> > > > > ("iio: imu: inv_mpu6050: ACPI enumeration").
> > > > >
> > > > > Remove it from wrong place, otherwise user will get:
> > > > >
> > > > > ak8975 i2c-INVN6500:00: mounting matrix not found: using
> > > > > identity...
> > > > > ak8975 i2c-INVN6500:00: Unexpected device
> > > > >
> > > >
> > > > After applying I have got
> > > >
> > > > inv-mpu6050-i2c i2c-INVN6500:00: mounting matrix not found:
> > > > using
> > > > identity...
> > > >
> > > > ...
> > > >
> > > > i2c i2c-4: Added multiplexed i2c bus 14
> > > > ak8975 14-000c: mounting matrix not found: using identity...
> > > >
> > > >
> > > > Nevertheless, I didn't try before with both drivers enabled. It
> > > > might
> > > > be
> > > > that my fix is not needed.
> > > >
> > > > Shrinivas, can you comment on this?
> > >
> > > DSDT looks promising:
> > >
> > > Device (SENS) {
> > > Name (_HID, "INVN6500" /* InvenSense MPU-6500 Six Axis
> > > Gyroscope
> > > and
> > > Accelerometer */)
> > > ...
> > >
> > > Name (CNF0, Package (0x04) {
> > > Package (0x04) { "MPU6500", ... },
> > > Package (0x04) { "MPU6500", ... },
> > > Package (0x04) { "AK8963", ... },
> > >
> > > Thus it is properly enumerated IIUC.
> > >
> > > I think the patch at the end is correct.
> >
> > The AK8963 is using INVN6500. The reason is that this INVN 6500 has
> > another master mode where a secondary sensor can be connected to it
> > as
> > an i2c slave.
> > So Windows config uses this mode and hence added in the same
> > package.
> >
> > But Linux INVN driver is not capable of this master mode. We use
> > something called "bypass" mode. In this the second sensor will also
> > be
> > directly connected to host i2c. We have another driver handling
> > this
> > sensor (ak8975), so we have to add this id.
>
> But ak8975 is enumerated. See above log. So, I think the INVN6500 ID
> in
> ak 8975 driver is simple not required.
This is not true in all platforms. So this is required.
Thanks,
Srinivas
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-06 2:03 ` Srinivas Pandruvada
@ 2017-11-08 16:38 ` Andy Shevchenko
2017-11-19 15:05 ` Jonathan Cameron
0 siblings, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2017-11-08 16:38 UTC (permalink / raw)
To: Srinivas Pandruvada, Jonathan Cameron, linux-iio, Hartmut Knaack,
Lars-Peter Clausen, Peter Meerwald-Stadler
On Sun, 2017-11-05 at 18:03 -0800, Srinivas Pandruvada wrote:
> On Sun, 2017-11-05 at 14:42 +0200, Andy Shevchenko wrote:
> > On Fri, 2017-11-03 at 11:46 -0700, Srinivas Pandruvada wrote:
> > > The AK8963 is using INVN6500. The reason is that this INVN 6500
> > > has
> > > another master mode where a secondary sensor can be connected to
> > > it
> > > as
> > > an i2c slave.
> > > So Windows config uses this mode and hence added in the same
> > > package.
> > >
> > > But Linux INVN driver is not capable of this master mode. We use
> > > something called "bypass" mode. In this the second sensor will
> > > also
> > > be
> > > directly connected to host i2c. We have another driver handling
> > > this
> > > sensor (ak8975), so we have to add this id.
> >
> > But ak8975 is enumerated. See above log. So, I think the INVN6500 ID
> > in
> > ak 8975 driver is simple not required.
>
> This is not true in all platforms. So this is required.
Thanks for clarification. though it would be interesting to test a
behaviour w/o this patch on platform I have and the one that has wrong
data under CNF0 resources.
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID
2017-11-08 16:38 ` Andy Shevchenko
@ 2017-11-19 15:05 ` Jonathan Cameron
0 siblings, 0 replies; 8+ messages in thread
From: Jonathan Cameron @ 2017-11-19 15:05 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Srinivas Pandruvada, linux-iio, Hartmut Knaack,
Lars-Peter Clausen, Peter Meerwald-Stadler
On Wed, 08 Nov 2017 18:38:39 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> On Sun, 2017-11-05 at 18:03 -0800, Srinivas Pandruvada wrote:
> > On Sun, 2017-11-05 at 14:42 +0200, Andy Shevchenko wrote:
> > > On Fri, 2017-11-03 at 11:46 -0700, Srinivas Pandruvada wrote:
>
> > > > The AK8963 is using INVN6500. The reason is that this INVN 6500
> > > > has
> > > > another master mode where a secondary sensor can be connected to
> > > > it
> > > > as
> > > > an i2c slave.
> > > > So Windows config uses this mode and hence added in the same
> > > > package.
> > > >
> > > > But Linux INVN driver is not capable of this master mode. We use
> > > > something called "bypass" mode. In this the second sensor will
> > > > also
> > > > be
> > > > directly connected to host i2c. We have another driver handling
> > > > this
> > > > sensor (ak8975), so we have to add this id.
> > >
> > > But ak8975 is enumerated. See above log. So, I think the INVN6500 ID
> > > in
> > > ak 8975 driver is simple not required.
> >
> > This is not true in all platforms. So this is required.
>
> Thanks for clarification. though it would be interesting to test a
> behaviour w/o this patch on platform I have and the one that has wrong
> data under CNF0 resources.
>
As this discussion seems to have concluded the patch is a bad
idea I'm dropping it.
I'll add though that it would be possible to instantiate the ak8975 from
the mpu6050 driver if we wanted to avoid this nasty 'hack'.
Jonathan
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-11-19 15:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-03 17:56 [PATCH v1] iio: magnetometer: ak8975: Remove wrong ACPI ID Andy Shevchenko
2017-11-03 18:08 ` Andy Shevchenko
2017-11-03 18:14 ` Andy Shevchenko
2017-11-03 18:46 ` Srinivas Pandruvada
2017-11-05 12:42 ` Andy Shevchenko
2017-11-06 2:03 ` Srinivas Pandruvada
2017-11-08 16:38 ` Andy Shevchenko
2017-11-19 15:05 ` Jonathan Cameron
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).