Lines Matching refs:iforce

18 static int make_magnitude_modifier(struct iforce* iforce,  in make_magnitude_modifier()  argument
24 mutex_lock(&iforce->mem_mutex); in make_magnitude_modifier()
25 if (allocate_resource(&(iforce->device_memory), mod_chunk, 2, in make_magnitude_modifier()
26 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_magnitude_modifier()
28 mutex_unlock(&iforce->mem_mutex); in make_magnitude_modifier()
31 mutex_unlock(&iforce->mem_mutex); in make_magnitude_modifier()
38 iforce_send_packet(iforce, FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
40 iforce_dump_packet(iforce, "magnitude", FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
48 static int make_period_modifier(struct iforce* iforce, in make_period_modifier() argument
57 mutex_lock(&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, iforce->device_memory.end, 2L, in make_period_modifier()
61 mutex_unlock(&iforce->mem_mutex); in make_period_modifier()
64 mutex_unlock(&iforce->mem_mutex); in make_period_modifier()
77 iforce_send_packet(iforce, FF_CMD_PERIOD, data); in make_period_modifier()
86 static int make_envelope_modifier(struct iforce* iforce, in make_envelope_modifier() argument
97 mutex_lock(&iforce->mem_mutex); in make_envelope_modifier()
98 if (allocate_resource(&(iforce->device_memory), mod_chunk, 0x0e, in make_envelope_modifier()
99 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_envelope_modifier()
101 mutex_unlock(&iforce->mem_mutex); in make_envelope_modifier()
104 mutex_unlock(&iforce->mem_mutex); in make_envelope_modifier()
118 iforce_send_packet(iforce, FF_CMD_ENVELOPE, data); in make_envelope_modifier()
127 static int make_condition_modifier(struct iforce* iforce, in make_condition_modifier() argument
134 mutex_lock(&iforce->mem_mutex); in make_condition_modifier()
135 if (allocate_resource(&(iforce->device_memory), mod_chunk, 8, in make_condition_modifier()
136 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_condition_modifier()
138 mutex_unlock(&iforce->mem_mutex); in make_condition_modifier()
141 mutex_unlock(&iforce->mem_mutex); in make_condition_modifier()
161 iforce_send_packet(iforce, FF_CMD_CONDITION, data); in make_condition_modifier()
162 iforce_dump_packet(iforce, "condition", FF_CMD_CONDITION, data); in make_condition_modifier()
167 static unsigned char find_button(struct iforce *iforce, signed short button) in find_button() argument
171 for (i = 1; iforce->type->btn[i] >= 0; i++) in find_button()
172 if (iforce->type->btn[i] == button) in find_button()
181 static int need_condition_modifier(struct iforce *iforce, in need_condition_modifier() argument
189 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_condition_modifier()
209 static int need_magnitude_modifier(struct iforce *iforce, in need_magnitude_modifier() argument
214 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_magnitude_modifier()
226 static int need_envelope_modifier(struct iforce *iforce, struct ff_effect *old, in need_envelope_modifier() argument
247 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_envelope_modifier()
258 static int need_period_modifier(struct iforce *iforce, struct ff_effect *old, in need_period_modifier() argument
262 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_period_modifier()
290 static int make_core(struct iforce* iforce, u16 id, u16 mod_id1, u16 mod_id2, in make_core() argument
302 data[2] = LO(axes) | find_button(iforce, button); in make_core()
323 iforce_send_packet(iforce, FF_CMD_EFFECT, data); in make_core()
326 if (test_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[id].flags)) { in make_core()
328 iforce_control_playback(iforce, id, 1); in make_core()
338 int iforce_upload_periodic(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_periodic() argument
342 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_periodic()
343 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_periodic()
344 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_periodic()
349 if (!old || need_period_modifier(iforce, old, effect)) { in iforce_upload_periodic()
350 param1_err = make_period_modifier(iforce, mod1_chunk, in iforce_upload_periodic()
359 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_periodic()
360 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_periodic()
381 core_err = make_core(iforce, effect->id, in iforce_upload_periodic()
409 int iforce_upload_constant(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_constant() argument
412 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_constant()
413 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_constant()
414 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_constant()
419 if (!old || need_magnitude_modifier(iforce, old, effect)) { in iforce_upload_constant()
420 param1_err = make_magnitude_modifier(iforce, mod1_chunk, in iforce_upload_constant()
428 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_constant()
429 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_constant()
441 core_err = make_core(iforce, effect->id, in iforce_upload_constant()
465 int iforce_upload_condition(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_condition() argument
468 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_condition()
481 if (!old || need_condition_modifier(iforce, old, effect)) { in iforce_upload_condition()
482 param_err = make_condition_modifier(iforce, mod1_chunk, in iforce_upload_condition()
494 param_err = make_condition_modifier(iforce, mod2_chunk, in iforce_upload_condition()
509 core_err = make_core(iforce, effect->id, in iforce_upload_condition()