b50b299
From patchwork Fri Dec 30 15:24:32 2016
b50b299
Content-Type: text/plain; charset="utf-8"
b50b299
MIME-Version: 1.0
b50b299
Content-Transfer-Encoding: 7bit
b50b299
Subject: [1/2] mmc: sdhci-iproc: Apply caps from bcm2835-mmc driver
b50b299
From: Stefan Wahren <stefan.wahren@i2se.com>
b50b299
X-Patchwork-Id: 9492281
b50b299
Message-Id: <1483111474-29907-2-git-send-email-stefan.wahren@i2se.com>
b50b299
To: Eric Anholt <eric@anholt.net>, Gerd Hoffmann <kraxel@redhat.com>,
b50b299
 Adrian Hunter <adrian.hunter@intel.com>,
b50b299
 Ulf Hansson <ulf.hansson@linaro.org>
b50b299
Cc: Stefan Wahren <stefan.wahren@i2se.com>,
b50b299
 Scott Branden <sbranden@broadcom.com>, Jon Mason <jonmason@broadcom.com>, 
b50b299
 Ray Jui <rjui@broadcom.com>, linux-mmc@vger.kernel.org,
b50b299
 bcm-kernel-feedback-list@broadcom.com,
b50b299
 linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org
b50b299
Date: Fri, 30 Dec 2016 15:24:32 +0000
b50b299
b50b299
Since the mmc module on bcm2835 neither provide a capabilities register nor 
b50b299
free documentation we must rely on the downstream implementation [1].
b50b299
b50b299
So enable the following capabilities for bcm2835:
b50b299
b50b299
MMC_CAP_MMC_HIGHSPEED
b50b299
MMC_CAP_SD_HIGHSPEED
b50b299
MMC_CAP_DRIVER_TYPE_A
b50b299
MMC_CAP_DRIVER_TYPE_C
b50b299
b50b299
[1] - https://github.com/raspberrypi/linux/blob/rpi-4.4.y/drivers/mmc/host/bcm2835-mmc.c
b50b299
b50b299
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
b50b299
Reviewed-by: Eric Anholt <eric@anholt.net>
b50b299
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
b50b299
---
b50b299
 drivers/mmc/host/sdhci-iproc.c |    9 ++++++---
b50b299
 1 file changed, 6 insertions(+), 3 deletions(-)
b50b299
b50b299
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
b50b299
index d7046d6..30b3fdf 100644
b50b299
--- a/drivers/mmc/host/sdhci-iproc.c
b50b299
+++ b/drivers/mmc/host/sdhci-iproc.c
b50b299
@@ -211,14 +211,17 @@ static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg)
b50b299
 static const struct sdhci_pltfm_data sdhci_bcm2835_pltfm_data = {
b50b299
 	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
b50b299
 		  SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
b50b299
-		  SDHCI_QUIRK_MISSING_CAPS,
b50b299
+		  SDHCI_QUIRK_MISSING_CAPS |
b50b299
+		  SDHCI_QUIRK_NO_HISPD_BIT,
b50b299
 	.ops = &sdhci_iproc_32only_ops,
b50b299
 };
b50b299
 
b50b299
 static const struct sdhci_iproc_data bcm2835_data = {
b50b299
 	.pdata = &sdhci_bcm2835_pltfm_data,
b50b299
-	.caps = SDHCI_CAN_VDD_330,
b50b299
-	.caps1 = 0x00000000,
b50b299
+	.caps = SDHCI_CAN_VDD_330 |
b50b299
+		SDHCI_CAN_DO_HISPD,
b50b299
+	.caps1 = SDHCI_DRIVER_TYPE_A |
b50b299
+		 SDHCI_DRIVER_TYPE_C,
b50b299
 	.mmc_caps = 0x00000000,
b50b299
 };
b50b299
 
b50b299
From patchwork Fri Dec 30 15:24:33 2016
b50b299
Content-Type: text/plain; charset="utf-8"
b50b299
MIME-Version: 1.0
b50b299
Content-Transfer-Encoding: 7bit
b50b299
Subject: [2/2] mmc: sdhci-iproc: Increase max_blk_size for bcm2835
b50b299
From: Stefan Wahren <stefan.wahren@i2se.com>
b50b299
X-Patchwork-Id: 9492273
b50b299
Message-Id: <1483111474-29907-3-git-send-email-stefan.wahren@i2se.com>
b50b299
To: Eric Anholt <eric@anholt.net>, Gerd Hoffmann <kraxel@redhat.com>,
b50b299
 Adrian Hunter <adrian.hunter@intel.com>,
b50b299
 Ulf Hansson <ulf.hansson@linaro.org>
b50b299
Cc: Stefan Wahren <stefan.wahren@i2se.com>,
b50b299
 Scott Branden <sbranden@broadcom.com>, Jon Mason <jonmason@broadcom.com>, 
b50b299
 Ray Jui <rjui@broadcom.com>, linux-mmc@vger.kernel.org,
b50b299
 bcm-kernel-feedback-list@broadcom.com,
b50b299
 linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org
b50b299
Date: Fri, 30 Dec 2016 15:24:33 +0000
b50b299
b50b299
According to the BCM2835 datasheet the maximum block size for the
b50b299
eMMC module is restricted to the internal data FIFO which is 1024 byte.
b50b299
But this is still an improvement to the default of 512 byte.
b50b299
b50b299
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
b50b299
Reviewed-by: Eric Anholt <eric@anholt.net>
b50b299
Acked-by: Scott Branden <scott.branden@broadcom.com>
b50b299
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
b50b299
---
b50b299
 drivers/mmc/host/sdhci-iproc.c |    4 +++-
b50b299
 1 file changed, 3 insertions(+), 1 deletion(-)
b50b299
b50b299
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
b50b299
index 30b3fdf..3275d49 100644
b50b299
--- a/drivers/mmc/host/sdhci-iproc.c
b50b299
+++ b/drivers/mmc/host/sdhci-iproc.c
b50b299
@@ -218,7 +218,9 @@ static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg)
b50b299
 
b50b299
 static const struct sdhci_iproc_data bcm2835_data = {
b50b299
 	.pdata = &sdhci_bcm2835_pltfm_data,
b50b299
-	.caps = SDHCI_CAN_VDD_330 |
b50b299
+	.caps = ((0x1 << SDHCI_MAX_BLOCK_SHIFT)
b50b299
+			& SDHCI_MAX_BLOCK_MASK) |
b50b299
+		SDHCI_CAN_VDD_330 |
b50b299
 		SDHCI_CAN_DO_HISPD,
b50b299
 	.caps1 = SDHCI_DRIVER_TYPE_A |
b50b299
 		 SDHCI_DRIVER_TYPE_C,