Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: replace hid_output_raw_report with hid_hw_raw_request for feature requests

ret = hid_output_raw_report(A, B, C, HID_FEATURE_REPORT);
is equivalent to
ret = hid_hw_raw_request(A, B[0], B, C, HID_FEATURE_REPORT, HID_REQ_SET_REPORT);
whatever the transport layer is.

So use the new API where available

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

authored by

Benjamin Tissoires and committed by
Jiri Kosina
b0dd72aa bd27e202

+25 -21
+4 -4
drivers/hid/hid-lg.c
··· 692 692 if (hdev->product == USB_DEVICE_ID_LOGITECH_WII_WHEEL) { 693 693 unsigned char buf[] = { 0x00, 0xAF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; 694 694 695 - ret = hid_output_raw_report(hdev, buf, sizeof(buf), 696 - HID_FEATURE_REPORT); 695 + ret = hid_hw_raw_request(hdev, buf[0], buf, sizeof(buf), 696 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 697 697 698 698 if (ret >= 0) { 699 699 /* insert a little delay of 10 jiffies ~ 40ms */ ··· 705 705 buf[1] = 0xB2; 706 706 get_random_bytes(&buf[2], 2); 707 707 708 - ret = hid_output_raw_report(hdev, buf, sizeof(buf), 709 - HID_FEATURE_REPORT); 708 + ret = hid_hw_raw_request(hdev, buf[0], buf, sizeof(buf), 709 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 710 710 } 711 711 } 712 712
+2 -2
drivers/hid/hid-magicmouse.c
··· 538 538 * but there seems to be no other way of switching the mode. 539 539 * Thus the super-ugly hacky success check below. 540 540 */ 541 - ret = hid_output_raw_report(hdev, feature, sizeof(feature), 542 - HID_FEATURE_REPORT); 541 + ret = hid_hw_raw_request(hdev, feature[0], feature, sizeof(feature), 542 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 543 543 if (ret != -EIO && ret != sizeof(feature)) { 544 544 hid_err(hdev, "unable to request touch data (%d)\n", ret); 545 545 goto err_stop_hw;
+2 -2
drivers/hid/hid-sony.c
··· 720 720 static int sixaxis_set_operational_bt(struct hid_device *hdev) 721 721 { 722 722 unsigned char buf[] = { 0xf4, 0x42, 0x03, 0x00, 0x00 }; 723 - return hid_output_raw_report(hdev, buf, sizeof(buf), 724 - HID_FEATURE_REPORT); 723 + return hid_hw_raw_request(hdev, buf[0], buf, sizeof(buf), 724 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 725 725 } 726 726 727 727 static void buzz_set_leds(struct hid_device *hdev, const __u8 *leds)
+2 -2
drivers/hid/hid-thingm.c
··· 48 48 buf[0], buf[1], buf[2], buf[3], buf[4], 49 49 buf[5], buf[6], buf[7], buf[8]); 50 50 51 - ret = hid_output_raw_report(data->hdev, buf, BLINK1_CMD_SIZE, 52 - HID_FEATURE_REPORT); 51 + ret = hid_hw_raw_request(data->hdev, buf[0], buf, BLINK1_CMD_SIZE, 52 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 53 53 54 54 return ret < 0 ? ret : 0; 55 55 }
+15 -11
drivers/hid/hid-wacom.c
··· 128 128 129 129 rep_data[0] = WAC_CMD_ICON_START_STOP; 130 130 rep_data[1] = 0; 131 - ret = hid_output_raw_report(hdev, rep_data, 2, HID_FEATURE_REPORT); 131 + ret = hid_hw_raw_request(hdev, rep_data[0], rep_data, 2, 132 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 132 133 if (ret < 0) 133 134 goto err; 134 135 ··· 143 142 rep_data[j + 3] = p[(i << 6) + j]; 144 143 145 144 rep_data[2] = i; 146 - ret = hid_output_raw_report(hdev, rep_data, 67, 147 - HID_FEATURE_REPORT); 145 + ret = hid_hw_raw_request(hdev, rep_data[0], rep_data, 67, 146 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 148 147 } 149 148 150 149 rep_data[0] = WAC_CMD_ICON_START_STOP; 151 150 rep_data[1] = 0; 152 151 153 - ret = hid_output_raw_report(hdev, rep_data, 2, HID_FEATURE_REPORT); 152 + ret = hid_hw_raw_request(hdev, rep_data[0], rep_data, 2, 153 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 154 154 155 155 err: 156 156 return; ··· 183 181 buf[3] = value; 184 182 /* use fixed brightness for OLEDs */ 185 183 buf[4] = 0x08; 186 - hid_output_raw_report(hdev, buf, 9, HID_FEATURE_REPORT); 184 + hid_hw_raw_request(hdev, buf[0], buf, 9, HID_FEATURE_REPORT, 185 + HID_REQ_SET_REPORT); 187 186 kfree(buf); 188 187 } 189 188 ··· 340 337 rep_data[0] = 0x03 ; rep_data[1] = 0x00; 341 338 limit = 3; 342 339 do { 343 - ret = hid_output_raw_report(hdev, rep_data, 2, 344 - HID_FEATURE_REPORT); 340 + ret = hid_hw_raw_request(hdev, rep_data[0], rep_data, 2, 341 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 345 342 } while (ret < 0 && limit-- > 0); 346 343 347 344 if (ret >= 0) { ··· 353 350 rep_data[1] = 0x00; 354 351 limit = 3; 355 352 do { 356 - ret = hid_output_raw_report(hdev, 357 - rep_data, 2, HID_FEATURE_REPORT); 353 + ret = hid_hw_raw_request(hdev, rep_data[0], 354 + rep_data, 2, HID_FEATURE_REPORT, 355 + HID_REQ_SET_REPORT); 358 356 } while (ret < 0 && limit-- > 0); 359 357 360 358 if (ret >= 0) { ··· 380 376 rep_data[0] = 0x03; 381 377 rep_data[1] = wdata->features; 382 378 383 - ret = hid_output_raw_report(hdev, rep_data, 2, 384 - HID_FEATURE_REPORT); 379 + ret = hid_hw_raw_request(hdev, rep_data[0], rep_data, 2, 380 + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); 385 381 if (ret >= 0) 386 382 wdata->high_speed = speed; 387 383 break;