Skip to contentSkip to conversation

mmc: Clean up mmc_decode_scr() implementation

PATCH New [email protected] 1 participant 1 message Nov 30, 2009 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

PATCH 2/3 mmc: Clean up mmc_decode_scr() implementation

In mmc_decode_scr(), back out coercion of 128-bit-oriented UNSTUFF_BITS() macro to work on 64-bit raw_scr field; invoke UNSTUFF_BITS_ARRAY() instead.

Tested by verifying that /sys output for scr register is unchanged.

Signed-off-by [email protected]
---
 drivers/mmc/core/sd.c |   10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
drivers/mmc/core/sd.c +3 -7
Index: linux-2.6/drivers/mmc/core/sd.c
===================================================================
@@ -163,20 +163,16 @@ static int mmc_decode_scr(struct mmc_car
 {
 	struct sd_scr *scr = &card->scr;
 	unsigned int scr_struct;
-	u32 resp[4];
 
-	resp[3] = card->raw_scr[1];
-	resp[2] = card->raw_scr[0];
-
-	scr_struct = UNSTUFF_BITS(resp, 60, 4);
+	scr_struct = UNSTUFF_BITS_ARRAY(card->raw_scr, 60, 4);
 	if (scr_struct != 0) {
 		printk(KERN_ERR "%s: unrecognised SCR structure version %d\n",
 			mmc_hostname(card->host), scr_struct);
 		return -EINVAL;
 	}
 
-	scr->sda_vsn = UNSTUFF_BITS(resp, 56, 4);
-	scr->bus_widths = UNSTUFF_BITS(resp, 48, 4);
+	scr->sda_vsn =    UNSTUFF_BITS_ARRAY(card->raw_scr, 56, 4);
+	scr->bus_widths = UNSTUFF_BITS_ARRAY(card->raw_scr, 48, 4);
 
 	return 0;
 }