return ret;
 }
 
-static int stmfx_chip_exit(struct i2c_client *client)
+static void stmfx_chip_exit(struct i2c_client *client)
 {
        struct stmfx *stmfx = i2c_get_clientdata(client);
 
        regmap_write(stmfx->map, STMFX_REG_IRQ_SRC_EN, 0);
        regmap_write(stmfx->map, STMFX_REG_SYS_CTRL, 0);
 
-       if (stmfx->vdd)
-               return regulator_disable(stmfx->vdd);
+       if (stmfx->vdd) {
+               int ret;
 
-       return 0;
+               ret = regulator_disable(stmfx->vdd);
+               if (ret)
+                       dev_err(&client->dev,
+                               "Failed to disable vdd regulator: %pe\n",
+                               ERR_PTR(ret));
+       }
 }
 
 static int stmfx_probe(struct i2c_client *client,
 {
        stmfx_irq_exit(client);
 
-       return stmfx_chip_exit(client);
+       stmfx_chip_exit(client);
+
+       return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP