lkml.org 
[lkml]   [2022]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/14] phy: qcom-qmp-combo: separate clock and provider registration
    Date
    In preparation for supporting devicetree bindings which do not use child
    nodes, separate clock registration from clock-provider registration.

    Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
    ---
    drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 44 +++++++++++------------
    1 file changed, 20 insertions(+), 24 deletions(-)

    diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
    index 4309ae6db997..f3d3229d3aa2 100644
    --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
    +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c
    @@ -2255,7 +2255,6 @@ static int phy_pipe_clk_register(struct qmp_combo *qmp, struct device_node *np)
    struct clk_fixed_rate *fixed = &qmp->pipe_clk_fixed;
    struct clk_init_data init = { };
    char name[64];
    - int ret;

    snprintf(name, sizeof(name), "%s::pipe_clk", dev_name(qmp->dev));
    init.name = name;
    @@ -2265,19 +2264,7 @@ static int phy_pipe_clk_register(struct qmp_combo *qmp, struct device_node *np)
    fixed->fixed_rate = 125000000;
    fixed->hw.init = &init;

    - ret = devm_clk_hw_register(qmp->dev, &fixed->hw);
    - if (ret)
    - return ret;
    -
    - ret = of_clk_add_hw_provider(np, of_clk_hw_simple_get, &fixed->hw);
    - if (ret)
    - return ret;
    -
    - /*
    - * Roll a devm action because the clock provider is the child node, but
    - * the child node is not actually a device.
    - */
    - return devm_add_action_or_reset(qmp->dev, phy_clk_release_provider, np);
    + return devm_clk_hw_register(qmp->dev, &fixed->hw);
    }

    /*
    @@ -2448,15 +2435,7 @@ static int phy_dp_clks_register(struct qmp_combo *qmp, struct device_node *np)
    if (ret)
    return ret;

    - ret = of_clk_add_hw_provider(np, qcom_qmp_dp_clks_hw_get, qmp);
    - if (ret)
    - return ret;
    -
    - /*
    - * Roll a devm action because the clock provider is the child node, but
    - * the child node is not actually a device.
    - */
    - return devm_add_action_or_reset(qmp->dev, phy_clk_release_provider, np);
    + return 0;
    }

    static int qmp_combo_register_clocks(struct qmp_combo *qmp, struct device_node *usb_np,
    @@ -2472,7 +2451,24 @@ static int qmp_combo_register_clocks(struct qmp_combo *qmp, struct device_node *
    if (ret)
    return ret;

    - return 0;
    + ret = of_clk_add_hw_provider(usb_np, of_clk_hw_simple_get,
    + &qmp->pipe_clk_fixed.hw);
    + if (ret)
    + return ret;
    +
    + /*
    + * Roll a devm action because the clock provider is the child node, but
    + * the child node is not actually a device.
    + */
    + ret = devm_add_action_or_reset(qmp->dev, phy_clk_release_provider, usb_np);
    + if (ret)
    + return ret;
    +
    + ret = of_clk_add_hw_provider(dp_np, qcom_qmp_dp_clks_hw_get, qmp);
    + if (ret)
    + return ret;
    +
    + return devm_add_action_or_reset(qmp->dev, phy_clk_release_provider, dp_np);
    }

    static int qmp_combo_parse_dt_lecacy_dp(struct qmp_combo *qmp, struct device_node *np)
    --
    2.37.4
    \
     
     \ /
      Last update: 2022-11-11 10:27    [W:2.528 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site