Loading drivers/hid/usbhid/hid-pidff.c +13 −3 Original line number Diff line number Diff line Loading @@ -523,9 +523,19 @@ static void pidff_set_effect_report(struct pidff_device *pidff, pidff_set_duration(&pidff->set_effect[PID_DURATION], effect->replay.length); pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; /* Some games set this to random values that can be out of range */ s32 trigger_button_max = pidff->set_effect[PID_TRIGGER_BUTTON].field->logical_maximum; if (effect->trigger.button <= trigger_button_max) { pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; pidff_set_time(&pidff->set_effect[PID_TRIGGER_REPEAT_INT], effect->trigger.interval); } else { pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = 0; pidff->set_effect[PID_TRIGGER_REPEAT_INT].value[0] = 0; } pidff->set_effect[PID_GAIN].value[0] = pidff->set_effect[PID_GAIN].field->logical_maximum; Loading Loading
drivers/hid/usbhid/hid-pidff.c +13 −3 Original line number Diff line number Diff line Loading @@ -523,9 +523,19 @@ static void pidff_set_effect_report(struct pidff_device *pidff, pidff_set_duration(&pidff->set_effect[PID_DURATION], effect->replay.length); pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; /* Some games set this to random values that can be out of range */ s32 trigger_button_max = pidff->set_effect[PID_TRIGGER_BUTTON].field->logical_maximum; if (effect->trigger.button <= trigger_button_max) { pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; pidff_set_time(&pidff->set_effect[PID_TRIGGER_REPEAT_INT], effect->trigger.interval); } else { pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = 0; pidff->set_effect[PID_TRIGGER_REPEAT_INT].value[0] = 0; } pidff->set_effect[PID_GAIN].value[0] = pidff->set_effect[PID_GAIN].field->logical_maximum; Loading