OMAP4: HSI: SW WA for hardcoded wakeup dependency from HSI to DSP
authorDjamil Elaidi <d-elaidi@ti.com>
Thu, 9 Jun 2011 18:11:48 +0000 (20:11 +0200)
committerRuslan Bilovol <x0155540@ti.com>
Tue, 28 Jun 2011 12:45:53 +0000 (15:45 +0300)
commit6ea6a8071bdd7e859c97a837757074a123a4b8c6
tree9125583df09a3366aea892eeab36c16cd4b7d64c
parent833f017fc188e1542c0f6ec1be7d3d8777f99b2f
OMAP4: HSI: SW WA for hardcoded wakeup dependency from HSI to DSP

Due to HW bug, same SWakeup signal is used for both MPU and DSP. Thus Swakeup will
unexpectedly wakeup the DSP domain even if nothing runs on DSP.
Since MPU is faster to process SWakeup, it acknowledges the Swakeup to HSI before the DSP has completed its
domain transition. This leaves the DSP Power Domain in INTRANSITION state forever, and prevents the
DEVICE-OFF mode.

Workaround consists in :
when a SWakeup is asserted from HSI to MPU (and DSP) :
- force a DSP SW wakeup
- wait for DSP power domain to finish ongoing transition
- force a DSP SW sleep

Note : condition to detect that Swakeup is asserted to MPU/DSP :
HSI interrupt is received
AND
HSI module was previously IDLE

HW Bug ref is HSI-C1BUG00106 : dsp swakeup generated by HSI same as mpu swakeup

Change-Id: I1dba1f1ad04756f8b97b16f41a9691f644204abf
Signed-off-by: Djamil Elaidi <d-elaidi@ti.com>
drivers/staging/omap_hsi/hsi_driver.c
drivers/staging/omap_hsi/hsi_driver.h
drivers/staging/omap_hsi/hsi_driver_int.c