aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2017-08-10 08:08:07 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2017-08-30 08:02:01 -0400
commitd2f82254e4e862662e7820953b049b7d4d660ec7 (patch)
treec33dcdea54b78ff3f03bdf960c0b09d0c34273cf /include/linux/mmc
parentbf517d6fec719980fe3b7acd9670a68442a372b7 (diff)
mmc: core: Add members to mmc_request and mmc_data for CQE's
Most of the information needed to issue requests to a CQE is already in struct mmc_request and struct mmc_data. Add data block address, some flags, and the task id (tag), and allow for cmd being NULL which it is for CQE tasks. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/core.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
index a0c63ea28796..bf1788a224e6 100644
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
@@ -122,11 +122,18 @@ struct mmc_data {
122 unsigned int timeout_clks; /* data timeout (in clocks) */ 122 unsigned int timeout_clks; /* data timeout (in clocks) */
123 unsigned int blksz; /* data block size */ 123 unsigned int blksz; /* data block size */
124 unsigned int blocks; /* number of blocks */ 124 unsigned int blocks; /* number of blocks */
125 unsigned int blk_addr; /* block address */
125 int error; /* data error */ 126 int error; /* data error */
126 unsigned int flags; 127 unsigned int flags;
127 128
128#define MMC_DATA_WRITE (1 << 8) 129#define MMC_DATA_WRITE BIT(8)
129#define MMC_DATA_READ (1 << 9) 130#define MMC_DATA_READ BIT(9)
131/* Extra flags used by CQE */
132#define MMC_DATA_QBR BIT(10) /* CQE queue barrier*/
133#define MMC_DATA_PRIO BIT(11) /* CQE high priority */
134#define MMC_DATA_REL_WR BIT(12) /* Reliable write */
135#define MMC_DATA_DAT_TAG BIT(13) /* Tag request */
136#define MMC_DATA_FORCED_PRG BIT(14) /* Forced programming */
130 137
131 unsigned int bytes_xfered; 138 unsigned int bytes_xfered;
132 139
@@ -153,6 +160,8 @@ struct mmc_request {
153 160
154 /* Allow other commands during this ongoing data transfer or busy wait */ 161 /* Allow other commands during this ongoing data transfer or busy wait */
155 bool cap_cmd_during_tfr; 162 bool cap_cmd_during_tfr;
163
164 int tag;
156}; 165};
157 166
158struct mmc_card; 167struct mmc_card;