Commit d8814272 authored by Benjamin Tissoires's avatar Benjamin Tissoires Committed by Jiri Kosina

HID: use hid_hw_request() instead of direct call to usbhid

This allows the hid drivers to be independent from the transport layer.

The patch was constructed by replacing all occurences of
usbhid_submit_report() by its hid_hw_request() counterpart.
Then, drivers not requiring USB_HID anymore have their USB_HID
dependency cleaned in the Kconfig file.

Finally, few drivers still depends on USB_HID. Many of them
are requiring the io wait callback. They are found in the next patch.
Signed-off-by: Benjamin Tissoires's avatarBenjamin Tissoires <benjamin.tissoires@gmail.com>
Reviewed-by: Mika Westerberg's avatarMika Westerberg <mika.westerberg@linux.intel.com>

For the sensor-hub part:
Tested-by: Mika Westerberg's avatarMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent f3757cea
...@@ -99,7 +99,7 @@ config HID_A4TECH ...@@ -99,7 +99,7 @@ config HID_A4TECH
config HID_ACRUX config HID_ACRUX
tristate "ACRUX game controller support" tristate "ACRUX game controller support"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you want to enable support for ACRUX game controllers. Say Y here if you want to enable support for ACRUX game controllers.
...@@ -151,7 +151,7 @@ config HID_CHICONY ...@@ -151,7 +151,7 @@ config HID_CHICONY
config HID_PRODIKEYS config HID_PRODIKEYS
tristate "Prodikeys PC-MIDI Keyboard support" tristate "Prodikeys PC-MIDI Keyboard support"
depends on USB_HID && SND depends on HID && SND
select SND_RAWMIDI select SND_RAWMIDI
---help--- ---help---
Support for Prodikeys PC-MIDI Keyboard device support. Support for Prodikeys PC-MIDI Keyboard device support.
...@@ -173,7 +173,7 @@ config HID_CYPRESS ...@@ -173,7 +173,7 @@ config HID_CYPRESS
config HID_DRAGONRISE config HID_DRAGONRISE
tristate "DragonRise Inc. game controller" tristate "DragonRise Inc. game controller"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you have DragonRise Inc. game controllers. Say Y here if you have DragonRise Inc. game controllers.
These might be branded as: These might be branded as:
...@@ -192,7 +192,7 @@ config DRAGONRISE_FF ...@@ -192,7 +192,7 @@ config DRAGONRISE_FF
config HID_EMS_FF config HID_EMS_FF
tristate "EMS Production Inc. force feedback support" tristate "EMS Production Inc. force feedback support"
depends on USB_HID depends on HID
select INPUT_FF_MEMLESS select INPUT_FF_MEMLESS
---help--- ---help---
Say Y here if you want to enable force feedback support for devices by Say Y here if you want to enable force feedback support for devices by
...@@ -215,7 +215,7 @@ config HID_EZKEY ...@@ -215,7 +215,7 @@ config HID_EZKEY
config HID_HOLTEK config HID_HOLTEK
tristate "Holtek HID devices" tristate "Holtek HID devices"
depends on USB_HID depends on HID
---help--- ---help---
Support for Holtek based devices: Support for Holtek based devices:
- Holtek On Line Grip based game controller - Holtek On Line Grip based game controller
...@@ -239,7 +239,7 @@ config HID_KEYTOUCH ...@@ -239,7 +239,7 @@ config HID_KEYTOUCH
config HID_KYE config HID_KYE
tristate "KYE/Genius devices" tristate "KYE/Genius devices"
depends on USB_HID depends on HID
---help--- ---help---
Support for KYE/Genius devices not fully compliant with HID standard: Support for KYE/Genius devices not fully compliant with HID standard:
- Ergo Mouse - Ergo Mouse
...@@ -397,7 +397,7 @@ config HID_MONTEREY ...@@ -397,7 +397,7 @@ config HID_MONTEREY
config HID_MULTITOUCH config HID_MULTITOUCH
tristate "HID Multitouch panels" tristate "HID Multitouch panels"
depends on USB_HID depends on HID
---help--- ---help---
Generic support for HID multitouch panels. Generic support for HID multitouch panels.
...@@ -458,7 +458,7 @@ config HID_ORTEK ...@@ -458,7 +458,7 @@ config HID_ORTEK
config HID_PANTHERLORD config HID_PANTHERLORD
tristate "Pantherlord/GreenAsia game controller" tristate "Pantherlord/GreenAsia game controller"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you have a PantherLord/GreenAsia based game controller Say Y here if you have a PantherLord/GreenAsia based game controller
or adapter. or adapter.
...@@ -592,13 +592,13 @@ config HID_SONY ...@@ -592,13 +592,13 @@ config HID_SONY
config HID_SPEEDLINK config HID_SPEEDLINK
tristate "Speedlink VAD Cezanne mouse support" tristate "Speedlink VAD Cezanne mouse support"
depends on USB_HID depends on HID
---help--- ---help---
Support for Speedlink Vicious and Divine Cezanne mouse. Support for Speedlink Vicious and Divine Cezanne mouse.
config HID_STEELSERIES config HID_STEELSERIES
tristate "Steelseries SRW-S1 steering wheel support" tristate "Steelseries SRW-S1 steering wheel support"
depends on USB_HID depends on HID
---help--- ---help---
Support for Steelseries SRW-S1 steering wheel Support for Steelseries SRW-S1 steering wheel
...@@ -610,7 +610,7 @@ config HID_SUNPLUS ...@@ -610,7 +610,7 @@ config HID_SUNPLUS
config HID_GREENASIA config HID_GREENASIA
tristate "GreenAsia (Product ID 0x12) game controller support" tristate "GreenAsia (Product ID 0x12) game controller support"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you have a GreenAsia (Product ID 0x12) based game Say Y here if you have a GreenAsia (Product ID 0x12) based game
controller or adapter. controller or adapter.
...@@ -632,7 +632,7 @@ config HID_HYPERV_MOUSE ...@@ -632,7 +632,7 @@ config HID_HYPERV_MOUSE
config HID_SMARTJOYPLUS config HID_SMARTJOYPLUS
tristate "SmartJoy PLUS PS2/USB adapter support" tristate "SmartJoy PLUS PS2/USB adapter support"
depends on USB_HID depends on HID
---help--- ---help---
Support for SmartJoy PLUS PS2/USB adapter, Super Dual Box, Support for SmartJoy PLUS PS2/USB adapter, Super Dual Box,
Super Joy Box 3 Pro, Super Dual Box Pro, and Super Joy Box 5 Pro. Super Joy Box 3 Pro, Super Dual Box Pro, and Super Joy Box 5 Pro.
...@@ -673,7 +673,7 @@ config HID_THINGM ...@@ -673,7 +673,7 @@ config HID_THINGM
config HID_THRUSTMASTER config HID_THRUSTMASTER
tristate "ThrustMaster devices support" tristate "ThrustMaster devices support"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you have a THRUSTMASTER FireStore Dual Power 2 or Say Y here if you have a THRUSTMASTER FireStore Dual Power 2 or
a THRUSTMASTER Ferrari GT Rumble Wheel. a THRUSTMASTER Ferrari GT Rumble Wheel.
...@@ -715,7 +715,7 @@ config HID_WIIMOTE_EXT ...@@ -715,7 +715,7 @@ config HID_WIIMOTE_EXT
config HID_ZEROPLUS config HID_ZEROPLUS
tristate "Zeroplus based game controller support" tristate "Zeroplus based game controller support"
depends on USB_HID depends on HID
---help--- ---help---
Say Y here if you have a Zeroplus based game controller. Say Y here if you have a Zeroplus based game controller.
...@@ -735,7 +735,7 @@ config HID_ZYDACRON ...@@ -735,7 +735,7 @@ config HID_ZYDACRON
config HID_SENSOR_HUB config HID_SENSOR_HUB
tristate "HID Sensors framework support" tristate "HID Sensors framework support"
depends on USB_HID && GENERIC_HARDIRQS depends on HID && GENERIC_HARDIRQS
select MFD_CORE select MFD_CORE
default n default n
-- help--- -- help---
......
...@@ -29,14 +29,12 @@ ...@@ -29,14 +29,12 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/usb.h>
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/module.h> #include <linux/module.h>
#include "hid-ids.h" #include "hid-ids.h"
#ifdef CONFIG_HID_ACRUX_FF #ifdef CONFIG_HID_ACRUX_FF
#include "usbhid/usbhid.h"
struct axff_device { struct axff_device {
struct hid_report *report; struct hid_report *report;
...@@ -68,7 +66,7 @@ static int axff_play(struct input_dev *dev, void *data, struct ff_effect *effect ...@@ -68,7 +66,7 @@ static int axff_play(struct input_dev *dev, void *data, struct ff_effect *effect
} }
dbg_hid("running with 0x%02x 0x%02x", left, right); dbg_hid("running with 0x%02x 0x%02x", left, right);
usbhid_submit_report(hid, axff->report, USB_DIR_OUT); hid_hw_request(hid, axff->report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -114,7 +112,7 @@ static int axff_init(struct hid_device *hid) ...@@ -114,7 +112,7 @@ static int axff_init(struct hid_device *hid)
goto err_free_mem; goto err_free_mem;
axff->report = report; axff->report = report;
usbhid_submit_report(hid, axff->report, USB_DIR_OUT); hid_hw_request(hid, axff->report, HID_REQ_SET_REPORT);
hid_info(hid, "Force Feedback for ACRUX game controllers by Sergei Kolzun <x0r@dv-life.ru>\n"); hid_info(hid, "Force Feedback for ACRUX game controllers by Sergei Kolzun <x0r@dv-life.ru>\n");
......
...@@ -29,14 +29,12 @@ ...@@ -29,14 +29,12 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/usb.h>
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/module.h> #include <linux/module.h>
#include "hid-ids.h" #include "hid-ids.h"
#ifdef CONFIG_DRAGONRISE_FF #ifdef CONFIG_DRAGONRISE_FF
#include "usbhid/usbhid.h"
struct drff_device { struct drff_device {
struct hid_report *report; struct hid_report *report;
...@@ -68,7 +66,7 @@ static int drff_play(struct input_dev *dev, void *data, ...@@ -68,7 +66,7 @@ static int drff_play(struct input_dev *dev, void *data,
drff->report->field[0]->value[1] = 0x00; drff->report->field[0]->value[1] = 0x00;
drff->report->field[0]->value[2] = weak; drff->report->field[0]->value[2] = weak;
drff->report->field[0]->value[4] = strong; drff->report->field[0]->value[4] = strong;
usbhid_submit_report(hid, drff->report, USB_DIR_OUT); hid_hw_request(hid, drff->report, HID_REQ_SET_REPORT);
drff->report->field[0]->value[0] = 0xfa; drff->report->field[0]->value[0] = 0xfa;
drff->report->field[0]->value[1] = 0xfe; drff->report->field[0]->value[1] = 0xfe;
...@@ -80,7 +78,7 @@ static int drff_play(struct input_dev *dev, void *data, ...@@ -80,7 +78,7 @@ static int drff_play(struct input_dev *dev, void *data,
drff->report->field[0]->value[2] = 0x00; drff->report->field[0]->value[2] = 0x00;
drff->report->field[0]->value[4] = 0x00; drff->report->field[0]->value[4] = 0x00;
dbg_hid("running with 0x%02x 0x%02x", strong, weak); dbg_hid("running with 0x%02x 0x%02x", strong, weak);
usbhid_submit_report(hid, drff->report, USB_DIR_OUT); hid_hw_request(hid, drff->report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -132,7 +130,7 @@ static int drff_init(struct hid_device *hid) ...@@ -132,7 +130,7 @@ static int drff_init(struct hid_device *hid)
drff->report->field[0]->value[4] = 0x00; drff->report->field[0]->value[4] = 0x00;
drff->report->field[0]->value[5] = 0x00; drff->report->field[0]->value[5] = 0x00;
drff->report->field[0]->value[6] = 0x00; drff->report->field[0]->value[6] = 0x00;
usbhid_submit_report(hid, drff->report, USB_DIR_OUT); hid_hw_request(hid, drff->report, HID_REQ_SET_REPORT);
hid_info(hid, "Force Feedback for DragonRise Inc. " hid_info(hid, "Force Feedback for DragonRise Inc. "
"game controllers by Richard Walmsley <richwalm@gmail.com>\n"); "game controllers by Richard Walmsley <richwalm@gmail.com>\n");
......
...@@ -23,11 +23,9 @@ ...@@ -23,11 +23,9 @@
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/usb.h>
#include <linux/module.h> #include <linux/module.h>
#include "hid-ids.h" #include "hid-ids.h"
#include "usbhid/usbhid.h"
struct emsff_device { struct emsff_device {
struct hid_report *report; struct hid_report *report;
...@@ -52,7 +50,7 @@ static int emsff_play(struct input_dev *dev, void *data, ...@@ -52,7 +50,7 @@ static int emsff_play(struct input_dev *dev, void *data,
emsff->report->field[0]->value[2] = strong; emsff->report->field[0]->value[2] = strong;
dbg_hid("running with 0x%02x 0x%02x\n", strong, weak); dbg_hid("running with 0x%02x 0x%02x\n", strong, weak);
usbhid_submit_report(hid, emsff->report, USB_DIR_OUT); hid_hw_request(hid, emsff->report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -104,7 +102,7 @@ static int emsff_init(struct hid_device *hid) ...@@ -104,7 +102,7 @@ static int emsff_init(struct hid_device *hid)
emsff->report->field[0]->value[4] = 0x00; emsff->report->field[0]->value[4] = 0x00;
emsff->report->field[0]->value[5] = 0x00; emsff->report->field[0]->value[5] = 0x00;
emsff->report->field[0]->value[6] = 0x00; emsff->report->field[0]->value[6] = 0x00;
usbhid_submit_report(hid, emsff->report, USB_DIR_OUT); hid_hw_request(hid, emsff->report, HID_REQ_SET_REPORT);
hid_info(hid, "force feedback for EMS based devices by Ignaz Forster <ignaz.forster@gmx.de>\n"); hid_info(hid, "force feedback for EMS based devices by Ignaz Forster <ignaz.forster@gmx.de>\n");
......
...@@ -29,13 +29,11 @@ ...@@ -29,13 +29,11 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/usb.h>
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/module.h> #include <linux/module.h>
#include "hid-ids.h" #include "hid-ids.h"
#ifdef CONFIG_GREENASIA_FF #ifdef CONFIG_GREENASIA_FF
#include "usbhid/usbhid.h"
struct gaff_device { struct gaff_device {
struct hid_report *report; struct hid_report *report;
...@@ -63,14 +61,14 @@ static int hid_gaff_play(struct input_dev *dev, void *data, ...@@ -63,14 +61,14 @@ static int hid_gaff_play(struct input_dev *dev, void *data,
gaff->report->field[0]->value[4] = left; gaff->report->field[0]->value[4] = left;
gaff->report->field[0]->value[5] = 0; gaff->report->field[0]->value[5] = 0;
dbg_hid("running with 0x%02x 0x%02x", left, right); dbg_hid("running with 0x%02x 0x%02x", left, right);
usbhid_submit_report(hid, gaff->report, USB_DIR_OUT); hid_hw_request(hid, gaff->report, HID_REQ_SET_REPORT);
gaff->report->field[0]->value[0] = 0xfa; gaff->report->field[0]->value[0] = 0xfa;
gaff->report->field[0]->value[1] = 0xfe; gaff->report->field[0]->value[1] = 0xfe;
gaff->report->field[0]->value[2] = 0x0; gaff->report->field[0]->value[2] = 0x0;
gaff->report->field[0]->value[4] = 0x0; gaff->report->field[0]->value[4] = 0x0;
usbhid_submit_report(hid, gaff->report, USB_DIR_OUT); hid_hw_request(hid, gaff->report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -122,12 +120,12 @@ static int gaff_init(struct hid_device *hid) ...@@ -122,12 +120,12 @@ static int gaff_init(struct hid_device *hid)
gaff->report->field[0]->value[1] = 0x00; gaff->report->field[0]->value[1] = 0x00;
gaff->report->field[0]->value[2] = 0x00; gaff->report->field[0]->value[2] = 0x00;
gaff->report->field[0]->value[3] = 0x00; gaff->report->field[0]->value[3] = 0x00;
usbhid_submit_report(hid, gaff->report, USB_DIR_OUT); hid_hw_request(hid, gaff->report, HID_REQ_SET_REPORT);
gaff->report->field[0]->value[0] = 0xfa; gaff->report->field[0]->value[0] = 0xfa;
gaff->report->field[0]->value[1] = 0xfe; gaff->report->field[0]->value[1] = 0xfe;
usbhid_submit_report(hid, gaff->report, USB_DIR_OUT); hid_hw_request(hid, gaff->report, HID_REQ_SET_REPORT);
hid_info(hid, "Force Feedback for GreenAsia 0x12 devices by Lukasz Lubojanski <lukasz@lubojanski.info>\n"); hid_info(hid, "Force Feedback for GreenAsia 0x12 devices by Lukasz Lubojanski <lukasz@lubojanski.info>\n");
......
...@@ -27,12 +27,10 @@ ...@@ -27,12 +27,10 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/usb.h>
#include "hid-ids.h" #include "hid-ids.h"
#ifdef CONFIG_HOLTEK_FF #ifdef CONFIG_HOLTEK_FF
#include "usbhid/usbhid.h"
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>"); MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>");
...@@ -102,7 +100,7 @@ static void holtekff_send(struct holtekff_device *holtekff, ...@@ -102,7 +100,7 @@ static void holtekff_send(struct holtekff_device *holtekff,
dbg_hid("sending %*ph\n", 7, data); dbg_hid("sending %*ph\n", 7, data);
usbhid_submit_report(hid, holtekff->field->report, USB_DIR_OUT); hid_hw_request(hid, holtekff->field->report, HID_REQ_SET_REPORT);
} }
static int holtekff_play(struct input_dev *dev, void *data, static int holtekff_play(struct input_dev *dev, void *data,
......
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/hid.h> #include <linux/hid.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/usb.h>
#include "usbhid/usbhid.h"
#include "hid-ids.h" #include "hid-ids.h"
...@@ -361,7 +359,7 @@ static int kye_tablet_enable(struct hid_device *hdev) ...@@ -361,7 +359,7 @@ static int kye_tablet_enable(struct hid_device *hdev)
value[4] = 0x00; value[4] = 0x00;
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00; value[6] = 0x00;
usbhid_submit_report(hdev, report, USB_DIR_OUT); hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
......
...@@ -68,7 +68,7 @@ static int tpkbd_features_set(struct hid_device *hdev) ...@@ -68,7 +68,7 @@ static int tpkbd_features_set(struct hid_device *hdev)
report->field[2]->value[0] = data_pointer->sensitivity; report->field[2]->value[0] = data_pointer->sensitivity;
report->field[3]->value[0] = data_pointer->press_speed; report->field[3]->value[0] = data_pointer->press_speed;
usbhid_submit_report(hdev, report, USB_DIR_OUT); hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -332,7 +332,7 @@ static void tpkbd_led_brightness_set(struct led_classdev *led_cdev, ...@@ -332,7 +332,7 @@ static void tpkbd_led_brightness_set(struct led_classdev *led_cdev,
report = hdev->report_enum[HID_OUTPUT_REPORT].report_id_hash[3]; report = hdev->report_enum[HID_OUTPUT_REPORT].report_id_hash[3];
report->field[0]->value[0] = (data_pointer->led_state >> 0) & 1; report->field[0]->value[0] = (data_pointer->led_state >> 0) & 1;
report->field[0]->value[1] = (data_pointer->led_state >> 1) & 1; report->field[0]->value[1] = (data_pointer->led_state >> 1) & 1;
usbhid_submit_report(hdev, report, USB_DIR_OUT); hid_hw_request(hdev, report, HID_REQ_SET_REPORT);
} }
static int tpkbd_probe_tp(struct hid_device *hdev) static int tpkbd_probe_tp(struct hid_device *hdev)
......
...@@ -23,10 +23,8 @@ ...@@ -23,10 +23,8 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/usb.h>
#include <linux/hid.h> #include <linux/hid.h>
#include "usbhid/usbhid.h"
#include "hid-lg.h" #include "hid-lg.h"
struct lg2ff_device { struct lg2ff_device {
...@@ -56,7 +54,7 @@ static int play_effect(struct input_dev *dev, void *data, ...@@ -56,7 +54,7 @@ static int play_effect(struct input_dev *dev, void *data,
lg2ff->report->field[0]->value[4] = 0x00; lg2ff->report->field[0]->value[4] = 0x00;
} }
usbhid_submit_report(hid, lg2ff->report, USB_DIR_OUT); hid_hw_request(hid, lg2ff->report, HID_REQ_SET_REPORT);
return 0; return 0;
} }
...@@ -108,7 +106,7 @@ int lg2ff_init(struct hid_device *hid) ...@@ -108,7 +106,7 @@ int lg2ff_init(struct hid_device *hid)
report->field[0]->value[5] = 0x00; report->field[0]->value[5] = 0x00;
report->field[0]->value[6] = 0x00; report->field[0]->value[6] = 0x00;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
hid_info(hid, "Force feedback for Logitech RumblePad/Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>\n"); hid_info(hid, "Force feedback for Logitech RumblePad/Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>\n");
......
...@@ -22,10 +22,8 @@ ...@@ -22,10 +22,8 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/usb.h>
#include <linux/hid.h> #include <linux/hid.h>
#include "usbhid/usbhid.h"
#include "hid-lg.h" #include "hid-lg.h"
/* /*
...@@ -92,7 +90,7 @@ static int hid_lg3ff_play(struct input_dev *dev, void *data, ...@@ -92,7 +90,7 @@ static int hid_lg3ff_play(struct input_dev *dev, void *data,
report->field[0]->value[1] = (unsigned char)(-x); report->field[0]->value[1] = (unsigned char)(-x);
report->field[0]->value[31] = (unsigned char)(-y); report->field[0]->value[31] = (unsigned char)(-y);
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
break; break;
} }
return 0; return 0;
...@@ -118,7 +116,7 @@ static void hid_lg3ff_set_autocenter(struct input_dev *dev, u16 magnitude) ...@@ -118,7 +116,7 @@ static void hid_lg3ff_set_autocenter(struct input_dev *dev, u16 magnitude)
report->field[0]->value[33] = 0x7F; report->field[0]->value[33] = 0x7F;
report->field[0]->value[34] = 0x7F; report->field[0]->value[34] = 0x7F;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
......
...@@ -202,7 +202,7 @@ static int hid_lg4ff_play(struct input_dev *dev, void *data, struct ff_effect *e ...@@ -202,7 +202,7 @@ static int hid_lg4ff_play(struct input_dev *dev, void *data, struct ff_effect *e
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00; value[6] = 0x00;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
break; break;
} }
return 0; return 0;
...@@ -225,7 +225,7 @@ static void hid_lg4ff_set_autocenter_default(struct input_dev *dev, u16 magnitud ...@@ -225,7 +225,7 @@ static void hid_lg4ff_set_autocenter_default(struct input_dev *dev, u16 magnitud
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00; value[6] = 0x00;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
/* Sends autocentering command compatible with Formula Force EX */ /* Sends autocentering command compatible with Formula Force EX */
...@@ -245,7 +245,7 @@ static void hid_lg4ff_set_autocenter_ffex(struct input_dev *dev, u16 magnitude) ...@@ -245,7 +245,7 @@ static void hid_lg4ff_set_autocenter_ffex(struct input_dev *dev, u16 magnitude)
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00; value[6] = 0x00;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
/* Sends command to set range compatible with G25/G27/Driving Force GT */ /* Sends command to set range compatible with G25/G27/Driving Force GT */
...@@ -265,7 +265,7 @@ static void hid_lg4ff_set_range_g25(struct hid_device *hid, u16 range) ...@@ -265,7 +265,7 @@ static void hid_lg4ff_set_range_g25(struct hid_device *hid, u16 range)
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00; value[6] = 0x00;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
/* Sends commands to set range compatible with Driving Force Pro wheel */ /* Sends commands to set range compatible with Driving Force Pro wheel */
...@@ -294,7 +294,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range) ...@@ -294,7 +294,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range)
report->field[0]->value[1] = 0x02; report->field[0]->value[1] = 0x02;
full_range = 200; full_range = 200;
} }
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
/* Prepare "fine" limit command */ /* Prepare "fine" limit command */
value[0] = 0x81; value[0] = 0x81;
...@@ -306,7 +306,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range) ...@@ -306,7 +306,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range)
value[6] = 0x00; value[6] = 0x00;
if (range == 200 || range == 900) { /* Do not apply any fine limit */ if (range == 200 || range == 900) { /* Do not apply any fine limit */
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
return; return;
} }
...@@ -320,7 +320,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range) ...@@ -320,7 +320,7 @@ static void hid_lg4ff_set_range_dfp(struct hid_device *hid, __u16 range)
value[5] = (start_right & 0xe) << 4 | (start_left & 0xe); value[5] = (start_right & 0xe) << 4 | (start_left & 0xe);
value[6] = 0xff; value[6] = 0xff;
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
static void hid_lg4ff_switch_native(struct hid_device *hid, const struct lg4ff_native_cmd *cmd) static void hid_lg4ff_switch_native(struct hid_device *hid, const struct lg4ff_native_cmd *cmd)
...@@ -334,7 +334,7 @@ static void hid_lg4ff_switch_native(struct hid_device *hid, const struct lg4ff_n ...@@ -334,7 +334,7 @@ static void hid_lg4ff_switch_native(struct hid_device *hid, const struct lg4ff_n
for (i = 0; i < 7; i++) for (i = 0; i < 7; i++)
report->field[0]->value[i] = cmd->cmd[j++]; report->field[0]->value[i] = cmd->cmd[j++];
usbhid_submit_report(hid, report, USB_DIR_OUT); hid_hw_request(hid, report, HID_REQ_SET_REPORT);
} }
} }
...@@ -410,7 +410,7 @@ static void lg4ff_set_leds(struct hid_device *hid, __u8 leds) ...@@ -410,7 +410,7 @@ static void lg4ff_set_leds(struct hid_device *hid, __u8 leds)
value[4] = 0x00; value[4] = 0x00;
value[5] = 0x00; value[5] = 0x00;
value[6] = 0x00;