summaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/octeon/octeon.h
diff options
context:
space:
mode:
authorDavid Daney <david.daney@cavium.com>2015-01-15 16:11:05 +0300
committerRalf Baechle <ralf@linux-mips.org>2015-02-20 15:28:29 +0100
commitac655fb7626ea63b12ee5f449a082c79db6d2f26 (patch)
tree11f0a5c443773f0e8f42d2029a3b95e3c5ae2230 /arch/mips/include/asm/octeon/octeon.h
parent9d6b80faf9a5c47eaf10e9d5d0b6b911e902d21d (diff)
downloadop-kernel-dev-ac655fb7626ea63b12ee5f449a082c79db6d2f26.zip
op-kernel-dev-ac655fb7626ea63b12ee5f449a082c79db6d2f26.tar.gz
MIPS: OCTEON: Save/Restore wider multiply registers in OCTEON III CPUs
The wide multiplier is twice as wide, so we need to save twice as much state. Detect the multiplier type (CPU type) at start up and install model specific handlers. [aleksey.makarov@auriga.com: conflict resolution, support for old compilers] Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Leonid Rosenboim <lrosenboim@caviumnetworks.com> Signed-off-by: Aleksey Makarov <aleksey.makarov@auriga.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/8933/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/octeon/octeon.h')
-rw-r--r--arch/mips/include/asm/octeon/octeon.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h
index d781f9e..3e505a2 100644
--- a/arch/mips/include/asm/octeon/octeon.h
+++ b/arch/mips/include/asm/octeon/octeon.h
@@ -229,6 +229,19 @@ static inline void octeon_npi_write32(uint64_t address, uint32_t val)
cvmx_read64_uint32(address ^ 4);
}
+/* Octeon multiplier save/restore routines from octeon_switch.S */
+void octeon_mult_save(void);
+void octeon_mult_restore(void);
+void octeon_mult_save_end(void);
+void octeon_mult_restore_end(void);
+void octeon_mult_save3(void);
+void octeon_mult_save3_end(void);
+void octeon_mult_save2(void);
+void octeon_mult_save2_end(void);
+void octeon_mult_restore3(void);
+void octeon_mult_restore3_end(void);
+void octeon_mult_restore2(void);
+void octeon_mult_restore2_end(void);
/**
* Read a 32bit value from the Octeon NPI register space
OpenPOWER on IntegriCloud