Message ID | CAK9yfHx9FnQxQOmHcMzc8dQa+mSryPRo=63FL=8tg1JGqe4jNQ@mail.gmail.com |
---|---|
State | Not Applicable |
Headers | show |
On 25 February 2014 15:39, Philippe Rétornaz <philippe.retornaz@epfl.ch> wrote: > Le 25/02/2014 10:12, Sachin Kamat a écrit : > >> On 25 February 2014 14:17, Philippe Rétornaz <philippe.retornaz@epfl.ch> >> wrote: >> >> Thanks for the patch. I was about to send a similar patch which also >> does a little more cleanup. >> If you could test it in DT and non-DT modes that would be great. I >> attach the diff below. You can >> even fold it into your patch if you wish. > > > It does fix the regression on the non-DT board. > I don't have any DT-enabled board with mc13xxx PMIC so I cannot test the > DT case. I will let you test the DT case & submit the final patch. Thanks for the confirmation. I will post this patch.
diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c index 4498a3f0733d..bf75fcabfa3c 100644 --- a/drivers/regulator/mc13xxx-regulator-core.c +++ b/drivers/regulator/mc13xxx-regulator-core.c @@ -167,8 +167,10 @@ int mc13xxx_get_num_regulators_dt(struct platform_device *pdev) struct device_node *parent; int num; - of_node_get(pdev->dev.parent->of_node); - parent = of_get_child_by_name(pdev->dev.parent->of_node, "regulators"); + if (!pdev->dev.of_node) + return -ENODEV; + + parent = of_get_child_by_name(pdev->dev.of_node, "regulators"); if (!parent) return -ENODEV;