mmc: dw_mmc: move controller reset before driver init
This commit modifies dw_mci_probe(), it moves reset assertion before drv_data->init(host) Some driver needs to access controller registers in its .init() ops. So, in order to make such access safe, we should do controller reset before .init() being called. Signed-off-by: Wei Li <liwei213@huawei.com> Signed-off-by: Guodong Xu <guodong.xu@linaro.org> Signed-off-by: Chen Jun <chenjun14@huawei.com> Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
a2bc74cfee
commit
941e372d89
@ -3067,6 +3067,12 @@ int dw_mci_probe(struct dw_mci *host)
|
||||
goto err_clk_ciu;
|
||||
}
|
||||
|
||||
if (!IS_ERR(host->pdata->rstc)) {
|
||||
reset_control_assert(host->pdata->rstc);
|
||||
usleep_range(10, 50);
|
||||
reset_control_deassert(host->pdata->rstc);
|
||||
}
|
||||
|
||||
if (drv_data && drv_data->init) {
|
||||
ret = drv_data->init(host);
|
||||
if (ret) {
|
||||
@ -3076,12 +3082,6 @@ int dw_mci_probe(struct dw_mci *host)
|
||||
}
|
||||
}
|
||||
|
||||
if (!IS_ERR(host->pdata->rstc)) {
|
||||
reset_control_assert(host->pdata->rstc);
|
||||
usleep_range(10, 50);
|
||||
reset_control_deassert(host->pdata->rstc);
|
||||
}
|
||||
|
||||
setup_timer(&host->cmd11_timer,
|
||||
dw_mci_cmd11_timer, (unsigned long)host);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user