• Vladimir Oltean's avatar
    devres: keep both device name and resource name in pretty name · 35bd8c07
    Vladimir Oltean authored
    Sometimes debugging a device is easiest using devmem on its register
    map, and that can be seen with /proc/iomem. But some device drivers have
    many memory regions. Take for example a networking switch. Its memory
    map used to look like this in /proc/iomem:
    
    1fc000000-1fc3fffff : pcie@1f0000000
      1fc000000-1fc3fffff : 0000:00:00.5
        1fc010000-1fc01ffff : sys
        1fc030000-1fc03ffff : rew
        1fc060000-1fc0603ff : s2
        1fc070000-1fc0701ff : devcpu_gcb
        1fc080000-1fc0800ff : qs
        1fc090000-1fc0900cb : ptp
        1fc100000-1fc10ffff : port0
        1fc110000-1fc11ffff : port1
        1fc120000-1fc12ffff : port2
        1fc130000-1fc13ffff : port3
        1fc140000-1fc14ffff : port4
        1fc150000-1fc15ffff : port5
        1fc200000-1fc21ffff : qsys
        1fc280000-1fc28ffff : ana
    
    But after the patch in Fixes: was applied, the information is now
    presented in a much more opaque way:
    
    1fc000000-1fc3fffff : pcie@1f0000000
      1fc000000-1fc3fffff : 0000:00:00.5
        1fc010000-1fc01ffff : 0000:00:00.5
        1fc030000-1fc03ffff : 0000:00:00.5
        1fc060000-1fc0603ff : 0000:00:00.5
        1fc070000-1fc0701ff : 0000:00:00.5
        1fc080000-1fc0800ff : 0000:00:00.5
        1fc090000-1fc0900cb : 0000:00:00.5
        1fc100000-1fc10ffff : 0000:00:00.5
        1fc110000-1fc11ffff : 0000:00:00.5
        1fc120000-1fc12ffff : 0000:00:00.5
        1fc130000-1fc13ffff : 0000:00:00.5
        1fc140000-1fc14ffff : 0000:00:00.5
        1fc150000-1fc15ffff : 0000:00:00.5
        1fc200000-1fc21ffff : 0000:00:00.5
        1fc280000-1fc28ffff : 0000:00:00.5
    
    That patch made a fair comment that /proc/iomem might be confusing when
    it shows resources without an associated device, but we can do better
    than just hide the resource name altogether. Namely, we can print the
    device name _and_ the resource name. Like this:
    
    1fc000000-1fc3fffff : pcie@1f0000000
      1fc000000-1fc3fffff : 0000:00:00.5
        1fc010000-1fc01ffff : 0000:00:00.5 sys
        1fc030000-1fc03ffff : 0000:00:00.5 rew
        1fc060000-1fc0603ff : 0000:00:00.5 s2
        1fc070000-1fc0701ff : 0000:00:00.5 devcpu_gcb
        1fc080000-1fc0800ff : 0000:00:00.5 qs
        1fc090000-1fc0900cb : 0000:00:00.5 ptp
        1fc100000-1fc10ffff : 0000:00:00.5 port0
        1fc110000-1fc11ffff : 0000:00:00.5 port1
        1fc120000-1fc12ffff : 0000:00:00.5 port2
        1fc130000-1fc13ffff : 0000:00:00.5 port3
        1fc140000-1fc14ffff : 0000:00:00.5 port4
        1fc150000-1fc15ffff : 0000:00:00.5 port5
        1fc200000-1fc21ffff : 0000:00:00.5 qsys
        1fc280000-1fc28ffff : 0000:00:00.5 ana
    
    Fixes: 8d84b18f ("devres: always use dev_name() in devm_ioremap_resource()")
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20200601095826.1757621-1-olteanv@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    35bd8c07
devres.c 12 KB