Message ID | 1453981067-8618-1-git-send-email-t-kristo@ti.com |
---|---|
State | Superseded |
Headers | show |
On 01/28/2016 01:37 PM, Tero Kristo wrote: > As the code in this file is being executed within irq context in some > cases, we must avoid the clk_get_rate which uses mutex internally. > Switch the code to use clk_hw_get_rate instead which is non-locking. > > Signed-off-by: Tero Kristo <t-kristo@ti.com> Ooops, sorry. Sent wrong version (read: old) of this patch, please ignore this one. Will re-send the correct version in a bit. -Tero > --- > drivers/clk/ti/dpll3xxx.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/clk/ti/dpll3xxx.c b/drivers/clk/ti/dpll3xxx.c > index f4dec00..7ed24bc 100644 > --- a/drivers/clk/ti/dpll3xxx.c > +++ b/drivers/clk/ti/dpll3xxx.c > @@ -437,7 +437,8 @@ int omap3_noncore_dpll_enable(struct clk_hw *hw) > > parent = clk_hw_get_parent(hw); > > - if (clk_hw_get_rate(hw) == clk_get_rate(dd->clk_bypass)) { > + if (clk_hw_get_rate(hw) == > + clk_hw_get_rate(__clk_get_hw(dd->clk_bypass))) { > WARN_ON(parent != __clk_get_hw(dd->clk_bypass)); > r = _omap3_noncore_dpll_bypass(clk); > } else { > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01/28/2016 07:22 PM, Tony Lindgren wrote: > * Tero Kristo <t-kristo@ti.com> [160128 03:44]: >> On 01/28/2016 01:37 PM, Tero Kristo wrote: >>> As the code in this file is being executed within irq context in some >>> cases, we must avoid the clk_get_rate which uses mutex internally. >>> Switch the code to use clk_hw_get_rate instead which is non-locking. >>> >>> Signed-off-by: Tero Kristo <t-kristo@ti.com> >> >> Ooops, sorry. Sent wrong version (read: old) of this patch, please ignore >> this one. Will re-send the correct version in a bit. > > I think this is still needed as a fix for -rc cycle with cc: stable > as otherwise we have omap4 and 5 hang if PM runtime is enabled before > a suspend/resume cycle? Look at the other patch I sent, it should accomplish the same thing, and more. https://www.spinics.net/lists/linux-clk/msg06094.html -Tero > > Regards, > > Tony > > >>> drivers/clk/ti/dpll3xxx.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/clk/ti/dpll3xxx.c b/drivers/clk/ti/dpll3xxx.c >>> index f4dec00..7ed24bc 100644 >>> --- a/drivers/clk/ti/dpll3xxx.c >>> +++ b/drivers/clk/ti/dpll3xxx.c >>> @@ -437,7 +437,8 @@ int omap3_noncore_dpll_enable(struct clk_hw *hw) >>> >>> parent = clk_hw_get_parent(hw); >>> >>> - if (clk_hw_get_rate(hw) == clk_get_rate(dd->clk_bypass)) { >>> + if (clk_hw_get_rate(hw) == >>> + clk_hw_get_rate(__clk_get_hw(dd->clk_bypass))) { >>> WARN_ON(parent != __clk_get_hw(dd->clk_bypass)); >>> r = _omap3_noncore_dpll_bypass(clk); >>> } else { >>> >> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 01/28/2016 09:00 PM, Tony Lindgren wrote: > * Tero Kristo <t-kristo@ti.com> [160128 10:48]: >> On 01/28/2016 07:22 PM, Tony Lindgren wrote: >>> * Tero Kristo <t-kristo@ti.com> [160128 03:44]: >>>> On 01/28/2016 01:37 PM, Tero Kristo wrote: >>>>> As the code in this file is being executed within irq context in some >>>>> cases, we must avoid the clk_get_rate which uses mutex internally. >>>>> Switch the code to use clk_hw_get_rate instead which is non-locking. >>>>> >>>>> Signed-off-by: Tero Kristo <t-kristo@ti.com> >>>> >>>> Ooops, sorry. Sent wrong version (read: old) of this patch, please ignore >>>> this one. Will re-send the correct version in a bit. >>> >>> I think this is still needed as a fix for -rc cycle with cc: stable >>> as otherwise we have omap4 and 5 hang if PM runtime is enabled before >>> a suspend/resume cycle? >> >> Look at the other patch I sent, it should accomplish the same thing, and >> more. >> >> https://www.spinics.net/lists/linux-clk/msg06094.html > > Right.. But is that suitable for the -rc cycle with cc stable? Hmm yea, thats a good question, we may need to resurrect this patch after all. > You should also describe the bug it causes in the change log. > Something like: > > This fixes an issue where PM runtime will hang the system if > enabled with a serial console before a suspend-resume cycle. Yea I can add this to the desc if we want to keep this version of the patch. -Tero -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/clk/ti/dpll3xxx.c b/drivers/clk/ti/dpll3xxx.c index f4dec00..7ed24bc 100644 --- a/drivers/clk/ti/dpll3xxx.c +++ b/drivers/clk/ti/dpll3xxx.c @@ -437,7 +437,8 @@ int omap3_noncore_dpll_enable(struct clk_hw *hw) parent = clk_hw_get_parent(hw); - if (clk_hw_get_rate(hw) == clk_get_rate(dd->clk_bypass)) { + if (clk_hw_get_rate(hw) == + clk_hw_get_rate(__clk_get_hw(dd->clk_bypass))) { WARN_ON(parent != __clk_get_hw(dd->clk_bypass)); r = _omap3_noncore_dpll_bypass(clk); } else {
As the code in this file is being executed within irq context in some cases, we must avoid the clk_get_rate which uses mutex internally. Switch the code to use clk_hw_get_rate instead which is non-locking. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- drivers/clk/ti/dpll3xxx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html