@@ -293,6 +293,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card,
if (!mq->queue)
return -ENOMEM;
+ mq->qdepth = 2;
mq->mqrq_cur = &mq->mqrq[0];
mq->mqrq_prev = &mq->mqrq[1];
mq->queue->queuedata = mq;
@@ -390,6 +391,9 @@ int mmc_packed_init(struct mmc_queue *mq, struct mmc_card *card)
struct mmc_queue_req *mqrq_prev = &mq->mqrq[1];
int ret = 0;
+ /* Queue depth is only ever 2 with packed commands */
+ if (mq->qdepth != 2)
+ return -EINVAL;
mqrq_cur->packed = kzalloc(sizeof(struct mmc_packed), GFP_KERNEL);
if (!mqrq_cur->packed) {
@@ -59,6 +59,7 @@ struct mmc_queue {
struct mmc_queue_req mqrq[2];
struct mmc_queue_req *mqrq_cur;
struct mmc_queue_req *mqrq_prev;
+ int qdepth;
};
extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
Add a mmc_queue member to record the size of the queue, which currently supports 2 requests on-the-go at a time. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- drivers/mmc/card/queue.c | 4 ++++ drivers/mmc/card/queue.h | 1 + 2 files changed, 5 insertions(+)