I2C has no requirement that the buffer of a message needs to be DMA safe. In case it is, it can now be flagged, so drivers wishing to do DMA can use the buffer directly.
Showing the changes to include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -72,6 +72,9 @@ struct i2c_msg { · 71 unmodified lines | |||
| 72 | #define I2C_M_RD 0x0001 /* read data, from slave to master */ | 72 | #define I2C_M_RD 0x0001 /* read data, from slave to master */ |
| 73 | /* I2C_M_RD is guaranteed to be 0x0001! */ | 73 | /* I2C_M_RD is guaranteed to be 0x0001! */ |
| 74 | #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ | 74 | #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ |
| 75 | #define I2C_M_DMA_SAFE 0x0200 /* the buffer of this message is DMA safe */ | ||
| 76 | /* makes only sense in kernelspace */ | ||
| 77 | /* userspace buffers are copied anyway */ | ||
| 75 | #define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ | 78 | #define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ |
| 76 | #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ | 79 | #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ |
| 77 | #define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ | 80 | #define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ |