From cc417680dc77b5fc388a36327563c20c8ae8d6ae Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 16 Mar 2026 01:31:33 +0100 Subject: remoteproc: renesas: apmu: Fix typo in Kconfig symbol help text Fix typo in Kconfig symbol help text, change incorrect A52 to correct R52. No functional change. Signed-off-by: Marek Vasut Acked-by: Peng Fan --- drivers/remoteproc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index 8056f210abc..f07ae903a28 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig @@ -45,7 +45,7 @@ config REMOTEPROC_RENESAS_APMU select REMOTEPROC depends on ARCH_RENESAS && RCAR_GEN4 && DM && OF_CONTROL help - Say 'y' here to add support for Renesas R-Car Gen4 Cortex-A52 + Say 'y' here to add support for Renesas R-Car Gen4 Cortex-R52 processor via the remoteproc framework. config REMOTEPROC_SANDBOX -- cgit v1.2.3 From d3c7fb5eb92d5e5f38df49d0cb4edad385d2ff61 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 16 Mar 2026 00:55:33 +0100 Subject: serial: sh: Handle HSCIF on all 64-bit R-Car SoC The HSCIF variant present on Renesas R-Car Gen5 SoC is compatible with the HSCIF variant present on Renesas R-Car Gen4 SoC. Enable HSSRR register programming for HSCIF present on all 64-bit R-Car SoCs, which covers R-Car Gen3, Gen4 and newly also Gen5. Signed-off-by: Marek Vasut --- drivers/serial/serial_sh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c index 7ab62e0e90b..bc205234e24 100644 --- a/drivers/serial/serial_sh.c +++ b/drivers/serial/serial_sh.c @@ -59,7 +59,7 @@ static void sh_serial_init_generic(struct uart_port *port) sci_out(port, SCSPTR, 0x0003); #endif -#if IS_ENABLED(CONFIG_RCAR_GEN2) || IS_ENABLED(CONFIG_RCAR_GEN3) || IS_ENABLED(CONFIG_RCAR_GEN4) +#if IS_ENABLED(CONFIG_RCAR_GEN2) || IS_ENABLED(CONFIG_RCAR_GEN3) || IS_ENABLED(CONFIG_RCAR_GEN4) || IS_ENABLED(CONFIG_RCAR_GEN5) if (port->type == PORT_HSCIF) sci_out(port, HSSRR, HSSRR_SRE | HSSRR_SRCYC8); #endif -- cgit v1.2.3 From 4a95a2a9e13ab05e4fc309f92bc33998d80afe01 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Mon, 16 Mar 2026 00:58:26 +0100 Subject: ufs: Remap CPU to bus addresses using dev_phys_to_bus() Use dev_phys_to_bus() to convert CPU addresses of DMA descriptors into bus addresses of DMA descriptors. This is necessary on hardware which does not have 1:1 mapping between CPU and memory addressed by the DMA. This has no impact on other hardware which does not need this conversion. Signed-off-by: Marek Vasut --- drivers/ufs/ufs-uclass.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'drivers') diff --git a/drivers/ufs/ufs-uclass.c b/drivers/ufs/ufs-uclass.c index bb997aace8f..81fd431f951 100644 --- a/drivers/ufs/ufs-uclass.c +++ b/drivers/ufs/ufs-uclass.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -466,13 +467,13 @@ static int ufshcd_make_hba_operational(struct ufs_hba *hba) ufshcd_disable_intr_aggr(hba); /* Configure UTRL and UTMRL base address registers */ - ufshcd_writel(hba, lower_32_bits((dma_addr_t)hba->utrdl), + ufshcd_writel(hba, lower_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utrdl))), REG_UTP_TRANSFER_REQ_LIST_BASE_L); - ufshcd_writel(hba, upper_32_bits((dma_addr_t)hba->utrdl), + ufshcd_writel(hba, upper_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utrdl))), REG_UTP_TRANSFER_REQ_LIST_BASE_H); - ufshcd_writel(hba, lower_32_bits((dma_addr_t)hba->utmrdl), + ufshcd_writel(hba, lower_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utmrdl))), REG_UTP_TASK_REQ_LIST_BASE_L); - ufshcd_writel(hba, upper_32_bits((dma_addr_t)hba->utmrdl), + ufshcd_writel(hba, upper_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utmrdl))), REG_UTP_TASK_REQ_LIST_BASE_H); /* @@ -660,7 +661,7 @@ static void ufshcd_host_memory_configure(struct ufs_hba *hba) u16 prdt_offset; utrdlp = hba->utrdl; - cmd_desc_dma_addr = (dma_addr_t)hba->ucdl; + cmd_desc_dma_addr = dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->ucdl)); utrdlp->command_desc_base_addr_lo = cpu_to_le32(lower_32_bits(cmd_desc_dma_addr)); @@ -1612,12 +1613,15 @@ void ufshcd_prepare_utp_scsi_cmd_upiu(struct ufs_hba *hba, ufshcd_cache_flush(hba->ucd_rsp_ptr, sizeof(*hba->ucd_rsp_ptr)); } -static inline void prepare_prdt_desc(struct ufshcd_sg_entry *entry, +static inline void prepare_prdt_desc(struct ufs_hba *hba, + struct ufshcd_sg_entry *entry, unsigned char *buf, ulong len) { + dma_addr_t da = dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)buf); + entry->size = cpu_to_le32(len) | GENMASK(1, 0); - entry->base_addr = cpu_to_le32(lower_32_bits((unsigned long)buf)); - entry->upper_addr = cpu_to_le32(upper_32_bits((unsigned long)buf)); + entry->base_addr = cpu_to_le32(lower_32_bits(da)); + entry->upper_addr = cpu_to_le32(upper_32_bits(da)); } static void prepare_prdt_table(struct ufs_hba *hba, struct scsi_cmd *pccb) @@ -1639,13 +1643,13 @@ static void prepare_prdt_table(struct ufs_hba *hba, struct scsi_cmd *pccb) buf = pccb->pdata; i = table_length; while (--i) { - prepare_prdt_desc(&prd_table[table_length - i - 1], buf, + prepare_prdt_desc(hba, &prd_table[table_length - i - 1], buf, MAX_PRDT_ENTRY - 1); buf += MAX_PRDT_ENTRY; datalen -= MAX_PRDT_ENTRY; } - prepare_prdt_desc(&prd_table[table_length - i - 1], buf, datalen - 1); + prepare_prdt_desc(hba, &prd_table[table_length - i - 1], buf, datalen - 1); req_desc->prd_table_length = table_length; ufshcd_cache_flush(prd_table, sizeof(*prd_table) * table_length); -- cgit v1.2.3