mmc: block: Update packing statistics with large sector size

This patch adds "large sector size" as a reason for stop packing
to the packing statistics mechanism

(cherry picked from commit 1718ef21fb791a2ea25bd3fbf236913de64ca85f)

Change-Id: I595f7839fa9156d5ed26040943c1d5e3011c2a60
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
(cherry picked from commit bd8d562c886ffe3a07b9a56a446eb5b5b7db23ed)
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index bc3ae87..9b4c82a 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1500,6 +1500,7 @@
 
 		if (mmc_large_sec(card) &&
 				!IS_ALIGNED(blk_rq_sectors(next), 8)) {
+			MMC_BLK_UPDATE_STOP_REASON(stats, LARGE_SEC_ALIGN);
 			put_back = 1;
 			break;
 		}
diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
index 898e358..4022ccc 100644
--- a/drivers/mmc/core/debugfs.c
+++ b/drivers/mmc/core/debugfs.c
@@ -433,6 +433,14 @@
 		strlcat(ubuf, temp_buf, cnt);
 	}
 
+	if (pack_stats->pack_stop_reason[LARGE_SEC_ALIGN]) {
+		snprintf(temp_buf, TEMP_BUF_SIZE,
+			 "%s: %d times: Large sector alignment\n",
+			mmc_hostname(card->host),
+			pack_stats->pack_stop_reason[LARGE_SEC_ALIGN]);
+		strlcat(ubuf, temp_buf, cnt);
+	}
+
 	spin_unlock(&pack_stats->lock);
 
 	kfree(temp_buf);
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index b016dbc..6bb86c2 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -195,6 +195,7 @@
 	EMPTY_QUEUE,
 	REL_WRITE,
 	THRESHOLD,
+	LARGE_SEC_ALIGN,
 	MAX_REASONS,
 };