summaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAgeFilesLines
* sparc32: Kill off software 32-bit multiply/divide routines.David S. Miller2012-05-1517-2129/+24
| | | | | | | | | | | | | For the explicit calls to .udiv/.umul in assembler, I made a mechanical (read as: safe) transformation. I didn't attempt to make any simplifications. In particular, __ndelay and __udelay can be simplified significantly. Some of the %y reads are unnecessary and these routines have no need any longer for allocating a register window, they can be leaf functions. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Build kernel with -mcpu=v8David S. Miller2012-05-151-1/+1
| | | | | | | With Cypress gone we can generate real hardware integer multiply and divide instructions at will. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: cleanup mm/fault_32.cSam Ravnborg2012-05-152-52/+44
| | | | | | | | - remove unused variables - fix coding style issues that hurts my eyes Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Remove cypress cpu support.David S. Miller2012-05-156-449/+5
| | | | | | | | | It's the one aberration in v8, the only cpu that didn't actually have hardware multiply and divide instructions. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Sam Ravnborg <sam@ravnborg.org>
* sparc64: Remove pointless assignment in floppy support.David S. Miller2012-05-141-1/+0
| | | | | Reported-by: Josip Rodin <joy@entuzijast.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Kill unused hard_smp{4m,4d,leon}_processor_id() inlined.David S. Miller2012-05-141-29/+0
| | | | | Reported-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop build time btfixup patchingSam Ravnborg2012-05-143-449/+10
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: remove runtime btfix supportSam Ravnborg2012-05-1420-547/+1
| | | | | | | | | - remove all uses of btfixup header - remove the btfixup header - remove the btfixup code Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: remove remaining users of btfixupSam Ravnborg2012-05-148-49/+23
| | | | | | | | Use sparc_config to hold the last two function pointers. There was no point generating dedicated _ops structures only for these. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: move smp ipi to method opsSam Ravnborg2012-05-1410-105/+107
| | | | | | | | | | | I ended up renaming set_cpu_int to send_ipi to be consistent all way around. send_ipi was moved to the *_smp.c files so we could call the relevant method direct, without any _ops indirection. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Implement hard_smp_processor_id() via instruction patching.David S. Miller2012-05-1410-175/+99
| | | | | | | | | | | This is the last non-trivial user of btfixup. Like sparc64, use a special patch section to resolve the various implementations of how to read the current CPU's ID when we don't have current_thread_info()->cpu necessarily available. Signed-off-by: David S. Miller <davem@davemloft.net> Tested-by: Sam Ravnborg <sam@ravnborg.org>
* sparc32: Move cache and TLB flushes over to method ops.David S. Miller2012-05-1313-478/+466
| | | | | | | | | | | | | | | | | This eliminated most of the remaining users of btfixup. There are some complications because of the special cases we have for sun4d, leon, and some flavors of viking. It was found that there are no cases where a flush_page_for_dma method was not hooked up to something, so the "noflush" iommu methods were removed. Add some documentation to the viking_sun4d_smp_ops to describe exactly the hardware bug which causes us to need special TLB flushing on sun4d. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Remove unused declarations in srmmu.cDavid S. Miller2012-05-131-6/+0
| | | | | | Uses of these went away with the sun4c removal. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Convert mmu_* interfaces from btfixup to method ops.David S. Miller2012-05-135-44/+79
| | | | | | | | | | | | This set of changes displays one major danger of btfixup, interface signatures are not always type checked fully. As seen here the iounit variant of the map_dma_area routine had an incorrect type for one of it's arguments. It turns out to be harmless in this case, but just imagine trying to debug something involving this kind of problem. No thanks. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: Kill mmu_{un,}lockarea().David S. Miller2012-05-137-47/+3
| | | | | | | | | | | | These were used on sun4c during floppy data transfers since on that chip we had to lock the cpu mappings into the TLB because we cannot take a TLB miss during the assembler floppy interrupt handler that does the data transfer. That is no longer necessary since we've removed sun4c support, thus this stuff can disappear completely. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup update_mmu_cache().David S. Miller2012-05-132-43/+1
| | | | | | | | | | | The magic Swift SRMMU code in question has not been enabled for something on the order of a decade, and it as well as it's comment is there in the history in case we ever need it again. Therefore all implementations are NOPs and we can kill this stuff off. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Kill btfixup for xchg()'s 'swap' instruction.David S. Miller2012-05-136-61/+2
| | | | | | | | | | We always have this instruction available, so no need to use btfixup for it any more. This also eradicates the whole of atomic_32.S and thus the __atomic_begin and __atomic_end symbols completely. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop unused clear_cpu_intSam Ravnborg2012-05-134-21/+0
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop unused set_irq_udtSam Ravnborg2012-05-134-18/+0
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup in page_32.hSam Ravnborg2012-05-132-5/+1
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop unused prototype from timer_32.hSam Ravnborg2012-05-131-5/+0
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup in mmu_context_32.hSam Ravnborg2012-05-132-5/+2
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup in pgtable_32.hSam Ravnborg2012-05-133-89/+58
| | | | | | | Only one function left using btfixup. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup in pgalloc_32.hSam Ravnborg2012-05-132-81/+63
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Pass -mcpu=v7 explicitly to gcc.David S. Miller2012-05-121-1/+1
| | | | | | We should be agnostic to what gcc happens to be generating by default. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup more PTE constants and PTE ops.David S. Miller2012-05-122-38/+17
| | | | | | | pte_{filei,wrprotecti,mkcleani,mkoldi} pte_{mkwrite,mkdirty,mkyoung} Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup pte_{write,dirty,young}iDavid S. Miller2012-05-122-13/+3
| | | | | | | | And we can certainly get rid of the const function attributes, there is no way that's needed any longer and no other arch uses this kind of annotation here. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop unused code in process_32Sam Ravnborg2012-05-121-82/+0
| | | | | | | | It is commented out using #ifdef 0 / #endif, and has been so for a long time. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup set_pte, pte_present, mk_pte{_phys,_io}().David S. Miller2012-05-122-52/+33
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop loadmmuSam Ravnborg2012-05-123-40/+6
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup pmd_{bad,present}().David S. Miller2012-05-122-14/+9
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup pgd_{none,bad,present}.David S. Miller2012-05-122-22/+16
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup PAGE_{NONE,COPY,READONLY,SHARED,KERNEL}.David S. Miller2012-05-123-71/+23
| | | | | | | | | That lets us also get rid of the run-time initialization of protection_map[] and all the ugly module workarounds for PAGE_KERNEL and PAGE_SHARED to deal with the fact that we can't do btfixups for modular code. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup pmd_page and pte_pfn.David S. Miller2012-05-122-35/+25
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup {pte,pmd,pgd}_clear().David S. Miller2012-05-123-49/+39
| | | | | | | | | | | | | | | | Also we can remove BTFIXUPCALL_SWAPO0G0 as that is no longer used. This was rather amusing, we were setting the btfixup vectors based upon cpu type but all to the same exact generic srmmu routines. Furthermore, we were inconsistently marking the fixup as either BTFIXUPCALL_SWAPO0G0 or BTFIXUPCALL_NORM. What a mess, glad we could untangle this stuff. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Un-btfixup PGDIR_{SHIFT,SIZE,MASK} {USER_,}PTRS_PER_{PGD,PMD}David S. Miller2012-05-122-23/+6
| | | | | | Only one set of values exist, the SRMMU ones. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop unused type/externSam Ravnborg2012-05-122-14/+0
| | | | | Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup for check_pgt_cacheSam Ravnborg2012-05-124-27/+1
| | | | | | | | | It is a noop for srmmu - so use a define as sparc64 does. And drop all sparc callers - no need to confuse our-self be calling a noop function. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop btfixup for switch_mmSam Ravnborg2012-05-122-6/+4
| | | | | | | | | This revealed that the implementation of switch_mm had a bogus extra argument. No harm as said argument was never used - but confusing. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: code cleanup in floppy glueSam Ravnborg2012-05-121-9/+8
| | | | | | | | | Small cleanup to improve readability. Dropped one test for sparc_cpu_model - we already know that only sun4m support floppy. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: fix warning in floopy glueSam Ravnborg2012-05-121-0/+1
| | | | | | | | | | | Fix following warning: arch/sparc/include/asm/floppy_32.h:342:5: warning: 'op' may be used uninitialized in this function The warning are legitimite and we can end up using op uninitialized. This fixes build with my gcc on UP. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: simpler cputype check in head_32.SSam Ravnborg2012-05-121-25/+9
| | | | | | | | We know this is not a sun4/sun4c - as we checked earlier. So no need to repeat the check. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop extra getprop call during bootSam Ravnborg2012-05-121-41/+9
| | | | | | | | | It was present only to support the sun4, sun4c boxes which do not have the "compatible" property in the root-node of the device tree. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: drop prom version check in head_32.SSam Ravnborg2012-05-121-13/+0
| | | | | | | | | We already sorted out if we are a sun4/sun4c and halted. So no need to check the prom version as we know this is a v2 or v3 as sun4m, sun4d etc. does not use a v1 prom. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: remove sun4c specific variables from head_32.SSam Ravnborg2012-05-121-10/+1
| | | | | | | This gives us back 7 pages... Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Add back early sun4/sun4c detection so we can warn properly.David S. Miller2012-05-121-0/+23
| | | | | | | We need to do the check before we try to remap the kernel using SRMMU operations. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Trivial removal of sun4c references in comments.David S. Miller2012-05-129-24/+8
| | | | | | | | I left some around, like the ones in the openprom headers, since we need to think about which pieces of those datastructures and code we can completely toss now. Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Remove sun4 and sun4c from enum sparc_cpu.David S. Miller2012-05-125-56/+11
| | | | | | | | | All the remaining references are trivially removed since we've just eliminated the final reference to sparc_cpu_model from assembler code in commit b7d96ce189564e661909fbf8df39d7358149885b ("sparc32: Remove sparc_cpu_model read from floppy interrupt handler.") Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Remove sparc_cpu_model read from floppy interrupt handler.David S. Miller2012-05-121-2/+0
| | | | | | | | | Since we no longer test the cpu model value, no need to load it into a register any more. It just gets overwritten in the next instruction anyways. :-) Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc32: Kill unused defines from asm/head_32.hDavid S. Miller2012-05-111-7/+0
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
OpenPOWER on IntegriCloud