From 94e0d11b8832f5efff06602125b8603e629dc643 Mon Sep 17 00:00:00 2001 From: Long Yu Date: Mon, 25 Dec 2017 16:56:21 +0800 Subject: [PATCH] emmc: refixed how to get host->data variable in M8bab PD#154260: emmc: refixed how to get host->data variable for M8b 1. refixed how to get host->data variable 2. Compatible m8b and 905 Change-Id: I647fb191f71a3a4b6b63eee29be1a91e6581af12 Signed-off-by: Long Yu --- drivers/amlogic/mmc/aml_sdhc_m8.c | 6 ++++++ drivers/amlogic/mmc/aml_sdio.c | 5 +++++ drivers/amlogic/mmc/amlsd_of.c | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/amlogic/mmc/aml_sdhc_m8.c b/drivers/amlogic/mmc/aml_sdhc_m8.c index 341fb1edf5d7..4e38457e28c7 100644 --- a/drivers/amlogic/mmc/aml_sdhc_m8.c +++ b/drivers/amlogic/mmc/aml_sdhc_m8.c @@ -2253,6 +2253,7 @@ static int aml_sdhc_probe(struct platform_device *pdev) of_device_get_match_data(&pdev->dev); if (!host->data) { ret = -EINVAL; + pr_info("host->data null\n"); goto probe_free_host; } @@ -2420,9 +2421,14 @@ int aml_sdhc_remove(struct platform_device *pdev) return 0; } +static struct meson_mmc_data mmc_data_m8b = { + .chip_type = MMC_CHIP_M8B, +}; + static const struct of_device_id aml_sdhc_dt_match[] = { { .compatible = "amlogic, aml_sdhc", + .data = &mmc_data_m8b, }, {}, }; diff --git a/drivers/amlogic/mmc/aml_sdio.c b/drivers/amlogic/mmc/aml_sdio.c index 0487d018f6e5..e2269e5f4613 100644 --- a/drivers/amlogic/mmc/aml_sdio.c +++ b/drivers/amlogic/mmc/aml_sdio.c @@ -1335,9 +1335,14 @@ fail_init_host: return 0; } + static struct meson_mmc_data mmc_data_m8b = { + .chip_type = MMC_CHIP_M8B, + }; + static const struct of_device_id aml_sdio_dt_match[] = { { .compatible = "amlogic, aml_sdio", + .data = &mmc_data_m8b, }, {}, }; diff --git a/drivers/amlogic/mmc/amlsd_of.c b/drivers/amlogic/mmc/amlsd_of.c index b0f224b5222a..03fd7179b382 100644 --- a/drivers/amlogic/mmc/amlsd_of.c +++ b/drivers/amlogic/mmc/amlsd_of.c @@ -126,14 +126,16 @@ int amlsd_get_platform_data(struct platform_device *pdev, struct device_node *child; u32 i, prop; const char *str = "none"; - struct amlsd_host *host = mmc_priv(mmc); + struct amlsd_host *host = NULL; #ifdef CONFIG_AMLOGIC_M8B_MMC of_node = pdev->dev.of_node; + host = platform_get_drvdata(pdev); #else if (!mmc->parent) return 0; of_node = mmc->parent->of_node; + host = mmc_priv(mmc); #endif if (of_node) { child = of_node->child;