ARM:VFP:VFP suspend/resume fix
authorBangaragiri G <bangaragiri.g@nxp.com>
Thu, 17 Mar 2011 04:07:16 +0000 (09:07 +0530)
committerBangaragiri G <bangaragiri.g@nxp.com>
Thu, 17 Mar 2011 04:07:16 +0000 (09:07 +0530)
The VFP resume function was crashing during vfp_enable
function. The vfp_enable function is setting the access
to coprocessors by writing to coprocessor access control
register. This is valid for only ARMv6 cores. This
patch fixes this fix.

Signed-off-by: Bangaragiri G <bangaragiri.g@nxp.com>

arch/arm/vfp/vfpmodule.c

index 315a540..9bbdec6 100644 (file)
@@ -398,8 +398,12 @@ static int vfp_pm_suspend(struct sys_device *dev, pm_message_t state)
 
 static int vfp_pm_resume(struct sys_device *dev)
 {
+       unsigned int cpu_arch = cpu_architecture();
+
        /* ensure we have access to the vfp */
-       vfp_enable(NULL);
+       if (cpu_arch >= CPU_ARCH_ARMv6) {
+               vfp_enable(NULL);
+       }
 
        /* and disable it to ensure the next usage restores the state */
        fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);