diff options
| author | alk3pInjection <webmaster@raspii.tech> | 2022-01-23 12:47:03 +0800 |
|---|---|---|
| committer | Semavi Ulusoy <doc.divxm@gmail.com> | 2022-02-12 00:38:44 +0300 |
| commit | e083bbd7015f85c298e3c961f8f072022d7c25c3 (patch) | |
| tree | e6149e0ee34c6ad7b45a672ca828374d97086de2 | |
| parent | 3c24148ee69c0c0e146e16f9e8ee09586712b7f4 (diff) | |
disp: msm: Allow hooking dim when screen goes ons12.0
Change-Id: I5ca0b3905ebfb7200cd04bfae28ad1feb06d1a44
Signed-off-by: alk3pInjection <webmaster@raspii.tech>
| -rw-r--r-- | drivers/gpu/drm/drm_sysfs.c | 36 | ||||
| -rw-r--r-- | techpack/display/msm/dsi/dsi_panel.c | 15 |
2 files changed, 50 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 4de88672e97c..4c8e757bb77f 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -1420,7 +1420,39 @@ static ssize_t force_screenfp_store(struct device *dev, return count; } +int oneplus_auth_status = 0; +int oneplus_cancel_status = 0; int oneplus_panel_status = 0; +static ssize_t op_display_get_auth_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sprintf(buf, "%d\n", oneplus_auth_status); +} + +static ssize_t op_display_set_auth_status(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + sscanf(buf, "%d", &oneplus_auth_status); + + return count; +} + +static ssize_t op_display_get_cancel_status(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sprintf(buf, "%d\n", oneplus_cancel_status); +} + +static ssize_t op_display_set_cancel_status(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + sscanf(buf, "%d", &oneplus_cancel_status); + + return count; +} + static ssize_t power_status_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -1544,6 +1576,8 @@ static DEVICE_ATTR_RW(dp_en); static DEVICE_ATTR_RW(dither_en); static DEVICE_ATTR_RW(power_status); static DEVICE_ATTR_RW(seed_lp); +static DEVICE_ATTR(auth_status, S_IRUGO|S_IWUSR, op_display_get_auth_status, op_display_set_auth_status); +static DEVICE_ATTR(cancel_status, S_IRUGO|S_IWUSR, op_display_get_cancel_status, op_display_set_cancel_status); static struct attribute *connector_dev_attrs[] = { &dev_attr_status.attr, &dev_attr_enabled.attr, @@ -1585,6 +1619,8 @@ static struct attribute *connector_dev_attrs[] = { &dev_attr_dimlayer_bl_en.attr, &dev_attr_dp_en.attr, &dev_attr_dither_en.attr, + &dev_attr_auth_status.attr, + &dev_attr_cancel_status.attr, &dev_attr_power_status.attr, &dev_attr_seed_lp.attr, NULL diff --git a/techpack/display/msm/dsi/dsi_panel.c b/techpack/display/msm/dsi/dsi_panel.c index 53ee722335ad..c50a53a2d4cf 100644 --- a/techpack/display/msm/dsi/dsi_panel.c +++ b/techpack/display/msm/dsi/dsi_panel.c @@ -5270,6 +5270,8 @@ bool real_aod_mode = false; extern bool oneplus_dimlayer_hbm_enable; bool backup_dimlayer_hbm = false; +extern int oneplus_auth_status; +extern int oneplus_cancel_status; extern int oneplus_dim_status; int backup_dim_status = 0; int dsi_panel_enable(struct dsi_panel *panel) @@ -5339,9 +5341,20 @@ int dsi_panel_enable(struct dsi_panel *panel) panel->need_power_on_backlight = true; oneplus_panel_status = 2; // DISPLAY_POWER_ON + + if (oneplus_cancel_status == 1) { + backup_dimlayer_hbm = 0; + backup_dim_status = 0; + } else if (oneplus_auth_status == 1) { + backup_dimlayer_hbm = 1; + backup_dim_status = 1; + } oneplus_dimlayer_hbm_enable = backup_dimlayer_hbm; oneplus_dim_status = backup_dim_status; - pr_err("Restore dim when panel goes on"); + if (!oneplus_cancel_status) + pr_err("Restore dim when panel goes on"); + oneplus_auth_status = 0; + oneplus_cancel_status = 0; blank = DRM_PANEL_BLANK_UNBLANK_CHARGE; notifier_data.data = ␣ |
