diff mbox series

[1/4] i3c: mipi-i3c-hci: Switch to lower_32_bits()/upper_32_bits() helpers

Message ID 20240628131559.502822-1-jarkko.nikula@linux.intel.com (mailing list archive)
State Accepted
Headers show
Series [1/4] i3c: mipi-i3c-hci: Switch to lower_32_bits()/upper_32_bits() helpers | expand

Commit Message

Jarkko Nikula June 28, 2024, 1:15 p.m. UTC
Rather than having own lo32()/hi32() helpers for dealing with 32-bit and
64-bit build targets switch to generic lower_32_bits()/upper_32_bits()
helpers.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
---
 drivers/i3c/master/mipi-i3c-hci/dma.c | 27 ++++++---------------------
 1 file changed, 6 insertions(+), 21 deletions(-)

Comments

Alexandre Belloni June 28, 2024, 2:42 p.m. UTC | #1
On Fri, 28 Jun 2024 16:15:56 +0300, Jarkko Nikula wrote:
> Rather than having own lo32()/hi32() helpers for dealing with 32-bit and
> 64-bit build targets switch to generic lower_32_bits()/upper_32_bits()
> helpers.
> 
> 

Applied, thanks!

[1/4] i3c: mipi-i3c-hci: Switch to lower_32_bits()/upper_32_bits() helpers
      https://git.kernel.org/abelloni/c/8b4813a33a4b
[2/4] i3c: mipi-i3c-hci: Set IBI Status and Data Ring base addresses
      https://git.kernel.org/abelloni/c/a95d8fa46962
[3/4] i3c: mipi-i3c-hci: Error out instead on BUG_ON() in IBI DMA setup
      https://git.kernel.org/abelloni/c/3b85c83cce0b
[4/4] i3c: mipi-i3c-hci: Round IBI data chunk size to HW supported value
      https://git.kernel.org/abelloni/c/67678602c4fc

Best regards,
diff mbox series

Patch

diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c
index 4e01a95cc4d0..6c5964e727b3 100644
--- a/drivers/i3c/master/mipi-i3c-hci/dma.c
+++ b/drivers/i3c/master/mipi-i3c-hci/dma.c
@@ -147,21 +147,6 @@  struct hci_dma_dev_ibi_data {
 	unsigned int max_len;
 };
 
-static inline u32 lo32(dma_addr_t physaddr)
-{
-	return physaddr;
-}
-
-static inline u32 hi32(dma_addr_t physaddr)
-{
-	/* trickery to avoid compiler warnings on 32-bit build targets */
-	if (sizeof(dma_addr_t) > 4) {
-		u64 hi = physaddr;
-		return hi >> 32;
-	}
-	return 0;
-}
-
 static void hci_dma_cleanup(struct i3c_hci *hci)
 {
 	struct hci_rings_data *rings = hci->io_data;
@@ -265,10 +250,10 @@  static int hci_dma_init(struct i3c_hci *hci)
 		if (!rh->xfer || !rh->resp || !rh->src_xfers)
 			goto err_out;
 
-		rh_reg_write(CMD_RING_BASE_LO, lo32(rh->xfer_dma));
-		rh_reg_write(CMD_RING_BASE_HI, hi32(rh->xfer_dma));
-		rh_reg_write(RESP_RING_BASE_LO, lo32(rh->resp_dma));
-		rh_reg_write(RESP_RING_BASE_HI, hi32(rh->resp_dma));
+		rh_reg_write(CMD_RING_BASE_LO, lower_32_bits(rh->xfer_dma));
+		rh_reg_write(CMD_RING_BASE_HI, upper_32_bits(rh->xfer_dma));
+		rh_reg_write(RESP_RING_BASE_LO, lower_32_bits(rh->resp_dma));
+		rh_reg_write(RESP_RING_BASE_HI, upper_32_bits(rh->resp_dma));
 
 		regval = FIELD_PREP(CR_RING_SIZE, rh->xfer_entries);
 		rh_reg_write(CR_SETUP, regval);
@@ -404,8 +389,8 @@  static int hci_dma_queue_xfer(struct i3c_hci *hci,
 				hci_dma_unmap_xfer(hci, xfer_list, i);
 				return -ENOMEM;
 			}
-			*ring_data++ = lo32(xfer->data_dma);
-			*ring_data++ = hi32(xfer->data_dma);
+			*ring_data++ = lower_32_bits(xfer->data_dma);
+			*ring_data++ = upper_32_bits(xfer->data_dma);
 		} else {
 			*ring_data++ = 0;
 			*ring_data++ = 0;