mmc: mxs-mmc: Use devm_clk_get()
Subsystems (2)
Fabio Estevam
reviewerPATCH 1/2 mmc: mxs-mmc: Use devm_clk_get()
Using devm_clk_get() allows us to remove the clk_put() calls, so let's use it to simplify the code.
Rename the 'out_clk_put' label to 'out_clk_disable' now that clk_put is removed.
--- drivers/mmc/host/mxs-mmc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/mmc/host/mxs-mmc.c +3 -5
@@ -618,7 +618,7 @@ static int mxs_mmc_probe(struct platform_device *pdev) } } - ssp->clk =clk_get (&pdev->dev,NULL ); + ssp->clk =devm_clk_get (&pdev->dev,NULL );if (IS_ERR (ssp->clk)) { ret =PTR_ERR (ssp->clk); goto out_mmc_free;
@@ -632,7 +632,7 @@ static int mxs_mmc_probe(struct platform_device *pdev)dev_err (mmc_dev (host->mmc),"%s: failed to request dma\n" , __func__); ret = -ENODEV ; - goto out_clk_put; + goto out_clk_disable; }/* set mmc core parameters */
@@ -685,9 +685,8 @@ static int mxs_mmc_probe(struct platform_device *pdev) out_free_dma:if (ssp->dmach)dma_release_channel (ssp->dmach); -out_clk_put: +out_clk_disable:clk_disable_unprepare (ssp->clk); -clk_put (ssp->clk); out_mmc_free:mmc_free_host (mmc);return ret;
@@ -705,7 +704,6 @@ static int mxs_mmc_remove(struct platform_device *pdev)dma_release_channel (ssp->dmach);clk_disable_unprepare (ssp->clk); -clk_put (ssp->clk);mmc_free_host (mmc);
Signature · 1 line
1.8.1.2
Fabio Estevam
reviewerPATCH 2/2 mmc: mxs-mmc: Check the return value from stmp_reset_block()
From: Fabio Estevam <[email protected]>
stmp_reset_block() may fail, so let's check its return value and propagate it in the case of error.
--- drivers/mmc/host/mxs-mmc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
drivers/mmc/host/mxs-mmc.c +12 -4
@@ -102,12 +102,15 @@ static int mxs_mmc_get_cd(struct mmc_host *mmc) BM_SSP_STATUS_CARD_DETECT) ^ host->cd_inverted; } -static void mxs_mmc_reset (struct mxs_mmc_host *host) +static int mxs_mmc_reset (struct mxs_mmc_host *host) {struct mxs_ssp *ssp = &host->ssp;u32 ctrl0, ctrl1; - -stmp_reset_block (ssp->base); +int ret; + + ret =stmp_reset_block (ssp->base); +if (ret) +return ret; ctrl0 =BM_SSP_CTRL0_IGNORE_CRC ; ctrl1 = BF_SSP(0x3, CTRL1_SSP_MODE) |
@@ -132,6 +135,7 @@ static void mxs_mmc_reset(struct mxs_mmc_host *host)writel (ctrl0, ssp->base +HW_SSP_CTRL0 );writel (ctrl1, ssp->base +HW_SSP_CTRL1 (ssp)); +return 0 ; } static void mxs_mmc_start_cmd(struct mxs_mmc_host *host,
@@ -625,7 +629,11 @@ static int mxs_mmc_probe(struct platform_device *pdev) }clk_prepare_enable (ssp->clk); -mxs_mmc_reset (host); + ret =mxs_mmc_reset (host); +if (ret) { +dev_err (&pdev->dev,"Failed to reset mmc: %d\n" , ret); + goto out_clk_disable; + } ssp->dmach =dma_request_slave_channel (&pdev->dev,"rx-tx" );if (!ssp->dmach) {
Signature · 1 line
1.8.1.2
Quoted 6 lines · Fabio Estevam
Using
devm_clk_get()allows us to remove theclk_put()calls, so let's use it to simplify the code.Rename the '
out_clk_put' label to 'out_clk_disable' now thatclk_putis removed.Signed-off-by Fabio Estevam <[email protected]>
Both,
Hi Fabio,
Quoted 4 lines · Shawn Guo
Quoted 3 lines · Fabio Estevam
Using
devm_clk_get()allows us to remove theclk_put()calls, so let's use it to simplify the code.
Quoted 8 lines
Quoted 4 lines
Rename the '
out_clk_put' label to 'out_clk_disable' now thatclk_putis removed.Signed-off-by Fabio Estevam <[email protected]>Both,
Acked-by Shawn Guo <[email protected]>
Thanks, both pushed to mmc-next for 3.12.
- Chris.
Signature · 1 line
Chris Ball <[email protected]> <http://printf.net/>