[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <82ce69fe-42fc-4199-bf78-4a147c26048a@linux.intel.com>
Date: Wed, 22 Jan 2025 10:28:01 +0200
From: Jarkko Nikula <jarkko.nikula@...ux.intel.com>
To: Billy Tsai <billy_tsai@...eedtech.com>, alexandre.belloni@...tlin.com,
pgaj@...ence.com, miquel.raynal@...tlin.com, conor.culhane@...vaco.com,
aniketmaurya@...gle.com, Shyam-sundar.S-k@....com,
wsa+renesas@...g-engineering.com, xiaopei01@...inos.cn,
Guruvendra.Punugupati@....com, linux-i3c@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 2/2] i3c: mipi-i3c-hci: Use DMA-safe buffer for I2C
transfers
On 1/21/25 1:07 PM, Billy Tsai wrote:
> The i2c_get_dma_safe_msg_buf function is used to ensure safe handling of
> I2C messages in HCI DMA mode.
>
> Signed-off-by: Billy Tsai <billy_tsai@...eedtech.com>
> ---
> drivers/i3c/master/mipi-i3c-hci/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c
> index a408feac3e9e..3567cd566339 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/core.c
> +++ b/drivers/i3c/master/mipi-i3c-hci/core.c
> @@ -382,7 +382,7 @@ 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]);
This allow to remove calls to i3c_hci_alloc_safe_xfer_buf() and
i3c_hci_free_safe_xfer_buf() in i3c_hci_i2c_xfers().
I was pondering the i2c_get_dma_safe_msg_buf() when making commit
4afd72876942 ("i3c: mipi-i3c-hci: Add DMA bounce buffer for private
transfers") but decided to reuse the same (own) helper for both
i3c_hci_priv_xfers() and i3c_hci_i2c_xfers().
In that sense I'd modify the commit log a bit that instead of ensuring
safe handling patch switches from custom helper to
i2c_get_dma_safe_msg_buf() and i2c_put_dma_safe_msg_buf() (please note
the comment from Wolfram).
Powered by blists - more mailing lists