All of lore.kernel.org
 help / color / mirror / Atom feed
From: khilman@baylibre.com (Kevin Hilman)
To: linus-amlogic@lists.infradead.org
Subject: [PATCH 05/18] mmc: meson-gx: eliminate struct sd_emmc_data
Date: Wed, 15 Feb 2017 09:09:16 -0800	[thread overview]
Message-ID: <m2a89nbcub.fsf@baylibre.com> (raw)
In-Reply-To: <4a344def-d2de-ef25-8506-8ad92b8147ce@gmail.com> (Heiner Kallweit's message of "Tue, 14 Feb 2017 21:06:22 +0100")

Heiner Kallweit <hkallweit1@gmail.com> writes:

> Struct sd_emmc_data is used in meson_mmc_start_cmd only, so we can get
> rid of this struct and replace the two used members with local variables.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

For the same reasons as the previous patch, I don't like this change as
I think it will be much cleaner code if we keep this descriptor struct
and use it to fill out multiple descriptors in a chain.

Kevin

> ---
>  drivers/mmc/host/meson-gx-mmc.c | 69 +++++++++++++++++------------------------
>  1 file changed, 29 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
> index 630e0590..c7bf0e12 100644
> --- a/drivers/mmc/host/meson-gx-mmc.c
> +++ b/drivers/mmc/host/meson-gx-mmc.c
> @@ -146,12 +146,6 @@ struct meson_host {
>  	bool vqmmc_enabled;
>  };
>  
> -struct sd_emmc_desc {
> -	u32 cmd_cfg;
> -	u32 cmd_arg;
> -	u32 cmd_data;
> -	u32 cmd_resp;
> -};
>  #define CMD_CFG_LENGTH_SHIFT 0
>  #define CMD_CFG_LENGTH_MASK 0x1ff
>  #define CMD_CFG_BLOCK_MODE BIT(9)
> @@ -443,45 +437,41 @@ static int meson_mmc_request_done(struct mmc_host *mmc, struct mmc_request *mrq)
>  static void meson_mmc_start_cmd(struct mmc_host *mmc, struct mmc_command *cmd)
>  {
>  	struct meson_host *host = mmc_priv(mmc);
> -	struct sd_emmc_desc *desc, desc_tmp;
> -	u32 cfg;
> +	u32 cfg, cmd_cfg = 0, cmd_data = 0;
>  	u8 blk_len, cmd_cfg_timeout;
>  	unsigned int xfer_bytes = 0;
>  
>  	/* Setup descriptors */
>  	dma_rmb();
> -	desc = &desc_tmp;
> -	memset(desc, 0, sizeof(struct sd_emmc_desc));
>  
> -	desc->cmd_cfg |= (cmd->opcode & CMD_CFG_CMD_INDEX_MASK)	<<
> -		CMD_CFG_CMD_INDEX_SHIFT;
> -	desc->cmd_cfg |= CMD_CFG_OWNER;  /* owned by CPU */
> +	cmd_cfg |= (cmd->opcode & CMD_CFG_CMD_INDEX_MASK) <<
> +		   CMD_CFG_CMD_INDEX_SHIFT;
> +	cmd_cfg |= CMD_CFG_OWNER;  /* owned by CPU */
>  
>  	/* Response */
>  	if (cmd->flags & MMC_RSP_PRESENT) {
> -		desc->cmd_cfg &= ~CMD_CFG_NO_RESP;
> +		cmd_cfg &= ~CMD_CFG_NO_RESP;
>  		if (cmd->flags & MMC_RSP_136)
> -			desc->cmd_cfg |= CMD_CFG_RESP_128;
> -		desc->cmd_cfg |= CMD_CFG_RESP_NUM;
> +			cmd_cfg |= CMD_CFG_RESP_128;
> +		cmd_cfg |= CMD_CFG_RESP_NUM;
>  		writel(0, host->regs + SD_EMMC_CMD_RSP);
>  
>  		if (!(cmd->flags & MMC_RSP_CRC))
> -			desc->cmd_cfg |= CMD_CFG_RESP_NOCRC;
> +			cmd_cfg |= CMD_CFG_RESP_NOCRC;
>  
>  		if (cmd->flags & MMC_RSP_BUSY)
> -			desc->cmd_cfg |= CMD_CFG_R1B;
> +			cmd_cfg |= CMD_CFG_R1B;
>  	} else {
> -		desc->cmd_cfg |= CMD_CFG_NO_RESP;
> +		cmd_cfg |= CMD_CFG_NO_RESP;
>  	}
>  
>  	/* data? */
>  	if (cmd->data) {
> -		desc->cmd_cfg |= CMD_CFG_DATA_IO;
> +		cmd_cfg |= CMD_CFG_DATA_IO;
>  		if (cmd->data->blocks > 1) {
> -			desc->cmd_cfg |= CMD_CFG_BLOCK_MODE;
> -			desc->cmd_cfg |=
> -				(cmd->data->blocks & CMD_CFG_LENGTH_MASK) <<
> -				CMD_CFG_LENGTH_SHIFT;
> +			cmd_cfg |= CMD_CFG_BLOCK_MODE;
> +			cmd_cfg |= (cmd->data->blocks & CMD_CFG_LENGTH_MASK) <<
> +				   CMD_CFG_LENGTH_SHIFT;
>  
>  			/* check if block-size matches, if not update */
>  			cfg = readl(host->regs + SD_EMMC_CFG);
> @@ -497,48 +487,47 @@ static void meson_mmc_start_cmd(struct mmc_host *mmc, struct mmc_command *cmd)
>  				writel(cfg, host->regs + SD_EMMC_CFG);
>  			}
>  		} else {
> -			desc->cmd_cfg &= ~CMD_CFG_BLOCK_MODE;
> -			desc->cmd_cfg |=
> -				(cmd->data->blksz & CMD_CFG_LENGTH_MASK) <<
> -				CMD_CFG_LENGTH_SHIFT;
> +			cmd_cfg &= ~CMD_CFG_BLOCK_MODE;
> +			cmd_cfg |= (cmd->data->blksz & CMD_CFG_LENGTH_MASK) <<
> +				   CMD_CFG_LENGTH_SHIFT;
>  		}
>  
>  		cmd->data->bytes_xfered = 0;
>  		xfer_bytes = cmd->data->blksz * cmd->data->blocks;
>  		if (cmd->data->flags & MMC_DATA_WRITE) {
> -			desc->cmd_cfg |= CMD_CFG_DATA_WR;
> +			cmd_cfg |= CMD_CFG_DATA_WR;
>  			WARN_ON(xfer_bytes > host->bounce_buf_size);
>  			sg_copy_to_buffer(cmd->data->sg, cmd->data->sg_len,
>  					  host->bounce_buf, xfer_bytes);
>  			cmd->data->bytes_xfered = xfer_bytes;
>  			dma_wmb();
>  		} else {
> -			desc->cmd_cfg &= ~CMD_CFG_DATA_WR;
> +			cmd_cfg &= ~CMD_CFG_DATA_WR;
>  		}
>  
>  		if (xfer_bytes > 0) {
> -			desc->cmd_cfg &= ~CMD_CFG_DATA_NUM;
> -			desc->cmd_data = host->bounce_dma_addr & CMD_DATA_MASK;
> +			cmd_cfg &= ~CMD_CFG_DATA_NUM;
> +			cmd_data = host->bounce_dma_addr & CMD_DATA_MASK;
>  		} else {
>  			/* write data to data_addr */
> -			desc->cmd_cfg |= CMD_CFG_DATA_NUM;
> -			desc->cmd_data = 0;
> +			cmd_cfg |= CMD_CFG_DATA_NUM;
> +			cmd_data = 0;
>  		}
>  
>  		cmd_cfg_timeout = 12;
>  	} else {
> -		desc->cmd_cfg &= ~CMD_CFG_DATA_IO;
> +		cmd_cfg &= ~CMD_CFG_DATA_IO;
>  		cmd_cfg_timeout = 10;
>  	}
> -	desc->cmd_cfg |= (cmd_cfg_timeout & CMD_CFG_TIMEOUT_MASK) <<
> -		CMD_CFG_TIMEOUT_SHIFT;
> +	cmd_cfg |= (cmd_cfg_timeout & CMD_CFG_TIMEOUT_MASK) <<
> +		   CMD_CFG_TIMEOUT_SHIFT;
>  
>  	host->cmd = cmd;
>  
>  	/* Last descriptor */
> -	desc->cmd_cfg |= CMD_CFG_END_OF_CHAIN;
> -	writel(desc->cmd_cfg, host->regs + SD_EMMC_CMD_CFG);
> -	writel(desc->cmd_data, host->regs + SD_EMMC_CMD_DAT);
> +	cmd_cfg |= CMD_CFG_END_OF_CHAIN;
> +	writel(cmd_cfg, host->regs + SD_EMMC_CMD_CFG);
> +	writel(cmd_data, host->regs + SD_EMMC_CMD_DAT);
>  	wmb(); /* ensure descriptor is written before kicked */
>  	writel(cmd->arg, host->regs + SD_EMMC_CMD_ARG);
>  }

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@baylibre.com>
To: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>,
	Carlo Caione <carlo@caione.org>,
	"linux-mmc@vger.kernel.org" <linux-mmc@vger.kernel.org>,
	linux-amlogic@lists.infradead.org
