• Ivo van Doorn's avatar
    rt2x00: Calculate register offset during compile time · 9dad92b9
    Ivo van Doorn authored
    By using __ffs() the register offsets were always calculated
    at run-time which all FIELD32/FIELD16 definitions were builtin
    constants. This means we can heavily optimize the register handling
    by allowing GCC to do all the work during compilation.
    Add some compile_ffs() macros to perform the calculation at
    compile time. After this each rt2x00 module size is reduced
    by ~2500 bytes. And the stack size of several functions is reduced
    as well which further limits the number of rt2x00 results in
    'make checkstack'.
    v2: Merge GertJan's bugfix of patch [1/11] directly into this patch
          instead of providing it as seperate patch.
    v3: Add extra parentheses when bitshifting __x
    Signed-off-by: default avatarGertjan van Wingerde <gwingerde@kpnplanet.nl>
    Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>