|
@@ -545,7 +545,7 @@ static int dw_mipi_dsi_host_detach(struct mipi_dsi_host *host,
|
|
|
static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 hdr_val)
|
|
|
{
|
|
|
int ret;
|
|
|
- u32 val;
|
|
|
+ u32 val, mask;
|
|
|
|
|
|
ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS,
|
|
|
val, !(val & GEN_CMD_FULL), 1000,
|
|
@@ -557,8 +557,9 @@ static int dw_mipi_dsi_gen_pkt_hdr_write(struct dw_mipi_dsi *dsi, u32 hdr_val)
|
|
|
|
|
|
dsi_write(dsi, DSI_GEN_HDR, hdr_val);
|
|
|
|
|
|
+ mask = GEN_CMD_EMPTY | GEN_PLD_W_EMPTY;
|
|
|
ret = readx_poll_timeout(readl, dsi->base + DSI_CMD_PKT_STATUS,
|
|
|
- val, val & (GEN_CMD_EMPTY | GEN_PLD_W_EMPTY),
|
|
|
+ val, (val & mask) == mask,
|
|
|
1000, CMD_PKT_STATUS_TIMEOUT_US);
|
|
|
if (ret < 0) {
|
|
|
dev_err(dsi->dev, "failed to write command FIFO\n");
|