summaryrefslogtreecommitdiff
path: root/drivers/hid
diff options
context:
space:
mode:
authorCharles Wang <charles.goodix@gmail.com>2024-10-31 20:31:12 +0800
committerJiri Kosina <jkosina@suse.com>2024-11-06 15:08:31 +0100
commitbe8f7f2281a26abbda26ce37c5ee4674022a7a2f (patch)
tree477b708a3cf8ee9efcfed22f209fe08d3f41b677 /drivers/hid
parentc9a50b90905a1dc79ca72d4a262da30d3572ca9e (diff)
HID: hid-goodix: Return 0 when receiving an empty HID feature package
Align with the i2c-hid driver by returning 0 instead of -EINVAL when an empty response is received, ensuring that userspace programs utilizing the hidraw node receive consistent return values. Signed-off-by: Charles Wang <charles.goodix@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-goodix-spi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/hid/hid-goodix-spi.c b/drivers/hid/hid-goodix-spi.c
index 0f87bf9c67cf..077a91ee1d37 100644
--- a/drivers/hid/hid-goodix-spi.c
+++ b/drivers/hid/hid-goodix-spi.c
@@ -356,7 +356,7 @@ static int goodix_hid_check_ack_status(struct goodix_ts_data *ts, u32 *resp_len)
dev_err(ts->dev, "hrd.size too short: %d", len);
return -EINVAL;
}
- *resp_len = len;
+ *resp_len = len - GOODIX_HID_PKG_LEN_SIZE;
return 0;
}
@@ -446,7 +446,10 @@ static int goodix_hid_get_raw_report(struct hid_device *hid,
if (error)
return error;
- len = min(len, response_data_len - GOODIX_HID_PKG_LEN_SIZE);
+ /* Empty reprot response */
+ if (!response_data_len)
+ return 0;
+ len = min(len, response_data_len);
/* Step3: read response data(skip 2bytes of hid pkg length) */
error = goodix_spi_read(ts, ts->hid_report_addr +
GOODIX_HID_ACK_HEADER_SIZE +