Commit d1260be7 authored by William Tseng's avatar William Tseng Committed by Jani Nikula
Browse files

drm/i915/dsi: transmit brightness command in HS state



In Video Mode, if DSI transcoder is set to transmit packets
in LP Escape mode, screen flickering would be obseved when
brightness commands are continuously and quickly transmitted
to a panel.

The problem may be resolved by changing the mode to transmit
packets from Low Power to HS.

Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
Cc: Lee Shawn C <shawn.c.lee@intel.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Signed-off-by: default avatarWilliam Tseng <william.tseng@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211110010217.26759-1-william.tseng@intel.com
parent f35294e1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32
	u8 data[2] = {};
	enum port port;
	size_t len = panel->backlight.max > U8_MAX ? 2 : 1;
	unsigned long mode_flags;

	if (len == 1) {
		data[0] = level;
@@ -81,8 +82,11 @@ static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32

	for_each_dsi_port(port, intel_dsi->dcs_backlight_ports) {
		dsi_device = intel_dsi->dsi_hosts[port]->device;
		mode_flags = dsi_device->mode_flags;
		dsi_device->mode_flags &= ~MIPI_DSI_MODE_LPM;
		mipi_dsi_dcs_write(dsi_device, MIPI_DCS_SET_DISPLAY_BRIGHTNESS,
				   &data, len);
		dsi_device->mode_flags = mode_flags;
	}
}