On Tue, Apr 29, 2014 at 10:00 AM, Tim Kryger <tim.kryger@xxxxxxxxxx> wrote: > 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? Since this now behaves correctly regardless of CONFIG_REGULATOR, then perhaps it's best to eliminate the stub. Thanks, Andrew > > -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