| /kernel/linux/linux-5.10/drivers/input/joystick/iforce/ |
| D | iforce-ff.c | 12 * Set the magnitude of a constant force effect 45 * Upload the component of an effect dealing with the period, phase and magnitude 83 * Uploads the part of an effect setting the envelope of the force 178 * Analyse the changes in an effect, and tell if we need to send an condition 189 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_condition_modifier() 206 * Analyse the changes in an effect, and tell if we need to send a magnitude 211 struct ff_effect *effect) in need_magnitude_modifier() argument 213 if (effect->type != FF_CONSTANT) { in need_magnitude_modifier() 214 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_magnitude_modifier() 219 return old->u.constant.level != effect->u.constant.level; in need_magnitude_modifier() [all …]
|
| D | iforce-main.c | 104 * It uploads an effect to the device 106 static int iforce_upload_effect(struct input_dev *dev, struct ff_effect *effect, struct ff_effect *… in iforce_upload_effect() argument 109 struct iforce_core_effect *core_effect = &iforce->core_effects[effect->id]; in iforce_upload_effect() 113 /* Check the effect is not already being updated */ in iforce_upload_effect() 119 * Upload the effect in iforce_upload_effect() 121 switch (effect->type) { in iforce_upload_effect() 123 ret = iforce_upload_periodic(iforce, effect, old); in iforce_upload_effect() 127 ret = iforce_upload_constant(iforce, effect, old); in iforce_upload_effect() 132 ret = iforce_upload_condition(iforce, effect, old); in iforce_upload_effect() 149 * Erases an effect: it frees the effect id and mark as unused the memory [all …]
|
| /kernel/linux/linux-4.19/drivers/input/joystick/iforce/ |
| D | iforce-ff.c | 27 * Set the magnitude of a constant force effect 60 * Upload the component of an effect dealing with the period, phase and magnitude 98 * Uploads the part of an effect setting the envelope of the force 193 * Analyse the changes in an effect, and tell if we need to send an condition 204 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_condition_modifier() 221 * Analyse the changes in an effect, and tell if we need to send a magnitude 226 struct ff_effect *effect) in need_magnitude_modifier() argument 228 if (effect->type != FF_CONSTANT) { in need_magnitude_modifier() 229 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_magnitude_modifier() 234 return old->u.constant.level != effect->u.constant.level; in need_magnitude_modifier() [all …]
|
| /kernel/linux/linux-5.10/drivers/input/ |
| D | ff-core.c | 21 * Check that the effect_id is a valid effect and whether the user 49 * Convert an effect into compatible one 51 static int compat_effect(struct ff_device *ff, struct ff_effect *effect) in compat_effect() argument 55 switch (effect->type) { in compat_effect() 64 magnitude = effect->u.rumble.strong_magnitude / 3 + in compat_effect() 65 effect->u.rumble.weak_magnitude / 6; in compat_effect() 67 effect->type = FF_PERIODIC; in compat_effect() 68 effect->u.periodic.waveform = FF_SINE; in compat_effect() 69 effect->u.periodic.period = 50; in compat_effect() 70 effect->u.periodic.magnitude = max(magnitude, 0x7fff); in compat_effect() [all …]
|
| D | ff-memless.c | 39 struct ff_effect *effect; member 40 unsigned long flags; /* effect state (STARTED, PLAYING, etc) */ 41 int count; /* loop count of the effect */ 44 unsigned long adj_at; /* last time the effect was sent */ 55 struct ff_effect *effect); 58 static const struct ff_envelope *get_envelope(const struct ff_effect *effect) in get_envelope() argument 62 switch (effect->type) { in get_envelope() 64 return &effect->u.periodic.envelope; in get_envelope() 67 return &effect->u.constant.envelope; in get_envelope() 79 const struct ff_envelope *envelope = get_envelope(state->effect); in calculate_next_time() [all …]
|
| D | input-compat.c | 63 struct ff_effect *effect) in input_ff_effect_from_user() argument 76 compat_effect = (struct ff_effect_compat *)effect; in input_ff_effect_from_user() 84 effect->u.periodic.custom_data = in input_ff_effect_from_user() 90 if (copy_from_user(effect, buffer, sizeof(struct ff_effect))) in input_ff_effect_from_user() 118 struct ff_effect *effect) in input_ff_effect_from_user() argument 123 if (copy_from_user(effect, buffer, sizeof(struct ff_effect))) in input_ff_effect_from_user()
|
| /kernel/linux/linux-4.19/drivers/input/ |
| D | ff-memless.c | 51 struct ff_effect *effect; member 52 unsigned long flags; /* effect state (STARTED, PLAYING, etc) */ 53 int count; /* loop count of the effect */ 56 unsigned long adj_at; /* last time the effect was sent */ 67 struct ff_effect *effect); 70 static const struct ff_envelope *get_envelope(const struct ff_effect *effect) in get_envelope() argument 74 switch (effect->type) { in get_envelope() 76 return &effect->u.periodic.envelope; in get_envelope() 79 return &effect->u.constant.envelope; in get_envelope() 91 const struct ff_envelope *envelope = get_envelope(state->effect); in calculate_next_time() [all …]
|
| D | ff-core.c | 33 * Check that the effect_id is a valid effect and whether the user 61 * Convert an effect into compatible one 63 static int compat_effect(struct ff_device *ff, struct ff_effect *effect) in compat_effect() argument 67 switch (effect->type) { in compat_effect() 76 magnitude = effect->u.rumble.strong_magnitude / 3 + in compat_effect() 77 effect->u.rumble.weak_magnitude / 6; in compat_effect() 79 effect->type = FF_PERIODIC; in compat_effect() 80 effect->u.periodic.waveform = FF_SINE; in compat_effect() 81 effect->u.periodic.period = 50; in compat_effect() 82 effect->u.periodic.magnitude = max(magnitude, 0x7fff); in compat_effect() [all …]
|
| D | input-compat.c | 66 struct ff_effect *effect) in input_ff_effect_from_user() argument 79 compat_effect = (struct ff_effect_compat *)effect; in input_ff_effect_from_user() 87 effect->u.periodic.custom_data = in input_ff_effect_from_user() 93 if (copy_from_user(effect, buffer, sizeof(struct ff_effect))) in input_ff_effect_from_user() 121 struct ff_effect *effect) in input_ff_effect_from_user() argument 126 if (copy_from_user(effect, buffer, sizeof(struct ff_effect))) in input_ff_effect_from_user()
|
| /kernel/linux/linux-5.10/drivers/hid/usbhid/ |
| D | hid-pidff.c | 274 struct ff_effect *effect) in pidff_set_constant_force_report() argument 279 effect->u.constant.level); in pidff_set_constant_force_report() 288 static int pidff_needs_set_constant(struct ff_effect *effect, in pidff_needs_set_constant() argument 291 return effect->u.constant.level != old->u.constant.level; in pidff_needs_set_constant() 295 * Send set effect report to the device 298 struct ff_effect *effect) in pidff_set_effect_report() argument 304 pidff->set_effect[PID_DURATION].value[0] = effect->replay.length; in pidff_set_effect_report() 305 pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; in pidff_set_effect_report() 307 effect->trigger.interval; in pidff_set_effect_report() 312 pidff_rescale(effect->direction, 0xffff, in pidff_set_effect_report() [all …]
|
| /kernel/linux/linux-4.19/drivers/hid/usbhid/ |
| D | hid-pidff.c | 286 struct ff_effect *effect) in pidff_set_constant_force_report() argument 291 effect->u.constant.level); in pidff_set_constant_force_report() 300 static int pidff_needs_set_constant(struct ff_effect *effect, in pidff_needs_set_constant() argument 303 return effect->u.constant.level != old->u.constant.level; in pidff_needs_set_constant() 307 * Send set effect report to the device 310 struct ff_effect *effect) in pidff_set_effect_report() argument 316 pidff->set_effect[PID_DURATION].value[0] = effect->replay.length; in pidff_set_effect_report() 317 pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button; in pidff_set_effect_report() 319 effect->trigger.interval; in pidff_set_effect_report() 324 pidff_rescale(effect->direction, 0xffff, in pidff_set_effect_report() [all …]
|
| /kernel/linux/linux-5.10/Documentation/input/ |
| D | ff.rst | 115 int ioctl(int file_descriptor, int request, struct ff_effect *effect); 119 "effect" points to a structure describing the effect to upload. The effect is 121 The content of effect may be modified. In particular, its field "id" is set 123 some operations (removing an effect, controlling the playback). 125 allocate a new effect. 142 Removing an effect from the device 147 int ioctl(int fd, EVIOCRMFF, effect.id); 150 stops the effect if it was playing. 164 struct ff_effect effect; 171 play.code = effect.id; [all …]
|
| /kernel/linux/linux-4.19/Documentation/input/ |
| D | ff.rst | 115 int ioctl(int file_descriptor, int request, struct ff_effect *effect); 119 "effect" points to a structure describing the effect to upload. The effect is 121 The content of effect may be modified. In particular, its field "id" is set 123 some operations (removing an effect, controlling the playback). 125 allocate a new effect. 142 Removing an effect from the device 147 int ioctl(int fd, EVIOCRMFF, effect.id); 150 stops the effect if it was playing. 164 struct ff_effect effect; 171 play.code = effect.id; [all …]
|
| /kernel/linux/linux-5.10/sound/synth/emux/ |
| D | emux_effect.c | 84 /* set byte effect value */ 88 short effect; in effect_set_byte() local 91 effect = fx->val[type]; in effect_set_byte() 94 effect += *(char*)valp; in effect_set_byte() 96 effect += *valp; in effect_set_byte() 98 if (effect < parm_defs[type].low) in effect_set_byte() 99 effect = parm_defs[type].low; in effect_set_byte() 100 else if (effect > parm_defs[type].high) in effect_set_byte() 101 effect = parm_defs[type].high; in effect_set_byte() 102 *valp = (unsigned char)effect; in effect_set_byte() [all …]
|
| /kernel/linux/linux-4.19/sound/synth/emux/ |
| D | emux_effect.c | 98 /* set byte effect value */ 102 short effect; in effect_set_byte() local 105 effect = fx->val[type]; in effect_set_byte() 108 effect += *(char*)valp; in effect_set_byte() 110 effect += *valp; in effect_set_byte() 112 if (effect < parm_defs[type].low) in effect_set_byte() 113 effect = parm_defs[type].low; in effect_set_byte() 114 else if (effect > parm_defs[type].high) in effect_set_byte() 115 effect = parm_defs[type].high; in effect_set_byte() 116 *valp = (unsigned char)effect; in effect_set_byte() [all …]
|
| /kernel/linux/linux-5.10/include/uapi/linux/ |
| D | input.h | 179 #define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback devi… 180 #define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */ 285 * Values describing the status of a force-feedback effect 302 * struct ff_replay - defines scheduling of the force-feedback effect 303 * @length: duration of the effect 304 * @delay: delay before effect should start playing 312 * struct ff_trigger - defines what triggers the force-feedback effect 313 * @button: number of the button triggering the effect 314 * @interval: controls how soon the effect can be re-triggered 322 * struct ff_envelope - generic force-feedback effect envelope [all …]
|
| /kernel/linux/linux-4.19/include/uapi/linux/ |
| D | input.h | 179 #define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback devi… 180 #define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */ 285 * Values describing the status of a force-feedback effect 302 * struct ff_replay - defines scheduling of the force-feedback effect 303 * @length: duration of the effect 304 * @delay: delay before effect should start playing 312 * struct ff_trigger - defines what triggers the force-feedback effect 313 * @button: number of the button triggering the effect 314 * @interval: controls how soon the effect can be re-triggered 322 * struct ff_envelope - generic force-feedback effect envelope [all …]
|
| /kernel/linux/linux-5.10/Documentation/ABI/testing/ |
| D | debugfs-hisi-sec | 7 Only available for PF, and take no other effect on SEC. 37 Only available for PF, and take no other effect on SEC. 44 Available for both PF and VF, and take no other effect on SEC. 50 Available for both PF and VF, and take no other effect on SEC. 56 Available for both PF and VF, and take no other effect on SEC. 62 Available for both PF and VF, and take no other effect on SEC. 68 Available for both PF and VF, and take no other effect on SEC. 75 Available for both PF and VF, and take no other effect on SEC. 81 Available for both PF and VF, and take no other effect on SEC. 87 Available for both PF and VF, and take no other effect on SEC. [all …]
|
| D | debugfs-hisi-hpre | 19 functional effect, only enable or disable counters clear after 55 Writing to this file has no functional effect, only enable or 64 Available for both PF and VF, and take no other effect on HPRE. 70 Available for both PF and VF, and take no other effect on HPRE. 76 Available for both PF and VF, and take no other effect on HPRE. 82 Available for both PF and VF, and take no other effect on HPRE. 88 Available for both PF and VF, and take no other effect on HPRE. 95 Available for both PF and VF, and take no other effect on HPRE. 101 Available for both PF and VF, and take no other effect on HPRE. 107 Available for both PF and VF, and take no other effect on HPRE. [all …]
|
| D | debugfs-hisi-zip | 18 Writing to this file has no functional effect, only enable or 48 Writing to this file has no functional effect, only enable or 57 Available for both PF and VF, and take no other effect on ZIP. 63 Available for both PF and VF, and take no other effect on ZIP. 69 Available for both PF and VF, and take no other effect on ZIP. 75 Available for both PF and VF, and take no other effect on ZIP. 81 Available for both PF and VF, and take no other effect on ZIP. 88 Available for both PF and VF, and take no other effect on ZIP. 94 Available for both PF and VF, and take no other effect on ZIP. 100 Available for both PF and VF, and take no other effect on ZIP. [all …]
|
| /kernel/linux/linux-5.10/drivers/hid/ |
| D | hid-holtekff.c | 27 * 01 set effect parameters 28 * 02 play specified effect 29 * 03 stop specified effect 39 * commands 02,03 take only the effect id. 42 * bits 0-3: effect id: 59 * bytes 5-6: unknown (win driver seems to use at least 10e0 with effect 1 60 * and 0014 with effect 6) 62 * bits 0-3: effect magnitude 91 struct ff_effect *effect) in holtekff_play() argument 96 /* effect type 1, length 65535 msec */ in holtekff_play() [all …]
|
| /kernel/linux/linux-4.19/drivers/hid/ |
| D | hid-holtekff.c | 39 * 01 set effect parameters 40 * 02 play specified effect 41 * 03 stop specified effect 51 * commands 02,03 take only the effect id. 54 * bits 0-3: effect id: 71 * bytes 5-6: unknown (win driver seems to use at least 10e0 with effect 1 72 * and 0014 with effect 6) 74 * bits 0-3: effect magnitude 103 struct ff_effect *effect) in holtekff_play() argument 108 /* effect type 1, length 65535 msec */ in holtekff_play() [all …]
|
| D | hid-logitech-hidpp.c | 1549 /* find current slot for effect */ in hidpp_ff_work_handler() 1569 /* regular effect uploaded */ in hidpp_ff_work_handler() 1578 /* regular effect destroyed */ in hidpp_ff_work_handler() 1627 static int hidpp_ff_upload_effect(struct input_dev *dev, struct ff_effect *effect, struct ff_effect… in hidpp_ff_upload_effect() argument 1635 params[2] = effect->replay.length >> 8; in hidpp_ff_upload_effect() 1636 params[3] = effect->replay.length & 255; in hidpp_ff_upload_effect() 1637 params[4] = effect->replay.delay >> 8; in hidpp_ff_upload_effect() 1638 params[5] = effect->replay.delay & 255; in hidpp_ff_upload_effect() 1640 switch (effect->type) { in hidpp_ff_upload_effect() 1642 force = (effect->u.constant.level * fixp_sin16((effect->direction * 360) >> 16)) >> 15; in hidpp_ff_upload_effect() [all …]
|
| /kernel/linux/linux-4.19/Documentation/input/devices/ |
| D | iforce-protocol.rst | 82 01 Bit 8 is set if the effect is playing. Bits 0 to 7 are the effect id. 89 Force effect 111 Bits 4-7: Val 2 = effect along one axis. Byte 05 indicates direction 116 Val x+1 = Button x triggers the effect 119 03-04 Duration of effect (little endian encoding, in ms) 121 05 Direction of effect, if applicable. Else, see 02 for value to assign. 133 0c-0d Delay before execution of effect (little endian encoding, in ms) 283 Query effect 290 Send effect type. 323 Set Effect State [all …]
|
| /kernel/linux/linux-5.10/Documentation/input/devices/ |
| D | iforce-protocol.rst | 82 01 Bit 8 is set if the effect is playing. Bits 0 to 7 are the effect id. 89 Force effect 111 Bits 4-7: Val 2 = effect along one axis. Byte 05 indicates direction 116 Val x+1 = Button x triggers the effect 119 03-04 Duration of effect (little endian encoding, in ms) 121 05 Direction of effect, if applicable. Else, see 02 for value to assign. 133 0c-0d Delay before execution of effect (little endian encoding, in ms) 283 Query effect 290 Send effect type. 323 Set Effect State [all …]
|