mmc: dw_mmc: exynos: move the exynos private init
PATCH 5/22 mmc: dw_mmc: exynos: move the exynos private init
From: Yuvaraj Kumar C D <[email protected]>
Currently platform specific private data initialization is done by dw_mci_exynos_priv_init and dw_mci_exynos_parse_dt. As we already have separate platform specific device tree parser dw_mci_exynos_parse_dt, move the dw_mci_exynos_priv_init code to dw_mci_exynos_parse_dt. We can use the dw_mci_exynos_priv_init to do some actual platform specific initialization of SMU and etc.
Signed-off-by Yuvaraj Kumar C D <[email protected]>
Tested-by Alim Akhtar <[email protected]>
Tested-by Jaehoon Chung <[email protected]>
Acked-by Seungwon Jeon <[email protected]>
--- drivers/mmc/host/dw_mmc-exynos.c | 34 ++++++++++++++++------------------ 1 files changed, 16 insertions(+), 18 deletions(-)
drivers/mmc/host/dw_mmc-exynos.c +16 -18
@@ -72,22 +72,8 @@ static struct dw_mci_exynos_compatible {static int dw_mci_exynos_priv_init (struct dw_mci *host) { -struct dw_mci_exynos_priv_data *priv; -int idx; - - priv =devm_kzalloc (host->dev,sizeof (*priv),GFP_KERNEL ); -if (!priv) { -dev_err (host->dev,"mem alloc failed for private data\n" ); -return -ENOMEM ; - } - -for (idx =0 ; idx <ARRAY_SIZE (exynos_compat); idx++) { -if (of_device_is_compatible (host->dev->of_node, - exynos_compat[idx].compatible)) - priv->ctrl_type = exynos_compat[idx].ctrl_type; - } +struct dw_mci_exynos_priv_data *priv = host->priv; - host->priv = priv;return 0 ; }
@@ -174,12 +160,24 @@ static void dw_mci_exynos_set_ios(struct dw_mci *host, struct mmc_ios *ios)static int dw_mci_exynos_parse_dt (struct dw_mci *host) { -struct dw_mci_exynos_priv_data *priv = host->priv; +struct dw_mci_exynos_priv_data *priv;struct device_node *np = host->dev->of_node;u32 timing[2 ];u32 div =0 ; +int idx;int ret; + priv =devm_kzalloc (host->dev,sizeof (*priv),GFP_KERNEL ); +if (!priv) { +dev_err (host->dev,"mem alloc failed for private data\n" ); +return -ENOMEM ; + } + +for (idx =0 ; idx <ARRAY_SIZE (exynos_compat); idx++) { +if (of_device_is_compatible (np, exynos_compat[idx].compatible)) + priv->ctrl_type = exynos_compat[idx].ctrl_type; + } +of_property_read_u32 (np,"samsung,dw-mshc-ciu-div" , &div); priv->ciu_div = div;
@@ -188,14 +186,14 @@ static int dw_mci_exynos_parse_dt(struct dw_mci *host)if (ret)return ret; - priv->sdr_timing =SDMMC_CLKSEL_TIMING (timing[0 ], timing[1 ], div); - ret =of_property_read_u32_array (np,"samsung,dw-mshc-ddr-timing" , timing,2 );if (ret)return ret; + priv->sdr_timing =SDMMC_CLKSEL_TIMING (timing[0 ], timing[1 ], div); priv->ddr_timing =SDMMC_CLKSEL_TIMING (timing[0 ], timing[1 ], div); + host->priv = priv;return 0 ; }
Signature · 1 line
1.7.0.4