[PATCH V1] mmc: core: Correction a warning caused by incorrect type in assignment for UHS-II

Victor Shih posted 1 patch 2 weeks, 4 days ago
drivers/mmc/core/sd_uhs2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH V1] mmc: core: Correction a warning caused by incorrect type in assignment for UHS-II
Posted by Victor Shih 2 weeks, 4 days ago
From: Victor Shih <victor.shih@genesyslogic.com.tw>

There is a type issue in the assignment in the sd_uhs2_dev_init()
that will generate a warning when building the kernel.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202411051248.wvjHSFNj-lkp@intel.com/
Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>
Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw>
---
 drivers/mmc/core/sd_uhs2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/core/sd_uhs2.c b/drivers/mmc/core/sd_uhs2.c
index c5847a2084d5..1c31d0dfa961 100644
--- a/drivers/mmc/core/sd_uhs2.c
+++ b/drivers/mmc/core/sd_uhs2.c
@@ -181,7 +181,7 @@ static int sd_uhs2_dev_init(struct mmc_host *host)
 			    UHS2_DEV_INIT_COMPLETE_FLAG |
 			    ((gd & 0xF) << 4) |
 			    (gap & 0xF);
-		uhs2_cmd.payload[0] = payload0;
+		uhs2_cmd.payload[0] = (__force __be32)payload0;
 
 		sd_uhs2_cmd_assemble(&cmd, &uhs2_cmd, UHS2_DEV_INIT_PAYLOAD_LEN,
 				     UHS2_DEV_INIT_RESP_LEN);
-- 
2.43.0
Re: [PATCH V1] mmc: core: Correction a warning caused by incorrect type in assignment for UHS-II
Posted by Ulf Hansson 1 week, 4 days ago
On Tue, 5 Nov 2024 at 11:29, Victor Shih <victorshihgli@gmail.com> wrote:
>
> From: Victor Shih <victor.shih@genesyslogic.com.tw>
>
> There is a type issue in the assignment in the sd_uhs2_dev_init()
> that will generate a warning when building the kernel.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202411051248.wvjHSFNj-lkp@intel.com/
> Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>
> Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw>

Applied for next, thanks!

Kind regards
Uffe


> ---
>  drivers/mmc/core/sd_uhs2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/core/sd_uhs2.c b/drivers/mmc/core/sd_uhs2.c
> index c5847a2084d5..1c31d0dfa961 100644
> --- a/drivers/mmc/core/sd_uhs2.c
> +++ b/drivers/mmc/core/sd_uhs2.c
> @@ -181,7 +181,7 @@ static int sd_uhs2_dev_init(struct mmc_host *host)
>                             UHS2_DEV_INIT_COMPLETE_FLAG |
>                             ((gd & 0xF) << 4) |
>                             (gap & 0xF);
> -               uhs2_cmd.payload[0] = payload0;
> +               uhs2_cmd.payload[0] = (__force __be32)payload0;
>
>                 sd_uhs2_cmd_assemble(&cmd, &uhs2_cmd, UHS2_DEV_INIT_PAYLOAD_LEN,
>                                      UHS2_DEV_INIT_RESP_LEN);
> --
> 2.43.0
>
Re: [PATCH V1] mmc: core: Correction a warning caused by incorrect type in assignment for UHS-II
Posted by Adrian Hunter 2 weeks, 2 days ago
On 5/11/24 12:29, Victor Shih wrote:
> From: Victor Shih <victor.shih@genesyslogic.com.tw>
> 
> There is a type issue in the assignment in the sd_uhs2_dev_init()
> that will generate a warning when building the kernel.
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202411051248.wvjHSFNj-lkp@intel.com/
> Signed-off-by: Ben Chuang <ben.chuang@genesyslogic.com.tw>
> Signed-off-by: Victor Shih <victor.shih@genesyslogic.com.tw>

It is OK for now, so:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

However it looks like in some other cases, the payload byte
order is wrong, but the value is zero which works anyway.
The UHS-II spec is a bit confusing because it says the DWORDs
are big endian, but the registers are 64-bits, so does that
mean the payload byte order is 3,2,1,0,7,6,5,4 ?

Perhaps someone could check.  I don't have time right now,
sorry.

> ---
>  drivers/mmc/core/sd_uhs2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/core/sd_uhs2.c b/drivers/mmc/core/sd_uhs2.c
> index c5847a2084d5..1c31d0dfa961 100644
> --- a/drivers/mmc/core/sd_uhs2.c
> +++ b/drivers/mmc/core/sd_uhs2.c
> @@ -181,7 +181,7 @@ static int sd_uhs2_dev_init(struct mmc_host *host)
>  			    UHS2_DEV_INIT_COMPLETE_FLAG |
>  			    ((gd & 0xF) << 4) |
>  			    (gap & 0xF);
> -		uhs2_cmd.payload[0] = payload0;
> +		uhs2_cmd.payload[0] = (__force __be32)payload0;
>  
>  		sd_uhs2_cmd_assemble(&cmd, &uhs2_cmd, UHS2_DEV_INIT_PAYLOAD_LEN,
>  				     UHS2_DEV_INIT_RESP_LEN);