On 02/10/15 21:03, Steeve Morin wrote:
Okay I've managed to fix it, it was due to a faulty mmc setting in the
kernel driver from the chip maker.
Basically it was setting a wrong max_blk_count and max_blk_size for
the MMC host.
Basically, max_blk_count was set wrong, causing a BUG_ON assertion,
and when patched, because the max_blk_size was wrong, it was
overflowing the MMC buffer (this is 128k according to the device
tree).
Thank you for your time, actually talking about it and laying it out
made me look in the right direction.
Glad to help. Did not expect I would get off that easy ;-)
Regards,
Arend
Here is the fix.
From 6c92e578748e039dfcfd8e737efdead6cd3e7568 Mon Sep 17 00:00:00 2001
From: Steeve Morin<[email protected]>
Date: Mon, 9 Feb 2015 16:25:49 +0100
Subject: [PATCH 4/4] Properly set max_blk_count and max_blk_size for the host
mmc
Signed-off-by: Steeve Morin<[email protected]>
---
drivers/amlogic/mmc/aml_sdio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/amlogic/mmc/aml_sdio.c b/drivers/amlogic/mmc/aml_sdio.c
index 680b95a..8b42f0e 100755
--- a/drivers/amlogic/mmc/aml_sdio.c
+++ b/drivers/amlogic/mmc/aml_sdio.c
@@ -1322,10 +1322,10 @@ static int aml_sdio_probe(struct platform_device *pdev)
mmc->alldev_claim =&aml_sdio_claim;
mmc->ios.clock = 400000;
mmc->ios.bus_width = MMC_BUS_WIDTH_1;
- mmc->max_blk_count = 4095;
- mmc->max_blk_size = 4095;
+ mmc->max_blk_count = 256;
mmc->max_req_size = pdata->max_req_size;
mmc->max_seg_size = mmc->max_req_size;
+ mmc->max_blk_size = mmc->max_req_size / mmc->max_blk_count;
mmc->max_segs = 1024;
mmc->ocr_avail = pdata->ocr_avail;
mmc->ocr = pdata->ocr_avail;
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html