Lines Matching refs:iforce

18 static int make_magnitude_modifier(struct iforce* iforce,  in make_magnitude_modifier()  argument
24 guard(mutex)(&iforce->mem_mutex); in make_magnitude_modifier()
26 if (allocate_resource(&iforce->device_memory, mod_chunk, 2, in make_magnitude_modifier()
27 iforce->device_memory.start, in make_magnitude_modifier()
28 iforce->device_memory.end, in make_magnitude_modifier()
37 iforce_send_packet(iforce, FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
39 iforce_dump_packet(iforce, "magnitude", FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
47 static int make_period_modifier(struct iforce* iforce, in make_period_modifier() argument
56 guard(mutex)(&iforce->mem_mutex); in make_period_modifier()
58 if (allocate_resource(&iforce->device_memory, mod_chunk, 0x0c, in make_period_modifier()
59 iforce->device_memory.start, in make_period_modifier()
60 iforce->device_memory.end, in make_period_modifier()
75 iforce_send_packet(iforce, FF_CMD_PERIOD, data); in make_period_modifier()
84 static int make_envelope_modifier(struct iforce* iforce, in make_envelope_modifier() argument
95 guard(mutex)(&iforce->mem_mutex); in make_envelope_modifier()
97 if (allocate_resource(&(iforce->device_memory), mod_chunk, 0x0e, in make_envelope_modifier()
98 iforce->device_memory.start, in make_envelope_modifier()
99 iforce->device_memory.end, in make_envelope_modifier()
115 iforce_send_packet(iforce, FF_CMD_ENVELOPE, data); in make_envelope_modifier()
124 static int make_condition_modifier(struct iforce* iforce, in make_condition_modifier() argument
131 guard(mutex)(&iforce->mem_mutex); in make_condition_modifier()
133 if (allocate_resource(&(iforce->device_memory), mod_chunk, 8, in make_condition_modifier()
134 iforce->device_memory.start, in make_condition_modifier()
135 iforce->device_memory.end, in make_condition_modifier()
157 iforce_send_packet(iforce, FF_CMD_CONDITION, data); in make_condition_modifier()
158 iforce_dump_packet(iforce, "condition", FF_CMD_CONDITION, data); in make_condition_modifier()
163 static unsigned char find_button(struct iforce *iforce, signed short button) in find_button() argument
167 for (i = 1; iforce->type->btn[i] >= 0; i++) in find_button()
168 if (iforce->type->btn[i] == button) in find_button()
177 static int need_condition_modifier(struct iforce *iforce, in need_condition_modifier() argument
185 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_condition_modifier()
205 static int need_magnitude_modifier(struct iforce *iforce, in need_magnitude_modifier() argument
210 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_magnitude_modifier()
222 static int need_envelope_modifier(struct iforce *iforce, struct ff_effect *old, in need_envelope_modifier() argument
243 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_envelope_modifier()
254 static int need_period_modifier(struct iforce *iforce, struct ff_effect *old, in need_period_modifier() argument
258 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_period_modifier()
286 static int make_core(struct iforce* iforce, u16 id, u16 mod_id1, u16 mod_id2, in make_core() argument
298 data[2] = LO(axes) | find_button(iforce, button); in make_core()
319 iforce_send_packet(iforce, FF_CMD_EFFECT, data); in make_core()
322 if (test_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[id].flags)) { in make_core()
324 iforce_control_playback(iforce, id, 1); in make_core()
334 int iforce_upload_periodic(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_periodic() argument
338 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_periodic()
339 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_periodic()
340 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_periodic()
345 if (!old || need_period_modifier(iforce, old, effect)) { in iforce_upload_periodic()
346 param1_err = make_period_modifier(iforce, mod1_chunk, in iforce_upload_periodic()
355 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_periodic()
356 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_periodic()
377 core_err = make_core(iforce, effect->id, in iforce_upload_periodic()
405 int iforce_upload_constant(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_constant() argument
408 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_constant()
409 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_constant()
410 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_constant()
415 if (!old || need_magnitude_modifier(iforce, old, effect)) { in iforce_upload_constant()
416 param1_err = make_magnitude_modifier(iforce, mod1_chunk, in iforce_upload_constant()
424 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_constant()
425 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_constant()
437 core_err = make_core(iforce, effect->id, in iforce_upload_constant()
461 int iforce_upload_condition(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_condition() argument
464 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_condition()
477 if (!old || need_condition_modifier(iforce, old, effect)) { in iforce_upload_condition()
478 param_err = make_condition_modifier(iforce, mod1_chunk, in iforce_upload_condition()
490 param_err = make_condition_modifier(iforce, mod2_chunk, in iforce_upload_condition()
505 core_err = make_core(iforce, effect->id, in iforce_upload_condition()