[U-Boot] [PATCH] S5P: mmc: Resolved interrupt error during mmc_init

Blocksize was hardcoded to 512 bytes. But the blocksize varies depeding on various mmc subsystem commands (between 8 and 512). This hardcoding was resulting in interrupt error during data transfer.
It is now calculated based upon the request sent by mmc subsystem.
Signed-off-by: Chander Kashyap chander.kashyap@linaro.org --- drivers/mmc/s5p_mmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 195b5be..0323800 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -51,7 +51,7 @@ static void mmc_prepare_data(struct mmc_host *host, struct mmc_data *data) writeb(ctrl, &host->reg->hostctl);
/* We do not handle DMA boundaries, so set it to max (512 KiB) */ - writew((7 << 12) | (512 << 0), &host->reg->blksize); + writew((7 << 12) | (data->blocksize & 0xFFF), &host->reg->blksize); writew(data->blocks, &host->reg->blkcnt); }

Dear Chander Kashyap,
On 22 March 2011 20:40, Chander Kashyap chander.kashyap@linaro.org wrote:
Blocksize was hardcoded to 512 bytes. But the blocksize varies depeding on various mmc subsystem commands (between 8 and 512). This hardcoding was resulting in interrupt error during data transfer.
It is now calculated based upon the request sent by mmc subsystem.
Signed-off-by: Chander Kashyap chander.kashyap@linaro.org
drivers/mmc/s5p_mmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 195b5be..0323800 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -51,7 +51,7 @@ static void mmc_prepare_data(struct mmc_host *host, struct mmc_data *data) writeb(ctrl, &host->reg->hostctl);
/* We do not handle DMA boundaries, so set it to max (512 KiB) */
- writew((7 << 12) | (512 << 0), &host->reg->blksize);
- writew((7 << 12) | (data->blocksize & 0xFFF), &host->reg->blksize);
writew(data->blocks, &host->reg->blkcnt); }
-- 1.7.1
applied to u-boot-samsung.
Thanks Minkyu Kang

Hi Minkyu,
On Thu, Mar 24, 2011 at 3:46 AM, Minkyu Kang promsoft@gmail.com wrote:
Dear Chander Kashyap,
On 22 March 2011 20:40, Chander Kashyap chander.kashyap@linaro.org wrote:
Blocksize was hardcoded to 512 bytes. But the blocksize varies depeding on various mmc subsystem commands (between 8 and 512). This hardcoding was resulting in interrupt error during data transfer.
It is now calculated based upon the request sent by mmc subsystem.
Signed-off-by: Chander Kashyap chander.kashyap@linaro.org
drivers/mmc/s5p_mmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/s5p_mmc.c b/drivers/mmc/s5p_mmc.c index 195b5be..0323800 100644 --- a/drivers/mmc/s5p_mmc.c +++ b/drivers/mmc/s5p_mmc.c @@ -51,7 +51,7 @@ static void mmc_prepare_data(struct mmc_host *host, struct mmc_data *data) writeb(ctrl, &host->reg->hostctl);
/* We do not handle DMA boundaries, so set it to max (512 KiB) */
- writew((7 << 12) | (512 << 0), &host->reg->blksize);
- writew((7 << 12) | (data->blocksize & 0xFFF), &host->reg->blksize);
writew(data->blocks, &host->reg->blkcnt); }
-- 1.7.1
applied to u-boot-samsung.
I have sent some patches about mmc and reviewed one, can you please tell me what to do mainline them?
11 mar : [PATCH 1/3][v3] mmc: checking status after commands with R1b response --> it has one Tested-by
[RFC 2/3][v3] mmc: SEND_OP_COND considers card capabilities (voltage) --> it has one Tested-by [PATCH 3/3][v3] mmc: trace added --> useful for getting information
23 mar : [U-Boot] [PATCH] MMC may wrongly regconize 2GB eMMC as high capacity --> I have reviewed and proposed a different, I think better and simpler, way. There is a curious dependency between capacity and high_capacity variables.
Regards, Raffaele

Dear Raffaele Recalcati,
On 3 April 2011 13:39, Raffaele Recalcati lamiaposta71@gmail.com wrote:
Hi Minkyu,
I have sent some patches about mmc and reviewed one, can you please tell me what to do mainline them?
11 mar : [PATCH 1/3][v3] mmc: checking status after commands with R1b response --> it has one Tested-by
[RFC 2/3][v3] mmc: SEND_OP_COND considers card capabilities (voltage) --> it has one Tested-by [PATCH 3/3][v3] mmc: trace added --> useful for getting information
23 mar : [U-Boot] [PATCH] MMC may wrongly regconize 2GB eMMC as high capacity --> I have reviewed and proposed a different, I think better and simpler, way. There is a curious dependency between capacity and high_capacity variables.
I'm not a maintainer of mmc. Please ask to Andy Fleming.
Andy, could you please check Raffaele's patches?
Thanks Minkyu Kang.

Hi Andy,
On Sun, Apr 3, 2011 at 4:49 PM, Minkyu Kang promsoft@gmail.com wrote:
Dear Raffaele Recalcati,
On 3 April 2011 13:39, Raffaele Recalcati lamiaposta71@gmail.com wrote:
Hi Minkyu,
I have sent some patches about mmc and reviewed one, can you please tell me what to do mainline them?
11 mar : [PATCH 1/3][v3] mmc: checking status after commands with R1b response --> it has one Tested-by
[RFC 2/3][v3] mmc: SEND_OP_COND considers card capabilities (voltage) --> it has one Tested-by [PATCH 3/3][v3] mmc: trace added --> useful for getting information
23 mar : [U-Boot] [PATCH] MMC may wrongly regconize 2GB eMMC as high capacity --> I have reviewed and proposed a different, I think better and simpler, way. There is a curious dependency between capacity and high_capacity variables.
I'm not a maintainer of mmc. Please ask to Andy Fleming.
Andy, could you please check Raffaele's patches?
Thanks Minkyu Kang. -- from. prom. www.promsoft.net
can you please take a look at these patches ?
Regards, Raffaele
participants (3)
-
Chander Kashyap
-
Minkyu Kang
-
Raffaele Recalcati