unsigned int rxflags = 0;
        u32 rval;
 
-       spin_lock(&drvdata->lock);
+       guard(spinlock)(&drvdata->lock);
 
        /* Get the PS/2 interrupts and clear them */
        intr_status  = readl(drvdata->reg_base + PS2_REG_LSTS);
        writel(intr_status, drvdata->reg_base + PS2_REG_LSTS);
        writel(fifo_status, drvdata->reg_base + PS2_REG_FSTS);
 
-       spin_unlock(&drvdata->lock);
-
        return IRQ_HANDLED;
 }
 
        u32 clk_scdf;
        u32 clk_pcdf;
        u32 rval;
-       unsigned long flags;
 
        /* Set line control and enable interrupt */
        rval = PS2_LCTL_STOPERREN | PS2_LCTL_ACKERREN
        rval = PS2_GCTL_RESET | PS2_GCTL_INTEN | PS2_GCTL_MASTER
                | PS2_GCTL_BUSEN;
 
-       spin_lock_irqsave(&drvdata->lock, flags);
+       guard(spinlock_irqsave)(&drvdata->lock);
        writel(rval, drvdata->reg_base + PS2_REG_GCTL);
-       spin_unlock_irqrestore(&drvdata->lock, flags);
 
        return 0;
 }