void __uses_jump_to_uncached flush_cache_all(void) { unsigned long flags; local_irq_save(flags); jump_to_uncached(); cache_wback_all(); back_to_cached(); local_irq_restore(flags); }
static void sh7705_flush_cache_all(void *args) { unsigned long flags; local_irq_save(flags); jump_to_uncached(); cache_wback_all(); back_to_cached(); local_irq_restore(flags); }
void flush_cache_all(void) { unsigned long flags; local_irq_save(flags); jump_to_P2(); cache_wback_all(); back_to_P1(); local_irq_restore(flags); }
int cache_control(unsigned int cmd) { unsigned long ccr; jump_to_P2(); ccr = inl(CCR); if (ccr & CCR_CACHE_ENABLE) cache_wback_all(); if (cmd == CACHE_DISABLE) outl(CCR_CACHE_STOP, CCR); else outl(CCR_CACHE_INIT, CCR); back_to_P1(); return 0; }
void __init cache_init(void) { unsigned long ccr; detect_cpu_and_cache_system(); jump_to_P2(); ccr = ctrl_inl(CCR); if (ccr & CCR_CACHE_CE) /* * XXX: Should check RA here. * If RA was 1, we only need to flush the half of the caches. */ cache_wback_all(); ctrl_outl(CCR_CACHE_INIT, CCR); back_to_P1(); }