From: Sinthu Raja <sinthu.raja@ti.com>
Kernel Commit 25de4ce5ed02 ("clocksource/drivers/timer-ti-dm: Handle
dra7 timer wrap errata i940") states that "There is a timer wrap issue
on dra7 and as a work around, we need to use timer-ti-dm percpu timers
instead. So, configure dmtimer3 and 4 as percpu timers by default." In
this commit, the author has used ti,no-reset-on-init and ti,no-idle quirks.
The sysc_check_active_timer() checks for these quirks and accordingly,
returns EBUSY error if the quirks match. Because of this, the timer
modules fail to probe as can be observed during bootup :"ti-sysc
4882c000.target-module: probe with driver ti-sysc failed with error -16"
Return 'ENXIO' instead of 'EBUSY' for DRA7 SoC, so that the error is set
to ENXIO and the module gets probed under "certain conditions".
Signed-off-by: Sinthu Raja <sinthu.raja@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
---
drivers/bus/ti-sysc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index 5566ad11399e..90766f804706 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -3117,7 +3117,8 @@ static int sysc_check_active_timer(struct sysc *ddata)
* can be dropped if we stop supporting old beagleboard revisions
* A to B4 at some point.
*/
- if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35)
+ if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35 ||
+ sysc_soc->soc == SOC_DRA7)
error = -ENXIO;
else
error = -EBUSY;
--
2.34.1
On 8/29/2025 2:59 PM, Anurag Dutta wrote: > From: Sinthu Raja <sinthu.raja@ti.com> > > Kernel Commit 25de4ce5ed02 ("clocksource/drivers/timer-ti-dm: Handle > dra7 timer wrap errata i940") states that "There is a timer wrap issue > on dra7 and as a work around, we need to use timer-ti-dm percpu timers > instead. So, configure dmtimer3 and 4 as percpu timers by default." In > this commit, the author has used ti,no-reset-on-init and ti,no-idle quirks. > > The sysc_check_active_timer() checks for these quirks and accordingly, > returns EBUSY error if the quirks match. Because of this, the timer > modules fail to probe as can be observed during bootup :"ti-sysc > 4882c000.target-module: probe with driver ti-sysc failed with error -16" > > Return 'ENXIO' instead of 'EBUSY' for DRA7 SoC, so that the error is set > to ENXIO and the module gets probed under "certain conditions". Please define, what are "certain conditions". With addition of conditions in commit message, for this patch Reviewed-by: Udit Kumar <u-kumar1@ti.com> > > Signed-off-by: Sinthu Raja <sinthu.raja@ti.com> > Signed-off-by: Anurag Dutta <a-dutta@ti.com> > --- > drivers/bus/ti-sysc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c > index 5566ad11399e..90766f804706 100644 > --- a/drivers/bus/ti-sysc.c > +++ b/drivers/bus/ti-sysc.c > @@ -3117,7 +3117,8 @@ static int sysc_check_active_timer(struct sysc *ddata) > * can be dropped if we stop supporting old beagleboard revisions > * A to B4 at some point. > */ > - if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35) > + if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35 || > + sysc_soc->soc == SOC_DRA7) > error = -ENXIO; > else > error = -EBUSY;
© 2016 - 2025 Red Hat, Inc.