Thread (1 message) 1 message, 1 author, 2017-01-30
DORMANTno replies

[PATCH] mmc: meson-gx: set max block count to 256

From: khilman@baylibre.com (Kevin Hilman)
Date: 2017-01-30 16:53:56
Also in: linux-amlogic

Heiner Kallweit [off-list ref] writes:
Am 27.01.2017 um 19:28 schrieb Kevin Hilman:
quoted
Heiner Kallweit [off-list ref] writes:
quoted
So far max_blk_count isn't set what results in a default of value 8
to be used (PAGE_SIZE / block size).

Set max_blk_count to 256 as used in the uboot driver.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Thanks for the patch. A minor comment below:
quoted
---
 drivers/mmc/host/meson-gx-mmc.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
index 3308b5b6..030425be 100644
--- a/drivers/mmc/host/meson-gx-mmc.c
+++ b/drivers/mmc/host/meson-gx-mmc.c
@@ -799,6 +799,7 @@ static int meson_mmc_probe(struct platform_device *pdev)
 		goto free_host;
 	}
 
+	mmc->max_blk_count = 256;
A step in the right direction, but the # blocks is actually a 9-bit
field (c.f. length field of cmd_cfg part of descriptor (bits 8:0).

So this should be more like:

	/* blk count is 'length' field of cmd_cfg part of descriptor */
	mmc->max_blk_count = CMD_CFG_LENGTH_MASK + 1;

I tested that change locally, so after changing that, please resend and
feel free to add:
max_blk_count = 0 means unlimited number of blocks. Therefore I think
we have to go with: mmc->max_blk_count = CMD_CFG_LENGTH_MASK
Ah, yes.  Good catch.

Kevin
And I figured out later that we also have to set mmc->max_req_size.

In my tests the system never read / wrote more than 8 blocks in a row,
most likely because the upper block layers use 4k blocks.

Therefore setting max_blk_count doesn't really provide a benefit but
I think it's cleaner to expose the actual chip limit.

quoted
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>

Kevin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help