lkml.org 
[lkml]   [2020]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/89] clk: bcm: rpi: Add clock id to data
    Date
    The driver has really only supported one clock so far and has hardcoded the
    ID used in communications with the firmware in all the functions
    implementing the clock framework hooks. Let's store that in the clock data
    structure so that we can support more clocks later on.

    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: linux-clk@vger.kernel.org
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    ---
    drivers/clk/bcm/clk-raspberrypi.c | 16 +++++++---------
    1 file changed, 7 insertions(+), 9 deletions(-)

    diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c
    index 964fc8f792cc..e796dabbc641 100644
    --- a/drivers/clk/bcm/clk-raspberrypi.c
    +++ b/drivers/clk/bcm/clk-raspberrypi.c
    @@ -39,6 +39,7 @@ struct raspberrypi_clk {

    struct raspberrypi_clk_data {
    struct clk_hw hw;
    + unsigned id;

    unsigned long min_rate;
    unsigned long max_rate;
    @@ -95,7 +96,7 @@ static int raspberrypi_fw_pll_is_on(struct clk_hw *hw)

    ret = raspberrypi_clock_property(rpi->firmware,
    RPI_FIRMWARE_GET_CLOCK_STATE,
    - RPI_FIRMWARE_ARM_CLK_ID, &val);
    + data->id, &val);
    if (ret)
    return 0;

    @@ -114,8 +115,7 @@ static unsigned long raspberrypi_fw_pll_get_rate(struct clk_hw *hw,

    ret = raspberrypi_clock_property(rpi->firmware,
    RPI_FIRMWARE_GET_CLOCK_RATE,
    - RPI_FIRMWARE_ARM_CLK_ID,
    - &val);
    + data->id, &val);
    if (ret)
    return ret;

    @@ -133,8 +133,7 @@ static int raspberrypi_fw_pll_set_rate(struct clk_hw *hw, unsigned long rate,

    ret = raspberrypi_clock_property(rpi->firmware,
    RPI_FIRMWARE_SET_CLOCK_RATE,
    - RPI_FIRMWARE_ARM_CLK_ID,
    - &new_rate);
    + data->id, &new_rate);
    if (ret)
    dev_err_ratelimited(rpi->dev, "Failed to change %s frequency: %d",
    clk_hw_get_name(hw), ret);
    @@ -189,6 +188,7 @@ static int raspberrypi_register_pllb(struct raspberrypi_clk *rpi)
    if (!data)
    return -ENOMEM;
    data->rpi = rpi;
    + data->id = RPI_FIRMWARE_ARM_CLK_ID;

    /* All of the PLLs derive from the external oscillator. */
    init.parent_names = (const char *[]){ "osc" };
    @@ -200,8 +200,7 @@ static int raspberrypi_register_pllb(struct raspberrypi_clk *rpi)
    /* Get min & max rates set by the firmware */
    ret = raspberrypi_clock_property(rpi->firmware,
    RPI_FIRMWARE_GET_MIN_CLOCK_RATE,
    - RPI_FIRMWARE_ARM_CLK_ID,
    - &min_rate);
    + data->id, &min_rate);
    if (ret) {
    dev_err(rpi->dev, "Failed to get %s min freq: %d\n",
    init.name, ret);
    @@ -210,8 +209,7 @@ static int raspberrypi_register_pllb(struct raspberrypi_clk *rpi)

    ret = raspberrypi_clock_property(rpi->firmware,
    RPI_FIRMWARE_GET_MAX_CLOCK_RATE,
    - RPI_FIRMWARE_ARM_CLK_ID,
    - &max_rate);
    + data->id, &max_rate);
    if (ret) {
    dev_err(rpi->dev, "Failed to get %s max freq: %d\n",
    init.name, ret);
    --
    git-series 0.9.1
    \
     
     \ /
      Last update: 2020-02-24 10:15    [W:2.656 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site