On Fri, Apr 25, 2014 at 2:33 PM, Andrew Bresticker <abrestic@xxxxxxxxxxxx> wrote: >> >> - if (IS_ERR(supply)) >> - return PTR_ERR(supply); >> + if (IS_ERR(mmc->supply.vmmc)) { >> + if (PTR_ERR(mmc->supply.vmmc) == -EPROBE_DEFER) >> + return -EPROBE_DEFER; >> + dev_info(dev, "No vmmc regulator found\n"); >> + } else { >> + ret = mmc_regulator_get_ocrmask(mmc->supply.vmmc); >> + if (ret > 0) >> + mmc->ocr_avail = ret; >> + else >> + dev_warn(dev, "Failed getting OCR mask: %d\n", ret); >> + } > > I think we also need to handle the case where supply is NULL, i.e. > !CONFIG_REGULATOR. The SDHCI driver, for example, calls > regulator_is_supported_voltage() which will always return false on > NULL regulators. Perhaps we should set the supplies to > ERR_PTR(-ENODEV) in that case? As of v3.15-rc3, this function would do the right thing because df7926f modified the regulator get optional stubs to return -ENODEV in the !CONFIG_REGULATOR case. However, this implementation of mmc_regulator_get_supply doesn't actually get built for that case. A stub implementation is used instead. Presently that stub mmc_regulator_get_supply does nothing other than return zero but perhaps it should initialize the supplies as you suggest. Alternatively, the stub could be eliminated such that this implementation is used in all cases. Do you have a preference? -Tim -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html