diff options
author | Djamil Elaidi <d-elaidi@ti.com> | 2011-06-28 11:25:12 +0200 |
---|---|---|
committer | Benoit Goby <benoit@android.com> | 2011-09-13 20:40:20 -0700 |
commit | dee773a2c0115108aeb7ac8f700e721974cc8a46 (patch) | |
tree | 42bea8aaed7c7a0e246cc1b740b5ed986ddb4123 /drivers/omap_hsi/hsi_driver_if.c | |
parent | 1a6e8d307f2a42e3c3c9a75e3071ae82feacfeca (diff) | |
download | kernel_samsung_tuna-dee773a2c0115108aeb7ac8f700e721974cc8a46.zip kernel_samsung_tuna-dee773a2c0115108aeb7ac8f700e721974cc8a46.tar.gz kernel_samsung_tuna-dee773a2c0115108aeb7ac8f700e721974cc8a46.tar.bz2 |
OMAP4: HSI: SW WA for HSR in dead state after SW reset with pending errors
SW WA for HSI-C1BUG00088 "OMAP4430 HSI : No recovery from SW reset
under specific circumstances"
Description of issue:
It seems that in certain cases after some errors are detected by
HSR (frame timeout and/or tailing bit error and/or overrun), writing
the SW reset bit (SYSCONFIG.SOFTERESET to 1) may put the HSI in a
"dead" state in which it does not answer anymore to L4 OCP commands.
It seems that in certain cases after some errors are detected by HSR
(frame timeout and/or tailing bit error and/or overrun), writing the
SW reset bit (SYSCONFIG.SOFTERESET to 1) may put the HSI in a "dead"
state in which it does not answer anymore to L4 OCP commands.
Workaround is:
* Set HSR_MODE_P1.MODE_VAL = sleep and HSR_MODE_P2.MODE_VAL = sleep
* Acknowledge all errors (do not care if there is any) by writing
HSR_ERRORACK_P1 and HSR_ERRORACK_P2
* Set SW reset
HW fix will be available for OMAP5430
Other changes:
* Removed write to Read only register HSI_HSR_BREAK_REG
Change-Id: I023d0fc8656808a8c294d7cfaec1bf3cb46da93f
Signed-off-by: Djamil Elaidi <d-elaidi@ti.com>
Diffstat (limited to 'drivers/omap_hsi/hsi_driver_if.c')
-rw-r--r-- | drivers/omap_hsi/hsi_driver_if.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/omap_hsi/hsi_driver_if.c b/drivers/omap_hsi/hsi_driver_if.c index 19012e5..4022a11 100644 --- a/drivers/omap_hsi/hsi_driver_if.c +++ b/drivers/omap_hsi/hsi_driver_if.c @@ -669,7 +669,7 @@ EXPORT_SYMBOL(hsi_unpoll); * @command - HSI I/O control command * @arg - parameter associated to the control command. NULL, if no parameter. * - * Return 0 on sucess, a negative value on failure. + * Return 0 on success, a negative value on failure. * */ int hsi_ioctl(struct hsi_device *dev, unsigned int command, void *arg) |