> > + /* we can receive multiple interrupts here, but the scheduled work > + * will run only once, with the last value */ > + pmac_backlight_key_queued = direction; Shouldn't you be doing something like using the whole pmac_backlight_key_queued in the workqueue, then setting it to 0 there and using += here? That way all keypresses will be adhered to. johannes