msm/dsi already formats the packet header correctly, so this breaks
every driver except for the downstream dsi-staging driver (which I've
submitted a patch for).

Signed-off-by: Sean Paul <seanp...@chromium.org>
---
 drivers/gpu/drm/drm_mipi_dsi.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index 688c8a82ba37..4b47226b90d4 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -454,7 +454,7 @@ int mipi_dsi_create_packet(struct mipi_dsi_packet *packet,
                return -EINVAL;
 
        memset(packet, 0, sizeof(*packet));
-       packet->header[2] = ((msg->channel & 0x3) << 6) | (msg->type & 0x3f);
+       packet->header[0] = ((msg->channel & 0x3) << 6) | (msg->type & 0x3f);
 
        /* TODO: compute ECC if hardware support is not available */
 
@@ -466,16 +466,16 @@ int mipi_dsi_create_packet(struct mipi_dsi_packet *packet,
         * and 2.
         */
        if (mipi_dsi_packet_format_is_long(msg->type)) {
-               packet->header[0] = (msg->tx_len >> 0) & 0xff;
-               packet->header[1] = (msg->tx_len >> 8) & 0xff;
+               packet->header[1] = (msg->tx_len >> 0) & 0xff;
+               packet->header[2] = (msg->tx_len >> 8) & 0xff;
 
                packet->payload_length = msg->tx_len;
                packet->payload = msg->tx_buf;
        } else {
                const u8 *tx = msg->tx_buf;
 
-               packet->header[0] = (msg->tx_len > 0) ? tx[0] : 0;
-               packet->header[1] = (msg->tx_len > 1) ? tx[1] : 0;
+               packet->header[1] = (msg->tx_len > 0) ? tx[0] : 0;
+               packet->header[2] = (msg->tx_len > 1) ? tx[1] : 0;
        }
 
        packet->size = sizeof(packet->header) + packet->payload_length;
-- 
2.16.1.291.g4437f3f132-goog

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

Reply via email to