Hi Georgi,
I found the sdhci_msm_vreg_reset(). Why do you run enable->disable?
+/*
+ * Reset vreg by ensuring it is off during probe. A call
+ * to enable vreg is needed to balance disable vreg
+ */
+static int sdhci_msm_vreg_reset(struct sdhci_msm_pltfm_data *pdata)
I think that controller didn't have responsibility to ensure whether power is enabled or not at probing time.
If just needed to balance vreg, then i think this function can be removed.
How about?
Also before using regulator_is_enabled(), i had found the hole for balancing the vreg.