#endif
 
 /**
- * adis_enable_irq() - Enable or disable data ready IRQ
+ * __adis_enable_irq() - Enable or disable data ready IRQ (unlocked)
  * @adis: The adis device
  * @enable: Whether to enable the IRQ
  *
  * Returns 0 on success, negative error code otherwise
  */
-int adis_enable_irq(struct adis *adis, bool enable)
+int __adis_enable_irq(struct adis *adis, bool enable)
 {
-       int ret = 0;
+       int ret;
        u16 msc;
 
-       mutex_lock(&adis->state_lock);
-
-       if (adis->data->enable_irq) {
-               ret = adis->data->enable_irq(adis, enable);
-               goto out_unlock;
-       }
+       if (adis->data->enable_irq)
+               return adis->data->enable_irq(adis, enable);
 
        if (adis->data->unmasked_drdy) {
                if (enable)
                else
                        disable_irq(adis->spi->irq);
 
-               goto out_unlock;
+               return 0;
        }
 
        ret = __adis_read_reg_16(adis, adis->data->msc_ctrl_reg, &msc);
        if (ret)
-               goto out_unlock;
+               return ret;
 
        msc |= ADIS_MSC_CTRL_DATA_RDY_POL_HIGH;
        msc &= ~ADIS_MSC_CTRL_DATA_RDY_DIO2;
        else
                msc &= ~ADIS_MSC_CTRL_DATA_RDY_EN;
 
-       ret = __adis_write_reg_16(adis, adis->data->msc_ctrl_reg, msc);
-
-out_unlock:
-       mutex_unlock(&adis->state_lock);
-       return ret;
+       return __adis_write_reg_16(adis, adis->data->msc_ctrl_reg, msc);
 }
-EXPORT_SYMBOL_NS(adis_enable_irq, IIO_ADISLIB);
+EXPORT_SYMBOL_NS(__adis_enable_irq, IIO_ADISLIB);
 
 /**
  * __adis_check_status() - Check the device for error conditions (unlocked)
         * with 'IRQF_NO_AUTOEN' anyways.
         */
        if (!adis->data->unmasked_drdy)
-               adis_enable_irq(adis, false);
+               __adis_enable_irq(adis, false);
 
        if (!adis->data->prod_id_reg)
                return 0;
 
                __adis_update_bits_base(adis, reg, mask, val, 2));      \
 })
 
-int adis_enable_irq(struct adis *adis, bool enable);
 int __adis_check_status(struct adis *adis);
 int __adis_initial_startup(struct adis *adis);
+int __adis_enable_irq(struct adis *adis, bool enable);
+
+static inline int adis_enable_irq(struct adis *adis, bool enable)
+{
+       int ret;
+
+       mutex_lock(&adis->state_lock);
+       ret = __adis_enable_irq(adis, enable);
+       mutex_unlock(&adis->state_lock);
+
+       return ret;
+}
 
 static inline int adis_check_status(struct adis *adis)
 {