@@ -26,6 +26,7 @@
#include <linux/io.h>
#include <linux/crypto.h>
#include <linux/interrupt.h>
+#include <linux/delay.h>
#include <crypto/scatterwalk.h>
#include <crypto/aes.h>
@@ -187,11 +188,12 @@ static int omap_aes_hw_init(struct omap_aes_dev *dd)
omap_aes_write_mask(dd, AES_REG_MASK, AES_REG_MASK_SOFTRESET,
AES_REG_MASK_SOFTRESET);
/*
- * prevent OCP bus error (SRESP) in case an access to the module
- * is performed while the module is coming out of soft reset
+ * prevent OCP bus error (SRESP) on OMAP3630 in case an access
+ * to the module is performed while the module is
+ * coming out of soft reset
*/
- __asm__ __volatile__("nop");
- __asm__ __volatile__("nop");
+ if (cpu_is_omap3630())
+ udelay(1);
err = omap_aes_wait(dd, AES_REG_SYSSTATUS,
AES_REG_SYSSTATUS_RESETDONE);