• M
    arm64/sve: Put system wide vector length information into structs · b5bc00ff
    Mark Brown 提交于
    With the introduction of SME we will have a second vector length in the
    system, enumerated and configured in a very similar fashion to the
    existing SVE vector length.  While there are a few differences in how
    things are handled this is a relatively small portion of the overall
    code so in order to avoid code duplication we factor out
    
    We create two structs, one vl_info for the static hardware properties
    and one vl_config for the runtime configuration, with an array
    instantiated for each and update all the users to reference these. Some
    accessor functions are provided where helpful for readability, and the
    write to set the vector length is put into a function since the system
    register being updated needs to be chosen at compile time.
    
    This is a mostly mechanical replacement, further work will be required
    to actually make things generic, ensuring that we handle those places
    where there are differences properly.
    Signed-off-by: NMark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20211019172247.3045838-8-broonie@kernel.orgSigned-off-by: NWill Deacon <will@kernel.org>
    b5bc00ff
processor.h 10.0 KB