Re: [PATCH] watchdog: realtek_otto: Use FIELD_MODIFY()

From: Guenter Roeck

Date: Thu Apr 30 2026 - 11:55:33 EST


On 4/30/26 08:42, Hans Zhang wrote:
Use FIELD_MODIFY() to remove open-coded bit manipulation.
No functional change intended.

Signed-off-by: Hans Zhang <18255117159@xxxxxxx>

Please refrain from making non-functional changes such as this one.

Guenter

---
drivers/watchdog/realtek_otto_wdt.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/watchdog/realtek_otto_wdt.c b/drivers/watchdog/realtek_otto_wdt.c
index 2c30ddd574c5..cf4841583721 100644
--- a/drivers/watchdog/realtek_otto_wdt.c
+++ b/drivers/watchdog/realtek_otto_wdt.c
@@ -149,11 +149,9 @@ static int otto_wdt_determine_timeouts(struct watchdog_device *wdev, unsigned in
|| phase2_ticks > OTTO_WDT_PHASE_TICKS_MAX);
v = ioread32(ctrl->base + OTTO_WDT_REG_CTRL);
-
- v &= ~(OTTO_WDT_CTRL_PRESCALE | OTTO_WDT_CTRL_PHASE1 | OTTO_WDT_CTRL_PHASE2);
- v |= FIELD_PREP(OTTO_WDT_CTRL_PHASE1, phase1_ticks - 1);
- v |= FIELD_PREP(OTTO_WDT_CTRL_PHASE2, phase2_ticks - 1);
- v |= FIELD_PREP(OTTO_WDT_CTRL_PRESCALE, prescale);
+ FIELD_MODIFY(OTTO_WDT_CTRL_PHASE1, &v, phase1_ticks - 1);
+ FIELD_MODIFY(OTTO_WDT_CTRL_PHASE2, &v, phase2_ticks - 1);
+ FIELD_MODIFY(OTTO_WDT_CTRL_PRESCALE, &v, prescale);
iowrite32(v, ctrl->base + OTTO_WDT_REG_CTRL);
@@ -279,8 +277,7 @@ static int otto_wdt_probe_reset_mode(struct otto_wdt_ctrl *ctrl)
return -EINVAL;
v = ioread32(ctrl->base + OTTO_WDT_REG_CTRL);
- v &= ~OTTO_WDT_CTRL_RST_MODE;
- v |= FIELD_PREP(OTTO_WDT_CTRL_RST_MODE, mode);
+ FIELD_MODIFY(OTTO_WDT_CTRL_RST_MODE, &v, mode);
iowrite32(v, ctrl->base + OTTO_WDT_REG_CTRL);
return 0;

base-commit: 3b3bea6d4b9c162f9e555905d96b8c1da67ecd5b