From d132ca633f4decf05f7999363572e883fbe0fd88 Mon Sep 17 00:00:00 2001 From: Oleg Date: Mon, 15 Jul 2024 18:17:17 +0300 Subject: [PATCH] Move quirks initialization to the hid_pidff_init function --- hid-pidff-wrapper.c | 4 ++-- hid-pidff.c | 32 ++++---------------------------- hid-pidff.h | 3 +-- 3 files changed, 7 insertions(+), 32 deletions(-) diff --git a/hid-pidff-wrapper.c b/hid-pidff-wrapper.c index ab53744..2bcf936 100644 --- a/hid-pidff-wrapper.c +++ b/hid-pidff-wrapper.c @@ -69,9 +69,9 @@ static int universal_pidff_probe(struct hid_device *hdev, goto err; } - ret = hid_pidff_init_with_quirks(hdev, id); + ret = hid_pidff_init(hdev, id); if (ret) { - hid_warn(hdev, "Force feedback not supported\n"); + hid_warn(hdev, "Force feedback is not supported\n"); goto err; } diff --git a/hid-pidff.c b/hid-pidff.c index 911a5d5..fc0c7af 100644 --- a/hid-pidff.c +++ b/hid-pidff.c @@ -1320,9 +1320,9 @@ static int pidff_check_autocenter(struct pidff_device *pidff, } /* - * Check if the device is PID and initialize it + * Check if the device is PID and initialize it, with quirks */ -int hid_pidff_init(struct hid_device *hid) +int hid_pidff_init(struct hid_device *hid, const struct hid_device_id *id) { struct pidff_device *pidff; struct hid_input *hidinput = list_entry(hid->inputs.next, @@ -1344,6 +1344,8 @@ int hid_pidff_init(struct hid_device *hid) return -ENOMEM; pidff->hid = hid; + pidff->quirks |= id->driver_data; + hid_dbg(dev, "Device quirks: %d\n", pidff->quirks); hid_device_io_start(hid); @@ -1421,29 +1423,3 @@ int hid_pidff_init(struct hid_device *hid) kfree(pidff); return error; } - -/* - * Check if the device is PID and initialize it - * Add quirks after initialisation - */ -int hid_pidff_init_with_quirks(struct hid_device *hid, const struct hid_device_id *id) -{ - int error = hid_pidff_init(hid); - - if (error) - return error; - - struct hid_input *hidinput = list_entry(hid->inputs.next, - struct hid_input, list); - struct input_dev *dev = hidinput->input; - struct pidff_device *pidff = dev->ff->private; - - /* set quirks on the pidff device */ - hid_device_io_start(hid); - pidff->quirks |= id->driver_data; - hid_device_io_stop(hid); - - hid_dbg(dev, "Device quirks: %d\n", pidff->quirks); - - return 0; -} diff --git a/hid-pidff.h b/hid-pidff.h index 586ee96..b4104b8 100644 --- a/hid-pidff.h +++ b/hid-pidff.h @@ -20,7 +20,6 @@ #define PIDFF_QUIRK_NO_DELAY_EFFECT BIT(2) -int hid_pidff_init(struct hid_device *hid); -int hid_pidff_init_with_quirks(struct hid_device *hid, const struct hid_device_id *id); +int hid_pidff_init(struct hid_device *hid, const struct hid_device_id *id); #endif