lkml.org 
[lkml]   [2007]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] Make ati_remote button repeat sensitivity soft-configurable
    Would this be more acceptable?  I haven't compiled or tested yet..but
    you can see what I'm trying to do.. make the delay time based instead
    of implementation/count based...

    Signed-off-by: Karl Pickett <karl.pickett@gmail.com>

    --- ./ati_remote.c.kjp 2007-04-04 10:56:20.000000000 -0400
    +++ ./ati_remote.c 2007-04-04 11:13:02.000000000 -0400
    @@ -120,6 +120,7 @@
    * behaviour.
    */
    #define FILTER_TIME 60 /* msec */
    +#define REPEAT_DELAY 500 /* msec */

    static unsigned long channel_mask;
    module_param(channel_mask, ulong, 0644);
    @@ -133,6 +134,11 @@
    module_param(repeat_filter, int, 0644);
    MODULE_PARM_DESC(repeat_filter, "Repeat filter time, default = 60 msec");

    +static int repeat_delay = REPEAT_DELAY;
    +module_param(repeat_delay, int, 0644);
    +MODULE_PARM_DESC(repeat_delay, "Delay before sending repeats, "
    + "default = " #REPEAT_DELAY " msec");
    +
    #define dbginfo(dev, format, arg...) do { if (debug) dev_info(dev ,
    format , ## arg); } while (0)
    #undef err
    #define err(format, arg...) printk(KERN_ERR format , ## arg)
    @@ -175,6 +181,7 @@
    unsigned long old_jiffies;
    unsigned long acc_jiffies; /* handle acceleration */
    unsigned int repeat_count;
    + unsigned long first_jiffies;

    char name[NAME_BUFSIZE];
    char phys[NAME_BUFSIZE];
    @@ -501,21 +508,26 @@
    }

    if (ati_remote_tbl[index].kind == KIND_FILTERED) {
    + unsigned long now = jiffies;
    +
    /* Filter duplicate events which happen "too close"
    together. */
    if (ati_remote->old_data[0] == data[1] &&
    ati_remote->old_data[1] == data[2] &&
    - time_before(jiffies, ati_remote->old_jiffies +
    msecs_to_jiffies(repeat_filter))) {
    + time_before(now, ati_remote->old_jiffies +
    + msecs_to_jiffies(repeat_filter))) {
    ati_remote->repeat_count++;
    } else {
    ati_remote->repeat_count = 0;
    + ati_remote->first_jiffies = now;
    }

    ati_remote->old_data[0] = data[1];
    ati_remote->old_data[1] = data[2];
    - ati_remote->old_jiffies = jiffies;
    + ati_remote->old_jiffies = now;

    if (ati_remote->repeat_count > 0 &&
    - ati_remote->repeat_count < 5)
    + time_before(now, ati_remote->first_jiffies +
    + msecs_to_jiffies(repeat_delay)))
    return;


    --
    Karl Pickett
    The most wasted of all days is one without laughter.—E.E. Cummings
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-04 17:23    [W:0.033 / U:1.836 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site