[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230522103327.16e95d02@xps-13>
Date: Mon, 22 May 2023 10:33:27 +0200
From: Miquel Raynal <miquel.raynal@...tlin.com>
To: Clark Wang <xiaoning.wang@....com>
Cc: conor.culhane@...vaco.com, alexandre.belloni@...tlin.com,
linux-i3c@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] i3c: master: svc: add NACK check after start byte sent
Hi Clark,
xiaoning.wang@....com wrote on Wed, 17 May 2023 11:30:30 +0800:
> Add NACK check after start byte is sent.
> It is possible to detect early that a device is not on the bus
> and avoid invalid transmissions thereafter.
>
> Signed-off-by: Clark Wang <xiaoning.wang@....com>
Nice addition.
Reviewed-by: Miquel Raynal <miquel.raynal@...tlin.com>
> ---
> drivers/i3c/master/svc-i3c-master.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
> index 4edf33ed207d..0d63b732ef0c 100644
> --- a/drivers/i3c/master/svc-i3c-master.c
> +++ b/drivers/i3c/master/svc-i3c-master.c
> @@ -92,6 +92,7 @@
> #define SVC_I3C_MINTCLR 0x094
> #define SVC_I3C_MINTMASKED 0x098
> #define SVC_I3C_MERRWARN 0x09C
> +#define SVC_I3C_MERRWARN_NACK BIT(2)
> #define SVC_I3C_MDMACTRL 0x0A0
> #define SVC_I3C_MDATACTRL 0x0AC
> #define SVC_I3C_MDATACTRL_FLUSHTB BIT(0)
> @@ -1014,6 +1015,11 @@ static int svc_i3c_master_xfer(struct svc_i3c_master *master,
> if (ret)
> goto emit_stop;
>
> + if (readl(master->regs + SVC_I3C_MERRWARN) & SVC_I3C_MERRWARN_NACK) {
> + ret = -ENXIO;
> + goto emit_stop;
> + }
> +
> if (rnw)
> ret = svc_i3c_master_read(master, in, xfer_len);
> else
Thanks,
Miquèl
Powered by blists - more mailing lists