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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 16, 2012 at 07:08:57PM +0530, Venkatraman S wrote:
> From: Balaji T K <balajitk@xxxxxx>
> 
> Enable Auto-CMD12 for multi block read/write on HSMMC
> Tested on OMAP4430, OMAP3430 and OMAP2430 SDP
> 
> Signed-off-by: Balaji T K <balajitk@xxxxxx>
> Signed-off-by: Venkatraman S <svenkatr@xxxxxx>
> ---
>  drivers/mmc/host/omap_hsmmc.c |   16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index f29e1a2..a9ffd70 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	52000000
>  #define DRIVER_NAME		"omap_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 int		flags;
>  	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,15 @@ 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 {

while adding the braces, you broke the coding style. Please fix.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux