Lines Matching full:ml
109 static void ml_schedule_timer(struct ml_device *ml) in ml_schedule_timer() argument
122 state = &ml->states[i]; in ml_schedule_timer()
139 del_timer(&ml->timer); in ml_schedule_timer()
142 mod_timer(&ml->timer, earliest); in ml_schedule_timer()
323 static int ml_get_combo_effect(struct ml_device *ml, in ml_get_combo_effect() argument
338 state = &ml->states[i]; in ml_get_combo_effect()
352 effect_type = get_compatible_type(ml->dev->ff, effect->type); in ml_get_combo_effect()
380 ml_combine_effects(combo_effect, state, ml->gain); in ml_get_combo_effect()
387 static void ml_play_effects(struct ml_device *ml) in ml_play_effects() argument
394 while (ml_get_combo_effect(ml, handled_bm, &effect)) in ml_play_effects()
395 ml->play_effect(ml->dev, ml->private, &effect); in ml_play_effects()
397 ml_schedule_timer(ml); in ml_play_effects()
402 struct ml_device *ml = from_timer(ml, t, timer); in ml_effect_timer() local
403 struct input_dev *dev = ml->dev; in ml_effect_timer()
408 ml_play_effects(ml); in ml_effect_timer()
416 struct ml_device *ml = dev->ff->private; in ml_ff_set_gain() local
419 ml->gain = gain; in ml_ff_set_gain()
422 __clear_bit(FF_EFFECT_PLAYING, &ml->states[i].flags); in ml_ff_set_gain()
424 ml_play_effects(ml); in ml_ff_set_gain()
432 struct ml_device *ml = dev->ff->private; in ml_ff_playback() local
433 struct ml_effect_state *state = &ml->states[effect_id]; in ml_ff_playback()
455 ml_play_effects(ml); in ml_ff_playback()
463 struct ml_device *ml = dev->ff->private; in ml_ff_upload() local
464 struct ml_effect_state *state = &ml->states[effect->id]; in ml_ff_upload()
475 ml_schedule_timer(ml); in ml_ff_upload()
483 struct ml_device *ml = ff->private; in ml_ff_destroy() local
492 del_timer_sync(&ml->timer); in ml_ff_destroy()
494 kfree(ml->private); in ml_ff_destroy()
510 struct ml_device *ml __free(kfree) = kzalloc(sizeof(*ml), GFP_KERNEL); in input_ff_create_memless()
511 if (!ml) in input_ff_create_memless()
514 ml->dev = dev; in input_ff_create_memless()
515 ml->private = data; in input_ff_create_memless()
516 ml->play_effect = play_effect; in input_ff_create_memless()
517 ml->gain = 0xffff; in input_ff_create_memless()
518 timer_setup(&ml->timer, ml_effect_timer, 0); in input_ff_create_memless()
541 ml->states[i].effect = &ff->effects[i]; in input_ff_create_memless()
543 ff->private = no_free_ptr(ml); in input_ff_create_memless()