Loading drivers/regulator/core.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -1556,6 +1556,19 @@ static int regulator_resolve_supply(struct regulator_dev *rdev) } } } } /* * If the supply's parent device is not the same as the * regulator's parent device, then ensure the parent device * is bound before we resolve the supply, in case the parent * device get probe deferred and unregisters the supply. */ if (r->dev.parent && r->dev.parent != rdev->dev.parent) { if (!device_is_bound(r->dev.parent)) { put_device(&r->dev); return -EPROBE_DEFER; } } /* Recursively resolve the supply of the supply */ /* Recursively resolve the supply of the supply */ ret = regulator_resolve_supply(r); ret = regulator_resolve_supply(r); if (ret < 0) { if (ret < 0) { Loading drivers/regulator/s2mpa01.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define S2MPA01_REGULATOR_CNT ARRAY_SIZE(regulators) #define S2MPA01_REGULATOR_CNT ARRAY_SIZE(regulators) struct s2mpa01_info { struct s2mpa01_info { struct of_regulator_match rdata[S2MPA01_REGULATOR_MAX]; int ramp_delay24; int ramp_delay24; int ramp_delay3; int ramp_delay3; int ramp_delay5; int ramp_delay5; Loading Loading @@ -341,9 +342,9 @@ static int s2mpa01_pmic_probe(struct platform_device *pdev) { { struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent); struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent); struct sec_platform_data *pdata = dev_get_platdata(iodev->dev); struct sec_platform_data *pdata = dev_get_platdata(iodev->dev); struct of_regulator_match rdata[S2MPA01_REGULATOR_MAX] = { }; struct device_node *reg_np = NULL; struct device_node *reg_np = NULL; struct regulator_config config = { }; struct regulator_config config = { }; struct of_regulator_match *rdata; struct s2mpa01_info *s2mpa01; struct s2mpa01_info *s2mpa01; int i; int i; Loading @@ -351,6 +352,7 @@ static int s2mpa01_pmic_probe(struct platform_device *pdev) if (!s2mpa01) if (!s2mpa01) return -ENOMEM; return -ENOMEM; rdata = s2mpa01->rdata; for (i = 0; i < S2MPA01_REGULATOR_CNT; i++) for (i = 0; i < S2MPA01_REGULATOR_CNT; i++) rdata[i].name = regulators[i].name; rdata[i].name = regulators[i].name; Loading drivers/regulator/tps65217-regulator.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -179,7 +179,8 @@ static const struct regulator_desc regulators[] = { TPS65217_REGULATOR("DCDC1", TPS65217_DCDC_1, "dcdc1", TPS65217_REGULATOR("DCDC1", TPS65217_DCDC_1, "dcdc1", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC1, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC1, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC1_EN, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC1_EN, NULL, tps65217_uv1_ranges, 2, TPS65217_REG_SEQ1, NULL, tps65217_uv1_ranges, ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ1, TPS65217_SEQ1_DC1_SEQ_MASK), TPS65217_SEQ1_DC1_SEQ_MASK), TPS65217_REGULATOR("DCDC2", TPS65217_DCDC_2, "dcdc2", TPS65217_REGULATOR("DCDC2", TPS65217_DCDC_2, "dcdc2", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC2, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC2, Loading @@ -190,7 +191,8 @@ static const struct regulator_desc regulators[] = { TPS65217_REGULATOR("DCDC3", TPS65217_DCDC_3, "dcdc3", TPS65217_REGULATOR("DCDC3", TPS65217_DCDC_3, "dcdc3", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC3, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC3, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC3_EN, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC3_EN, NULL, tps65217_uv1_ranges, 1, TPS65217_REG_SEQ2, NULL, tps65217_uv1_ranges, ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ2, TPS65217_SEQ2_DC3_SEQ_MASK), TPS65217_SEQ2_DC3_SEQ_MASK), TPS65217_REGULATOR("LDO1", TPS65217_LDO_1, "ldo1", TPS65217_REGULATOR("LDO1", TPS65217_LDO_1, "ldo1", tps65217_pmic_ldo1_ops, 16, TPS65217_REG_DEFLDO1, tps65217_pmic_ldo1_ops, 16, TPS65217_REG_DEFLDO1, Loading Loading
drivers/regulator/core.c +13 −0 Original line number Original line Diff line number Diff line Loading @@ -1556,6 +1556,19 @@ static int regulator_resolve_supply(struct regulator_dev *rdev) } } } } /* * If the supply's parent device is not the same as the * regulator's parent device, then ensure the parent device * is bound before we resolve the supply, in case the parent * device get probe deferred and unregisters the supply. */ if (r->dev.parent && r->dev.parent != rdev->dev.parent) { if (!device_is_bound(r->dev.parent)) { put_device(&r->dev); return -EPROBE_DEFER; } } /* Recursively resolve the supply of the supply */ /* Recursively resolve the supply of the supply */ ret = regulator_resolve_supply(r); ret = regulator_resolve_supply(r); if (ret < 0) { if (ret < 0) { Loading
drivers/regulator/s2mpa01.c +3 −1 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ #define S2MPA01_REGULATOR_CNT ARRAY_SIZE(regulators) #define S2MPA01_REGULATOR_CNT ARRAY_SIZE(regulators) struct s2mpa01_info { struct s2mpa01_info { struct of_regulator_match rdata[S2MPA01_REGULATOR_MAX]; int ramp_delay24; int ramp_delay24; int ramp_delay3; int ramp_delay3; int ramp_delay5; int ramp_delay5; Loading Loading @@ -341,9 +342,9 @@ static int s2mpa01_pmic_probe(struct platform_device *pdev) { { struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent); struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent); struct sec_platform_data *pdata = dev_get_platdata(iodev->dev); struct sec_platform_data *pdata = dev_get_platdata(iodev->dev); struct of_regulator_match rdata[S2MPA01_REGULATOR_MAX] = { }; struct device_node *reg_np = NULL; struct device_node *reg_np = NULL; struct regulator_config config = { }; struct regulator_config config = { }; struct of_regulator_match *rdata; struct s2mpa01_info *s2mpa01; struct s2mpa01_info *s2mpa01; int i; int i; Loading @@ -351,6 +352,7 @@ static int s2mpa01_pmic_probe(struct platform_device *pdev) if (!s2mpa01) if (!s2mpa01) return -ENOMEM; return -ENOMEM; rdata = s2mpa01->rdata; for (i = 0; i < S2MPA01_REGULATOR_CNT; i++) for (i = 0; i < S2MPA01_REGULATOR_CNT; i++) rdata[i].name = regulators[i].name; rdata[i].name = regulators[i].name; Loading
drivers/regulator/tps65217-regulator.c +4 −2 Original line number Original line Diff line number Diff line Loading @@ -179,7 +179,8 @@ static const struct regulator_desc regulators[] = { TPS65217_REGULATOR("DCDC1", TPS65217_DCDC_1, "dcdc1", TPS65217_REGULATOR("DCDC1", TPS65217_DCDC_1, "dcdc1", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC1, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC1, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC1_EN, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC1_EN, NULL, tps65217_uv1_ranges, 2, TPS65217_REG_SEQ1, NULL, tps65217_uv1_ranges, ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ1, TPS65217_SEQ1_DC1_SEQ_MASK), TPS65217_SEQ1_DC1_SEQ_MASK), TPS65217_REGULATOR("DCDC2", TPS65217_DCDC_2, "dcdc2", TPS65217_REGULATOR("DCDC2", TPS65217_DCDC_2, "dcdc2", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC2, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC2, Loading @@ -190,7 +191,8 @@ static const struct regulator_desc regulators[] = { TPS65217_REGULATOR("DCDC3", TPS65217_DCDC_3, "dcdc3", TPS65217_REGULATOR("DCDC3", TPS65217_DCDC_3, "dcdc3", tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC3, tps65217_pmic_ops, 64, TPS65217_REG_DEFDCDC3, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC3_EN, TPS65217_DEFDCDCX_DCDC_MASK, TPS65217_ENABLE_DC3_EN, NULL, tps65217_uv1_ranges, 1, TPS65217_REG_SEQ2, NULL, tps65217_uv1_ranges, ARRAY_SIZE(tps65217_uv1_ranges), TPS65217_REG_SEQ2, TPS65217_SEQ2_DC3_SEQ_MASK), TPS65217_SEQ2_DC3_SEQ_MASK), TPS65217_REGULATOR("LDO1", TPS65217_LDO_1, "ldo1", TPS65217_REGULATOR("LDO1", TPS65217_LDO_1, "ldo1", tps65217_pmic_ldo1_ops, 16, TPS65217_REG_DEFLDO1, tps65217_pmic_ldo1_ops, 16, TPS65217_REG_DEFLDO1, Loading