*     -1 if there is no semaphore.
  * @shared_with_punit: true if this bus is shared with the SoCs PUNIT
  * @disable: function to disable the controller
- * @disable_int: function to disable all interrupts
  * @init: function to initialize the I2C hardware
  * @set_sda_hold_time: callback to retrieve IP specific SDA hold timing
  * @mode: operation mode - DW_IC_MASTER or DW_IC_SLAVE
        int                     semaphore_idx;
        bool                    shared_with_punit;
        void                    (*disable)(struct dw_i2c_dev *dev);
-       void                    (*disable_int)(struct dw_i2c_dev *dev);
        int                     (*init)(struct dw_i2c_dev *dev);
        int                     (*set_sda_hold_time)(struct dw_i2c_dev *dev);
        int                     mode;
 int i2c_dw_set_fifo_size(struct dw_i2c_dev *dev);
 u32 i2c_dw_func(struct i2c_adapter *adap);
 void i2c_dw_disable(struct dw_i2c_dev *dev);
-void i2c_dw_disable_int(struct dw_i2c_dev *dev);
 
 static inline void __i2c_dw_enable(struct dw_i2c_dev *dev)
 {
 
                     msgs[dev->msg_write_idx].addr | ic_tar);
 
        /* Enforce disabled interrupts (due to HW issues) */
-       i2c_dw_disable_int(dev);
+       regmap_write(dev->map, DW_IC_INTR_MASK, 0);
 
        /* Enable the adapter */
        __i2c_dw_enable(dev);
        dev->msgs = msgs;
        dev->msgs_num = num_msgs;
        i2c_dw_xfer_init(dev);
-       i2c_dw_disable_int(dev);
+       regmap_write(dev->map, DW_IC_INTR_MASK, 0);
 
        /* Initiate messages read/write transaction */
        for (msg_wrt_idx = 0; msg_wrt_idx < num_msgs; msg_wrt_idx++) {
        else if (unlikely(dev->flags & ACCESS_INTR_MASK)) {
                /* Workaround to trigger pending interrupt */
                regmap_read(dev->map, DW_IC_INTR_MASK, &stat);
-               i2c_dw_disable_int(dev);
+               regmap_write(dev->map, DW_IC_INTR_MASK, 0);
                regmap_write(dev->map, DW_IC_INTR_MASK, stat);
        }
 
 
        dev->init = i2c_dw_init_master;
        dev->disable = i2c_dw_disable;
-       dev->disable_int = i2c_dw_disable_int;
 
        ret = i2c_dw_init_regmap(dev);
        if (ret)
        if (ret)
                return ret;
 
-       i2c_dw_disable_int(dev);
+       regmap_write(dev->map, DW_IC_INTR_MASK, 0);
        i2c_dw_release_lock(dev);
 
        ret = devm_request_irq(dev->dev, dev->irq, i2c_dw_isr, irq_flags,
 
 {
        struct dw_i2c_dev *dev = i2c_get_adapdata(slave->adapter);
 
-       dev->disable_int(dev);
+       regmap_write(dev->map, DW_IC_INTR_MASK, 0);
        dev->disable(dev);
        synchronize_irq(dev->irq);
        dev->slave = NULL;
 
        dev->init = i2c_dw_init_slave;
        dev->disable = i2c_dw_disable;
-       dev->disable_int = i2c_dw_disable_int;
 
        ret = i2c_dw_init_regmap(dev);
        if (ret)