[PATCH RESEND 1/8] mmc: omap: Enable Auto CMD12

2012-03-15 Thread Venkatraman S
From: Balaji T K balaj...@ti.com

Enable Auto-CMD12 for multi block read/write on HSMMC
Tested on OMAP4430, OMAP3430 and OMAP2430 SDP

Signed-off-by: Balaji T K balaj...@ti.com
---
 drivers/mmc/host/omap_hsmmc.c |   17 ++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index f29e1a2..b1e9be7 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -85,6 +85,7 @@
 #define BRR_ENABLE (1  5)
 #define DTO_ENABLE (1  20)
 #define INIT_STREAM(1  1)
+#define ACEN_ACMD12(1  2)
 #define DP_SELECT  (1  21)
 #define DDIR   (1  4)
 #define DMA_EN 0x1
@@ -115,6 +116,7 @@
 #define OMAP_MMC_MAX_CLOCK 5200
 #define DRIVER_NAMEomap_hsmmc
 
+#define AUTO_CMD12 (1  0)/* Auto CMD12 support */
 /*
  * One controller can have multiple slots, like on some omap boards using
  * omap.c controller driver. Luckily this is not currently done on any known
@@ -175,6 +177,7 @@ struct omap_hsmmc_host {
int reqs_blocked;
int use_reg;
int req_in_progress;
+   unsigned intflags;
struct omap_hsmmc_next  next_data;
 
struct  omap_mmc_platform_data  *pdata;
@@ -766,6 +769,8 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, 
struct mmc_command *cmd,
cmdtype = 0x3;
 
cmdreg = (cmd-opcode  24) | (resptype  16) | (cmdtype  22);
+   if ((host-flags  AUTO_CMD12)  mmc_op_multi(cmd-opcode))
+   cmdreg |= ACEN_ACMD12;
 
if (data) {
cmdreg |= DP_SELECT | MSBS | BCE;
@@ -837,11 +842,16 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct 
mmc_data *data)
else
data-bytes_xfered = 0;
 
-   if (!data-stop) {
+   if (data-stop  ((!(host-flags  AUTO_CMD12)) || data-error))
+   omap_hsmmc_start_command(host, data-stop, NULL);
+   else {
+   if (data-stop)
+   data-stop-resp[0] = OMAP_HSMMC_READ(host-base,
+   RSP76);
omap_hsmmc_request_done(host, data-mrq);
-   return;
}
-   omap_hsmmc_start_command(host, data-stop, NULL);
+
+   return;
 }
 
 /*
@@ -1826,6 +1836,7 @@ static int __init omap_hsmmc_probe(struct platform_device 
*pdev)
host-mapbase   = res-start;
host-base  = ioremap(host-mapbase, SZ_4K);
host-power_mode = MMC_POWER_OFF;
+   host-flags = AUTO_CMD12;
host-next_data.cookie = 1;
 
platform_set_drvdata(pdev, host);
-- 
1.7.10.rc0.41.gfa678

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND 1/8] mmc: omap: Enable Auto CMD12

2012-03-15 Thread Felipe Balbi
Hi,

On Thu, Mar 15, 2012 at 08:03:35PM +0530, Venkatraman S wrote:
 From: Balaji T K balaj...@ti.com
 @@ -766,6 +769,8 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, 
 struct mmc_command *cmd,
   cmdtype = 0x3;
  
   cmdreg = (cmd-opcode  24) | (resptype  16) | (cmdtype  22);
 + if ((host-flags  AUTO_CMD12)  mmc_op_multi(cmd-opcode))

This should have braces too.

 @@ -837,11 +842,16 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, 
 struct mmc_data *data)
   else
   data-bytes_xfered = 0;
  
 - if (!data-stop) {
 + if (data-stop  ((!(host-flags  AUTO_CMD12)) || data-error))
 + omap_hsmmc_start_command(host, data-stop, NULL);
 + else {
 + if (data-stop)
 + data-stop-resp[0] = OMAP_HSMMC_READ(host-base,
 + RSP76);
   omap_hsmmc_request_done(host, data-mrq);
 - return;
   }
 - omap_hsmmc_start_command(host, data-stop, NULL);
 +
 + return;

return is unnecessary.

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH RESEND 1/8] mmc: omap: Enable Auto CMD12

2012-03-15 Thread Felipe Balbi
On Thu, Mar 15, 2012 at 08:03:35PM +0530, Venkatraman S wrote:
 From: Balaji T K balaj...@ti.com
 
 Enable Auto-CMD12 for multi block read/write on HSMMC
 Tested on OMAP4430, OMAP3430 and OMAP2430 SDP
 
 Signed-off-by: Balaji T K balaj...@ti.com

BTW, since patches are flowing through you now, they should have your
SoB line.

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH RESEND 1/8] mmc: omap: Enable Auto CMD12

2012-03-15 Thread S, Venkatraman
On Thu, Mar 15, 2012 at 8:27 PM, Felipe Balbi ba...@ti.com wrote:
 On Thu, Mar 15, 2012 at 08:03:35PM +0530, Venkatraman S wrote:
 From: Balaji T K balaj...@ti.com

 Enable Auto-CMD12 for multi block read/write on HSMMC
 Tested on OMAP4430, OMAP3430 and OMAP2430 SDP

 Signed-off-by: Balaji T K balaj...@ti.com

 BTW, since patches are flowing through you now, they should have your
 SoB line.


Sure. I'll edit and send again.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html