Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: rz-mtu3: Replace raw_spin_lock->spin_lock()

As per kernel documentation, use raw_spinlock_t only in real critical core
code, low-level interrupt handling, and places where disabling preemption
or interrupts is required. Here the lock is for concurrent register access
from different drivers, hence spin_lock() is sufficient.

Reported-by: Pavel Machek <pavel@denx.de>
Closes: https://lore.kernel.org/all/ZIL%2FitcJvV5s3Bnf@duo.ucw.cz/
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Pavel Machek <pavel@denx.de>
Link: https://lore.kernel.org/r/20230815073445.9579-3-biju.das.jz@bp.renesas.com
Signed-off-by: Lee Jones <lee@kernel.org>

authored by

Biju Das and committed by
Lee Jones
d92df6fb a160d128

+8 -8
+8 -8
drivers/mfd/rz-mtu3.c
··· 22 22 struct rz_mtu3_priv { 23 23 void __iomem *mmio; 24 24 struct reset_control *rstc; 25 - raw_spinlock_t lock; 25 + spinlock_t lock; 26 26 }; 27 27 28 28 /******* MTU3 registers (original offset is +0x1200) *******/ ··· 176 176 struct rz_mtu3_priv *priv = mtu->priv_data; 177 177 unsigned long tmdr, flags; 178 178 179 - raw_spin_lock_irqsave(&priv->lock, flags); 179 + spin_lock_irqsave(&priv->lock, flags); 180 180 tmdr = rz_mtu3_shared_reg_read(ch, offset); 181 181 __assign_bit(pos, &tmdr, !!val); 182 182 rz_mtu3_shared_reg_write(ch, offset, tmdr); 183 - raw_spin_unlock_irqrestore(&priv->lock, flags); 183 + spin_unlock_irqrestore(&priv->lock, flags); 184 184 } 185 185 EXPORT_SYMBOL_GPL(rz_mtu3_shared_reg_update_bit); 186 186 ··· 256 256 bitpos = rz_mtu3_get_tstr_bit_pos(ch); 257 257 258 258 /* start stop register shared by multiple timer channels */ 259 - raw_spin_lock_irqsave(&priv->lock, flags); 259 + spin_lock_irqsave(&priv->lock, flags); 260 260 261 261 tstr = rz_mtu3_shared_reg_read(ch, offset); 262 262 __assign_bit(bitpos, &tstr, start); 263 263 rz_mtu3_shared_reg_write(ch, offset, tstr); 264 264 265 - raw_spin_unlock_irqrestore(&priv->lock, flags); 265 + spin_unlock_irqrestore(&priv->lock, flags); 266 266 } 267 267 268 268 bool rz_mtu3_is_enabled(struct rz_mtu3_channel *ch) ··· 277 277 bitpos = rz_mtu3_get_tstr_bit_pos(ch); 278 278 279 279 /* start stop register shared by multiple timer channels */ 280 - raw_spin_lock_irqsave(&priv->lock, flags); 280 + spin_lock_irqsave(&priv->lock, flags); 281 281 tstr = rz_mtu3_shared_reg_read(ch, offset); 282 - raw_spin_unlock_irqrestore(&priv->lock, flags); 282 + spin_unlock_irqrestore(&priv->lock, flags); 283 283 284 284 return tstr & BIT(bitpos); 285 285 } ··· 349 349 return PTR_ERR(ddata->clk); 350 350 351 351 reset_control_deassert(priv->rstc); 352 - raw_spin_lock_init(&priv->lock); 352 + spin_lock_init(&priv->lock); 353 353 platform_set_drvdata(pdev, ddata); 354 354 355 355 for (i = 0; i < RZ_MTU_NUM_CHANNELS; i++) {