Messages in this thread | | | Date | Mon, 22 Oct 2012 11:18:26 +0200 (CEST) | From | Julia Lawall <> | Subject | Re: [PATCH 0/11] introduce macros for i2c_msg initialization |
| |
I have been looking at this again, with the macros
#define I2C_MSG_OP(_addr, _buf, _len, _flags) \ { .addr = _addr, .buf = _buf, .len = _len, .flags = _flags }
#define I2C_MSG_WRITE(addr, buf, len) \ I2C_MSG_OP(addr, buf, len, 0) #define I2C_MSG_READ(addr, buf, len) \ I2C_MSG_OP(addr, buf, len, I2C_M_RD) #define I2C_MSG_WRITE_OP(addr, buf, len, op) \ I2C_MSG_OP(addr, buf, len, 0 | op) #define I2C_MSG_READ_OP(addr, buf, len, op) \ I2C_MSG_OP(addr, buf, len, I2C_M_RD | op)
and the tuners files as a random first example. This time I haven't made any adjustments for arrays of size 1.
The following file is a bit unfortunate, because a single structure is mostly used for writing, but sometimes used for reading, in the function tda827xa_set_params. That is, there are explicit assignments to msg.flags.
drivers/media/tuners/tda827x.c
Currently, this is done in 8 files across the entire kernel. Would it be a problem to use a READ or WRITE macro to initialize such a structure, give that the type is going to change? Maybe the I2C_MSG_OP macro could be used, with an explicit flag argument?
julia
| |