Fwd: [PATCH] input: ff-memless: don't schedule already playing effect to play again
From: Elias Vanderstuyft <hidden>
Date: 2014-03-02 13:36:44
Also in:
lkml
---------- Forwarded message ---------- From: Michal Malý <redacted> Date: Sun, Mar 2, 2014 at 2:29 PM Subject: Re: [PATCH] input: ff-memless: don't schedule already playing effect to play again To: Elias Vanderstuyft <redacted> On Sunday 02 of March 2014 14:17:58 you wrote:
On Sun, Mar 2, 2014 at 12:35 PM, Felix Rueegg
[off-list ref] wrote:
quoted
When an effect with zero replay length, zero replay delay and zero envelope attack length is uploaded, it is played and then scheduled to play again one timer tick later. This triggers a
warning
quoted
(URB submitted while active) in combination with the xpad driver. Skipping the rescheduling of this effect fixes the issue. Signed-off-by: Felix Rueegg <redacted> --- drivers/input/ff-memless.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c index 74c0d8c..2e06948 100644 --- a/drivers/input/ff-memless.c +++ b/drivers/input/ff-memless.c@@ -139,10 +139,13 @@ static void ml_schedule_timer(struct
ml_device *ml)
quoted
if (!test_bit(FF_EFFECT_STARTED, &state->flags)) continue; - if (test_bit(FF_EFFECT_PLAYING, &state->flags)) + if (test_bit(FF_EFFECT_PLAYING, &state->flags)) { next_at = calculate_next_time(state); - else + if (next_at == now) + continue; + } else { next_at = state->play_at; + } if (time_before_eq(now, next_at) && (++events == 1 || time_before(next_at, earliest))) -- 1.9.0 --@Michal: Is ff-memless-next also affected by this problem? Elias
I hope it's not, see mlnx_get_envelope_update_time(), this part in
particular:
/* Prevent the effect from being started twice */
if (mlnxeff->begin_at == now && mlnx_is_playing(mlnxeff))
return now - 1;
return mlnxeff->begin_at;
Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html