Browse Source

MIPS: Octeon: Check all CCAs in cvmx_write_csr.

The current code only checks CCA of 0 when deciding if a dummy read is
needed.  Since the kernel can (and does) use other CCAs we need to
mask out the CCA bits from the address.  Since the address constant
now fits in 16 bits, there is an added benefit that smaller code is
generated.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
David Daney 16 years ago
parent
commit
2608441164
1 changed files with 1 additions and 1 deletions
  1. 1 1
      arch/mips/include/asm/octeon/cvmx.h

+ 1 - 1
arch/mips/include/asm/octeon/cvmx.h

@@ -271,7 +271,7 @@ static inline void cvmx_write_csr(uint64_t csr_addr, uint64_t val)
 	 * what RSL read we do, so we choose CVMX_MIO_BOOT_BIST_STAT
 	 * what RSL read we do, so we choose CVMX_MIO_BOOT_BIST_STAT
 	 * because it is fast and harmless.
 	 * because it is fast and harmless.
 	 */
 	 */
-	if ((csr_addr >> 40) == (0x800118))
+	if (((csr_addr >> 40) & 0x7ffff) == (0x118))
 		cvmx_read64(CVMX_MIO_BOOT_BIST_STAT);
 		cvmx_read64(CVMX_MIO_BOOT_BIST_STAT);
 }
 }