* [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and
@ 2025-06-30 8:13 Biju Das
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Biju Das @ 2025-06-30 8:13 UTC (permalink / raw)
To: Wolfram Sang, Ulf Hansson
Cc: Biju Das, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
As per the RZ/{G2L,G3E} HW manual SD_BUF0 can be accessed by 16/32/64
bits. Most of the data transfer in SD/SDIO/eMMC mode is more than 8 bytes.
During testing it is found that, if the DMA buffer is not aligned to 128
bit it fallback to PIO mode. In such cases, 64-bit access is much more
efficient than the current 16-bit.
Biju Das (2):
mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
mmc: renesas_sdhi: Enable 64-bit polling mode
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 3 +-
drivers/mmc/host/tmio_mmc.h | 12 +++++++
drivers/mmc/host/tmio_mmc_core.c | 32 +++++++++++++++++++
include/linux/platform_data/tmio.h | 3 ++
4 files changed, 49 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-06-30 8:13 [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Biju Das
@ 2025-06-30 8:13 ` Biju Das
2025-06-30 19:37 ` kernel test robot
2025-07-22 19:26 ` Wolfram Sang
2025-06-30 8:13 ` [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit " Biju Das
2025-07-08 20:29 ` [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Wolfram Sang
2 siblings, 2 replies; 14+ messages in thread
From: Biju Das @ 2025-06-30 8:13 UTC (permalink / raw)
To: Wolfram Sang, Ulf Hansson
Cc: Biju Das, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
As per the RZ/{G2L,G3E} HW manual SD_BUF0 can be accessed by 16/32/64
bits. Most of the data transfer in SD/SDIO/eMMC mode is more than 8 bytes.
During testing it is found that, if the DMA buffer is not aligned to 128
bit it fallback to PIO mode. In such cases, 64-bit access is much more
efficient than the current 16-bit.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/mmc/host/tmio_mmc.h | 12 +++++++++++
drivers/mmc/host/tmio_mmc_core.c | 32 ++++++++++++++++++++++++++++++
include/linux/platform_data/tmio.h | 3 +++
3 files changed, 47 insertions(+)
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index d730b7633ae1..823143a98941 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -242,6 +242,18 @@ static inline void sd_ctrl_read32_rep(struct tmio_mmc_host *host, int addr,
ioread32_rep(host->ctl + (addr << host->bus_shift), buf, count);
}
+static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
+ u64 *buf, int count)
+{
+ ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
+}
+
+static inline void sd_ctrl_write64_rep(struct tmio_mmc_host *host, int addr,
+ const u64 *buf, int count)
+{
+ iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
+}
+
static inline void sd_ctrl_write16(struct tmio_mmc_host *host, int addr,
u16 val)
{
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 2cec463b5e00..c4eacf9545ba 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -350,6 +350,38 @@ static void tmio_mmc_transfer_data(struct tmio_mmc_host *host,
/*
* Transfer the data
*/
+
+ if (host->pdata->flags & TMIO_MMC_64BIT_DATA_PORT) {
+ u64 *buf64 = (u64 *)buf;
+ u64 data = 0;
+
+ if (count >= 8) {
+ if (is_read)
+ sd_ctrl_read64_rep(host, CTL_SD_DATA_PORT,
+ buf64, count >> 3);
+ else
+ sd_ctrl_write64_rep(host, CTL_SD_DATA_PORT,
+ buf64, count >> 3);
+ }
+
+ /* if count was multiple of 8 */
+ if (!(count & 0x7))
+ return;
+
+ buf64 += count >> 3;
+ count %= 8;
+
+ if (is_read) {
+ sd_ctrl_read64_rep(host, CTL_SD_DATA_PORT, &data, 1);
+ memcpy(buf64, &data, count);
+ } else {
+ memcpy(&data, buf64, count);
+ sd_ctrl_write64_rep(host, CTL_SD_DATA_PORT, &data, 1);
+ }
+
+ return;
+ }
+
if (host->pdata->flags & TMIO_MMC_32BIT_DATA_PORT) {
u32 data = 0;
u32 *buf32 = (u32 *)buf;
diff --git a/include/linux/platform_data/tmio.h b/include/linux/platform_data/tmio.h
index b060124ba1ae..426291713b83 100644
--- a/include/linux/platform_data/tmio.h
+++ b/include/linux/platform_data/tmio.h
@@ -47,6 +47,9 @@
/* Some controllers have a CBSY bit */
#define TMIO_MMC_HAVE_CBSY BIT(11)
+/* Some controllers have a 64-bit wide data port register */
+#define TMIO_MMC_64BIT_DATA_PORT BIT(12)
+
struct tmio_mmc_data {
void *chan_priv_tx;
void *chan_priv_rx;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit polling mode
2025-06-30 8:13 [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Biju Das
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
@ 2025-06-30 8:13 ` Biju Das
2025-07-21 11:29 ` Wolfram Sang
2025-07-22 19:26 ` Wolfram Sang
2025-07-08 20:29 ` [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Wolfram Sang
2 siblings, 2 replies; 14+ messages in thread
From: Biju Das @ 2025-06-30 8:13 UTC (permalink / raw)
To: Wolfram Sang, Ulf Hansson
Cc: Biju Das, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
Enable 64-bit polling mode for R-Car gen3 and RZ/G2L SoCs.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
index 4b389e92399e..9e3ed0bcddd6 100644
--- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c
+++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c
@@ -107,7 +107,8 @@ static const struct renesas_sdhi_of_data of_data_rza2 = {
static const struct renesas_sdhi_of_data of_data_rcar_gen3 = {
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_CLK_ACTUAL |
- TMIO_MMC_HAVE_CBSY | TMIO_MMC_MIN_RCAR2,
+ TMIO_MMC_HAVE_CBSY | TMIO_MMC_MIN_RCAR2 |
+ TMIO_MMC_64BIT_DATA_PORT,
.capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
MMC_CAP_CMD23 | MMC_CAP_WAIT_WHILE_BUSY,
.capabilities2 = MMC_CAP2_NO_WRITE_PROTECT | MMC_CAP2_MERGE_CAPABLE,
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
@ 2025-06-30 19:37 ` kernel test robot
2025-07-01 5:08 ` Biju Das
2025-07-22 19:26 ` Wolfram Sang
1 sibling, 1 reply; 14+ messages in thread
From: kernel test robot @ 2025-06-30 19:37 UTC (permalink / raw)
To: Biju Das; +Cc: oe-kbuild-all
Hi Biju,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on ulf-hansson-mmc-mirror/next v6.16-rc4 next-20250630]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Biju-Das/mmc-tmio-Add-64-bit-read-write-support-for-SD_BUF0-in-polling-mode/20250630-161511
base: linus/master
patch link: https://lore.kernel.org/r/20250630081315.33288-2-biju.das.jz%40bp.renesas.com
patch subject: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
config: sh-randconfig-001-20250630 (https://download.01.org/0day-ci/archive/20250701/202507010308.KUbUR1fM-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250701/202507010308.KUbUR1fM-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507010308.KUbUR1fM-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/mmc/host/renesas_sdhi.h:15,
from drivers/mmc/host/renesas_sdhi_sys_dmac.c:25:
drivers/mmc/host/tmio_mmc.h: In function 'sd_ctrl_read64_rep':
>> drivers/mmc/host/tmio_mmc.h:248:9: error: implicit declaration of function 'ioread64_rep'; did you mean 'ioread32_rep'? [-Wimplicit-function-declaration]
248 | ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
| ^~~~~~~~~~~~
| ioread32_rep
drivers/mmc/host/tmio_mmc.h: In function 'sd_ctrl_write64_rep':
>> drivers/mmc/host/tmio_mmc.h:254:9: error: implicit declaration of function 'iowrite64_rep'; did you mean 'iowrite32_rep'? [-Wimplicit-function-declaration]
254 | iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
| ^~~~~~~~~~~~~
| iowrite32_rep
vim +248 drivers/mmc/host/tmio_mmc.h
244
245 static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
246 u64 *buf, int count)
247 {
> 248 ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
249 }
250
251 static inline void sd_ctrl_write64_rep(struct tmio_mmc_host *host, int addr,
252 const u64 *buf, int count)
253 {
> 254 iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
255 }
256
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-06-30 19:37 ` kernel test robot
@ 2025-07-01 5:08 ` Biju Das
2025-07-21 11:25 ` Wolfram Sang
0 siblings, 1 reply; 14+ messages in thread
From: Biju Das @ 2025-07-01 5:08 UTC (permalink / raw)
To: kernel test robot
Cc: oe-kbuild-all@lists.linux.dev, linux-renesas-soc@vger.kernel.org,
Wolfram Sang
Hi,
> -----Original Message-----
> From: kernel test robot <lkp@intel.com>
> Subject: Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
>
> Hi Biju,
>
> [This is a private test report for your RFC patch.] kernel test robot noticed the following build
> errors:
>
> [auto build test ERROR on linus/master]
> [also build test ERROR on ulf-hansson-mmc-mirror/next v6.16-rc4 next-20250630] [If your patch is
> applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-
> format-patch#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Biju-Das/mmc-tmio-Add-64-bit-read-write-
> support-for-SD_BUF0-in-polling-mode/20250630-161511
> base: linus/master
> patch link: https://lore.kernel.org/r/20250630081315.33288-2-biju.das.jz%40bp.renesas.com
> patch subject: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling
> mode
> config: sh-randconfig-001-20250630 (https://download.01.org/0day-
> ci/archive/20250701/202507010308.KUbUR1fM-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 15.1.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-
> ci/archive/20250701/202507010308.KUbUR1fM-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of the same
> patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes:
> | https://lore.kernel.org/oe-kbuild-all/202507010308.KUbUR1fM-lkp@intel.
> | com/
>
> All errors (new ones prefixed by >>):
>
> In file included from drivers/mmc/host/renesas_sdhi.h:15,
> from drivers/mmc/host/renesas_sdhi_sys_dmac.c:25:
> drivers/mmc/host/tmio_mmc.h: In function 'sd_ctrl_read64_rep':
> >> drivers/mmc/host/tmio_mmc.h:248:9: error: implicit declaration of
> >> function 'ioread64_rep'; did you mean 'ioread32_rep'?
> >> [-Wimplicit-function-declaration]
> 248 | ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
> | ^~~~~~~~~~~~
> | ioread32_rep
> drivers/mmc/host/tmio_mmc.h: In function 'sd_ctrl_write64_rep':
> >> drivers/mmc/host/tmio_mmc.h:254:9: error: implicit declaration of
> >> function 'iowrite64_rep'; did you mean 'iowrite32_rep'?
> >> [-Wimplicit-function-declaration]
> 254 | iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
> | ^~~~~~~~~~~~~
> | iowrite32_rep
>
>
> vim +248 drivers/mmc/host/tmio_mmc.h
>
> 244
> 245 static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
> 246 u64 *buf, int count)
> 247 {
> > 248 ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
> 249 }
> 250
> 251 static inline void sd_ctrl_write64_rep(struct tmio_mmc_host *host, int addr,
> 252 const u64 *buf, int count)
> 253 {
> > 254 iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
> 255 }
> 256
Maybe I can guard these functions/caller using CONFIG_ARM64 as it is applicable only to GEN3
Platforms. Similar issue seen on [1]??
[1] https://lkml.iu.edu/hypermail/linux/kernel/2209.2/04657.html
Cheers,
Biju
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and
2025-06-30 8:13 [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Biju Das
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
2025-06-30 8:13 ` [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit " Biju Das
@ 2025-07-08 20:29 ` Wolfram Sang
2025-07-09 5:48 ` Biju Das
2 siblings, 1 reply; 14+ messages in thread
From: Wolfram Sang @ 2025-07-08 20:29 UTC (permalink / raw)
To: Biju Das
Cc: Ulf Hansson, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
[-- Attachment #1: Type: text/plain, Size: 528 bytes --]
On Mon, Jun 30, 2025 at 09:13:09AM +0100, Biju Das wrote:
> As per the RZ/{G2L,G3E} HW manual SD_BUF0 can be accessed by 16/32/64
> bits. Most of the data transfer in SD/SDIO/eMMC mode is more than 8 bytes.
> During testing it is found that, if the DMA buffer is not aligned to 128
> bit it fallback to PIO mode. In such cases, 64-bit access is much more
> efficient than the current 16-bit.
Cool, I had this somewhere on my todo-list as well. I want to test but
it will probably be only on Friday. But looking forward to it!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and
2025-07-08 20:29 ` [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Wolfram Sang
@ 2025-07-09 5:48 ` Biju Das
0 siblings, 0 replies; 14+ messages in thread
From: Biju Das @ 2025-07-09 5:48 UTC (permalink / raw)
To: Wolfram Sang
Cc: Ulf Hansson, linux-mmc@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, Geert Uytterhoeven,
Prabhakar Mahadev Lad, biju.das.au
Hi Wolfram Sang,
> -----Original Message-----
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Sent: 08 July 2025 21:29
> Subject: Re: [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and
>
> On Mon, Jun 30, 2025 at 09:13:09AM +0100, Biju Das wrote:
> > As per the RZ/{G2L,G3E} HW manual SD_BUF0 can be accessed by 16/32/64
> > bits. Most of the data transfer in SD/SDIO/eMMC mode is more than 8 bytes.
> > During testing it is found that, if the DMA buffer is not aligned to
> > 128 bit it fallback to PIO mode. In such cases, 64-bit access is much
> > more efficient than the current 16-bit.
>
> Cool, I had this somewhere on my todo-list as well. I want to test but it will probably be only on
> Friday. But looking forward to it!
Thanks. Also, we need to find a way to handle this issue [1]
[1] https://lore.kernel.org/linux-renesas-soc/TY3PR01MB1134662BDC486D781E5B263878641A@TY3PR01MB11346.jpnprd01.prod.outlook.com/
Cheers,
Biju
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-07-01 5:08 ` Biju Das
@ 2025-07-21 11:25 ` Wolfram Sang
2025-07-21 15:37 ` Biju Das
0 siblings, 1 reply; 14+ messages in thread
From: Wolfram Sang @ 2025-07-21 11:25 UTC (permalink / raw)
To: Biju Das
Cc: kernel test robot, oe-kbuild-all@lists.linux.dev,
linux-renesas-soc@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 473 bytes --]
> Maybe I can guard these functions/caller using CONFIG_ARM64 as it is applicable only to GEN3
> Platforms. Similar issue seen on [1]??
>
> [1] https://lkml.iu.edu/hypermail/linux/kernel/2209.2/04657.html
Maybe just use 64BIT as the guard? Seems a tad more precise to me.
Other than that, looks good to me:
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Wasn't able to test this yet, though, sorry. I hope for tomorrow, but no
promises.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit polling mode
2025-06-30 8:13 ` [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit " Biju Das
@ 2025-07-21 11:29 ` Wolfram Sang
2025-07-22 19:26 ` Wolfram Sang
1 sibling, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2025-07-21 11:29 UTC (permalink / raw)
To: Biju Das
Cc: Ulf Hansson, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
[-- Attachment #1: Type: text/plain, Size: 302 bytes --]
On Mon, Jun 30, 2025 at 09:13:11AM +0100, Biju Das wrote:
> Enable 64-bit polling mode for R-Car gen3 and RZ/G2L SoCs.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Same as patch 1, not tested yet, hope for tomorrow.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-07-21 11:25 ` Wolfram Sang
@ 2025-07-21 15:37 ` Biju Das
2025-07-22 19:26 ` wsa+renesas
0 siblings, 1 reply; 14+ messages in thread
From: Biju Das @ 2025-07-21 15:37 UTC (permalink / raw)
To: wsa+renesas
Cc: kernel test robot, oe-kbuild-all@lists.linux.dev,
linux-renesas-soc@vger.kernel.org
Hi Wolfram Sang,
Thanks for the feedback.
> -----Original Message-----
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Sent: 21 July 2025 12:25
> Subject: Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
>
>
> > Maybe I can guard these functions/caller using CONFIG_ARM64 as it is
> > applicable only to GEN3 Platforms. Similar issue seen on [1]??
> >
> > [1] https://lkml.iu.edu/hypermail/linux/kernel/2209.2/04657.html
>
> Maybe just use 64BIT as the guard? Seems a tad more precise to me.
>
> Other than that, looks good to me:
>
> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
>
> Wasn't able to test this yet, though, sorry. I hope for tomorrow, but no promises.
Ok, will guard like this in next version.
#ifdef CONFIG_64BIT
static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
u64 *buf, int count)
{
ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
}
static inline void sd_ctrl_write64_rep(struct tmio_mmc_host *host, int addr,
const u64 *buf, int count)
{
iowrite64_rep(host->ctl + (addr << host->bus_shift), buf, count);
}
#else
static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
u64 *buf, int count)
{
}
static inline void sd_ctrl_write64_rep(struct tmio_mmc_host *host, int addr,
const u64 *buf, int count)
{
}
#endif
Cheers,
Biju
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-07-21 15:37 ` Biju Das
@ 2025-07-22 19:26 ` wsa+renesas
2025-07-23 5:29 ` Biju Das
0 siblings, 1 reply; 14+ messages in thread
From: wsa+renesas @ 2025-07-22 19:26 UTC (permalink / raw)
To: Biju Das
Cc: kernel test robot, oe-kbuild-all@lists.linux.dev,
linux-renesas-soc@vger.kernel.org
> > Maybe just use 64BIT as the guard? Seems a tad more precise to me.
> >
> > Other than that, looks good to me:
> >
> > Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> >
> > Wasn't able to test this yet, though, sorry. I hope for tomorrow, but no promises.
>
> Ok, will guard like this in next version.
>
> #ifdef CONFIG_64BIT
> static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
> u64 *buf, int count)
> {
> ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count);
> }
Hmm, I wonder if it is not acceptable in this case to guard the new code
block in tmio_mmc_transfer_data() with #ifdef CONFIG_64BIT. This will
remove the whole code. Your suggestion leaves some code as left overs
which might be confusing.
I found other traces in the kernel also protecting whole code blocks:
tty/serial/8250/8250_dw.c, line 230
mtd/nand/raw/cadence-nand-controller.c, line 1186
What do you think?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
2025-06-30 19:37 ` kernel test robot
@ 2025-07-22 19:26 ` Wolfram Sang
1 sibling, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2025-07-22 19:26 UTC (permalink / raw)
To: Biju Das
Cc: Ulf Hansson, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
On Mon, Jun 30, 2025 at 09:13:10AM +0100, Biju Das wrote:
> As per the RZ/{G2L,G3E} HW manual SD_BUF0 can be accessed by 16/32/64
> bits. Most of the data transfer in SD/SDIO/eMMC mode is more than 8 bytes.
> During testing it is found that, if the DMA buffer is not aligned to 128
> bit it fallback to PIO mode. In such cases, 64-bit access is much more
> efficient than the current 16-bit.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit polling mode
2025-06-30 8:13 ` [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit " Biju Das
2025-07-21 11:29 ` Wolfram Sang
@ 2025-07-22 19:26 ` Wolfram Sang
1 sibling, 0 replies; 14+ messages in thread
From: Wolfram Sang @ 2025-07-22 19:26 UTC (permalink / raw)
To: Biju Das
Cc: Ulf Hansson, linux-mmc, linux-renesas-soc, Geert Uytterhoeven,
Prabhakar Mahadev Lad, Biju Das
On Mon, Jun 30, 2025 at 09:13:11AM +0100, Biju Das wrote:
> Enable 64-bit polling mode for R-Car gen3 and RZ/G2L SoCs.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
2025-07-22 19:26 ` wsa+renesas
@ 2025-07-23 5:29 ` Biju Das
0 siblings, 0 replies; 14+ messages in thread
From: Biju Das @ 2025-07-23 5:29 UTC (permalink / raw)
To: wsa+renesas
Cc: kernel test robot, oe-kbuild-all@lists.linux.dev,
linux-renesas-soc@vger.kernel.org
Hi Wolfram Sang,
Thanks for the feedback.
> -----Original Message-----
> From: wsa+renesas <wsa+renesas@sang-engineering.com>
> Subject: Re: [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode
>
>
> > > Maybe just use 64BIT as the guard? Seems a tad more precise to me.
> > >
> > > Other than that, looks good to me:
> > >
> > > Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> > >
> > > Wasn't able to test this yet, though, sorry. I hope for tomorrow, but no promises.
> >
> > Ok, will guard like this in next version.
> >
> > #ifdef CONFIG_64BIT
> > static inline void sd_ctrl_read64_rep(struct tmio_mmc_host *host, int addr,
> > u64 *buf, int count)
> > {
> > ioread64_rep(host->ctl + (addr << host->bus_shift), buf, count); }
>
> Hmm, I wonder if it is not acceptable in this case to guard the new code block in
> tmio_mmc_transfer_data() with #ifdef CONFIG_64BIT. This will remove the whole code. Your suggestion
> leaves some code as left overs which might be confusing.
OK. That is a good point.
>
> I found other traces in the kernel also protecting whole code blocks:
>
> tty/serial/8250/8250_dw.c, line 230
> mtd/nand/raw/cadence-nand-controller.c, line 1186
>
> What do you think?
I agree and will guard tmio_mmc_transfer_data() as well to avoid confusion.
Cheers,
Biju
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-07-23 5:29 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-30 8:13 [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Biju Das
2025-06-30 8:13 ` [PATCH RFC/RFT 1/2] mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode Biju Das
2025-06-30 19:37 ` kernel test robot
2025-07-01 5:08 ` Biju Das
2025-07-21 11:25 ` Wolfram Sang
2025-07-21 15:37 ` Biju Das
2025-07-22 19:26 ` wsa+renesas
2025-07-23 5:29 ` Biju Das
2025-07-22 19:26 ` Wolfram Sang
2025-06-30 8:13 ` [PATCH RFC/RFT 2/2] mmc: renesas_sdhi: Enable 64-bit " Biju Das
2025-07-21 11:29 ` Wolfram Sang
2025-07-22 19:26 ` Wolfram Sang
2025-07-08 20:29 ` [PATCH RFC/RFT 0/2] Enable 64-bit polling mode for R-Car Gen3 and Wolfram Sang
2025-07-09 5:48 ` Biju Das
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.