Skip to contentSkip to conversation

Add MMC password protection (lock/unlock) support V3

PATCH In review Anderson Briglia 1 participant 1 message Jan 9, 2006 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

PATCH 5/5 Add MMC password protection (lock/unlock) support V3

The MMC_LOCK_UNLOCK command requires the block length to be exactly the password length + 2 bytes, but hardware-specific drivers force a "power of 2" block size.

This patch sends the exact block size (password + 2 bytes) to the host. OMAP specific.

drivers/mmc/omap.c +6 -2
Index: linux-2.6.15-rc4/drivers/mmc/omap.c
===================================================================
@@ -889,8 +889,12 @@ mmc_omap_prepare_data(struct mmc_omap_ho
 		return;
 	}
 
-
-	block_size = 1 << data->blksz_bits;
+	/*  password protection: we need to send the exact block size to the
+	 *  card (password + 2), not a 2-exponent. */
+	if (req->cmd->opcode == MMC_LOCK_UNLOCK)
+		block_size = data->sg[0].length;
+	else
+		block_size = 1 << data->blksz_bits;
 
 	OMAP_MMC_WRITE(host->base, NBLK, data->blocks - 1);
 	OMAP_MMC_WRITE(host->base, BLEN, block_size - 1);