Skip to content

Commit

Permalink
ARCv2: SLC: Make sure busy bit is set properly for region ops
Browse files Browse the repository at this point in the history
c70c473 "ARCv2: SLC: Make sure busy bit is set properly on SLC flushing"
fixes problem for entire SLC operation where the problem was initially
caught. But given a nature of the issue it is perfectly possible for
busy bit to be read incorrectly even when region operation was started.

So extending initial fix for regional operation as well.

Signed-off-by: Alexey Brodkin <[email protected]>
Cc: [email protected]   #4.10
Signed-off-by: Vineet Gupta <[email protected]>
  • Loading branch information
abrodkin authored and vineetgarc committed Aug 4, 2017
1 parent 33460f8 commit b37174d
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions arch/arc/mm/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,9 @@ noinline void slc_op(phys_addr_t paddr, unsigned long sz, const int op)
write_aux_reg(ARC_REG_SLC_RGN_END, (paddr + sz + l2_line_sz - 1));
write_aux_reg(ARC_REG_SLC_RGN_START, paddr);

/* Make sure "busy" bit reports correct stataus, see STAR 9001165532 */
read_aux_reg(ARC_REG_SLC_CTRL);

while (read_aux_reg(ARC_REG_SLC_CTRL) & SLC_CTRL_BUSY);

spin_unlock_irqrestore(&lock, flags);
Expand Down

0 comments on commit b37174d

Please sign in to comment.