• Daniel Drake's avatar
    [PATCH] zd1211rw: Remove addressing abstraction · 0ce34bc8
    Daniel Drake authored
    Instead of passing our own custom 32-bit addresses around and
    translating them, this patch makes all our register address constants
    absolute and removes the translation.
    
    There are two ugly parts:
     - fw_reg_addr() is needed to compute addresses of firmware registers, as this
       is dynamic based upon firmware
     - inc_addr() needs a small hack to handle byte vs word addressing
    
    However, both of those are only small, and we don't use fw_regs a whole
    lot anyway.
    
    The bonuses here include simplicity and improved driver readability. Also, the
    fact that registers are now referenced by 16-bit absolute addresses (as
    opposed to 32-bit pseudo addresses) means that over 2kb compiled code size has
    been shaved off.
    
    Includes some touchups and sparse fixes from Ulrich Kunitz.
    Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    0ce34bc8
zd_chip.h 28.9 KB