• Paul Mundt's avatar
    sh: Add control register barriers. · 29847622
    Paul Mundt authored
    Currently when making changes to control registers, we
    typically need some time for changes to take effect (8
    nops, generally).  However, for sh4a we simply need to
    do an icbi..
    
    This is a simple patch for implementing a general purpose
    ctrl_barrier() which functions as a control register write
    barrier. There's some additional documentation in the patch
    itself, but it's pretty self explanatory.
    
    There were also some places where we were not doing the
    barrier, which didn't seem to have any adverse effects on
    legacy parts, but certainly did on sh4a. It's safer to have
    the barrier in place for legacy parts as well in these cases,
    though this does make flush_tlb_all() more expensive (by an
    order of 8 nops).  We can ifdef around the flush_tlb_all()
    case for now if it's clear that all legacy parts won't have
    a problem with this.
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    29847622
system.h 8.47 KB