struct i2c_client *client;
        struct input_dev *input;
        struct delayed_work dwork;
-       spinlock_t lock;        /* Protects canceling/rescheduling of dwork */
        unsigned short keycodes[ARRAY_SIZE(qt2160_key2code)];
        u16 key_matrix;
 #ifdef CONFIG_LEDS_CLASS
 static irqreturn_t qt2160_irq(int irq, void *_qt2160)
 {
        struct qt2160_data *qt2160 = _qt2160;
-       unsigned long flags;
-
-       spin_lock_irqsave(&qt2160->lock, flags);
 
        mod_delayed_work(system_wq, &qt2160->dwork, 0);
 
-       spin_unlock_irqrestore(&qt2160->lock, flags);
-
        return IRQ_HANDLED;
 }
 
 static void qt2160_schedule_read(struct qt2160_data *qt2160)
 {
-       spin_lock_irq(&qt2160->lock);
        schedule_delayed_work(&qt2160->dwork, QT2160_CYCLE_INTERVAL);
-       spin_unlock_irq(&qt2160->lock);
 }
 
 static void qt2160_worker(struct work_struct *work)
        qt2160->client = client;
        qt2160->input = input;
        INIT_DELAYED_WORK(&qt2160->dwork, qt2160_worker);
-       spin_lock_init(&qt2160->lock);
 
        input->name = "AT42QT2160 Touch Sense Keyboard";
        input->id.bustype = BUS_I2C;