File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
41
41
{
42
42
void __iomem * base ;
43
43
struct device * dev = & pdev -> dev ;
44
- struct device_node * node = dev -> of_node ;
44
+ struct device_node * node = dev -> of_node , * np ;
45
45
struct regmap * regmap ;
46
46
47
47
if (of_find_property (node , "sprd,syscon" , NULL )) {
@@ -50,9 +50,10 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
50
50
pr_err ("%s: failed to get syscon regmap\n" , __func__ );
51
51
return PTR_ERR (regmap );
52
52
}
53
- } else if (of_device_is_compatible (of_get_parent (dev -> of_node ),
54
- "syscon" )) {
55
- regmap = device_node_to_regmap (of_get_parent (dev -> of_node ));
53
+ } else if (of_device_is_compatible (np = of_get_parent (node ), "syscon" ) ||
54
+ (of_node_put (np ), 0 )) {
55
+ regmap = device_node_to_regmap (np );
56
+ of_node_put (np );
56
57
if (IS_ERR (regmap )) {
57
58
dev_err (dev , "failed to get regmap from its parent.\n" );
58
59
return PTR_ERR (regmap );
You can’t perform that action at this time.
0 commit comments