Lines Matching +full:boost +full:- +full:bypass
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Broadcom Brahma-B15 CPU read-ahead cache management functions
5 * Copyright (C) 2015-2016 Broadcom
20 #include <asm/hardware/cache-b15-rac.h>
34 /* Brahma-B15 is a quad-core only design */
36 /* Brahma-B53 is an octo-core design */
40 /* Bitmask to enable instruction and data prefetching with a 256-bytes stride */
47 /* Special state where we want to bypass the spinlock and call directly
59 * multi-platform kernels from crashing here as well.
128 /* The readahead cache present in the Brahma-B15 CPU is a special piece of
131 * or 256 bytes. The rationale is that the data-bus of the CPU interface is
132 * optimized for 256-bytes transactions, and enabling the readahead cache
133 * provides a significant performance boost we want it enabled (typically
186 * Once this CPU is marked dead, we can safely re-enable the RAC for the
190 * issue since the CPU and its cache-level hierarchy will start filling with
212 * We are choosing not do disable the RAC on a per-CPU basis, here, if we did
239 /* Running on a non-dying CPU */
261 /* Suspend the read-ahead cache oeprations, forcing our cache in b15_rac_suspend()
276 /* Coming out of a S3 suspend/resume cycle, the read-ahead cache in b15_rac_resume()
278 * sure we re-enable it and set the enable flag, we are also guaranteed in b15_rac_resume()
296 dn = of_find_compatible_node(NULL, NULL, "brcm,brcmstb-cpu-biu-ctrl"); in b15_rac_init()
298 return -ENODEV; in b15_rac_init()
306 ret = -ENOMEM; in b15_rac_init()
312 ret = -ENODEV; in b15_rac_init()
316 if (of_device_is_compatible(cpu_dn, "brcm,brahma-b15")) in b15_rac_init()
318 else if (of_device_is_compatible(cpu_dn, "brcm,brahma-b53")) in b15_rac_init()
323 ret = -EINVAL; in b15_rac_init()
337 "arm/cache-b15-rac:dead", in b15_rac_init()
343 "arm/cache-b15-rac:dying", in b15_rac_init()
356 WARN(reg & en_mask, "Read-ahead cache not previously disabled\n"); in b15_rac_init()
362 pr_info("%pOF: Broadcom Brahma-B15 readahead cache\n", dn); in b15_rac_init()