Commit e7ce74bc authored by Stephen Boyd's avatar Stephen Boyd

Merge branch 'clk-register-dt-node-better' into clk-qcom

* clk-register-dt-node-better:
  clk: Use parent node pointer during registration if necessary
parents dd3d0662 9011f926
...@@ -3719,6 +3719,28 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw) ...@@ -3719,6 +3719,28 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw)
return ERR_PTR(ret); return ERR_PTR(ret);
} }
/**
* dev_or_parent_of_node() - Get device node of @dev or @dev's parent
* @dev: Device to get device node of
*
* Return: device node pointer of @dev, or the device node pointer of
* @dev->parent if dev doesn't have a device node, or NULL if neither
* @dev or @dev->parent have a device node.
*/
static struct device_node *dev_or_parent_of_node(struct device *dev)
{
struct device_node *np;
if (!dev)
return NULL;
np = dev_of_node(dev);
if (!np)
np = dev_of_node(dev->parent);
return np;
}
/** /**
* clk_register - allocate a new clock, register it and return an opaque cookie * clk_register - allocate a new clock, register it and return an opaque cookie
* @dev: device that is registering this clock * @dev: device that is registering this clock
...@@ -3734,7 +3756,7 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw) ...@@ -3734,7 +3756,7 @@ __clk_register(struct device *dev, struct device_node *np, struct clk_hw *hw)
*/ */
struct clk *clk_register(struct device *dev, struct clk_hw *hw) struct clk *clk_register(struct device *dev, struct clk_hw *hw)
{ {
return __clk_register(dev, dev_of_node(dev), hw); return __clk_register(dev, dev_or_parent_of_node(dev), hw);
} }
EXPORT_SYMBOL_GPL(clk_register); EXPORT_SYMBOL_GPL(clk_register);
...@@ -3750,7 +3772,8 @@ EXPORT_SYMBOL_GPL(clk_register); ...@@ -3750,7 +3772,8 @@ EXPORT_SYMBOL_GPL(clk_register);
*/ */
int clk_hw_register(struct device *dev, struct clk_hw *hw) int clk_hw_register(struct device *dev, struct clk_hw *hw)
{ {
return PTR_ERR_OR_ZERO(__clk_register(dev, dev_of_node(dev), hw)); return PTR_ERR_OR_ZERO(__clk_register(dev, dev_or_parent_of_node(dev),
hw));
} }
EXPORT_SYMBOL_GPL(clk_hw_register); EXPORT_SYMBOL_GPL(clk_hw_register);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment