platform: msm_shared: Change UFS_IRQ to level triggered IRQ
Sometimes it is seen that the UFS IRQ goes unhandled. It is
required that UFS IRQ needs to be level triggered.
Change-Id: I46931421421e78fca4f6b2e7970a9cbeec9e59c3
diff --git a/platform/msm_shared/ufs.c b/platform/msm_shared/ufs.c
index 1897735..1fd26b4 100644
--- a/platform/msm_shared/ufs.c
+++ b/platform/msm_shared/ufs.c
@@ -34,8 +34,10 @@
#include <uic.h>
#include <ucs.h>
#include <dme.h>
+#include <qgic.h>
#include <string.h>
#include <platform/iomap.h>
+#include <platform/irqs.h>
#include <kernel/mutex.h>
static int ufs_dev_init(struct ufs_dev *dev)
@@ -83,6 +85,8 @@
/* Enable the required irqs. */
val = UFS_IE_UEE | UFS_IE_UCCE ;
ufs_irq_enable(dev, val);
+ // Change UFS_IRQ to level based
+ qgic_change_interrupt_cfg(UFS_IRQ, INTERRUPT_LVL_N_TO_N);
}
int ufs_read(struct ufs_dev* dev, uint64_t start_lba, addr_t buffer, uint32_t num_blocks)