• Lars-Peter Clausen's avatar
    i2c: Remove redundant 'driver' field from the i2c_client struct · 0acc2b32
    Lars-Peter Clausen authored
    The 'driver' field of the i2c_client struct is redundant. The same data can be
    accessed through to_i2c_driver(client->dev.driver). The generated code for both
    approaches in more or less the same.
    
    E.g. on ARM the expression client->driver->command(...) generates
    
    		...
    		ldr     r3, [r0, #28]
    		ldr     r3, [r3, #32]
    		blx     r3
    		...
    
    and the expression to_i2c_driver(client->dev.driver)->command(...) generates
    
    		...
    		ldr     r3, [r0, #160]
        	ldr     r3, [r3, #-4]
        	blx     r3
    		...
    
    Other architectures will generate similar code.
    
    All users of the 'driver' field outside of the I2C core have already been
    converted. So this only leaves the core itself. This patch converts the
    remaining few users in the I2C core and then removes the 'driver' field from the
    i2c_client struct.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    0acc2b32
i2c-core.c 68 KB