summaryrefslogtreecommitdiff
path: root/drivers/staging/tidspbridge
diff options
context:
space:
mode:
authorOmar Ramirez Luna <omar.ramirez@ti.com>2012-02-21 20:46:21 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-24 12:05:38 -0800
commit08cd9ef4eca0b53cdae190b718e4945408c7d3b8 (patch)
treef941a411be10a3315fc6cbc9e72d7904df09f522 /drivers/staging/tidspbridge
parent18db4fe09886691a781f3d1e4589ede0239d8ee2 (diff)
staging: tidspbridge: detect wdt3 feature at runtime
In order to detect WDT feature on the dsp code, we need to find the symbol used to enable it inside the baseimage. This should fix the warning comming from L3 driver: WARNING: at arch/arm/mach-omap2/omap_l3_smx.c:161 omap3_l3_app_irq... In-band Error seen by IVA_SS at address 0 ... That occurs because the dsp tries to access wdt3 registers when the clock for those registers is not enabled. Reported-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/tidspbridge')
-rw-r--r--drivers/staging/tidspbridge/core/tiomap3430.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/staging/tidspbridge/core/tiomap3430.c b/drivers/staging/tidspbridge/core/tiomap3430.c
index 670de0aae928..7862513cc295 100644
--- a/drivers/staging/tidspbridge/core/tiomap3430.c
+++ b/drivers/staging/tidspbridge/core/tiomap3430.c
@@ -383,6 +383,7 @@ static int bridge_brd_start(struct bridge_dev_context *dev_ctxt,
u32 clk_cmd;
struct io_mgr *hio_mgr;
u32 ul_load_monitor_timer;
+ u32 wdt_en = 0;
struct omap_dsp_platform_data *pdata =
omap_dspbridge_dev->dev.platform_data;
@@ -594,9 +595,12 @@ static int bridge_brd_start(struct bridge_dev_context *dev_ctxt,
if (!wait_for_start(dev_context, dw_sync_addr))
status = -ETIMEDOUT;
- /* Start wdt */
- dsp_wdt_sm_set((void *)ul_shm_base);
- dsp_wdt_enable(true);
+ dev_get_symbol(dev_context->dev_obj, "_WDT_enable", &wdt_en);
+ if (wdt_en) {
+ /* Start wdt */
+ dsp_wdt_sm_set((void *)ul_shm_base);
+ dsp_wdt_enable(true);
+ }
status = dev_get_io_mgr(dev_context->dev_obj, &hio_mgr);
if (hio_mgr) {