lkml.org 
[lkml]   [2023]   [Sep]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 06/28] clk: renesas: rzg2l: remove critical area
    Date
    From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>

    spinlock in rzg2l_mod_clock_endisable() is intended to protect the accesses
    to hardware register. There is no need to protect the instructions that set
    temporary variable which will be then written to register. With this only
    one write to one clock register is executed thus locking/unlocking rmw_lock
    is removed.

    Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
    ---

    Changes in v2:
    - removed also the spinlock
    - s/reduce/remove in patch title

    drivers/clk/renesas/rzg2l-cpg.c | 5 +----
    1 file changed, 1 insertion(+), 4 deletions(-)

    diff --git a/drivers/clk/renesas/rzg2l-cpg.c b/drivers/clk/renesas/rzg2l-cpg.c
    index f411e428196c..d936832e098f 100644
    --- a/drivers/clk/renesas/rzg2l-cpg.c
    +++ b/drivers/clk/renesas/rzg2l-cpg.c
    @@ -895,7 +895,6 @@ static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)
    struct rzg2l_cpg_priv *priv = clock->priv;
    unsigned int reg = clock->off;
    struct device *dev = priv->dev;
    - unsigned long flags;
    u32 bitmask = BIT(clock->bit);
    u32 value;
    int error;
    @@ -907,14 +906,12 @@ static int rzg2l_mod_clock_endisable(struct clk_hw *hw, bool enable)

    dev_dbg(dev, "CLK_ON %u/%pC %s\n", CLK_ON_R(reg), hw->clk,
    enable ? "ON" : "OFF");
    - spin_lock_irqsave(&priv->rmw_lock, flags);

    value = bitmask << 16;
    if (enable)
    value |= bitmask;
    - writel(value, priv->base + CLK_ON_R(reg));

    - spin_unlock_irqrestore(&priv->rmw_lock, flags);
    + writel(value, priv->base + CLK_ON_R(reg));

    if (!enable)
    return 0;
    --
    2.39.2
    \
     
     \ /
      Last update: 2023-09-29 07:42    [W:3.892 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site