mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-14 13:19:36 +02:00
i3c: add actual_len in i3c_priv_xfer
[ Upstream commite5e3df06ac
] In MIPI I3C Specification: "Ninth Bit of SDR Target Returned (Read) Data as End-of-Data: In I2C, the ninth Data bit from Target to Controller is an ACK by the Controller. By contrast, in I3C this bit allows the Target to end a Read, and allows the Controller to Abort a Read. In SDR terms, the ninth bit of Read data is referred to as the T-Bit (for ‘Transition’)" I3C allow devices early terminate data transfer. So need "actual_len" field to indicate how much get by i3c_priv_xfer. Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20231201222532.2431484-4-Frank.Li@nxp.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Stable-dep-of:7f3d633b46
("i3c: master: svc: change ENXIO to EAGAIN when IBI occurs during start frame") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
04207a9c64
commit
fe52ab31f0
|
@ -54,6 +54,7 @@ enum i3c_hdr_mode {
|
|||
* struct i3c_priv_xfer - I3C SDR private transfer
|
||||
* @rnw: encodes the transfer direction. true for a read, false for a write
|
||||
* @len: transfer length in bytes of the transfer
|
||||
* @actual_len: actual length in bytes are transferred by the controller
|
||||
* @data: input/output buffer
|
||||
* @data.in: input buffer. Must point to a DMA-able buffer
|
||||
* @data.out: output buffer. Must point to a DMA-able buffer
|
||||
|
@ -62,6 +63,7 @@ enum i3c_hdr_mode {
|
|||
struct i3c_priv_xfer {
|
||||
u8 rnw;
|
||||
u16 len;
|
||||
u16 actual_len;
|
||||
union {
|
||||
void *in;
|
||||
const void *out;
|
||||
|
|
Loading…
Reference in New Issue
Block a user