disp: msm: dsi: fix compressed RGB101010 support

The destination format for compressed rgb101010 should be
the same as rgb888. After adding uncompressed RGB101010 support,
the programming for compressed rgb101010 went wrong.
Fix this to re-enable compressed rgb101010 format support.

Change-Id: I805e15df14dda8ff0653a0dba8c4efe3fe0681fd
Signed-off-by: Rajeev Nandan <quic_rajeevny@quicinc.com>
This commit is contained in:
Rajeev Nandan 2022-02-17 00:33:59 +05:30
parent 7492455784
commit 1f5cc03a33
2 changed files with 24 additions and 0 deletions

View File

@ -6972,6 +6972,20 @@ int dsi_display_get_modes(struct dsi_display *display,
goto error;
}
/*
* Update the host_config.dst_format for compressed RGB101010
* pixel format.
*/
if (display->panel->host_config.dst_format ==
DSI_PIXEL_FORMAT_RGB101010 &&
display_mode.timing.dsc_enabled) {
display->panel->host_config.dst_format =
DSI_PIXEL_FORMAT_RGB888;
DSI_DEBUG("updated dst_format from %d to %d\n",
DSI_PIXEL_FORMAT_RGB101010,
display->panel->host_config.dst_format);
}
is_cmd_mode = (display_mode.panel_mode == DSI_OP_CMD_MODE);
/* Setup widebus support */

View File

@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
@ -934,6 +935,15 @@ static int dsi_panel_parse_pixel_format(struct dsi_host_common_cfg *host,
fmt = DSI_PIXEL_FORMAT_RGB666;
break;
case 30:
/*
* The destination pixel format (host->dst_format) depends
* upon the compression, and should be RGB888 if the DSC is
* enable.
* The DSC status information is inside the timing modes, that
* is parsed during first dsi_display_get_modes() call.
* The dst_format will be updated there depending upon the
* DSC status.
*/
fmt = DSI_PIXEL_FORMAT_RGB101010;
break;
case 24: