arm: dra7xx: Fix error path in iodelay recalibration
When an error is reported in __recalibrate_iodelay_start(), de-isolation of IO doesn't happen. Because of this, undefined behaviour is observed on many peripherals without any error. So make sure io is out of isolation at the end of iodelay recalibration. Reported-by: Richard Woodruff <r-woodruff2@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
2fff0e96a6
commit
60e3d43a26
@ -202,8 +202,9 @@ void __recalibrate_iodelay_end(int ret)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ret)
|
||||
ret = isolate_io(DEISOLATE_IO);
|
||||
/* Deisolate IO if it is already isolated */
|
||||
if (readl((*ctrl)->ctrl_core_sma_sw_0) & CTRL_ISOLATE_MASK)
|
||||
isolate_io(DEISOLATE_IO);
|
||||
|
||||
/* lock IODELAY CONFIG registers */
|
||||
writel(CFG_IODELAY_LOCK_KEY, (*ctrl)->iodelay_config_base +
|
||||
|
Loading…
Reference in New Issue
Block a user