Commit 317b204a authored by Benjamin Tissoires's avatar Benjamin Tissoires Committed by Jiri Kosina

HID: i2c-hid: fix return paths

Forwards appropriate return values.
As noone use the error returned by i2c_hid_get_input, let's make it
returning void.
Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: default avatarJean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 6bf6c8bf
...@@ -244,7 +244,7 @@ static int i2c_hid_get_report(struct i2c_client *client, u8 reportType, ...@@ -244,7 +244,7 @@ static int i2c_hid_get_report(struct i2c_client *client, u8 reportType,
if (ret) { if (ret) {
dev_err(&client->dev, dev_err(&client->dev,
"failed to retrieve report from device.\n"); "failed to retrieve report from device.\n");
return -EINVAL; return ret;
} }
return 0; return 0;
...@@ -289,7 +289,7 @@ static int i2c_hid_set_report(struct i2c_client *client, u8 reportType, ...@@ -289,7 +289,7 @@ static int i2c_hid_set_report(struct i2c_client *client, u8 reportType,
reportType, args, args_len, NULL, 0); reportType, args, args_len, NULL, 0);
if (ret) { if (ret) {
dev_err(&client->dev, "failed to set a report to device.\n"); dev_err(&client->dev, "failed to set a report to device.\n");
return -EINVAL; return ret;
} }
return data_len; return data_len;
...@@ -333,7 +333,7 @@ static int i2c_hid_hwreset(struct i2c_client *client) ...@@ -333,7 +333,7 @@ static int i2c_hid_hwreset(struct i2c_client *client)
return 0; return 0;
} }
static int i2c_hid_get_input(struct i2c_hid *ihid) static void i2c_hid_get_input(struct i2c_hid *ihid)
{ {
int ret, ret_size; int ret, ret_size;
int size = le16_to_cpu(ihid->hdesc.wMaxInputLength); int size = le16_to_cpu(ihid->hdesc.wMaxInputLength);
...@@ -341,11 +341,11 @@ static int i2c_hid_get_input(struct i2c_hid *ihid) ...@@ -341,11 +341,11 @@ static int i2c_hid_get_input(struct i2c_hid *ihid)
ret = i2c_master_recv(ihid->client, ihid->inbuf, size); ret = i2c_master_recv(ihid->client, ihid->inbuf, size);
if (ret != size) { if (ret != size) {
if (ret < 0) if (ret < 0)
return ret; return;
dev_err(&ihid->client->dev, "%s: got %d data instead of %d\n", dev_err(&ihid->client->dev, "%s: got %d data instead of %d\n",
__func__, ret, size); __func__, ret, size);
return ret; return;
} }
ret_size = ihid->inbuf[0] | ihid->inbuf[1] << 8; ret_size = ihid->inbuf[0] | ihid->inbuf[1] << 8;
...@@ -354,13 +354,13 @@ static int i2c_hid_get_input(struct i2c_hid *ihid) ...@@ -354,13 +354,13 @@ static int i2c_hid_get_input(struct i2c_hid *ihid)
/* host or device initiated RESET completed */ /* host or device initiated RESET completed */
if (test_and_clear_bit(I2C_HID_RESET_PENDING, &ihid->flags)) if (test_and_clear_bit(I2C_HID_RESET_PENDING, &ihid->flags))
wake_up(&ihid->wait); wake_up(&ihid->wait);
return 0; return;
} }
if (ret_size > size) { if (ret_size > size) {
dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n", dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
__func__, size, ret_size); __func__, size, ret_size);
return -EIO; return;
} }
i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf); i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf);
...@@ -369,7 +369,7 @@ static int i2c_hid_get_input(struct i2c_hid *ihid) ...@@ -369,7 +369,7 @@ static int i2c_hid_get_input(struct i2c_hid *ihid)
hid_input_report(ihid->hid, HID_INPUT_REPORT, ihid->inbuf + 2, hid_input_report(ihid->hid, HID_INPUT_REPORT, ihid->inbuf + 2,
ret_size - 2, 1); ret_size - 2, 1);
return 0; return;
} }
static irqreturn_t i2c_hid_irq(int irq, void *dev_id) static irqreturn_t i2c_hid_irq(int irq, void *dev_id)
...@@ -429,8 +429,10 @@ static void i2c_hid_init_reports(struct hid_device *hid) ...@@ -429,8 +429,10 @@ static void i2c_hid_init_reports(struct hid_device *hid)
struct i2c_hid *ihid = i2c_get_clientdata(client); struct i2c_hid *ihid = i2c_get_clientdata(client);
u8 *inbuf = kzalloc(ihid->bufsize, GFP_KERNEL); u8 *inbuf = kzalloc(ihid->bufsize, GFP_KERNEL);
if (!inbuf) if (!inbuf) {
dev_err(&client->dev, "can not retrieve initial reports\n");
return; return;
}
list_for_each_entry(report, list_for_each_entry(report,
&hid->report_enum[HID_INPUT_REPORT].report_list, list) &hid->report_enum[HID_INPUT_REPORT].report_list, list)
...@@ -714,9 +716,7 @@ static int i2c_hid_hidinput_input_event(struct input_dev *dev, ...@@ -714,9 +716,7 @@ static int i2c_hid_hidinput_input_event(struct input_dev *dev,
return -1; return -1;
} }
hid_set_field(field, offset, value); return hid_set_field(field, offset, value);
return 0;
} }
static struct hid_ll_driver i2c_hid_ll_driver = { static struct hid_ll_driver i2c_hid_ll_driver = {
......
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