On 02/02/2016 09:58, Adrian Hunter wrote: > On 01/02/16 23:32, Mason wrote: >> On 22/01/2016 08:17, Mason wrote: >> >>> On 22/01/2016 03:07, Shawn Lin wrote: >>> >>>> On 2016/1/21 23:00, Mason wrote: >>>> >>>>> So that means I have to write code in >>>>> drivers/mmc/host/sdhci-of-arasan.c correct? >>>> >>>> It depends. If you think 512 block size if okay for you, leave it alone. >>>> Otherwise, add it in drivers/mmc/host/sdhci-of-arasan.c :) >>> >>> When I measured the read/write throughput to an attached >>> SD card, I got around 16 MB/s, and I thought raising the >>> block size might help with throughput? >>> >>> I'll test and report back. >> >> Haven't had time to test yet, but I wanted to ask experienced >> folks what to expect when raising the block size from 512 to >> 2048 bytes? > > mmc block driver sets block size to 512. > > What you are looking at is maximum block size. SDIO uses bigger block > sizes, so it is useful for that. You're right. I was looking at this block of code: /* * Maximum block size. This varies from controller to controller and * is specified in the capabilities register. */ if (host->quirks & SDHCI_QUIRK_FORCE_BLK_SZ_2048) { mmc->max_blk_size = 2; } else { mmc->max_blk_size = (caps[0] & SDHCI_MAX_BLOCK_MASK) >> SDHCI_MAX_BLOCK_SHIFT; if (mmc->max_blk_size >= 3) { pr_warn("%s: Invalid maximum block size, assuming 512 bytes\n", mmc_hostname(mmc)); mmc->max_blk_size = 0; } } mmc->max_blk_size = 512 << mmc->max_blk_size; As Shawn pointed out, this was updated by commit 0633f654241 Author: Anton Vorontsov Date: Tue Mar 17 00:14:03 2009 +0300 sdhci: Add quirk for forcing maximum block size to 2048 bytes FSL eSDHC controllers can support maximum block size up to 4096 bytes, the MBL (Maximum Block Length) field in the capabilities register extended by one bit, and is set to 0x3. But the SDHCI core doesn't support blocks of 4096 bytes, and thus forces blksz to the lowest value -- 512 bytes. With this patch we can pin up the blksz to the maximum supported block size, i.e. 2048 bytes. But I'm wondering if the 2048-byte limitation in SDHCI core is still present? I see some drivers apparently setting it to a higher value: host/atmel-mci.c: mmc->max_blk_size = 32768; host/dw_mmc.c: mmc->max_blk_size = 65536; host/wbsd.c: mmc->max_blk_size = 4087; Regards. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html