aboutsummaryrefslogtreecommitdiff
path: root/src/soc/qualcomm/sc7180/qspi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/qualcomm/sc7180/qspi.c')
-rw-r--r--src/soc/qualcomm/sc7180/qspi.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/soc/qualcomm/sc7180/qspi.c b/src/soc/qualcomm/sc7180/qspi.c
index 10038e412a..675641bc4c 100644
--- a/src/soc/qualcomm/sc7180/qspi.c
+++ b/src/soc/qualcomm/sc7180/qspi.c
@@ -118,17 +118,20 @@ static struct cmd_desc *allocate_descriptor(void)
next->direction = MASTER_READ;
next->multi_io_mode = 0;
next->reserved1 = 0;
- next->fragment = 0;
+ /*
+ * QSPI controller doesn't support transfer starts with read segment.
+ * So to support read transfers that are not preceded by write, set
+ * transfer fragment bit = 1
+ */
+ next->fragment = 1;
next->reserved2 = 0;
next->length = 0;
next->bounce_src = 0;
next->bounce_dst = 0;
next->bounce_length = 0;
- if (current) {
+ if (current)
current->next_descriptor = (uint32_t)(uintptr_t) next;
- current->fragment = 1;
- }
return next;
}