[MMC] Always use a sector size of 512 bytes

Both MMC and SD specifications specify (although a bit unclearly in
the MMC case) that a sector size of 512 bytes must always be
supported by the card.

Cards can report larger "native" size than this, and cards >= 2 GB
even must do so. Most other readers use 512 bytes even for these
cards. We should do the same to be compatible.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by Pierre Ossman and committed by Russell King 6fe9febb d773d725

+4 -45
+4 -45
drivers/mmc/mmc_block.c
··· 319 319 md->read_only = mmc_blk_readonly(card); 320 320 321 321 /* 322 - * Figure out a workable block size. MMC cards have: 323 - * - two block sizes, one for read and one for write. 324 - * - may support partial reads and/or writes 325 - * (allows block sizes smaller than specified) 322 + * Both SD and MMC specifications state (although a bit 323 + * unclearly in the MMC case) that a block size of 512 324 + * bytes must always be supported by the card. 326 325 */ 327 - md->block_bits = card->csd.read_blkbits; 328 - if (card->csd.write_blkbits != card->csd.read_blkbits) { 329 - if (card->csd.write_blkbits < card->csd.read_blkbits && 330 - card->csd.read_partial) { 331 - /* 332 - * write block size is smaller than read block 333 - * size, but we support partial reads, so choose 334 - * the smaller write block size. 335 - */ 336 - md->block_bits = card->csd.write_blkbits; 337 - } else if (card->csd.write_blkbits > card->csd.read_blkbits && 338 - card->csd.write_partial) { 339 - /* 340 - * read block size is smaller than write block 341 - * size, but we support partial writes. Use read 342 - * block size. 343 - */ 344 - } else { 345 - /* 346 - * We don't support this configuration for writes. 347 - */ 348 - printk(KERN_ERR "%s: unable to select block size for " 349 - "writing (rb%u wb%u rp%u wp%u)\n", 350 - mmc_card_id(card), 351 - 1 << card->csd.read_blkbits, 352 - 1 << card->csd.write_blkbits, 353 - card->csd.read_partial, 354 - card->csd.write_partial); 355 - md->read_only = 1; 356 - } 357 - } 358 - 359 - /* 360 - * Refuse to allow block sizes smaller than 512 bytes. 361 - */ 362 - if (md->block_bits < 9) { 363 - printk(KERN_ERR "%s: unable to support block size %u\n", 364 - mmc_card_id(card), 1 << md->block_bits); 365 - ret = -EINVAL; 366 - goto err_kfree; 367 - } 326 + md->block_bits = 9; 368 327 369 328 md->disk = alloc_disk(1 << MMC_SHIFT); 370 329 if (md->disk == NULL) {