2023-10-16 15:47:26

by Frank Li

[permalink] [raw]
Subject: [PATCH 2/5] i3c: add actual in i3c_priv_xfer

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" field to
indicate how much get by i3c_priv_xfer.

Signed-off-by: Frank Li <[email protected]>
---
include/linux/i3c/device.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/include/linux/i3c/device.h b/include/linux/i3c/device.h
index 90fa83464f00..f2fa7ee5d96d 100644
--- a/include/linux/i3c/device.h
+++ b/include/linux/i3c/device.h
@@ -66,6 +66,7 @@ struct i3c_priv_xfer {
void *in;
const void *out;
} data;
+ u16 actual;
enum i3c_error_code err;
};

--
2.34.1


2023-10-17 06:11:08

by Jarkko Nikula

[permalink] [raw]
Subject: Re: [PATCH 2/5] i3c: add actual in i3c_priv_xfer

Hi

On 10/16/23 18:46, Frank Li wrote:
> 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" field to
> indicate how much get by i3c_priv_xfer.
>
> Signed-off-by: Frank Li <[email protected]>
> ---
> include/linux/i3c/device.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/i3c/device.h b/include/linux/i3c/device.h
> index 90fa83464f00..f2fa7ee5d96d 100644
> --- a/include/linux/i3c/device.h
> +++ b/include/linux/i3c/device.h
> @@ -66,6 +66,7 @@ struct i3c_priv_xfer {
> void *in;
> const void *out;
> } data;
> + u16 actual;
> enum i3c_error_code err;
> };
>
Would this be more clear if named as "actual_len" and put next after
"len" field in this structure? Also kerneldoc comment is missing.