[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-input
Subject:    Re: [PATCH 1/1] input: ff-memless: Allow negative attack / fade ramps
From:       Kalle Jokiniemi <kalle.jokiniemi () jolla ! com>
Date:       2015-08-28 14:41:12
Message-ID: 55E07308.6040007 () jolla ! com
[Download RAW message or body]

Hi,

On 28.08.2015 17:04, Kalle Jokiniemi wrote:
> Hi,
>
> Please disregard this patch, the math doesn't really change with this. I
> need to dig deeper what really was the issue, as I could see the
> negative ramp not working.

It seems the mis-interpretation of negative ramps not working was my 
personal user error of trying to do it with too short effects and 
FF_ENVELOPE_INTERVAL being 50ms.

Sorry for the noise.

- Kalle


>
> - Kalle
>
> On 27.08.2015 14:03, Kalle Jokiniemi wrote:
>> Currently the ff-memless force feedback periodic effects can only
>> have rising attack periods and declining fade periods. E.g. setting
>> a attack ramp that starts high to lower to normal magnitude, will
>> just cause the effect to rumble at high static speed for duration
>> of the attack period and then abruptly lower back to normal
>> magnitude instead of linearly declining the effect during attack
>> phase.
>>
>> To fix this, a check has been added to see if the envelope_level
>> of the attack or fade period is higher than default magnitude or
>> vise versa, and then adjusting the difference value calculation
>> accordingly.
>>
>> Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@jolla.com>
>> ---
>>   drivers/input/ff-memless.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
>> index 0723e0d..487df7e 100644
>> --- a/drivers/input/ff-memless.c
>> +++ b/drivers/input/ff-memless.c
>> @@ -190,7 +190,10 @@ static int apply_envelope(struct ml_effect_state
>> *state, int value,
>>       } else
>>           return value;
>>
>> -    difference = abs(value) - envelope_level;
>> +    if (abs(value) >= envelope_level)
>> +        difference = abs(value) - envelope_level;
>> +    else
>> +        difference = -(envelope_level - abs(value));
>>
>>       pr_debug("difference = %d\n", difference);
>>       pr_debug("time_from_level = 0x%x\n", time_from_level);
>>
> --
> 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
--
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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic