diff options
Diffstat (limited to 'drivers/remoteproc/omap_remoteproc.c')
-rw-r--r-- | drivers/remoteproc/omap_remoteproc.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index 7bb5dc65dcb..71a3e5584f4 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c @@ -447,8 +447,10 @@ static inline int omap_rproc_start(struct rproc *rproc, u64 bootaddr) } omap_dm_timer_set_source(timers[i].odt, OMAP_TIMER_SRC_SYS_CLK); #ifdef CONFIG_REMOTEPROC_WATCHDOG - /* GPT 9 and 11 are using as WDT */ - if (timers[i].id == 9 || timers[i].id == 11) { + /* GPT 9 & 11 (ipu); GPT 6 (dsp) are used as watchdog timers */ + if ((!strcmp(rproc->name, "dsp") && timers[i].id == 6) || + (!strcmp(rproc->name, "ipu") && + (timers[i].id == 9 || timers[i].id == 11))) { ret = request_irq(omap_dm_timer_get_irq(timers[i].odt), omap_rproc_watchdog_isr, IRQF_DISABLED, "rproc-wdt", rproc); @@ -513,8 +515,10 @@ static inline int omap_rproc_stop(struct rproc *rproc) for (i = 0; i < pdata->timers_cnt; i++) { #ifdef CONFIG_REMOTEPROC_WATCHDOG - /* GPT 9 and 11 are used as WDT */ - if (timers[i].id == 9 || timers[i].id == 11) + /* GPT 9 & 11 (ipu); GPT 6 (dsp) are used as watchdog timers */ + if ((!strcmp(rproc->name, "dsp") && timers[i].id == 6) || + (!strcmp(rproc->name, "ipu") && + (timers[i].id == 9 || timers[i].id == 11))) free_irq(omap_dm_timer_get_irq(timers[i].odt), rproc); #endif omap_dm_timer_free(timers[i].odt); |