Subject: Re: [PATCH 05/18] mmc: meson-gx: eliminate struct sd_emmc_data
Date: Wed, 15 Feb 2017 09:09:16 -0800	[thread overview]
Message-ID: <m2a89nbcub.fsf@baylibre.com> (raw)
In-Reply-To: <4a344def-d2de-ef25-8506-8ad92b8147ce@gmail.com> (Heiner Kallweit's message of "Tue, 14 Feb 2017 21:06:22 +0100")

Heiner Kallweit <hkallweit1@gmail.com> writes:

> Struct sd_emmc_data is used in meson_mmc_start_cmd only, so we can get
> rid of this struct and replace the two used members with local variables.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

For the same reasons as the previous patch, I don't like this change as
I think it will be much cleaner code if we keep this descriptor struct
and use it to fill out multiple descriptors in a chain.

Kevin

> ---
>  drivers/mmc/host/meson-gx-mmc.c | 69 +++++++++++++++++------------------------
>  1 file changed, 29 insertions(+), 40 deletions(-)
>
> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
> index 630e0590..c7bf0e12 100644
> --- a/drivers/mmc/host/meson-gx-mmc.c
> +++ b/drivers/mmc/host/meson-gx-mmc.c
> @@ -146,12 +146,6 @@ struct meson_host {
>  	bool vqmmc_enabled;
>  };
>  
> -struct sd_emmc_desc {
> -	u32 cmd_cfg;
> -	u32 cmd_arg;
> -	u32 cmd_data;
> -	u32 cmd_resp;
> -};
>  #define CMD_CFG_LENGTH_SHIFT 0
>  #define CMD_CFG_LENGTH_MASK 0x1ff
>  #define CMD_CFG_BLOCK_MODE BIT(9)
> @@ -443,45 +437,41 @@ static int meson_mmc_request_done(struct mmc_host *mmc, struct mmc_request *mrq)
>  static void meson_mmc_start_cmd(struct mmc_host *mmc, struct mmc_command *cmd)
>  {
>  	struct meson_host *host = mmc_priv(mmc);
> -	struct sd_emmc_desc *desc, desc_tmp;
> -	u32 cfg;
> +	u32 cfg, cmd_cfg = 0, cmd_data = 0;
>  	u8 blk_len, cmd_cfg_timeout;
>  	unsigned int xfer_bytes = 0;
>  
>  	/* Setup descriptors */
>  	dma_rmb();
> -	desc = &desc_tmp;
> -	memset(desc, 0, sizeof(struct sd_emmc_desc));
>  
> -	desc->cmd_cfg |= (cmd->opcode & CMD_CFG_CMD_INDEX_MASK)	<<
> -		CMD_CFG_CMD_INDEX_SHIFT;
> -	desc->cmd_cfg |= CMD_CFG_OWNER;  /* owned by CPU */
> +	cmd_cfg |= (cmd->opcode & CMD_CFG_CMD_INDEX_MASK) <<
> +		   CMD_CFG_CMD_INDEX_SHIFT;
> +	cmd_cfg |= CMD_CFG_OWNER;  /* owned by CPU */
>  
>  	/* Response */
>  	if (cmd->flags & MMC_RSP_PRESENT) {
> -		desc->cmd_cfg &= ~CMD_CFG_NO_RESP;
> +		cmd_cfg &= ~CMD_CFG_NO_RESP;
>  		if (cmd->flags & MMC_RSP_136)
> -			desc->cmd_cfg |= CMD_CFG_RESP_128;
> -		desc->cmd_cfg |= CMD_CFG_RESP_NUM;
> +			cmd_cfg |= CMD_CFG_RESP_128;
> +		cmd_cfg |= CMD_CFG_RESP_NUM;
>  		writel(0, host->regs + SD_EMMC_CMD_RSP);
>  
>  		if (!(cmd->flags & MMC_RSP_CRC))
> -			desc->cmd_cfg |= CMD_CFG_RESP_NOCRC;
> +			cmd_cfg |= CMD_CFG_RESP_NOCRC;
>  
>  		if (cmd->flags & MMC_RSP_BUSY)
> -			desc->cmd_cfg |= CMD_CFG_R1B;
> +			cmd_cfg |= CMD_CFG_R1B;
>  	} else {
> -		desc->cmd_cfg |= CMD_CFG_NO_RESP;
> +		cmd_cfg |= CMD_CFG_NO_RESP;
>  	}
>  
>  	/* data? */
>  	if (cmd->data) {
> -		desc->cmd_cfg |= CMD_CFG_DATA_IO;
> +		cmd_cfg |= CMD_CFG_DATA_IO;
>  		if (cmd->data->blocks > 1) {
> -			desc->cmd_cfg |= CMD_CFG_BLOCK_MODE;
> -			desc->cmd_cfg |=
> -				(cmd->data->blocks & CMD_CFG_LENGTH_MASK) <<
> -				CMD_CFG_LENGTH_SHIFT;
> +			cmd_cfg |= CMD_CFG_BLOCK_MODE;
> +			cmd_cfg |= (cmd->data->blocks & CMD_CFG_LENGTH_MASK) <<
> +				   CMD_CFG_LENGTH_SHIFT;
>  
>  			/* check if block-size matches, if not update */
>  			cfg = readl(host->regs + SD_EMMC_CFG);
> @@ -497,48 +487,47 @@ static void meson_mmc_start_cmd(struct mmc_host *mmc, struct mmc_command *cmd)
>  				writel(cfg, host->regs + SD_EMMC_CFG);
>  			}
>  		} else {
> -			desc->cmd_cfg &= ~CMD_CFG_BLOCK_MODE;
> -			desc->cmd_cfg |=
> -				(cmd->data->blksz & CMD_CFG_LENGTH_MASK) <<
> -				CMD_CFG_LENGTH_SHIFT;
> +			cmd_cfg &= ~CMD_CFG_BLOCK_MODE;
> +			cmd_cfg |= (cmd->data->blksz & CMD_CFG_LENGTH_MASK) <<
> +				   CMD_CFG_LENGTH_SHIFT;
>  		}
>  
>  		cmd->data->bytes_xfered = 0;
>  		xfer_bytes = cmd->data->blksz * cmd->data->blocks;
>  		if (cmd->data->flags & MMC_DATA_WRITE) {
> -			desc->cmd_cfg |= CMD_CFG_DATA_WR;
> +			cmd_cfg |= CMD_CFG_DATA_WR;
>  			WARN_ON(xfer_bytes > host->bounce_buf_size);
>  			sg_copy_to_buffer(cmd->data->sg, cmd->data->sg_len,
>  					  host->bounce_buf, xfer_bytes);
>  			cmd->data->bytes_xfered = xfer_bytes;
>  			dma_wmb();
>  		} else {
> -			desc->cmd_cfg &= ~CMD_CFG_DATA_WR;
> +			cmd_cfg &= ~CMD_CFG_DATA_WR;
>  		}
>  
>  		if (xfer_bytes > 0) {
> -			desc->cmd_cfg &= ~CMD_CFG_DATA_NUM;
> -			desc->cmd_data = host->bounce_dma_addr & CMD_DATA_MASK;
> +			cmd_cfg &= ~CMD_CFG_DATA_NUM;
> +			cmd_data = host->bounce_dma_addr & CMD_DATA_MASK;
>  		} else {
>  			/* write data to data_addr */
> -			desc->cmd_cfg |= CMD_CFG_DATA_NUM;
> -			desc->cmd_data = 0;
> +			cmd_cfg |= CMD_CFG_DATA_NUM;
> +			cmd_data = 0;
>  		}
>  
>  		cmd_cfg_timeout = 12;
>  	} else {
> -		desc->cmd_cfg &= ~CMD_CFG_DATA_IO;
> +		cmd_cfg &= ~CMD_CFG_DATA_IO;
>  		cmd_cfg_timeout = 10;
>  	}
> -	desc->cmd_cfg |= (cmd_cfg_timeout & CMD_CFG_TIMEOUT_MASK) <<
> -		CMD_CFG_TIMEOUT_SHIFT;
> +	cmd_cfg |= (cmd_cfg_timeout & CMD_CFG_TIMEOUT_MASK) <<
> +		   CMD_CFG_TIMEOUT_SHIFT;
>  
>  	host->cmd = cmd;
>  
>  	/* Last descriptor */
> -	desc->cmd_cfg |= CMD_CFG_END_OF_CHAIN;
> -	writel(desc->cmd_cfg, host->regs + SD_EMMC_CMD_CFG);
> -	writel(desc->cmd_data, host->regs + SD_EMMC_CMD_DAT);
> +	cmd_cfg |= CMD_CFG_END_OF_CHAIN;
> +	writel(cmd_cfg, host->regs + SD_EMMC_CMD_CFG);
> +	writel(cmd_data, host->regs + SD_EMMC_CMD_DAT);
>  	wmb(); /* ensure descriptor is written before kicked */
>  	writel(cmd->arg, host->regs + SD_EMMC_CMD_ARG);
>  }

  reply	other threads:[~2017-02-15 17:09 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <420b75a9-b8c2-b3d7-ae60-3ed8a5a18ead@gmail.com>
2017-02-14 20:05 ` [PATCH 01/18] mmc: meson-gx: set segment host parameters Heiner Kallweit
2017-02-14 20:05   ` Heiner Kallweit
2017-02-14 20:05 ` [PATCH 02/18] mmc: meson-gx: remove code for unsupported CMD23 Heiner Kallweit
2017-02-14 20:05   ` Heiner Kallweit
2017-02-15 16:54   ` Kevin Hilman
2017-02-15 16:54     ` Kevin Hilman
2017-02-16  7:03     ` Heiner Kallweit
2017-02-16  7:03       ` Heiner Kallweit
2017-02-16  8:14       ` Ulf Hansson
2017-02-16  8:14         ` Ulf Hansson
2017-02-16 17:49         ` Heiner Kallweit
2017-02-16 17:49           ` Heiner Kallweit
2017-02-19 19:36     ` Heiner Kallweit
2017-02-19 19:36       ` Heiner Kallweit
2017-02-14 20:06 ` [PATCH 03/18] mmc: meson-gx: explicitely call stop command for multi-block commands only Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-14 20:06 ` [PATCH 04/18] mmc: meson-gx: improve meson_mmc_start_cmd Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:04   ` Kevin Hilman
2017-02-15 17:04     ` Kevin Hilman
2017-02-15 19:43     ` Heiner Kallweit
2017-02-15 19:43       ` Heiner Kallweit
2017-02-15 21:10       ` Heiner Kallweit
2017-02-15 21:10         ` Heiner Kallweit
2017-02-15 23:58         ` Kevin Hilman
2017-02-15 23:58           ` Kevin Hilman
2017-02-19 19:41     ` Heiner Kallweit
2017-02-19 19:41       ` Heiner Kallweit
2017-02-14 20:06 ` [PATCH 05/18] mmc: meson-gx: eliminate struct sd_emmc_data Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:09   ` Kevin Hilman [this message]
2017-02-15 17:09     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 06/18] mmc: meson-gx: simplify bounce buffer setting in meson_mmc_start_cmd Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:14   ` Kevin Hilman
2017-02-15 17:14     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 07/18] mmc: meson-gx: check return value of sg_copy_[from,to]_buffer Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:17   ` [PATCH 07/18] mmc: meson-gx: check return value of sg_copy_[from, to]_buffer Kevin Hilman
2017-02-15 17:17     ` [PATCH 07/18] mmc: meson-gx: check return value of sg_copy_[from,to]_buffer Kevin Hilman
2017-02-14 20:06 ` [PATCH 08/18] mmc: meson-gx: make two functions return void Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:18   ` Kevin Hilman
2017-02-15 17:18     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 09/18] mmc: meson-gx: change interrupt name Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 12:34   ` Ben Dooks
2017-02-15 12:34     ` Ben Dooks
2017-02-15 19:46     ` Heiner Kallweit
2017-02-15 19:46       ` Heiner Kallweit
2017-02-15 17:18   ` Kevin Hilman
2017-02-15 17:18     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 10/18] mmc: meson-gx: remove unused members irq, ocr_mask from struct meson_host Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 17:19   ` Kevin Hilman
2017-02-15 17:19     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 11/18] mmc: meson-gx: remove unneeded variable in meson_mmc_clk_init Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 19:24   ` Kevin Hilman
2017-02-15 19:24     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 12/18] mmc: meson-gx: remove member parent_mux from struct meson_host Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 19:25   ` Kevin Hilman
2017-02-15 19:25     ` Kevin Hilman
2017-02-14 20:06 ` [PATCH 13/18] mmc: meson-gx: remove unneeded meson_mmc_clk_set in meson_mmc_clk_init Heiner Kallweit
2017-02-14 20:06   ` Heiner Kallweit
2017-02-15 19:27   ` Kevin Hilman
2017-02-15 19:27     ` Kevin Hilman
2017-02-15 19:38     ` Heiner Kallweit
2017-02-15 19:38       ` Heiner Kallweit
2017-02-15 23:56       ` Kevin Hilman
2017-02-15 23:56         ` Kevin Hilman
2017-02-16  7:05         ` Heiner Kallweit
2017-02-16  7:05           ` Heiner Kallweit
2017-02-14 20:07 ` [PATCH 14/18] mmc: meson-gx: remove unneeded devm_kstrdup " Heiner Kallweit
2017-02-14 20:07   ` Heiner Kallweit
2017-02-15 19:30   ` Kevin Hilman
2017-02-15 19:30     ` Kevin Hilman
2017-02-15 19:35     ` Heiner Kallweit
2017-02-15 19:35       ` Heiner Kallweit
2017-02-14 20:07 ` [PATCH 15/18] mmc: meson-gx: improve initial configuration Heiner Kallweit
2017-02-14 20:07   ` Heiner Kallweit
2017-02-15 19:32   ` Kevin Hilman
2017-02-15 19:32     ` Kevin Hilman
2017-02-14 20:07 ` [PATCH 16/18] mmc: meson-gx: improve response reading and sending stop command Heiner Kallweit
2017-02-14 20:07   ` Heiner Kallweit
2017-02-15 19:34   ` Kevin Hilman
2017-02-15 19:34     ` Kevin Hilman
2017-02-14 20:07 ` [PATCH 17/18] mmc: meson-gx: remove member mrq from struct meson_host Heiner Kallweit
2017-02-14 20:07   ` Heiner Kallweit
2017-02-15 19:36   ` Kevin Hilman
2017-02-15 19:36     ` Kevin Hilman
2017-02-14 20:07 ` [PATCH 18/18] mmc: meson-gx: move handling of one case from threaded handler to main irq Heiner Kallweit
2017-02-14 20:07   ` Heiner Kallweit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2a89nbcub.fsf@baylibre.com \
    --to=khilman@baylibre.com \
    --cc=linus-amlogic@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.