#define TXFIFO_WR(smbus, reg)  reg_write((smbus), REG_MTXFIFO, (reg))
 #define RXFIFO_RD(smbus)       reg_read((smbus), REG_MRXFIFO)
 
+static void pasemi_reset(struct pasemi_smbus *smbus)
+{
+       reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
+                 (CLK_100K_DIV & CTL_CLK_M)));
+}
+
 static void pasemi_smb_clear(struct pasemi_smbus *smbus)
 {
        unsigned int status;
        return 0;
 
  reset_out:
-       reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
-                 (CLK_100K_DIV & CTL_CLK_M)));
+       pasemi_reset(smbus);
        return err;
 }
 
        return 0;
 
  reset_out:
-       reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
-                 (CLK_100K_DIV & CTL_CLK_M)));
+       pasemi_reset(smbus);
        return err;
 }
 
        /* set up the sysfs linkage to our parent device */
        smbus->adapter.dev.parent = smbus->dev;
 
-       reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
-                 (CLK_100K_DIV & CTL_CLK_M)));
+       pasemi_reset(smbus);
 
        error = i2c_add_adapter(&smbus->adapter);
        if (error)