drm/i915/dsi: CABC support for Panel PWM backlight control
In CABC (Content Adaptive Brightness Control) content grey level scale can be increased while simultaneously decreasing brightness of the backlight to achieve same perceived brightness. The CABC is not standardized and panel vendors are free to follow their implementation. The CABC implementaion here assumes that the panels use standard SW register for control. CABC is supported only when the PWM source for backlight is from the panel. v2 by Jani: rebase, renames, check cabc support earlier, etc. Signed-off-by: Deepak M <m.deepak@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/883faade74d2e598b143221ccc7df6daf4393a13.1461676337.git.jani.nikula@intel.com
This commit is contained in:
@@ -1489,11 +1489,28 @@ void intel_dsi_init(struct drm_device *dev)
|
||||
intel_dsi->dcs_backlight_ports = BIT(PORT_A) | BIT(PORT_C);
|
||||
break;
|
||||
}
|
||||
|
||||
switch (dev_priv->vbt.dsi.config->dl_dcs_cabc_ports) {
|
||||
case DL_DCS_PORT_A:
|
||||
intel_dsi->dcs_cabc_ports = BIT(PORT_A);
|
||||
break;
|
||||
case DL_DCS_PORT_C:
|
||||
intel_dsi->dcs_cabc_ports = BIT(PORT_C);
|
||||
break;
|
||||
default:
|
||||
case DL_DCS_PORT_A_AND_C:
|
||||
intel_dsi->dcs_cabc_ports = BIT(PORT_A) | BIT(PORT_C);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
intel_dsi->ports = BIT(port);
|
||||
intel_dsi->dcs_backlight_ports = BIT(port);
|
||||
intel_dsi->dcs_cabc_ports = BIT(port);
|
||||
}
|
||||
|
||||
if (!dev_priv->vbt.dsi.config->cabc_supported)
|
||||
intel_dsi->dcs_cabc_ports = 0;
|
||||
|
||||
/* Create a DSI host (and a device) for each port. */
|
||||
for_each_dsi_port(port, intel_dsi->ports) {
|
||||
struct intel_dsi_host *host;
|
||||
|
Reference in New Issue
Block a user