On 12/2/11, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > On Fri, Dec 2, 2011 at 9:57 AM, Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > wrote: >>>[leedonghwa] >> [Me] >>>> + lcd->reg_vdd3 = regulator_get(lcd->dev, "vdd"); >>>> + if (IS_ERR(lcd->reg_vdd3)) { >>>> + dev_info(lcd->dev, "no %s regulator found\n", >>>> "vdd"); >>>> + lcd->reg_vdd3 = NULL; >>>> + } >>>> + >>>> + lcd->reg_vci = regulator_get(lcd->dev, "vci"); >>>> + if (IS_ERR(lcd->reg_vci)) { >>>> + dev_info(lcd->dev, "no %s regulator found\n", >>>> "vci"); >>>> + lcd->reg_vci = NULL; >>>> + } >>> >>> As explained in earlier discussion with Mark regarding the SMSC911x >>> driver regulator, treat these as errors and do not fail >>> "gracefully" like this. >>> >>> Reference: >>> http://marc.info/?l=linux-netdev&m=131914562120725&w=2 >> >> As mentioned at commit message, the lcd regulator is optional part and >> refer the mmc codes >> >> host->vmmc = regulator_get(mmc_dev(mmc), "vmmc"); >> if (IS_ERR(host->vmmc)) { >> pr_info("%s: no vmmc regulator found\n", >> mmc_hostname(mmc)); >> host->vmmc = NULL; >> } else { >> regulator_enable(host->vmmc); >> } >> >> Previous time, these codes are located at board file, but more boards >> are used, it has same codes for all boards. so move it to drivers. > > I know. This was brought up in the aforementioned discussion, > but the above is also wrong, simply. See: > http://marc.info/?l=linux-netdev&m=131914562120667&w=2 > http://marc.info/?l=linux-netdev&m=131914562120690&w=2 > http://marc.info/?l=linux-netdev&m=131914562120725&w=2 > http://marc.info/?l=linux-netdev&m=131963332527416&w=2 > >> In our case, it has the regulator but some boards don't. >> >> Umm then how to handle the regulator gracefully? > > Mark suggest using a fixed-voltage regulator for boards > where the power is always on. The voltage level itself > is optional. See: > http://marc.info/?l=linux-netdev&m=131963332527416&w=2 Make sense, okay send the updated patch > > Other approaches is to use dummy regulators, or not > call regulator_has_full_constraints(), which means the > regulator core will provide dummy regulators anyways. > See: > http://marc.info/?l=linux-netdev&m=131973043527112&w=2 > http://marc.info/?l=linux-netdev&m=131975178703166&w=2 > > Whole thread of discussion: > http://marc.info/?l=linux-netdev&w=2&r=1&s=smsc911x&q=b > > Yours, > Linus Walleij > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html