@@ -418,6 +418,7 @@ static const struct samsung_dsim_driver_data exynos3_dsi_driver_data = {
418418 .has_clklane_stop = 1 ,
419419 .num_clks = 2 ,
420420 .max_freq = 1000 ,
421+ .wait_for_hdr_fifo = 1 ,
421422 .wait_for_reset = 1 ,
422423 .num_bits_resol = 11 ,
423424 .pll_p_offset = 13 ,
@@ -438,6 +439,7 @@ static const struct samsung_dsim_driver_data exynos4_dsi_driver_data = {
438439 .has_clklane_stop = 1 ,
439440 .num_clks = 2 ,
440441 .max_freq = 1000 ,
442+ .wait_for_hdr_fifo = 1 ,
441443 .wait_for_reset = 1 ,
442444 .num_bits_resol = 11 ,
443445 .pll_p_offset = 13 ,
@@ -456,6 +458,7 @@ static const struct samsung_dsim_driver_data exynos5_dsi_driver_data = {
456458 .has_legacy_status_reg = 1 ,
457459 .num_clks = 2 ,
458460 .max_freq = 1000 ,
461+ .wait_for_hdr_fifo = 1 ,
459462 .wait_for_reset = 1 ,
460463 .num_bits_resol = 11 ,
461464 .pll_p_offset = 13 ,
@@ -474,6 +477,7 @@ static const struct samsung_dsim_driver_data exynos5433_dsi_driver_data = {
474477 .has_clklane_stop = 1 ,
475478 .num_clks = 5 ,
476479 .max_freq = 1500 ,
480+ .wait_for_hdr_fifo = 1 ,
477481 .wait_for_reset = 0 ,
478482 .num_bits_resol = 12 ,
479483 .pll_p_offset = 13 ,
@@ -492,6 +496,7 @@ static const struct samsung_dsim_driver_data exynos5422_dsi_driver_data = {
492496 .has_clklane_stop = 1 ,
493497 .num_clks = 2 ,
494498 .max_freq = 1500 ,
499+ .wait_for_hdr_fifo = 1 ,
495500 .wait_for_reset = 1 ,
496501 .num_bits_resol = 12 ,
497502 .pll_p_offset = 13 ,
@@ -510,6 +515,7 @@ static const struct samsung_dsim_driver_data imx8mm_dsi_driver_data = {
510515 .has_clklane_stop = 1 ,
511516 .num_clks = 2 ,
512517 .max_freq = 2100 ,
518+ .wait_for_hdr_fifo = 1 ,
513519 .wait_for_reset = 0 ,
514520 .num_bits_resol = 12 ,
515521 /*
@@ -1117,6 +1123,7 @@ static void samsung_dsim_send_to_fifo(struct samsung_dsim *dsi,
11171123{
11181124 struct device * dev = dsi -> dev ;
11191125 struct mipi_dsi_packet * pkt = & xfer -> packet ;
1126+ const struct samsung_dsim_driver_data * driver_data = dsi -> driver_data ;
11201127 const u8 * payload = pkt -> payload + xfer -> tx_done ;
11211128 u16 length = pkt -> payload_length - xfer -> tx_done ;
11221129 bool first = !xfer -> tx_done ;
@@ -1157,9 +1164,11 @@ static void samsung_dsim_send_to_fifo(struct samsung_dsim *dsi,
11571164 return ;
11581165
11591166 reg = get_unaligned_le32 (pkt -> header );
1160- if (samsung_dsim_wait_for_hdr_fifo (dsi )) {
1161- dev_err (dev , "waiting for header FIFO timed out\n" );
1162- return ;
1167+ if (driver_data -> wait_for_hdr_fifo ) {
1168+ if (samsung_dsim_wait_for_hdr_fifo (dsi )) {
1169+ dev_err (dev , "waiting for header FIFO timed out\n" );
1170+ return ;
1171+ }
11631172 }
11641173
11651174 if (NEQV (xfer -> flags & MIPI_DSI_MSG_USE_LPM ,
0 commit comments