Message ID | 20250204091702.4014466-2-billy_tsai@aspeedtech.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] i3c: Remove the const qualifier from i2c_msg pointer in i2c_xfers API | expand |
Looks good to me ! On 2/4/2025 2:47 PM, Billy Tsai wrote: > Use the i2c_get/put_dma_safe_msg_buf for I2C transfers instead of using > the I3C-specific API. > > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com> > --- > drivers/i3c/master/mipi-i3c-hci/core.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c > index a408feac3e9e..4f3738beb0f2 100644 > --- a/drivers/i3c/master/mipi-i3c-hci/core.c > +++ b/drivers/i3c/master/mipi-i3c-hci/core.c > @@ -382,14 +382,11 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, > return -ENOMEM; > > for (i = 0; i < nxfers; i++) { > - xfer[i].data = i2c_xfers[i].buf; > + xfer[i].data = i2c_get_dma_safe_msg_buf(&i2c_xfers[i], 1); > xfer[i].data_len = i2c_xfers[i].len; > xfer[i].rnw = i2c_xfers[i].flags & I2C_M_RD; > hci->cmd->prep_i2c_xfer(hci, dev, &xfer[i]); > xfer[i].cmd_desc[0] |= CMD_0_ROC; > - ret = i3c_hci_alloc_safe_xfer_buf(hci, &xfer[i]); > - if (ret) > - goto out; > } > last = i - 1; > xfer[last].cmd_desc[0] |= CMD_0_TOC; > @@ -412,7 +409,8 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, > > out: > for (i = 0; i < nxfers; i++) > - i3c_hci_free_safe_xfer_buf(hci, &xfer[i]); > + i2c_put_dma_safe_msg_buf(xfer[i].data, &i2c_xfers[i], > + ret ? false : true); > > hci_free_xfer(xfer, nxfers); > return ret;
On 2/4/25 5:16 PM, Mukesh Kumar Savaliya wrote: > Looks good to me ! > > On 2/4/2025 2:47 PM, Billy Tsai wrote: >> Use the i2c_get/put_dma_safe_msg_buf for I2C transfers instead of using >> the I3C-specific API. >> >> Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com> Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
On Tue, Feb 04, 2025 at 05:17:02PM +0800, Billy Tsai wrote: > Use the i2c_get/put_dma_safe_msg_buf for I2C transfers instead of using > the I3C-specific API. > > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > --- > drivers/i3c/master/mipi-i3c-hci/core.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c > index a408feac3e9e..4f3738beb0f2 100644 > --- a/drivers/i3c/master/mipi-i3c-hci/core.c > +++ b/drivers/i3c/master/mipi-i3c-hci/core.c > @@ -382,14 +382,11 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, > return -ENOMEM; > > for (i = 0; i < nxfers; i++) { > - xfer[i].data = i2c_xfers[i].buf; > + xfer[i].data = i2c_get_dma_safe_msg_buf(&i2c_xfers[i], 1); 1 should true? Frank > xfer[i].data_len = i2c_xfers[i].len; > xfer[i].rnw = i2c_xfers[i].flags & I2C_M_RD; > hci->cmd->prep_i2c_xfer(hci, dev, &xfer[i]); > xfer[i].cmd_desc[0] |= CMD_0_ROC; > - ret = i3c_hci_alloc_safe_xfer_buf(hci, &xfer[i]); > - if (ret) > - goto out; > } > last = i - 1; > xfer[last].cmd_desc[0] |= CMD_0_TOC; > @@ -412,7 +409,8 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, > > out: > for (i = 0; i < nxfers; i++) > - i3c_hci_free_safe_xfer_buf(hci, &xfer[i]); > + i2c_put_dma_safe_msg_buf(xfer[i].data, &i2c_xfers[i], > + ret ? false : true); > > hci_free_xfer(xfer, nxfers); > return ret; > -- > 2.25.1 > > > -- > linux-i3c mailing list > linux-i3c@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-i3c
diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c index a408feac3e9e..4f3738beb0f2 100644 --- a/drivers/i3c/master/mipi-i3c-hci/core.c +++ b/drivers/i3c/master/mipi-i3c-hci/core.c @@ -382,14 +382,11 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, return -ENOMEM; for (i = 0; i < nxfers; i++) { - xfer[i].data = i2c_xfers[i].buf; + xfer[i].data = i2c_get_dma_safe_msg_buf(&i2c_xfers[i], 1); xfer[i].data_len = i2c_xfers[i].len; xfer[i].rnw = i2c_xfers[i].flags & I2C_M_RD; hci->cmd->prep_i2c_xfer(hci, dev, &xfer[i]); xfer[i].cmd_desc[0] |= CMD_0_ROC; - ret = i3c_hci_alloc_safe_xfer_buf(hci, &xfer[i]); - if (ret) - goto out; } last = i - 1; xfer[last].cmd_desc[0] |= CMD_0_TOC; @@ -412,7 +409,8 @@ static int i3c_hci_i2c_xfers(struct i2c_dev_desc *dev, out: for (i = 0; i < nxfers; i++) - i3c_hci_free_safe_xfer_buf(hci, &xfer[i]); + i2c_put_dma_safe_msg_buf(xfer[i].data, &i2c_xfers[i], + ret ? false : true); hci_free_xfer(xfer, nxfers); return ret;
Use the i2c_get/put_dma_safe_msg_buf for I2C transfers instead of using the I3C-specific API. Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> --- drivers/i3c/master/mipi-i3c-hci/core.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)