* [PATCH 0/2] mmc: meson-gx: fix module unloading @ 2017-02-16 14:52 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: linus-amlogic This patch contains fixes for the meson-gx-mmc driver, that allow the module to be unloaded correctly. Before trying to unload the module caused kernel warnings. Micha? Zegan (2): mmc: meson-gx: prevent cfg_div_clk from being disabled on init mmc: meson-gx: remove mmc host on device removal drivers/mmc/host/meson-gx-mmc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.11.0 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 0/2] mmc: meson-gx: fix module unloading @ 2017-02-16 14:52 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: Kevin Hilman Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel, Michał Zegan This patch contains fixes for the meson-gx-mmc driver, that allow the module to be unloaded correctly. Before trying to unload the module caused kernel warnings. Michał Zegan (2): mmc: meson-gx: prevent cfg_div_clk from being disabled on init mmc: meson-gx: remove mmc host on device removal drivers/mmc/host/meson-gx-mmc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.11.0 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init 2017-02-16 14:52 ` Michał Zegan @ 2017-02-16 14:52 ` Michał Zegan -1 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: linus-amlogic At the end of function meson_mmc_clk_init, the cfg_div clock was prepared, enabled and configured, but then immediately disabled due to bogus if statements. That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. Fix that by changing the code to disable clock only when it failed to be configured. Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> --- drivers/mmc/host/meson-gx-mmc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index 09739352834c..d444b6bfa02b 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -324,11 +324,12 @@ static int meson_mmc_clk_init(struct meson_host *host) writel(cfg, host->regs + SD_EMMC_CFG); ret = clk_prepare_enable(host->cfg_div_clk); - if (!ret) + if (!ret) { ret = meson_mmc_clk_set(host, f_min); - if (!ret) - clk_disable_unprepare(host->cfg_div_clk); + if (ret) + clk_disable_unprepare(host->cfg_div_clk); + } return ret; } -- 2.11.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init @ 2017-02-16 14:52 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: Kevin Hilman Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel, Michał Zegan At the end of function meson_mmc_clk_init, the cfg_div clock was prepared, enabled and configured, but then immediately disabled due to bogus if statements. That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. Fix that by changing the code to disable clock only when it failed to be configured. Signed-off-by: Michał Zegan <webczat@webczatnet.pl> --- drivers/mmc/host/meson-gx-mmc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index 09739352834c..d444b6bfa02b 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -324,11 +324,12 @@ static int meson_mmc_clk_init(struct meson_host *host) writel(cfg, host->regs + SD_EMMC_CFG); ret = clk_prepare_enable(host->cfg_div_clk); - if (!ret) + if (!ret) { ret = meson_mmc_clk_set(host, f_min); - if (!ret) - clk_disable_unprepare(host->cfg_div_clk); + if (ret) + clk_disable_unprepare(host->cfg_div_clk); + } return ret; } -- 2.11.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init 2017-02-16 14:52 ` Michał Zegan @ 2017-02-17 19:44 ` Kevin Hilman -1 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 19:44 UTC (permalink / raw) To: linus-amlogic Micha? Zegan <webczat@webczatnet.pl> writes: > At the end of function meson_mmc_clk_init, the cfg_div clock was > prepared, enabled and configured, but then immediately disabled due to bogus if statements. > That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. > Fix that by changing the code to disable clock only when it failed to be configured. > > Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> I believe this one is not needed any more after Heiner's cleanups? Kevin ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init @ 2017-02-17 19:44 ` Kevin Hilman 0 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 19:44 UTC (permalink / raw) To: Michał Zegan Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel Michał Zegan <webczat@webczatnet.pl> writes: > At the end of function meson_mmc_clk_init, the cfg_div clock was > prepared, enabled and configured, but then immediately disabled due to bogus if statements. > That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. > Fix that by changing the code to disable clock only when it failed to be configured. > > Signed-off-by: Michał Zegan <webczat@webczatnet.pl> I believe this one is not needed any more after Heiner's cleanups? Kevin ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init 2017-02-17 19:44 ` Kevin Hilman @ 2017-02-17 19:49 ` Michał Zegan -1 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-17 19:49 UTC (permalink / raw) To: linus-amlogic W dniu 17.02.2017 o 20:44, Kevin Hilman pisze: > Micha? Zegan <webczat@webczatnet.pl> writes: > >> At the end of function meson_mmc_clk_init, the cfg_div clock was >> prepared, enabled and configured, but then immediately disabled due to bogus if statements. >> That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. >> Fix that by changing the code to disable clock only when it failed to be configured. >> >> Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> > I believe this one is not needed any more after Heiner's cleanups? I think it is not needed, yes. > > Kevin ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init @ 2017-02-17 19:49 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-17 19:49 UTC (permalink / raw) To: Kevin Hilman Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel W dniu 17.02.2017 o 20:44, Kevin Hilman pisze: > Michał Zegan <webczat@webczatnet.pl> writes: > >> At the end of function meson_mmc_clk_init, the cfg_div clock was >> prepared, enabled and configured, but then immediately disabled due to bogus if statements. >> That made later calls to clk_disable_unprepare executed during module removal to fail with a kernel warning. >> Fix that by changing the code to disable clock only when it failed to be configured. >> >> Signed-off-by: Michał Zegan <webczat@webczatnet.pl> > I believe this one is not needed any more after Heiner's cleanups? I think it is not needed, yes. > > Kevin ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal 2017-02-16 14:52 ` Michał Zegan @ 2017-02-16 14:52 ` Michał Zegan -1 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: linus-amlogic The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. Fix that by removing the host before deallocating other resources. Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> --- drivers/mmc/host/meson-gx-mmc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index d444b6bfa02b..bb83446118a3 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) if (WARN_ON(!host)) return 0; + mmc_remove_host(host->mmc); + if (host->bounce_buf) dma_free_coherent(host->dev, host->bounce_buf_size, host->bounce_buf, host->bounce_dma_addr); -- 2.11.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal @ 2017-02-16 14:52 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-16 14:52 UTC (permalink / raw) To: Kevin Hilman Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel, Michał Zegan The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. Fix that by removing the host before deallocating other resources. Signed-off-by: Michał Zegan <webczat@webczatnet.pl> --- drivers/mmc/host/meson-gx-mmc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index d444b6bfa02b..bb83446118a3 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) if (WARN_ON(!host)) return 0; + mmc_remove_host(host->mmc); + if (host->bounce_buf) dma_free_coherent(host->dev, host->bounce_buf_size, host->bounce_buf, host->bounce_dma_addr); -- 2.11.0 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal 2017-02-16 14:52 ` Michał Zegan @ 2017-02-17 19:47 ` Kevin Hilman -1 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 19:47 UTC (permalink / raw) To: linus-amlogic Micha? Zegan <webczat@webczatnet.pl> writes: > The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. > Fix that by removing the host before deallocating other resources. > > Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> Reviewed-by: Kevin Hilman <khilman@baylibre.com> > --- > drivers/mmc/host/meson-gx-mmc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c > index d444b6bfa02b..bb83446118a3 100644 > --- a/drivers/mmc/host/meson-gx-mmc.c > +++ b/drivers/mmc/host/meson-gx-mmc.c > @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) > if (WARN_ON(!host)) > return 0; > > + mmc_remove_host(host->mmc); > + > if (host->bounce_buf) > dma_free_coherent(host->dev, host->bounce_buf_size, > host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal @ 2017-02-17 19:47 ` Kevin Hilman 0 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 19:47 UTC (permalink / raw) To: Michał Zegan Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel Michał Zegan <webczat@webczatnet.pl> writes: > The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. > Fix that by removing the host before deallocating other resources. > > Signed-off-by: Michał Zegan <webczat@webczatnet.pl> Reviewed-by: Kevin Hilman <khilman@baylibre.com> > --- > drivers/mmc/host/meson-gx-mmc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c > index d444b6bfa02b..bb83446118a3 100644 > --- a/drivers/mmc/host/meson-gx-mmc.c > +++ b/drivers/mmc/host/meson-gx-mmc.c > @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) > if (WARN_ON(!host)) > return 0; > > + mmc_remove_host(host->mmc); > + > if (host->bounce_buf) > dma_free_coherent(host->dev, host->bounce_buf_size, > host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal 2017-02-17 19:47 ` Kevin Hilman @ 2017-02-17 19:50 ` Michał Zegan -1 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-17 19:50 UTC (permalink / raw) To: linus-amlogic W dniu 17.02.2017 o 20:47, Kevin Hilman pisze: > Micha? Zegan <webczat@webczatnet.pl> writes: > >> The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. >> Fix that by removing the host before deallocating other resources. >> >> Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> > Reviewed-by: Kevin Hilman <khilman@baylibre.com> I do not know how the mmc driver looks like after Heiner's cleanup. Does this patch get obsoleted by the prior cleanup, or conflict with it in some way? > >> --- >> drivers/mmc/host/meson-gx-mmc.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c >> index d444b6bfa02b..bb83446118a3 100644 >> --- a/drivers/mmc/host/meson-gx-mmc.c >> +++ b/drivers/mmc/host/meson-gx-mmc.c >> @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) >> if (WARN_ON(!host)) >> return 0; >> >> + mmc_remove_host(host->mmc); >> + >> if (host->bounce_buf) >> dma_free_coherent(host->dev, host->bounce_buf_size, >> host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal @ 2017-02-17 19:50 ` Michał Zegan 0 siblings, 0 replies; 16+ messages in thread From: Michał Zegan @ 2017-02-17 19:50 UTC (permalink / raw) To: Kevin Hilman Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel W dniu 17.02.2017 o 20:47, Kevin Hilman pisze: > Michał Zegan <webczat@webczatnet.pl> writes: > >> The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. >> Fix that by removing the host before deallocating other resources. >> >> Signed-off-by: Michał Zegan <webczat@webczatnet.pl> > Reviewed-by: Kevin Hilman <khilman@baylibre.com> I do not know how the mmc driver looks like after Heiner's cleanup. Does this patch get obsoleted by the prior cleanup, or conflict with it in some way? > >> --- >> drivers/mmc/host/meson-gx-mmc.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c >> index d444b6bfa02b..bb83446118a3 100644 >> --- a/drivers/mmc/host/meson-gx-mmc.c >> +++ b/drivers/mmc/host/meson-gx-mmc.c >> @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) >> if (WARN_ON(!host)) >> return 0; >> >> + mmc_remove_host(host->mmc); >> + >> if (host->bounce_buf) >> dma_free_coherent(host->dev, host->bounce_buf_size, >> host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal 2017-02-17 19:50 ` Michał Zegan @ 2017-02-17 23:03 ` Kevin Hilman -1 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 23:03 UTC (permalink / raw) To: linus-amlogic Micha? Zegan <webczat@webczatnet.pl> writes: > W dniu 17.02.2017 o 20:47, Kevin Hilman pisze: >> Micha? Zegan <webczat@webczatnet.pl> writes: >> >>> The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. >>> Fix that by removing the host before deallocating other resources. >>> >>> Signed-off-by: Micha? Zegan <webczat@webczatnet.pl> >> Reviewed-by: Kevin Hilman <khilman@baylibre.com> > > I do not know how the mmc driver looks like after Heiner's cleanup. Does > this patch get obsoleted by the prior cleanup, or conflict with it in > some way? It's not obsoleted, as I don't think Heiner's series fixes this problem, but it may have minor conflicts. I suggest you rebase this patch on top of Heiner's v2 to double check, and resend if necessary, noting in the patch (after the '---') what it applies on top of so that the MMC maintainers don't have to figure it out. Thanks, Kevin >> >>> --- >>> drivers/mmc/host/meson-gx-mmc.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c >>> index d444b6bfa02b..bb83446118a3 100644 >>> --- a/drivers/mmc/host/meson-gx-mmc.c >>> +++ b/drivers/mmc/host/meson-gx-mmc.c >>> @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) >>> if (WARN_ON(!host)) >>> return 0; >>> >>> + mmc_remove_host(host->mmc); >>> + >>> if (host->bounce_buf) >>> dma_free_coherent(host->dev, host->bounce_buf_size, >>> host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal @ 2017-02-17 23:03 ` Kevin Hilman 0 siblings, 0 replies; 16+ messages in thread From: Kevin Hilman @ 2017-02-17 23:03 UTC (permalink / raw) To: Michał Zegan Cc: Carlo Caione, Ulf Hansson, linux-mmc, linux-amlogic, linux-kernel Michał Zegan <webczat@webczatnet.pl> writes: > W dniu 17.02.2017 o 20:47, Kevin Hilman pisze: >> Michał Zegan <webczat@webczatnet.pl> writes: >> >>> The mmc host was added in meson_mmc_probe, but never removed in meson_mmc_remove. >>> Fix that by removing the host before deallocating other resources. >>> >>> Signed-off-by: Michał Zegan <webczat@webczatnet.pl> >> Reviewed-by: Kevin Hilman <khilman@baylibre.com> > > I do not know how the mmc driver looks like after Heiner's cleanup. Does > this patch get obsoleted by the prior cleanup, or conflict with it in > some way? It's not obsoleted, as I don't think Heiner's series fixes this problem, but it may have minor conflicts. I suggest you rebase this patch on top of Heiner's v2 to double check, and resend if necessary, noting in the patch (after the '---') what it applies on top of so that the MMC maintainers don't have to figure it out. Thanks, Kevin >> >>> --- >>> drivers/mmc/host/meson-gx-mmc.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c >>> index d444b6bfa02b..bb83446118a3 100644 >>> --- a/drivers/mmc/host/meson-gx-mmc.c >>> +++ b/drivers/mmc/host/meson-gx-mmc.c >>> @@ -818,6 +818,8 @@ static int meson_mmc_remove(struct platform_device *pdev) >>> if (WARN_ON(!host)) >>> return 0; >>> >>> + mmc_remove_host(host->mmc); >>> + >>> if (host->bounce_buf) >>> dma_free_coherent(host->dev, host->bounce_buf_size, >>> host->bounce_buf, host->bounce_dma_addr); ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2017-02-17 23:03 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-02-16 14:52 [PATCH 0/2] mmc: meson-gx: fix module unloading Michał Zegan 2017-02-16 14:52 ` Michał Zegan 2017-02-16 14:52 ` [PATCH 1/2] mmc: meson-gx: prevent cfg_div_clk from being disabled on init Michał Zegan 2017-02-16 14:52 ` Michał Zegan 2017-02-17 19:44 ` Kevin Hilman 2017-02-17 19:44 ` Kevin Hilman 2017-02-17 19:49 ` Michał Zegan 2017-02-17 19:49 ` Michał Zegan 2017-02-16 14:52 ` [PATCH 2/2] mmc: meson-gx: remove mmc host on device removal Michał Zegan 2017-02-16 14:52 ` Michał Zegan 2017-02-17 19:47 ` Kevin Hilman 2017-02-17 19:47 ` Kevin Hilman 2017-02-17 19:50 ` Michał Zegan 2017-02-17 19:50 ` Michał Zegan 2017-02-17 23:03 ` Kevin Hilman 2017-02-17 23:03 ` Kevin Hilman
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.