HID: i2c-hid: fix return paths
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>
Tue, 4 Dec 2012 15:27:48 +0000 (16:27 +0100)
committerJiri Kosina <jkosina@suse.cz>
Wed, 5 Dec 2012 10:04:28 +0000 (11:04 +0100)
Forwards appropriate return values.
As noone use the error returned by i2c_hid_get_input, let's make it
returning void.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/i2c-hid/i2c-hid.c

index be5126c281c317d1f13352d0865d4a163298cf64..e0d097deb0678156b7d82539703b04a7e851ef00 100644 (file)
@@ -244,7 +244,7 @@ static int i2c_hid_get_report(struct i2c_client *client, u8 reportType,
        if (ret) {
                dev_err(&client->dev,
                        "failed to retrieve report from device.\n");
-               return -EINVAL;
+               return ret;
        }
 
        return 0;
@@ -289,7 +289,7 @@ static int i2c_hid_set_report(struct i2c_client *client, u8 reportType,
                reportType, args, args_len, NULL, 0);
        if (ret) {
                dev_err(&client->dev, "failed to set a report to device.\n");
-               return -EINVAL;
+               return ret;
        }
 
        return data_len;
@@ -333,7 +333,7 @@ static int i2c_hid_hwreset(struct i2c_client *client)
        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 size = le16_to_cpu(ihid->hdesc.wMaxInputLength);
@@ -341,11 +341,11 @@ static int i2c_hid_get_input(struct i2c_hid *ihid)
        ret = i2c_master_recv(ihid->client, ihid->inbuf, size);
        if (ret != size) {
                if (ret < 0)
-                       return ret;
+                       return;
 
                dev_err(&ihid->client->dev, "%s: got %d data instead of %d\n",
                        __func__, ret, size);
-               return ret;
+               return;
        }
 
        ret_size = ihid->inbuf[0] | ihid->inbuf[1] << 8;
@@ -354,13 +354,13 @@ static int i2c_hid_get_input(struct i2c_hid *ihid)
                /* host or device initiated RESET completed */
                if (test_and_clear_bit(I2C_HID_RESET_PENDING, &ihid->flags))
                        wake_up(&ihid->wait);
-               return 0;
+               return;
        }
 
        if (ret_size > size) {
                dev_err(&ihid->client->dev, "%s: incomplete report (%d/%d)\n",
                        __func__, size, ret_size);
-               return -EIO;
+               return;
        }
 
        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)
                hid_input_report(ihid->hid, HID_INPUT_REPORT, ihid->inbuf + 2,
                                ret_size - 2, 1);
 
-       return 0;
+       return;
 }
 
 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)
        struct i2c_hid *ihid = i2c_get_clientdata(client);
        u8 *inbuf = kzalloc(ihid->bufsize, GFP_KERNEL);
 
-       if (!inbuf)
+       if (!inbuf) {
+               dev_err(&client->dev, "can not retrieve initial reports\n");
                return;
+       }
 
        list_for_each_entry(report,
                &hid->report_enum[HID_INPUT_REPORT].report_list, list)
@@ -714,9 +716,7 @@ static int i2c_hid_hidinput_input_event(struct input_dev *dev,
                return -1;
        }
 
-       hid_set_field(field, offset, value);
-
-       return 0;
+       return hid_set_field(field, offset, value);
 }
 
 static struct hid_ll_driver i2c_hid_ll_driver = {