From mboxrd@z Thu Jan 1 00:00:00 1970 From: t-kristo@ti.com (Tero Kristo) Date: Fri, 11 Dec 2015 10:43:35 +0200 Subject: [PATCH] clk: ti: omap5+: dpll: implement errata i810 In-Reply-To: <20151203164817.GT23396@atomide.com> References: <1448894605-30097-1-git-send-email-t-kristo@ti.com> <20151203164817.GT23396@atomide.com> Message-ID: <566A8CB7.4050701@ti.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 12/03/2015 06:48 PM, Tony Lindgren wrote: > * Tero Kristo [151130 06:44]: >> + /* >> + * Errata i810 - DPLL controller can get stuck while transitioning >> + * to a power saving state. Software must ensure the DPLL can not >> + * transition to a low power state while changing M/N values. >> + * Easiest way to accomplish this is to prevent DPLL autoidle >> + * before doing the M/N re-program. >> + */ >> + errata_i810 = ti_clk_get_features()->flags & TI_CLK_ERRATA_I810; >> + >> + if (errata_i810) { >> + ai = omap3_dpll_autoidle_read(clk); >> + if (ai) { >> + omap3_dpll_deny_idle(clk); >> + >> + /* OCP barrier */ >> + omap3_dpll_autoidle_read(clk); >> + } >> + } > > Should we just do this unconditionally? It seems like disabling the > autoidle always before reprogramming is a good idea. Well, that is a few extra register accesses, but given the DPLL re-programming is a slow operation it probably does not matter. Let me spin a new version of this patch, it will avoid the need for the errata flag also. -Tero