According to a lot of tests, for long packet send, the packet
payload transfer done interrupt will be triggered no later than
the packet header transfer done interrupt. So, to make sure the
long packet has been send to the peripheral completely, wait
'ph_tx_done' interrupt instead of 'pl_tx_done' for long packet
transfer. Otherwise it may cause subsequent packet transfer
failed sometimes.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit
69a5f44025c6ecb2fee16c1650a81198b501f284)
(cherry picked from commit
9f89a46266ecd905c701cc88e15d2303ac319acd)
packet.header,
use_lpm);
- ret = wait_for_completion_timeout(&dsim->pl_tx_done,
+ ret = wait_for_completion_timeout(&dsim->ph_tx_done,
MIPI_FIFO_TIMEOUT);
if (!ret) {
dev_err(dsim->dev, "wait payload tx done time out\n");