arch/arm/plat-pxa/dma.c: correct NULL test
[safe/jmp/linux-2.6] / arch / arm / mm / proc-xsc3.S
index 4e4ce88..e5797f1 100644 (file)
@@ -257,7 +257,7 @@ ENTRY(xsc3_flush_kern_dcache_area)
  *     - start  - virtual start address
  *     - end    - virtual end address
  */
-ENTRY(xsc3_dma_inv_range)
+xsc3_dma_inv_range:
        tst     r0, #CACHELINESIZE - 1
        bic     r0, r0, #CACHELINESIZE - 1
        mcrne   p15, 0, r0, c7, c10, 1          @ clean L1 D line
@@ -278,7 +278,7 @@ ENTRY(xsc3_dma_inv_range)
  *     - start  - virtual start address
  *     - end    - virtual end address
  */
-ENTRY(xsc3_dma_clean_range)
+xsc3_dma_clean_range:
        bic     r0, r0, #CACHELINESIZE - 1
 1:     mcr     p15, 0, r0, c7, c10, 1          @ clean L1 D line
        add     r0, r0, #CACHELINESIZE
@@ -337,8 +337,6 @@ ENTRY(xsc3_cache_fns)
        .long   xsc3_flush_kern_dcache_area
        .long   xsc3_dma_map_area
        .long   xsc3_dma_unmap_area
-       .long   xsc3_dma_inv_range
-       .long   xsc3_dma_clean_range
        .long   xsc3_dma_flush_range
 
 ENTRY(cpu_xsc3_dcache_clean_area)
@@ -433,6 +431,13 @@ __xsc3_setup:
 
        adr     r5, xsc3_crval
        ldmia   r5, {r5, r6}
+
+#ifdef CONFIG_CACHE_XSC3L2
+       mrc     p15, 1, r0, c0, c0, 1           @ get L2 present information
+       ands    r0, r0, #0xf8
+       orrne   r6, r6, #(1 << 26)              @ enable L2 if present
+#endif
+
        mrc     p15, 0, r0, c1, c0, 0           @ get control register
        bic     r0, r0, r5                      @ ..V. ..R. .... ..A.
        orr     r0, r0, r6                      @ ..VI Z..S .... .C.M (mmu)