• Ben Dooks's avatar
    [ARM] 5349/1: VFP: Add PM code to save and restore current VFP state · fc0b7a20
    Ben Dooks authored
    When CONFIG_PM is selected, the VFP code does not have any handler
    installed to deal with either saving the VFP state of the current
    task, nor does it do anything to try and restore the VFP after a
    resume.
    
    On resume, the VFP will have been reset and the co-processor access
    control registers are in an indeterminate state (very probably the
    CP10 and CP11 the VFP uses will have been disabled by the ARM core
    reset). When this happens, resume will break as soon as it tries to
    unfreeze the tasks and restart scheduling.
    
    Add a sys device to allow us to hook the suspend call to save the
    current thread state if the thread is using VFP and a resume hook
    which restores the CP10/CP11 access and ensures the VFP is disabled
    so that the lazy swapping will take place on next access.
    Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    fc0b7a20
vfpmodule.c 10.6 KB