Commit e57d58ee authored by Barnabás Pőcze's avatar Barnabás Pőcze Committed by Hans de Goede

platform/x86: huawei-wmi: remove unnecessary member

The `huawei_wmi::idev` array is not actually used by the driver,
so remove it. The piece of code that - I believe - was supposed
to fill the array is flawed, it did not actually set any of the
values inside the array. This was most likely masked by the fact
that the input devices are devm managed and that the only function
that needs a reference to the input devices is
`huawei_wmi_input_notify()`, however, that does not access the
appropriate input device via the `huawei_wmi` object.
Signed-off-by: default avatarBarnabás Pőcze <pobrn@protonmail.com>
Link: https://lore.kernel.org/r/20221005150032.173198-3-pobrn@protonmail.comReviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 0b9a1dcd
...@@ -63,7 +63,6 @@ struct huawei_wmi { ...@@ -63,7 +63,6 @@ struct huawei_wmi {
bool fn_lock_available; bool fn_lock_available;
struct huawei_wmi_debug debug; struct huawei_wmi_debug debug;
struct input_dev *idev[2];
struct led_classdev cdev; struct led_classdev cdev;
struct device *dev; struct device *dev;
...@@ -756,31 +755,30 @@ static void huawei_wmi_input_notify(u32 value, void *context) ...@@ -756,31 +755,30 @@ static void huawei_wmi_input_notify(u32 value, void *context)
kfree(response.pointer); kfree(response.pointer);
} }
static int huawei_wmi_input_setup(struct device *dev, static int huawei_wmi_input_setup(struct device *dev, const char *guid)
const char *guid,
struct input_dev **idev)
{ {
struct input_dev *idev;
acpi_status status; acpi_status status;
int err; int err;
*idev = devm_input_allocate_device(dev); idev = devm_input_allocate_device(dev);
if (!*idev) if (!idev)
return -ENOMEM; return -ENOMEM;
(*idev)->name = "Huawei WMI hotkeys"; idev->name = "Huawei WMI hotkeys";
(*idev)->phys = "wmi/input0"; idev->phys = "wmi/input0";
(*idev)->id.bustype = BUS_HOST; idev->id.bustype = BUS_HOST;
(*idev)->dev.parent = dev; idev->dev.parent = dev;
err = sparse_keymap_setup(*idev, huawei_wmi_keymap, NULL); err = sparse_keymap_setup(idev, huawei_wmi_keymap, NULL);
if (err) if (err)
return err; return err;
err = input_register_device(*idev); err = input_register_device(idev);
if (err) if (err)
return err; return err;
status = wmi_install_notify_handler(guid, huawei_wmi_input_notify, *idev); status = wmi_install_notify_handler(guid, huawei_wmi_input_notify, idev);
if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status))
return -EIO; return -EIO;
...@@ -809,17 +807,14 @@ static int huawei_wmi_probe(struct platform_device *pdev) ...@@ -809,17 +807,14 @@ static int huawei_wmi_probe(struct platform_device *pdev)
huawei_wmi->dev = &pdev->dev; huawei_wmi->dev = &pdev->dev;
while (*guid->guid_string) { while (*guid->guid_string) {
struct input_dev *idev = *huawei_wmi->idev;
if (wmi_has_guid(guid->guid_string)) { if (wmi_has_guid(guid->guid_string)) {
err = huawei_wmi_input_setup(&pdev->dev, guid->guid_string, &idev); err = huawei_wmi_input_setup(&pdev->dev, guid->guid_string);
if (err) { if (err) {
dev_err(&pdev->dev, "Failed to setup input on %s\n", guid->guid_string); dev_err(&pdev->dev, "Failed to setup input on %s\n", guid->guid_string);
return err; return err;
} }
} }
idev++;
guid++; guid++;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment