On Tuesday 04 February 2014 08:48 PM, Nishanth Menon wrote:
On 02/04/2014 06:44 AM, Balaji T K wrote:
On Tuesday 21 January 2014 04:59 AM, Nishanth Menon wrote:
When device is booted using devicetree, platforms impacted by
Erratum 2.1.1.128 is not detected easily in the mmc driver. This erratum
indicates that the module cannot do multi-block transfers.
Handle this by providing a boolean flag to indicate to driver that it is
working on a hardware with mentioned limitation.
Signed-off-by: Nishanth Menon <nm@xxxxxx>
---
This explains the logs I see:
OMAP3430 LDP (ES2.2):
uImage only boot: http://slexy.org/raw/s2YrbMAi7c
uImage+dtb concatenated boot: http://slexy.org/raw/s20qVg17T0
With the following flag set, device is now able to consistently boot with
device tree supported uImage+dtb concat boot.
.../devicetree/bindings/mmc/ti-omap-hsmmc.txt | 2 ++
drivers/mmc/host/omap_hsmmc.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 8c8908a..ab36f8b 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -26,6 +26,8 @@ specifier is required.
dma-names: List of DMA request names. These strings correspond
1:1 with the DMA specifiers listed in dmas. The string naming is
to be "rx" and "tx" for RX and TX DMA requests, respectively.
+ti,erratum-2.1.1.128: boolean, for OMAP3430/OMAP35xx platforms with broken
+multiblock reads
Rather than ti,errata.. specific property, something like
caps no/disable multiblock read is more readable in my opinion, Otherwise
Is'nt the better definition to state i have quirk X and allow the
driver to do the necessary thing/things needed to handle quirk X? in
this case, there is just one thing to do: broken multi_block_read, in
the case of other quirks, there might be more than 1 thing to do.. let
driver figure that out, dts just states the h/w capabilty or in this
case, the quirk capability.
But in this case there is only one. disable multi block read is more readable
than the errata reference, No strong feelings though.
Acked-by: Balaji T K <balajitk@xxxxxx>
Examples:
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 014bfe5..f2d5940 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1730,6 +1730,9 @@ static struct omap_mmc_platform_data *of_get_hsmmc_pdata(struct device *dev)
if (of_find_property(np, "ti,dual-volt", NULL))
pdata->controller_flags |= OMAP_HSMMC_SUPPORTS_DUAL_VOLT;
+ if (of_find_property(np, "ti,erratum-2.1.1.128", NULL))
+ pdata->controller_flags |= OMAP_HSMMC_BROKEN_MULTIBLOCK_READ;
+
/* This driver only supports 1 slot */
pdata->nr_slots = 1;
pdata->slots[0].switch_pin = cd_gpio;
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html