Message ID | 20250318053606.3087121-3-yschu@nuvoton.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | Some fixes for Silvaco I3C controller driver | expand |
On Tue, Mar 18, 2025 at 01:36:05PM +0800, Stanley Chu wrote: > From: Stanley Chu <yschu@nuvoton.com> > > The target can send the MDB byte followed by additional data bytes. > The readl on MRDATAB reads one actual byte, but the readsl advances > the destination pointer by 4 bytes. This causes the subsequent payload > to be copied to wrong position in the destination buffer. > > Cc: stable@kernel.org > Fixes: dd3c52846d59 ("i3c: master: svc: Add Silvaco I3C master driver") > Signed-off-by: Stanley Chu <yschu@nuvoton.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> > --- > drivers/i3c/master/svc-i3c-master.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c > index a72ba5a7edd4..57b9dec6b5a8 100644 > --- a/drivers/i3c/master/svc-i3c-master.c > +++ b/drivers/i3c/master/svc-i3c-master.c > @@ -425,7 +425,7 @@ static int svc_i3c_master_handle_ibi(struct svc_i3c_master *master, > slot->len < SVC_I3C_FIFO_SIZE) { > mdatactrl = readl(master->regs + SVC_I3C_MDATACTRL); > count = SVC_I3C_MDATACTRL_RXCOUNT(mdatactrl); > - readsl(master->regs + SVC_I3C_MRDATAB, buf, count); > + readsb(master->regs + SVC_I3C_MRDATAB, buf, count); > slot->len += count; > buf += count; > } > -- > 2.34.1 >
diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c index a72ba5a7edd4..57b9dec6b5a8 100644 --- a/drivers/i3c/master/svc-i3c-master.c +++ b/drivers/i3c/master/svc-i3c-master.c @@ -425,7 +425,7 @@ static int svc_i3c_master_handle_ibi(struct svc_i3c_master *master, slot->len < SVC_I3C_FIFO_SIZE) { mdatactrl = readl(master->regs + SVC_I3C_MDATACTRL); count = SVC_I3C_MDATACTRL_RXCOUNT(mdatactrl); - readsl(master->regs + SVC_I3C_MRDATAB, buf, count); + readsb(master->regs + SVC_I3C_MRDATAB, buf, count); slot->len += count; buf += count; }