mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
display-drivers: local hbm: add suport for dc_hybird_threshold
For bangkok, there is a threshold that swith hybird mode to DC mode. When backight is not large than this threshold, we must set the register(0x51) to the threshold, let backlight enter DC mode. Change-Id: I0aecbb42c9046a10bd1e907f9e6508d5687503dd Signed-off-by: tinno64 <[email protected]> Reviewed-on: https://gerrit.mot.com/2550939 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Hua Tan <[email protected]> Submit-Approved: Jira Key
This commit is contained in:
parent
f5e340052d
commit
1b287a4b61
2 changed files with 28 additions and 13 deletions
|
|
@ -1142,21 +1142,35 @@ static int dsi_panel_set_local_hbm_param(struct dsi_panel *panel,
|
|||
|
||||
for (i =0; i < count; i++) {
|
||||
payload = (u8 *)cmds->msg.tx_buf;
|
||||
if(param_info->value == HBM_FOD_ON_STATE &&
|
||||
payload[0] == lhbm_config->alpha_reg) {
|
||||
if(lhbm_config->dbv_level >lhbm_config->alpha_size) {
|
||||
DSI_ERR("unsupport dbv level %d on local hbm\n", lhbm_config->dbv_level);
|
||||
rc = -EINVAL;
|
||||
goto end;
|
||||
}
|
||||
if(param_info->value == HBM_FOD_ON_STATE) {
|
||||
if(payload[0] == lhbm_config->alpha_reg) {
|
||||
if(lhbm_config->dbv_level >lhbm_config->alpha_size) {
|
||||
DSI_ERR("unsupport dbv level %d on local hbm\n", lhbm_config->dbv_level);
|
||||
rc = -EINVAL;
|
||||
goto end;
|
||||
}
|
||||
|
||||
alpha = lhbm_config->alpha[lhbm_config->dbv_level];
|
||||
payload[1] = (alpha&0xff00)>>8;
|
||||
payload[2] = alpha&0xff;
|
||||
DSI_INFO("%s: alpha [%x]=%x%x\n",
|
||||
__func__, payload[0], payload[1], payload[2]);
|
||||
rc = 0;
|
||||
goto end;
|
||||
alpha = lhbm_config->alpha[lhbm_config->dbv_level];
|
||||
payload[1] = (alpha&0xff00)>>8;
|
||||
payload[2] = alpha&0xff;
|
||||
DSI_INFO("%s: alpha [%x]=%x%x\n",
|
||||
__func__, payload[0], payload[1], payload[2]);
|
||||
rc = 0;
|
||||
goto end;
|
||||
} else if(payload[0] == 0X51 &&
|
||||
lhbm_config->dc_hybird_threshold != 0) {
|
||||
if(lhbm_config->dbv_level < lhbm_config->dc_hybird_threshold) {
|
||||
payload[1] = (lhbm_config->dc_hybird_threshold & 0xff00) >> 8;
|
||||
payload[2] = lhbm_config->dc_hybird_threshold & 0xff;
|
||||
|
||||
} else {
|
||||
payload[1] = (lhbm_config->dbv_level & 0xff00) >> 8;
|
||||
payload[2] = lhbm_config->dbv_level & 0xff;
|
||||
}
|
||||
DSI_INFO("%s: [%x]=%x%x\n",
|
||||
__func__, payload[0], payload[1], payload[2]);
|
||||
continue;
|
||||
}
|
||||
} else if(param_info->value == HBM_OFF_STATE &&
|
||||
payload[0] == 0x51) {
|
||||
payload[1] = (lhbm_config->dbv_level&0xff00)>>8;
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ struct dsi_panel_spr_info {
|
|||
|
||||
struct dsi_panel_lhbm_config {
|
||||
bool enable;
|
||||
u32 dc_hybird_threshold;
|
||||
bool resend_lbhm_off;
|
||||
u32 dbv_level;
|
||||
u32 alpha_reg;
|
||||
|
|
|
|||
Loading…
Reference in a new issue