seq_printf(s, "IRQ              : %d\n",
                   qca->spi_dev->irq);
-       seq_printf(s, "INTR REQ         : %u\n",
-                  qca->intr_req);
-       seq_printf(s, "INTR SVC         : %u\n",
-                  qca->intr_svc);
+       seq_printf(s, "INTR             : %lx\n",
+                  qca->intr);
 
        seq_printf(s, "SPI max speed    : %lu\n",
                   (unsigned long)qca->spi_dev->max_speed_hz);
 
 
 #define MAX_DMA_BURST_LEN 5000
 
+#define SPI_INTR 0
+
 /*   Modules parameters     */
 #define QCASPI_CLK_SPEED_MIN 1000000
 #define QCASPI_CLK_SPEED_MAX 16000000
                        continue;
                }
 
-               if ((qca->intr_req == qca->intr_svc) &&
+               if (!test_bit(SPI_INTR, &qca->intr) &&
                    !qca->txr.skb[qca->txr.head])
                        schedule();
 
                set_current_state(TASK_RUNNING);
 
-               netdev_dbg(qca->net_dev, "have work to do. int: %d, tx_skb: %p\n",
-                          qca->intr_req - qca->intr_svc,
+               netdev_dbg(qca->net_dev, "have work to do. int: %lu, tx_skb: %p\n",
+                          qca->intr,
                           qca->txr.skb[qca->txr.head]);
 
                qcaspi_qca7k_sync(qca, QCASPI_EVENT_UPDATE);
                        msleep(QCASPI_QCA7K_REBOOT_TIME_MS);
                }
 
-               if (qca->intr_svc != qca->intr_req) {
-                       qca->intr_svc = qca->intr_req;
+               if (test_and_clear_bit(SPI_INTR, &qca->intr)) {
                        start_spi_intr_handling(qca, &intr_cause);
 
                        if (intr_cause & SPI_INT_CPU_ON) {
 {
        struct qcaspi *qca = data;
 
-       qca->intr_req++;
+       set_bit(SPI_INTR, &qca->intr);
        if (qca->spi_thread)
                wake_up_process(qca->spi_thread);
 
        if (!qca)
                return -EINVAL;
 
-       qca->intr_req = 1;
-       qca->intr_svc = 0;
+       set_bit(SPI_INTR, &qca->intr);
        qca->sync = QCASPI_SYNC_UNKNOWN;
        qcafrm_fsm_init_spi(&qca->frm_handle);