ARM: vfp: Add vfp_disable for problematic platforms
Some platforms might not be able to fully utilize VFP when e.g: one CPU out of two in a SMP complex lacks a VFP unit. Adding code to migrate task to the CPU which has a VFP unit would be cumbersome and not performant, instead, just add the ability to disable VFP. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This commit is contained in:
parent
e7f0f37649
commit
7d7d7a413c
|
@ -91,4 +91,8 @@
|
|||
#define VFPOPDESC_UNUSED_MASK (0xFF << VFPOPDESC_UNUSED_BIT)
|
||||
#define VFPOPDESC_OPDESC_MASK (~(VFPOPDESC_LENGTH_MASK | VFPOPDESC_UNUSED_MASK))
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
void vfp_disable(void);
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_VFP_H */
|
||||
|
|
|
@ -445,6 +445,19 @@ static void vfp_enable(void *unused)
|
|||
set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11));
|
||||
}
|
||||
|
||||
/* Called by platforms on which we want to disable VFP because it may not be
|
||||
* present on all CPUs within a SMP complex. Needs to be called prior to
|
||||
* vfp_init().
|
||||
*/
|
||||
void vfp_disable(void)
|
||||
{
|
||||
if (VFP_arch) {
|
||||
pr_debug("%s: should be called prior to vfp_init\n", __func__);
|
||||
return;
|
||||
}
|
||||
VFP_arch = 1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CPU_PM
|
||||
static int vfp_pm_suspend(void)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue