Merge "disp: msm: sde: updating DSI command packet creation for MIPI flags"

This commit is contained in:
qctecmdr authored and Gerrit - the friendly Code Review server committed 2021-07-21 21:47:17 -07:00
commit a9e1515eaa
2 files changed
+37 -4

No files matched your search

+35 -3
View File
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
#include <linux/delay.h>
@@ -637,11 +637,28 @@ static int dsi_panel_wled_register(struct dsi_panel *panel,
return 0;
}
static int dsi_panel_dcs_set_display_brightness_c2(struct mipi_dsi_device *dsi,
u32 bl_lvl)
{
u16 brightness = (u16)bl_lvl;
u8 first_byte = brightness & 0xff;
u8 second_byte = brightness >> 8;
u8 payload[8] = {second_byte, first_byte,
second_byte, first_byte,
second_byte, first_byte,
second_byte, first_byte};
return mipi_dsi_dcs_write(dsi, 0xC2, payload, sizeof(payload));
}
static int dsi_panel_update_backlight(struct dsi_panel *panel,
u32 bl_lvl)
{
int rc = 0;
struct mipi_dsi_device *dsi;
struct dsi_backlight_config *bl;
if (!panel || (bl_lvl > 0xffff)) {
DSI_ERR("invalid params\n");
@@ -649,11 +666,16 @@ static int dsi_panel_update_backlight(struct dsi_panel *panel,
}
dsi = &panel->mipi_device;
bl = &panel->bl_config;
if (panel->bl_config.bl_inverted_dbv)
bl_lvl = (((bl_lvl & 0xff) << 8) | (bl_lvl >> 8));
rc = mipi_dsi_dcs_set_display_brightness(dsi, bl_lvl);
if (panel->bl_config.bl_dcs_subtype == 0xc2)
rc = dsi_panel_dcs_set_display_brightness_c2(dsi, bl_lvl);
else
rc = mipi_dsi_dcs_set_display_brightness(dsi, bl_lvl);
if (rc < 0)
DSI_ERR("failed to update dcs backlight:%d\n", bl_lvl);
@@ -1874,7 +1896,7 @@ static int dsi_panel_create_cmd_packets(const char *data,
cmd[i].msg.type = data[0];
cmd[i].last_command = (data[1] == 1);
cmd[i].msg.channel = data[2];
cmd[i].msg.flags |= (data[3] == 1 ? MIPI_DSI_MSG_REQ_ACK : 0);
cmd[i].msg.flags |= data[3];
cmd[i].msg.ctrl = 0;
cmd[i].post_wait_ms = cmd[i].msg.wait_ms = data[4];
cmd[i].msg.tx_len = ((data[5] << 8) | (data[6]));
@@ -2383,6 +2405,16 @@ static int dsi_panel_parse_bl_config(struct dsi_panel *panel)
panel->bl_config.brightness_max_level = val;
}
rc = utils->read_u32(utils->data, "qcom,mdss-dsi-bl-ctrl-dcs-subtype",
&val);
if (rc) {
DSI_DEBUG("[%s] bl-ctrl-dcs-subtype, defautling to zero\n",
panel->name);
panel->bl_config.bl_dcs_subtype = 0;
} else {
panel->bl_config.bl_dcs_subtype = val;
}
panel->bl_config.bl_inverted_dbv = utils->read_bool(utils->data,
"qcom,mdss-dsi-bl-inverted-dbv");
+2 -1
View File
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
*/
#ifndef _DSI_PANEL_H_
@@ -122,6 +122,7 @@ struct dsi_backlight_config {
u32 bl_scale;
u32 bl_scale_sv;
bool bl_inverted_dbv;
u32 bl_dcs_subtype;
int en_gpio;
/* PWM params */