lkml.org 
[lkml]   [2024]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 1/7] interconnect: icc-clk: Allow user to specify master/slave ids
    Date
    Presently, icc-clk driver autogenerates the master and slave ids.
    However, devices with multiple nodes on the interconnect could
    have other constraints and may not match with the auto generated
    node ids. Hence, allow the driver to provide the preferred master
    and slave ids.

    Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
    ---
    v8: Per review feedback, set master/slave ids explicitly. Dont autogenerate
    https://lore.kernel.org/linux-arm-msm/f1b0d280-6986-4055-a611-2caceb15867d@linaro.org/
    ---
    drivers/interconnect/icc-clk.c | 6 +++---
    include/linux/interconnect-clk.h | 2 ++
    2 files changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c
    index d787f2ea36d9..2be193fd7d8f 100644
    --- a/drivers/interconnect/icc-clk.c
    +++ b/drivers/interconnect/icc-clk.c
    @@ -108,7 +108,7 @@ struct icc_provider *icc_clk_register(struct device *dev,
    for (i = 0, j = 0; i < num_clocks; i++) {
    qp->clocks[i].clk = data[i].clk;

    - node = icc_node_create(first_id + j);
    + node = icc_node_create(first_id + data[i].master_id);
    if (IS_ERR(node)) {
    ret = PTR_ERR(node);
    goto err;
    @@ -118,10 +118,10 @@ struct icc_provider *icc_clk_register(struct device *dev,
    node->data = &qp->clocks[i];
    icc_node_add(node, provider);
    /* link to the next node, slave */
    - icc_link_create(node, first_id + j + 1);
    + icc_link_create(node, first_id + data[i].slave_id);
    onecell->nodes[j++] = node;

    - node = icc_node_create(first_id + j);
    + node = icc_node_create(first_id + data[i].slave_id);
    if (IS_ERR(node)) {
    ret = PTR_ERR(node);
    goto err;
    diff --git a/include/linux/interconnect-clk.h b/include/linux/interconnect-clk.h
    index 0cd80112bea5..170898faaacb 100644
    --- a/include/linux/interconnect-clk.h
    +++ b/include/linux/interconnect-clk.h
    @@ -11,6 +11,8 @@ struct device;
    struct icc_clk_data {
    struct clk *clk;
    const char *name;
    + unsigned int master_id;
    + unsigned int slave_id;
    };

    struct icc_provider *icc_clk_register(struct device *dev,
    --
    2.34.1

    \
     
     \ /
      Last update: 2024-04-17 12:57    [W:4.075 / U:0.388 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site