The LSM303D on the Lenovo Yoga Tablet 2 series is present
as both ACCL0001 and MAGN0001. As we can only ever register an
i2c client for one of them, ignore MAGN0001.
Currently this errors:
i2c i2c-4: Failed to register i2c client MAGN0001:00 at 0x1d (-16)
Tested on a Lenovo Yoga Tablet 2 1051-F.
Signed-off-by: Marius Hoch <[email protected]>
---
drivers/acpi/x86/utils.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
index ba420a28a4aa..9c2d6f35f88a 100644
--- a/drivers/acpi/x86/utils.c
+++ b/drivers/acpi/x86/utils.c
@@ -143,6 +143,16 @@ static const struct override_status_id override_status_ids[] = {
DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
}),
+
+ /*
+ * The LSM303D on the Lenovo Yoga Tablet 2 series is present
+ * as both ACCL0001 and MAGN0001. As we can only ever register an
+ * i2c client for one of them, ignore MAGN0001.
+ */
+ NOT_PRESENT_ENTRY_HID("MAGN0001", "1", ATOM_SILVERMONT, {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_FAMILY, "YOGATablet2"),
+ }),
};
bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
--
2.40.0
Hi,
On 4/22/23 18:44, Marius Hoch wrote:
> The LSM303D on the Lenovo Yoga Tablet 2 series is present
> as both ACCL0001 and MAGN0001. As we can only ever register an
> i2c client for one of them, ignore MAGN0001.
>
> Currently this errors:
> i2c i2c-4: Failed to register i2c client MAGN0001:00 at 0x1d (-16)
>
> Tested on a Lenovo Yoga Tablet 2 1051-F.
>
> Signed-off-by: Marius Hoch <[email protected]>
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <[email protected]>
Regards,
Hans
> ---
> drivers/acpi/x86/utils.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
> index ba420a28a4aa..9c2d6f35f88a 100644
> --- a/drivers/acpi/x86/utils.c
> +++ b/drivers/acpi/x86/utils.c
> @@ -143,6 +143,16 @@ static const struct override_status_id override_status_ids[] = {
> DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
> DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
> }),
> +
> + /*
> + * The LSM303D on the Lenovo Yoga Tablet 2 series is present
> + * as both ACCL0001 and MAGN0001. As we can only ever register an
> + * i2c client for one of them, ignore MAGN0001.
> + */
> + NOT_PRESENT_ENTRY_HID("MAGN0001", "1", ATOM_SILVERMONT, {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_FAMILY, "YOGATablet2"),
> + }),
> };
>
> bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
On Sat, Apr 22, 2023 at 7:29 PM Hans de Goede <[email protected]> wrote:
>
> Hi,
>
> On 4/22/23 18:44, Marius Hoch wrote:
> > The LSM303D on the Lenovo Yoga Tablet 2 series is present
> > as both ACCL0001 and MAGN0001. As we can only ever register an
> > i2c client for one of them, ignore MAGN0001.
> >
> > Currently this errors:
> > i2c i2c-4: Failed to register i2c client MAGN0001:00 at 0x1d (-16)
> >
> > Tested on a Lenovo Yoga Tablet 2 1051-F.
> >
> > Signed-off-by: Marius Hoch <[email protected]>
>
> Thanks, patch looks good to me:
>
> Reviewed-by: Hans de Goede <[email protected]>
Applied as 6.4-rc material, thanks!
> > ---
> > drivers/acpi/x86/utils.c | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c
> > index ba420a28a4aa..9c2d6f35f88a 100644
> > --- a/drivers/acpi/x86/utils.c
> > +++ b/drivers/acpi/x86/utils.c
> > @@ -143,6 +143,16 @@ static const struct override_status_id override_status_ids[] = {
> > DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"),
> > DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"),
> > }),
> > +
> > + /*
> > + * The LSM303D on the Lenovo Yoga Tablet 2 series is present
> > + * as both ACCL0001 and MAGN0001. As we can only ever register an
> > + * i2c client for one of them, ignore MAGN0001.
> > + */
> > + NOT_PRESENT_ENTRY_HID("MAGN0001", "1", ATOM_SILVERMONT, {
> > + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> > + DMI_MATCH(DMI_PRODUCT_FAMILY, "YOGATablet2"),
> > + }),
> > };
> >
> > bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *status)
>