msm_shared: qpic_nand: Add support to reset bam pipes before jumping into kernel.
Change-Id: Ib72ba339f2adb4f53e6a84e41173eb2f4f52d887
diff --git a/platform/msm_shared/bam.c b/platform/msm_shared/bam.c
index 8501fd2..e48254d 100644
--- a/platform/msm_shared/bam.c
+++ b/platform/msm_shared/bam.c
@@ -50,8 +50,8 @@
}
/* Resets pipe registers and state machines */
-static void bam_pipe_reset(struct bam_instance *bam,
- uint8_t pipe_num)
+void bam_pipe_reset(struct bam_instance *bam,
+ uint8_t pipe_num)
{
/* Start sw reset of the pipe to be allocated */
writel(1, BAM_P_RSTn(bam->pipe[pipe_num].pipe_num, bam->base));
@@ -163,7 +163,7 @@
{
uint32_t val = 0;
- bam_reset(bam);
+// bam_reset(bam);
/* Check for only one pipe's direction.
* The other is assumed to be the opposite system
diff --git a/platform/msm_shared/include/bam.h b/platform/msm_shared/include/bam.h
index 3338bef..d06f7cd 100644
--- a/platform/msm_shared/include/bam.h
+++ b/platform/msm_shared/include/bam.h
@@ -252,5 +252,7 @@
uint8_t pipe_num,
enum p_int_type interrupt);
void bam_read_offset_update(struct bam_instance *bam, unsigned int pipe_num);
+void bam_pipe_reset(struct bam_instance *bam,
+ uint8_t pipe_num);
#endif
diff --git a/platform/msm_shared/include/qpic_nand.h b/platform/msm_shared/include/qpic_nand.h
index d3613d3..e64c20b 100644
--- a/platform/msm_shared/include/qpic_nand.h
+++ b/platform/msm_shared/include/qpic_nand.h
@@ -331,6 +331,7 @@
qpic_nand_init(struct qpic_nand_init_config *config);
unsigned
flash_block_size(void);
-
+void
+qpic_nand_uninit();
#endif
diff --git a/platform/msm_shared/qpic_nand.c b/platform/msm_shared/qpic_nand.c
index 8879e03..f359b20 100644
--- a/platform/msm_shared/qpic_nand.c
+++ b/platform/msm_shared/qpic_nand.c
@@ -1238,6 +1238,14 @@
}
void
+qpic_nand_uninit()
+{
+ bam_pipe_reset(&bam, DATA_PRODUCER_PIPE_INDEX);
+ bam_pipe_reset(&bam, DATA_CONSUMER_PIPE_INDEX);
+ bam_pipe_reset(&bam, CMD_PIPE_INDEX);
+
+}
+void
flash_set_ptable(struct ptable *new_ptable)
{
ASSERT(flash_ptable == NULL && new_ptable != NULL);