static inline int cache_flush_040 (unsigned long addr, int scope, int cache, unsigned long len) { unsigned long paddr, i; switch (scope) { case FLUSH_SCOPE_ALL: switch (cache) { case FLUSH_CACHE_DATA: /* This nop is needed for some broken versions of the 68040. */ __asm__ __volatile__ ("nop\n\t" ".word 0xf478 /* cpusha %%dc */"); break; case FLUSH_CACHE_INSN: __asm__ __volatile__ ("nop\n\t" ".word 0xf4b8 /* cpusha %%ic */"); break; default: case FLUSH_CACHE_BOTH: __asm__ __volatile__ ("nop\n\t" ".word 0xf4f8 /* cpusha %%bc */"); break; } break; case FLUSH_SCOPE_LINE: /* Find the physical address of the first mapped page in the address range. */ if ((paddr = virt_to_phys_040(addr))) { paddr += addr & ~(PAGE_MASK | 15); len = (len + (addr & 15) + 15) >> 4; } else {
static inline int cache_flush_040 (unsigned long addr, int scope, int cache, unsigned long len) { unsigned long paddr, i; switch (scope) { case FLUSH_SCOPE_ALL: switch (cache) { case FLUSH_CACHE_DATA: /* */ __asm__ __volatile__ ("nop\n\t" ".chip 68040\n\t" "cpusha %dc\n\t" ".chip 68k"); break; case FLUSH_CACHE_INSN: __asm__ __volatile__ ("nop\n\t" ".chip 68040\n\t" "cpusha %ic\n\t" ".chip 68k"); break; default: case FLUSH_CACHE_BOTH: __asm__ __volatile__ ("nop\n\t" ".chip 68040\n\t" "cpusha %bc\n\t" ".chip 68k"); break; } break; case FLUSH_SCOPE_LINE: /* */ if ((paddr = virt_to_phys_040(addr))) { paddr += addr & ~(PAGE_MASK | 15); len = (len + (addr & 15) + 15) >> 4; } else {