
Hi Lukasz,
On 26 July 2018 at 03:55, Lukasz Majewski lukma@denx.de wrote:
By convention for DM_MMC the host->priv is used to store struct udevice *dev pointer.
Unfortunately, the legacy Exynos DW MMC code uses this field to store pointer to dwmci_exynos_priv_data struct Hence, we do need to get data in other way - namely by using container_of when host pointer is present. In this way the sdr_timing data is properly accessed.
Signed-off-by: Lukasz Majewski lukma@denx.de
drivers/mmc/exynos_dw_mmc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c index 49c4f7634830..cd0fa4c6341b 100644 --- a/drivers/mmc/exynos_dw_mmc.c +++ b/drivers/mmc/exynos_dw_mmc.c @@ -46,8 +46,12 @@ struct dwmci_exynos_priv_data { */ static void exynos_dwmci_clksel(struct dwmci_host *host) { +#ifdef CONFIG_DM_MMC
struct dwmci_exynos_priv_data *priv =
container_of(host, struct dwmci_exynos_priv_data, host);
+#else struct dwmci_exynos_priv_data *priv = host->priv;
+#endif dwmci_writel(host, DWMCI_CLKSEL, priv->sdr_timing); }
-- 2.11.0
Please add my. Tested-by: Anand Moon linux.amoon@gmail.com
Best Regards -Anand