reset: sti: rely on regmap_field_read_poll_timeout for ack wait

Use regmap_field_read_poll_timeout function when waiting for the
ack bit upon performing the reset control.

Signed-off-by: Alain Volmat <avolmat@me.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://lore.kernel.org/r/20230210224332.98482-1-avolmat@me.com
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
Alain Volmat 2023-02-10 23:43:31 +01:00 committed by Philipp Zabel
parent fdcfdb230c
commit 2db4da5948
1 changed files with 4 additions and 14 deletions

View File

@ -64,22 +64,12 @@ static int syscfg_reset_program_hw(struct reset_controller_dev *rcdev,
return err;
if (ch->ack) {
unsigned long timeout = jiffies + msecs_to_jiffies(1000);
u32 ack_val;
while (true) {
err = regmap_field_read(ch->ack, &ack_val);
if (err)
return err;
if (ack_val == ctrl_val)
break;
if (time_after(jiffies, timeout))
return -ETIME;
cpu_relax();
}
err = regmap_field_read_poll_timeout(ch->ack, ack_val, (ack_val == ctrl_val),
100, USEC_PER_SEC);
if (err)
return err;
}
return 0;