}
 
 static void __i2c_dw_enable(struct dw_i2c_dev *dev, bool enable)
+{
+       dw_writel(dev, enable, DW_IC_ENABLE);
+}
+
+static void __i2c_dw_enable_and_wait(struct dw_i2c_dev *dev, bool enable)
 {
        int timeout = 100;
 
        do {
-               dw_writel(dev, enable, DW_IC_ENABLE);
+               __i2c_dw_enable(dev, enable);
                if ((dw_readl(dev, DW_IC_ENABLE_STATUS) & 1) == enable)
                        return;
 
        comp_param1 = dw_readl(dev, DW_IC_COMP_PARAM_1);
 
        /* Disable the adapter */
-       __i2c_dw_enable(dev, false);
+       __i2c_dw_enable_and_wait(dev, false);
 
        /* set standard and fast speed deviders for high/low periods */
 
        u32 ic_con, ic_tar = 0;
 
        /* Disable the adapter */
-       __i2c_dw_enable(dev, false);
+       __i2c_dw_enable_and_wait(dev, false);
 
        /* if the slave address is ten bit address, enable 10BITADDR */
        ic_con = dw_readl(dev, DW_IC_CON);
 void i2c_dw_disable(struct dw_i2c_dev *dev)
 {
        /* Disable controller */
-       __i2c_dw_enable(dev, false);
+       __i2c_dw_enable_and_wait(dev, false);
 
        /* Disable all interupts */
        dw_writel(dev, 0, DW_IC_INTR_MASK);