> -----Original Message----- > From: Lee, Shawn C <shawn.c.lee@xxxxxxxxx> > Sent: Thursday, August 12, 2021 9:13 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Nikula, Jani <jani.nikula@xxxxxxxxx>; ville.syrjala@xxxxxxxxxxxxxxx; > Kulkarni, Vandita <vandita.kulkarni@xxxxxxxxx>; Chiou, Cooper > <cooper.chiou@xxxxxxxxx>; Tseng, William <william.tseng@xxxxxxxxx>; Lee, > Shawn C <shawn.c.lee@xxxxxxxxx>; Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Subject: [v4 4/7] drm/i915/dsi: refine send MIPI DCS command sequence > > According to chapter "Sending Commands to the Panel" in bspec #29738 and > #49188. If driver try to send DCS long pakcet, we have to program TX payload > register at first. And configure TX header HW register later. > DSC long packet would not be sent properly if we don't follow this sequence. > > Cc: Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Vandita Kulkarni <vandita.kulkarni@xxxxxxxxx> > Cc: Cooper Chiou <cooper.chiou@xxxxxxxxx> > Cc: William Tseng <william.tseng@xxxxxxxxx> > Signed-off-by: Lee Shawn C <shawn.c.lee@xxxxxxxxx> Looks Good to me. Reviewed-by: Vandita Kulkarni <vandita.kulkarni@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/icl_dsi.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c > b/drivers/gpu/drm/i915/display/icl_dsi.c > index 1780830d9909..60413bbf565f 100644 > --- a/drivers/gpu/drm/i915/display/icl_dsi.c > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c > @@ -1807,11 +1807,6 @@ static ssize_t gen11_dsi_host_transfer(struct > mipi_dsi_host *host, > if (msg->flags & MIPI_DSI_MSG_USE_LPM) > enable_lpdt = true; > > - /* send packet header */ > - ret = dsi_send_pkt_hdr(intel_dsi_host, dsi_pkt, enable_lpdt); > - if (ret < 0) > - return ret; > - > /* only long packet contains payload */ > if (mipi_dsi_packet_format_is_long(msg->type)) { > ret = dsi_send_pkt_payld(intel_dsi_host, dsi_pkt); @@ - > 1819,6 +1814,11 @@ static ssize_t gen11_dsi_host_transfer(struct > mipi_dsi_host *host, > return ret; > } > > + /* send packet header */ > + ret = dsi_send_pkt_hdr(intel_dsi_host, dsi_pkt, enable_lpdt); > + if (ret < 0) > + return ret; > + > //TODO: add payload receive code if needed > > ret = sizeof(dsi_pkt.header) + dsi_pkt.payload_length; > -- > 2.17.1