• Mark Rutland's avatar
    arm64: Introduce sysreg_clear_set() · 6ebdf4db
    Mark Rutland authored
    Currently we have a couple of helpers to manipulate bits in particular
    sysregs:
    
     * config_sctlr_el1(u32 clear, u32 set)
    
     * change_cpacr(u64 val, u64 mask)
    
    The parameters of these differ in naming convention, order, and size,
    which is unfortunate. They also differ slightly in behaviour, as
    change_cpacr() skips the sysreg write if the bits are unchanged, which
    is a useful optimization when sysreg writes are expensive.
    
    Before we gain yet another sysreg manipulation function, let's
    unify these with a common helper, providing a consistent order for
    clear/set operands, and the write skipping behaviour from
    change_cpacr(). Code will be migrated to the new helper in subsequent
    patches.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Reviewed-by: default avatarDave Martin <dave.martin@arm.com>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    6ebdf4db
sysreg.h 25 KB