@@ -140,6 +140,7 @@ static int sd_uhs2_dev_init(struct mmc_host *host)
140140 struct uhs2_command uhs2_cmd = {};
141141 u32 cnt ;
142142 u32 dap , gap , resp_gap ;
143+ u32 payload0 ;
143144 u8 gd = 0 ;
144145 int err ;
145146
@@ -176,10 +177,11 @@ static int sd_uhs2_dev_init(struct mmc_host *host)
176177 * Let's retry the DEVICE_INIT command no more than 30 times.
177178 */
178179 for (cnt = 0 ; cnt < 30 ; cnt ++ ) {
179- uhs2_cmd .payload [0 ] = ((dap & 0xF ) << 12 ) |
180- UHS2_DEV_INIT_COMPLETE_FLAG |
181- ((gd & 0xF ) << 4 ) |
182- (gap & 0xF );
180+ payload0 = ((dap & 0xF ) << 12 ) |
181+ UHS2_DEV_INIT_COMPLETE_FLAG |
182+ ((gd & 0xF ) << 4 ) |
183+ (gap & 0xF );
184+ uhs2_cmd .payload [0 ] = payload0 ;
183185
184186 sd_uhs2_cmd_assemble (& cmd , & uhs2_cmd , UHS2_DEV_INIT_PAYLOAD_LEN ,
185187 UHS2_DEV_INIT_RESP_LEN );
@@ -225,6 +227,7 @@ static int sd_uhs2_enum(struct mmc_host *host, u32 *node_id)
225227{
226228 struct mmc_command cmd = {0 };
227229 struct uhs2_command uhs2_cmd = {};
230+ u32 payload0 ;
228231 u8 id_f = 0xF , id_l = 0x0 ;
229232 int err ;
230233
@@ -243,8 +246,8 @@ static int sd_uhs2_enum(struct mmc_host *host, u32 *node_id)
243246 UHS2_NATIVE_CMD_PLEN_4B |
244247 (UHS2_DEV_CMD_ENUMERATE >> 8 );
245248
246- uhs2_cmd . payload [ 0 ] = (id_f << 4 ) | id_l ;
247- uhs2_cmd .payload [0 ] = cpu_to_be32 (uhs2_cmd . payload [ 0 ] );
249+ payload0 = (id_f << 4 ) | id_l ;
250+ uhs2_cmd .payload [0 ] = cpu_to_be32 (payload0 );
248251
249252 sd_uhs2_cmd_assemble (& cmd , & uhs2_cmd , UHS2_DEV_ENUM_PAYLOAD_LEN , UHS2_DEV_ENUM_RESP_LEN );
250253
@@ -465,6 +468,7 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
465468{
466469 struct mmc_command cmd = {0 };
467470 struct uhs2_command uhs2_cmd = {};
471+ u32 payload0 , payload1 ;
468472 u8 nMinDataGap ;
469473 int err ;
470474
@@ -487,10 +491,10 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
487491 host -> uhs2_caps .n_lanes_set = UHS2_DEV_CONFIG_GEN_SET_2L_FD_HD ;
488492 card -> uhs2_config .n_lanes_set = UHS2_DEV_CONFIG_GEN_SET_2L_FD_HD ;
489493
490- uhs2_cmd . payload [ 0 ] = card -> uhs2_config .n_lanes_set << UHS2_DEV_CONFIG_N_LANES_POS ;
491- uhs2_cmd . payload [ 1 ] = 0 ;
492- uhs2_cmd .payload [0 ] = cpu_to_be32 (uhs2_cmd . payload [ 0 ] );
493- uhs2_cmd .payload [1 ] = cpu_to_be32 (uhs2_cmd . payload [ 1 ] );
494+ payload0 = card -> uhs2_config .n_lanes_set << UHS2_DEV_CONFIG_N_LANES_POS ;
495+ payload1 = 0 ;
496+ uhs2_cmd .payload [0 ] = cpu_to_be32 (payload0 );
497+ uhs2_cmd .payload [1 ] = cpu_to_be32 (payload1 );
494498
495499 /*
496500 * There is no payload because per spec, there should be
@@ -545,8 +549,7 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
545549 card -> uhs2_config .speed_range_set = UHS2_DEV_CONFIG_PHY_SET_SPEED_A ;
546550 }
547551
548- uhs2_cmd .payload [0 ] =
549- card -> uhs2_config .speed_range_set << UHS2_DEV_CONFIG_PHY_SET_SPEED_POS ;
552+ payload0 = card -> uhs2_config .speed_range_set << UHS2_DEV_CONFIG_PHY_SET_SPEED_POS ;
550553
551554 card -> uhs2_config .n_lss_sync_set = (max (card -> uhs2_config .n_lss_sync ,
552555 host -> uhs2_caps .n_lss_sync ) >> 2 ) &
@@ -558,10 +561,10 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
558561 UHS2_DEV_CONFIG_N_LSS_DIR_MASK ;
559562 host -> uhs2_caps .n_lss_dir_set = card -> uhs2_config .n_lss_dir_set ;
560563
561- uhs2_cmd . payload [ 1 ] = (card -> uhs2_config .n_lss_dir_set << UHS2_DEV_CONFIG_N_LSS_DIR_POS ) |
562- card -> uhs2_config .n_lss_sync_set ;
563- uhs2_cmd .payload [0 ] = cpu_to_be32 (uhs2_cmd . payload [ 0 ] );
564- uhs2_cmd .payload [1 ] = cpu_to_be32 (uhs2_cmd . payload [ 1 ] );
564+ payload1 = (card -> uhs2_config .n_lss_dir_set << UHS2_DEV_CONFIG_N_LSS_DIR_POS ) |
565+ card -> uhs2_config .n_lss_sync_set ;
566+ uhs2_cmd .payload [0 ] = cpu_to_be32 (payload0 );
567+ uhs2_cmd .payload [1 ] = cpu_to_be32 (payload1 );
565568
566569 memset (uhs2_cmd .uhs2_resp , 0 , sizeof (uhs2_cmd .uhs2_resp ));
567570
@@ -608,13 +611,12 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
608611 host -> uhs2_caps .max_retry_set = 3 ;
609612 card -> uhs2_config .max_retry_set = host -> uhs2_caps .max_retry_set ;
610613
611- uhs2_cmd .payload [0 ] =
612- (card -> uhs2_config .maxblk_len_set << UHS2_DEV_CONFIG_MAX_BLK_LEN_POS ) |
613- (card -> uhs2_config .max_retry_set << UHS2_DEV_CONFIG_LT_SET_MAX_RETRY_POS ) |
614- (card -> uhs2_config .n_fcu_set << UHS2_DEV_CONFIG_N_FCU_POS );
615- uhs2_cmd .payload [1 ] = card -> uhs2_config .n_data_gap_set ;
616- uhs2_cmd .payload [0 ] = cpu_to_be32 (uhs2_cmd .payload [0 ]);
617- uhs2_cmd .payload [1 ] = cpu_to_be32 (uhs2_cmd .payload [1 ]);
614+ payload0 = (card -> uhs2_config .maxblk_len_set << UHS2_DEV_CONFIG_MAX_BLK_LEN_POS ) |
615+ (card -> uhs2_config .max_retry_set << UHS2_DEV_CONFIG_LT_SET_MAX_RETRY_POS ) |
616+ (card -> uhs2_config .n_fcu_set << UHS2_DEV_CONFIG_N_FCU_POS );
617+ payload1 = card -> uhs2_config .n_data_gap_set ;
618+ uhs2_cmd .payload [0 ] = cpu_to_be32 (payload0 );
619+ uhs2_cmd .payload [1 ] = cpu_to_be32 (payload1 );
618620
619621 sd_uhs2_cmd_assemble (& cmd , & uhs2_cmd , UHS2_CFG_WRITE_PAYLOAD_LEN , 0 );
620622
@@ -641,10 +643,10 @@ static int sd_uhs2_config_write(struct mmc_host *host, struct mmc_card *card)
641643 UHS2_NATIVE_CMD_PLEN_8B |
642644 (UHS2_DEV_CONFIG_GEN_SET >> 8 );
643645
644- uhs2_cmd . payload [ 0 ] = 0 ;
645- uhs2_cmd . payload [ 1 ] = UHS2_DEV_CONFIG_GEN_SET_CFG_COMPLETE ;
646- uhs2_cmd .payload [0 ] = cpu_to_be32 (uhs2_cmd . payload [ 0 ] );
647- uhs2_cmd .payload [1 ] = cpu_to_be32 (uhs2_cmd . payload [ 1 ] );
646+ payload0 = 0 ;
647+ payload1 = UHS2_DEV_CONFIG_GEN_SET_CFG_COMPLETE ;
648+ uhs2_cmd .payload [0 ] = cpu_to_be32 (payload0 );
649+ uhs2_cmd .payload [1 ] = cpu_to_be32 (payload1 );
648650
649651 memset (uhs2_cmd .uhs2_resp , 0 , sizeof (uhs2_cmd .uhs2_resp ));
650652 sd_uhs2_cmd_assemble (& cmd , & uhs2_cmd , UHS2_CFG_WRITE_PAYLOAD_LEN ,
0 commit comments