iio: accel: kxcjk-1013: Set label based on accel-location on 2-accel yoga-style 2-in-1s
Some 2-in-1 laptops / convertibles with 360° (yoga-style) hinges, use 2 KXCJ91008 accelerometers: 1 in their display using an ACPI HID of "KIOX010A"; and 1 in their base using an ACPI HID of "KIOX020A" Since in this case we know the location of each accelerometer, set the label for the accelerometers to the standardized "accel-display" resp. "accel-base" labels. This way userspace can use the labels to get the location. This was tested on a Medion Akoya E2228T MD60250. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20210207160901.110643-4-hdegoede@redhat.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
788348a5f7
commit
30132fe466
|
@ -1284,7 +1284,8 @@ static irqreturn_t kxcjk1013_data_rdy_trig_poll(int irq, void *private)
|
|||
|
||||
static const char *kxcjk1013_match_acpi_device(struct device *dev,
|
||||
enum kx_chipset *chipset,
|
||||
enum kx_acpi_type *acpi_type)
|
||||
enum kx_acpi_type *acpi_type,
|
||||
const char **label)
|
||||
{
|
||||
const struct acpi_device_id *id;
|
||||
|
||||
|
@ -1292,10 +1293,14 @@ static const char *kxcjk1013_match_acpi_device(struct device *dev,
|
|||
if (!id)
|
||||
return NULL;
|
||||
|
||||
if (strcmp(id->id, "SMO8500") == 0)
|
||||
if (strcmp(id->id, "SMO8500") == 0) {
|
||||
*acpi_type = ACPI_SMO8500;
|
||||
else if (strcmp(id->id, "KIOX010A") == 0)
|
||||
} else if (strcmp(id->id, "KIOX010A") == 0) {
|
||||
*acpi_type = ACPI_KIOX010A;
|
||||
*label = "accel-display";
|
||||
} else if (strcmp(id->id, "KIOX020A") == 0) {
|
||||
*label = "accel-base";
|
||||
}
|
||||
|
||||
*chipset = (enum kx_chipset)id->driver_data;
|
||||
|
||||
|
@ -1368,7 +1373,8 @@ static int kxcjk1013_probe(struct i2c_client *client,
|
|||
} else if (ACPI_HANDLE(&client->dev)) {
|
||||
name = kxcjk1013_match_acpi_device(&client->dev,
|
||||
&data->chipset,
|
||||
&data->acpi_type);
|
||||
&data->acpi_type,
|
||||
&indio_dev->label);
|
||||
} else
|
||||
return -ENODEV;
|
||||
|
||||
|
|
Loading…
Reference in New Issue