Lines Matching refs:iforce

33 static int make_magnitude_modifier(struct iforce* iforce,  in make_magnitude_modifier()  argument
39 mutex_lock(&iforce->mem_mutex); in make_magnitude_modifier()
40 if (allocate_resource(&(iforce->device_memory), mod_chunk, 2, in make_magnitude_modifier()
41 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_magnitude_modifier()
43 mutex_unlock(&iforce->mem_mutex); in make_magnitude_modifier()
46 mutex_unlock(&iforce->mem_mutex); in make_magnitude_modifier()
53 iforce_send_packet(iforce, FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
55 iforce_dump_packet(iforce, "magnitude", FF_CMD_MAGNITUDE, data); in make_magnitude_modifier()
63 static int make_period_modifier(struct iforce* iforce, in make_period_modifier() argument
72 mutex_lock(&iforce->mem_mutex); in make_period_modifier()
73 if (allocate_resource(&(iforce->device_memory), mod_chunk, 0x0c, in make_period_modifier()
74 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_period_modifier()
76 mutex_unlock(&iforce->mem_mutex); in make_period_modifier()
79 mutex_unlock(&iforce->mem_mutex); in make_period_modifier()
92 iforce_send_packet(iforce, FF_CMD_PERIOD, data); in make_period_modifier()
101 static int make_envelope_modifier(struct iforce* iforce, in make_envelope_modifier() argument
112 mutex_lock(&iforce->mem_mutex); in make_envelope_modifier()
113 if (allocate_resource(&(iforce->device_memory), mod_chunk, 0x0e, in make_envelope_modifier()
114 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_envelope_modifier()
116 mutex_unlock(&iforce->mem_mutex); in make_envelope_modifier()
119 mutex_unlock(&iforce->mem_mutex); in make_envelope_modifier()
133 iforce_send_packet(iforce, FF_CMD_ENVELOPE, data); in make_envelope_modifier()
142 static int make_condition_modifier(struct iforce* iforce, in make_condition_modifier() argument
149 mutex_lock(&iforce->mem_mutex); in make_condition_modifier()
150 if (allocate_resource(&(iforce->device_memory), mod_chunk, 8, in make_condition_modifier()
151 iforce->device_memory.start, iforce->device_memory.end, 2L, in make_condition_modifier()
153 mutex_unlock(&iforce->mem_mutex); in make_condition_modifier()
156 mutex_unlock(&iforce->mem_mutex); in make_condition_modifier()
176 iforce_send_packet(iforce, FF_CMD_CONDITION, data); in make_condition_modifier()
177 iforce_dump_packet(iforce, "condition", FF_CMD_CONDITION, data); in make_condition_modifier()
182 static unsigned char find_button(struct iforce *iforce, signed short button) in find_button() argument
186 for (i = 1; iforce->type->btn[i] >= 0; i++) in find_button()
187 if (iforce->type->btn[i] == button) in find_button()
196 static int need_condition_modifier(struct iforce *iforce, in need_condition_modifier() argument
204 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_condition_modifier()
224 static int need_magnitude_modifier(struct iforce *iforce, in need_magnitude_modifier() argument
229 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_magnitude_modifier()
241 static int need_envelope_modifier(struct iforce *iforce, struct ff_effect *old, in need_envelope_modifier() argument
262 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_envelope_modifier()
273 static int need_period_modifier(struct iforce *iforce, struct ff_effect *old, in need_period_modifier() argument
277 dev_warn(&iforce->dev->dev, "bad effect type in %s\n", in need_period_modifier()
305 static int make_core(struct iforce* iforce, u16 id, u16 mod_id1, u16 mod_id2, in make_core() argument
317 data[2] = LO(axes) | find_button(iforce, button); in make_core()
338 iforce_send_packet(iforce, FF_CMD_EFFECT, data); in make_core()
341 if (test_bit(FF_CORE_SHOULD_PLAY, iforce->core_effects[id].flags)) { in make_core()
343 iforce_control_playback(iforce, id, 1); in make_core()
353 int iforce_upload_periodic(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_periodic() argument
357 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_periodic()
358 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_periodic()
359 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_periodic()
364 if (!old || need_period_modifier(iforce, old, effect)) { in iforce_upload_periodic()
365 param1_err = make_period_modifier(iforce, mod1_chunk, in iforce_upload_periodic()
374 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_periodic()
375 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_periodic()
396 core_err = make_core(iforce, effect->id, in iforce_upload_periodic()
424 int iforce_upload_constant(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_constant() argument
427 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_constant()
428 struct resource* mod1_chunk = &(iforce->core_effects[core_id].mod1_chunk); in iforce_upload_constant()
429 struct resource* mod2_chunk = &(iforce->core_effects[core_id].mod2_chunk); in iforce_upload_constant()
434 if (!old || need_magnitude_modifier(iforce, old, effect)) { in iforce_upload_constant()
435 param1_err = make_magnitude_modifier(iforce, mod1_chunk, in iforce_upload_constant()
443 if (!old || need_envelope_modifier(iforce, old, effect)) { in iforce_upload_constant()
444 param2_err = make_envelope_modifier(iforce, mod2_chunk, in iforce_upload_constant()
456 core_err = make_core(iforce, effect->id, in iforce_upload_constant()
480 int iforce_upload_condition(struct iforce *iforce, struct ff_effect *effect, struct ff_effect *old) in iforce_upload_condition() argument
483 struct iforce_core_effect* core_effect = iforce->core_effects + core_id; in iforce_upload_condition()
496 if (!old || need_condition_modifier(iforce, old, effect)) { in iforce_upload_condition()
497 param_err = make_condition_modifier(iforce, mod1_chunk, in iforce_upload_condition()
509 param_err = make_condition_modifier(iforce, mod2_chunk, in iforce_upload_condition()
524 core_err = make_core(iforce, effect->id, in iforce_upload_condition()