From: Jonathan Cameron <jic23@kernel.org> To: Hans de Goede <hdegoede@redhat.com> Cc: Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>, Lars-Peter Clausen <lars@metafoo.de>, Jeremy Cline <jeremy@jcline.org>, linux-iio@vger.kernel.org, Charles Keepax <ckeepax@opensource.cirrus.com>, patches@opensource.cirrus.com, alsa-devel@alsa-project.org Subject: Re: [PATCH 4/8] iio: accel: bmc150: Add support for dual-accelerometers with a DUAL250E HID Date: Sat, 22 May 2021 18:43:36 +0100 [thread overview] Message-ID: <20210522184336.09c219cd@jic23-huawei> (raw) In-Reply-To: <20210521171418.393871-5-hdegoede@redhat.com> On Fri, 21 May 2021 19:14:14 +0200 Hans de Goede <hdegoede@redhat.com> wrote: > The Lenovo Yoga 300-11IBR has a ACPI fwnode with a HID of DUAL250E > which contains I2C and IRQ resources for 2 accelerometers, 1 in the > display and one in the base of the device. Add support for this. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/iio/accel/bmc150-accel-i2c.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c > index e24ce28a4660..b81e4005788e 100644 > --- a/drivers/iio/accel/bmc150-accel-i2c.c > +++ b/drivers/iio/accel/bmc150-accel-i2c.c > @@ -24,6 +24,7 @@ > #ifdef CONFIG_ACPI > static const struct acpi_device_id bmc150_acpi_dual_accel_ids[] = { > {"BOSC0200"}, > + {"DUAL250E"}, > { }, > }; > > @@ -35,21 +36,24 @@ static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) > { > struct acpi_device *adev = ACPI_COMPANION(&client->dev); > struct i2c_client *second_dev; > + char dev_name[16]; I'm a bit in two minds about having a fixed length array for this. Obviously this is always big enough (I think a bit too big), but it might be a place where a future bug is introduced. Perhaps it's worth the dance of a kasprintf and kfree, to avoid that possibility? > struct i2c_board_info board_info = { > .type = "bmc150_accel", > - /* > - * The 2nd accel sits in the base of 2-in-1s. Note this > - * name is static, as there should never be more then 1 > - * BOSC0200 ACPI node with 2 accelerometers in it. > - */ > - .dev_name = "BOSC0200:base", > + .dev_name = dev_name, > .fwnode = client->dev.fwnode, > - .irq = -ENOENT, > }; > > if (acpi_match_device_ids(adev, bmc150_acpi_dual_accel_ids)) > return; > > + /* > + * The 2nd accel sits in the base of 2-in-1s. The suffix is static, as > + * there should never be more then 1 ACPI node with 2 accelerometers in it. > + */ > + snprintf(dev_name, sizeof(dev_name), "%s:base", acpi_device_hid(adev)); > + > + board_info.irq = acpi_dev_gpio_irq_get_by(adev, NULL, 1); > + > second_dev = i2c_acpi_new_device(&client->dev, 1, &board_info); > if (!IS_ERR(second_dev)) > bmc150_set_second_device(client, second_dev); > @@ -114,6 +118,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { > {"BMA222E", bma222e}, > {"BMA0280", bma280}, > {"BOSC0200"}, > + {"DUAL250E"}, > { }, > }; > MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match);
WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <jic23@kernel.org> To: Hans de Goede <hdegoede@redhat.com> Cc: alsa-devel@alsa-project.org, Lars-Peter Clausen <lars@metafoo.de>, Charles Keepax <ckeepax@opensource.cirrus.com>, linux-iio@vger.kernel.org, patches@opensource.cirrus.com, Liam Girdwood <lgirdwood@gmail.com>, Jeremy Cline <jeremy@jcline.org>, Mark Brown <broonie@kernel.org> Subject: Re: [PATCH 4/8] iio: accel: bmc150: Add support for dual-accelerometers with a DUAL250E HID Date: Sat, 22 May 2021 18:43:36 +0100 [thread overview] Message-ID: <20210522184336.09c219cd@jic23-huawei> (raw) In-Reply-To: <20210521171418.393871-5-hdegoede@redhat.com> On Fri, 21 May 2021 19:14:14 +0200 Hans de Goede <hdegoede@redhat.com> wrote: > The Lenovo Yoga 300-11IBR has a ACPI fwnode with a HID of DUAL250E > which contains I2C and IRQ resources for 2 accelerometers, 1 in the > display and one in the base of the device. Add support for this. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/iio/accel/bmc150-accel-i2c.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c > index e24ce28a4660..b81e4005788e 100644 > --- a/drivers/iio/accel/bmc150-accel-i2c.c > +++ b/drivers/iio/accel/bmc150-accel-i2c.c > @@ -24,6 +24,7 @@ > #ifdef CONFIG_ACPI > static const struct acpi_device_id bmc150_acpi_dual_accel_ids[] = { > {"BOSC0200"}, > + {"DUAL250E"}, > { }, > }; > > @@ -35,21 +36,24 @@ static void bmc150_acpi_dual_accel_probe(struct i2c_client *client) > { > struct acpi_device *adev = ACPI_COMPANION(&client->dev); > struct i2c_client *second_dev; > + char dev_name[16]; I'm a bit in two minds about having a fixed length array for this. Obviously this is always big enough (I think a bit too big), but it might be a place where a future bug is introduced. Perhaps it's worth the dance of a kasprintf and kfree, to avoid that possibility? > struct i2c_board_info board_info = { > .type = "bmc150_accel", > - /* > - * The 2nd accel sits in the base of 2-in-1s. Note this > - * name is static, as there should never be more then 1 > - * BOSC0200 ACPI node with 2 accelerometers in it. > - */ > - .dev_name = "BOSC0200:base", > + .dev_name = dev_name, > .fwnode = client->dev.fwnode, > - .irq = -ENOENT, > }; > > if (acpi_match_device_ids(adev, bmc150_acpi_dual_accel_ids)) > return; > > + /* > + * The 2nd accel sits in the base of 2-in-1s. The suffix is static, as > + * there should never be more then 1 ACPI node with 2 accelerometers in it. > + */ > + snprintf(dev_name, sizeof(dev_name), "%s:base", acpi_device_hid(adev)); > + > + board_info.irq = acpi_dev_gpio_irq_get_by(adev, NULL, 1); > + > second_dev = i2c_acpi_new_device(&client->dev, 1, &board_info); > if (!IS_ERR(second_dev)) > bmc150_set_second_device(client, second_dev); > @@ -114,6 +118,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { > {"BMA222E", bma222e}, > {"BMA0280", bma280}, > {"BOSC0200"}, > + {"DUAL250E"}, > { }, > }; > MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match);
next prev parent reply other threads:[~2021-05-22 17:42 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-21 17:14 [PATCH 0/8] iio: accel: bmc150: Add support for yoga's with dual accelerometers with an ACPI HID of DUAL250E Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 1/8] iio: accel: bmc150: Fix dereferencing the wrong pointer in bmc150_get/set_second_device Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 2/8] iio: accel: bmc150: Don't make the remove function of the second accelerometer unregister itself Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-22 18:06 ` Andy Shevchenko 2021-05-22 18:06 ` Andy Shevchenko 2021-05-22 18:10 ` Hans de Goede 2021-05-22 18:10 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 3/8] iio: accel: bmc150: Move check for second ACPI device into a separate function Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-22 17:37 ` Jonathan Cameron 2021-05-22 17:37 ` Jonathan Cameron 2021-05-22 17:39 ` Hans de Goede 2021-05-22 17:39 ` Hans de Goede 2021-05-22 18:09 ` Andy Shevchenko 2021-05-22 18:09 ` Andy Shevchenko 2021-05-22 18:57 ` Hans de Goede 2021-05-22 18:57 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 4/8] iio: accel: bmc150: Add support for dual-accelerometers with a DUAL250E HID Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-22 17:43 ` Jonathan Cameron [this message] 2021-05-22 17:43 ` Jonathan Cameron 2021-05-22 17:44 ` Hans de Goede 2021-05-22 17:44 ` Hans de Goede 2021-05-22 17:56 ` Jonathan Cameron 2021-05-22 17:56 ` Jonathan Cameron 2021-05-22 18:11 ` Andy Shevchenko 2021-05-22 18:11 ` Andy Shevchenko 2021-05-22 18:59 ` Hans de Goede 2021-05-22 18:59 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 5/8] iio: accel: bmc150: Move struct bmc150_accel_data definition to bmc150-accel.h Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 6/8] iio: accel: bmc150: Remove bmc150_set/get_second_device() accessor functions Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 7/8] iio: accel: bmc150: Add support for DUAL250E ACPI DSM for setting the hinge angle Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-22 17:53 ` Jonathan Cameron 2021-05-22 17:53 ` Jonathan Cameron 2021-05-22 18:21 ` Andy Shevchenko 2021-05-22 18:21 ` Andy Shevchenko 2021-05-22 19:02 ` Hans de Goede 2021-05-22 19:02 ` Hans de Goede 2021-05-21 17:14 ` [PATCH 8/8] iio: accel: bmc150: Set label based on accel-location for ACPI DUAL250E fwnodes Hans de Goede 2021-05-21 17:14 ` Hans de Goede 2021-05-22 18:34 ` Andy Shevchenko 2021-05-22 18:34 ` Andy Shevchenko 2021-05-22 19:04 ` Hans de Goede 2021-05-22 19:04 ` Hans de Goede 2021-05-22 18:01 ` [PATCH 0/8] iio: accel: bmc150: Add support for yoga's with dual accelerometers with an ACPI HID of DUAL250E Jonathan Cameron 2021-05-22 18:01 ` Jonathan Cameron 2021-05-22 18:03 ` Andy Shevchenko 2021-05-22 18:03 ` Andy Shevchenko 2021-05-22 18:49 ` Jonathan Cameron 2021-05-22 18:49 ` Jonathan Cameron 2021-05-23 11:05 ` Hans de Goede 2021-05-23 11:05 ` Hans de Goede
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210522184336.09c219cd@jic23-huawei \ --to=jic23@kernel.org \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=ckeepax@opensource.cirrus.com \ --cc=hdegoede@redhat.com \ --cc=jeremy@jcline.org \ --cc=lars@metafoo.de \ --cc=lgirdwood@gmail.com \ --cc=linux-iio@vger.kernel.org \ --cc=patches@opensource.cirrus.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.