mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
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:
parent
fdcfdb230c
commit
2db4da5948
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user