ext4: update PF_MEMALLOC handling in ext4_write_inode()
[pandora-kernel.git] / drivers / hid / hid-cp2112.c
index ca0f356..56be85a 100644 (file)
@@ -174,8 +174,9 @@ static int cp2112_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
        u8 buf[5];
        int ret;
 
-       ret = hdev->hid_get_raw_report(hdev, CP2112_GPIO_CONFIG, buf,
-                                      sizeof(buf), HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_CONFIG, buf,
+                                      sizeof(buf), HID_FEATURE_REPORT,
+                                      HID_REQ_GET_REPORT);
        if (ret != sizeof(buf)) {
                hid_err(hdev, "error requesting GPIO config: %d\n", ret);
                return ret;
@@ -184,8 +185,8 @@ static int cp2112_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
        buf[1] &= ~(1 << offset);
        buf[2] = gpio_push_pull;
 
-       ret = hdev->hid_output_raw_report(hdev, buf, sizeof(buf),
-                                         HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_CONFIG, buf, sizeof(buf),
+                                HID_FEATURE_REPORT, HID_REQ_SET_REPORT);
        if (ret < 0) {
                hid_err(hdev, "error setting GPIO config: %d\n", ret);
                return ret;
@@ -206,8 +207,8 @@ static void cp2112_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
        buf[1] = value ? 0xff : 0;
        buf[2] = 1 << offset;
 
-       ret = hdev->hid_output_raw_report(hdev, buf, sizeof(buf),
-                                         HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_SET, buf, sizeof(buf),
+                                HID_FEATURE_REPORT, HID_REQ_SET_REPORT);
        if (ret < 0)
                hid_err(hdev, "error setting GPIO values: %d\n", ret);
 }
@@ -220,8 +221,8 @@ static int cp2112_gpio_get(struct gpio_chip *chip, unsigned offset)
        u8 buf[2];
        int ret;
 
-       ret = hdev->hid_get_raw_report(hdev, CP2112_GPIO_GET, buf, sizeof(buf),
-                                      HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_GET, buf, sizeof(buf),
+                                      HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
        if (ret != sizeof(buf)) {
                hid_err(hdev, "error requesting GPIO values: %d\n", ret);
                return ret;
@@ -241,8 +242,9 @@ static int cp2112_gpio_direction_output(struct gpio_chip *chip,
 
        cp2112_gpio_set(chip, offset, value);
 
-       ret = hdev->hid_get_raw_report(hdev, CP2112_GPIO_CONFIG, buf,
-                                      sizeof(buf), HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_CONFIG, buf,
+                                      sizeof(buf), HID_FEATURE_REPORT,
+                                      HID_REQ_GET_REPORT);
        if (ret != sizeof(buf)) {
                hid_err(hdev, "error requesting GPIO config: %d\n", ret);
                return ret;
@@ -251,8 +253,8 @@ static int cp2112_gpio_direction_output(struct gpio_chip *chip,
        buf[1] |= 1 << offset;
        buf[2] = gpio_push_pull;
 
-       ret = hdev->hid_output_raw_report(hdev, buf, sizeof(buf),
-                                         HID_FEATURE_REPORT);
+       ret = hid_hw_raw_request(hdev, CP2112_GPIO_CONFIG, buf, sizeof(buf),
+                                HID_FEATURE_REPORT, HID_REQ_SET_REPORT);
        if (ret < 0) {
                hid_err(hdev, "error setting GPIO config: %d\n", ret);
                return ret;
@@ -271,8 +273,8 @@ static int cp2112_hid_get(struct hid_device *hdev, unsigned char report_number,
        if (!buf)
                return -ENOMEM;
 
-       ret = hdev->hid_get_raw_report(hdev, report_number, buf, count,
-                                      report_type);
+       ret = hid_hw_raw_request(hdev, report_number, buf, count,
+                                      report_type, HID_REQ_GET_REPORT);
        memcpy(data, buf, count);
        kfree(buf);
        return ret;
@@ -288,7 +290,12 @@ static int cp2112_hid_output(struct hid_device *hdev, u8 *data, size_t count,
        if (!buf)
                return -ENOMEM;
 
-       ret = hdev->hid_output_raw_report(hdev, buf, count, report_type);
+       if (report_type == HID_OUTPUT_REPORT)
+               ret = hid_hw_output_report(hdev, buf, count);
+       else
+               ret = hid_hw_raw_request(hdev, buf[0], buf, count, report_type,
+                               HID_REQ_SET_REPORT);
+
        kfree(buf);
        return ret;
 }
@@ -361,7 +368,7 @@ static int cp2112_read(struct cp2112_device *dev, u8 *data, size_t size)
        if (ret)
                return ret;
 
-       hid_dbg(hdev, "read %d of %d bytes requested\n",
+       hid_dbg(hdev, "read %d of %zd bytes requested\n",
                dev->read_length, size);
 
        if (size > dev->read_length)
@@ -426,7 +433,7 @@ static int cp2112_xfer(struct i2c_adapter *adap, u16 addr,
        struct hid_device *hdev = dev->hdev;
        u8 buf[64];
        __be16 word;
-       size_t count;
+       ssize_t count;
        size_t read_length = 0;
        unsigned int retries;
        int ret;
@@ -552,7 +559,7 @@ static int cp2112_xfer(struct i2c_adapter *adap, u16 addr,
        if (ret < 0)
                goto power_normal;
        if (ret != read_length) {
-               hid_warn(hdev, "short read: %d < %d\n", ret, read_length);
+               hid_warn(hdev, "short read: %d < %zd\n", ret, read_length);
                ret = -EIO;
                goto power_normal;
        }
@@ -663,7 +670,7 @@ static ssize_t name##_show(struct device *kdev, \
                return ret; \
        return scnprintf(buf, PAGE_SIZE, format, ##__VA_ARGS__); \
 } \
-DEVICE_ATTR_RW(name);
+static DEVICE_ATTR_RW(name);
 
 CP2112_CONFIG_ATTR(vendor_id, ({
        u16 vid;
@@ -784,7 +791,7 @@ static ssize_t pstr_show(struct device *kdev,
 }
 
 #define CP2112_PSTR_ATTR(name, _report) \
-struct cp2112_pstring_attribute dev_attr_##name = { \
+static struct cp2112_pstring_attribute dev_attr_##name = { \
        .attr = __ATTR(name, (S_IWUSR | S_IRUGO), pstr_show, pstr_store), \
        .report = _report, \
 };