• Arnd Bergmann's avatar
    mfd: altera-sysmgr: Fix physical address storing more · b0b5b16b
    Arnd Bergmann authored
    A recent fix improved the way the resource gets passed to
    the low-level accessors, but left one warning that appears
    in configurations with a resource_size_t that is wider than
    a pointer:
    
    In file included from drivers/mfd/altera-sysmgr.c:19:
    drivers/mfd/altera-sysmgr.c: In function 'sysmgr_probe':
    drivers/mfd/altera-sysmgr.c:148:40: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
      148 |   regmap = devm_regmap_init(dev, NULL, (void *)res->start,
          |                                        ^
    include/linux/regmap.h:646:6: note: in definition of macro '__regmap_lockdep_wrapper'
      646 |   fn(__VA_ARGS__, &_key,     \
          |      ^~~~~~~~~~~
    drivers/mfd/altera-sysmgr.c:148:12: note: in expansion of macro 'devm_regmap_init'
      148 |   regmap = devm_regmap_init(dev, NULL, (void *)res->start,
          |            ^~~~~~~~~~~~~~~~
    
    I had tried a different approach that would store the address
    in the private data as a phys_addr_t, but the easiest solution
    now seems to be to add a double cast to shut up the warning.
    
    As the address is passed to an inline assembly, it is guaranteed
    to not be wider than a register anyway.
    
    Fixes: d9ca7801 ("mfd: altera-sysmgr: Fix physical address storing hacks")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    b0b5b16b
altera-sysmgr.c 4.98 KB