return 0;
 
        dev_dbg(ctx->dev, "Resetting the panel\n");
-       ret = regulator_enable(ctx->vcc);
+       gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+
+       ret = regulator_enable(ctx->iovcc);
        if (ret < 0) {
-               dev_err(ctx->dev, "Failed to enable vcc supply: %d\n", ret);
+               dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret);
                return ret;
        }
-       ret = regulator_enable(ctx->iovcc);
+
+       ret = regulator_enable(ctx->vcc);
        if (ret < 0) {
-               dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret);
-               goto disable_vcc;
+               dev_err(ctx->dev, "Failed to enable vcc supply: %d\n", ret);
+               regulator_disable(ctx->iovcc);
+               return ret;
        }
 
-       gpiod_set_value_cansleep(ctx->reset_gpio, 1);
-       usleep_range(20, 40);
+       /* Give power supplies time to stabilize before deasserting reset. */
+       usleep_range(10000, 20000);
+
        gpiod_set_value_cansleep(ctx->reset_gpio, 0);
-       msleep(20);
+       usleep_range(15000, 20000);
 
        ctx->prepared = true;
 
        return 0;
-
-disable_vcc:
-       regulator_disable(ctx->vcc);
-       return ret;
 }
 
 static const u32 mantix_bus_formats[] = {