mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
drm/i915/display/vlv: fix pixel overlap register update
To update properly bits in the register the mask should be used to clear old value and then the result should be or-ed with new value, for such updates there is separate helper intel_de_rmw. Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20221219092428.2515430-1-andrzej.hajda@intel.com
This commit is contained in:
parent
60bb4478f7
commit
fceeca7f3c
1 changed files with 9 additions and 15 deletions
|
@ -649,23 +649,17 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
|
|||
enum port port;
|
||||
|
||||
if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) {
|
||||
u32 temp;
|
||||
u32 temp = intel_dsi->pixel_overlap;
|
||||
|
||||
if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
|
||||
for_each_dsi_port(port, intel_dsi->ports) {
|
||||
temp = intel_de_read(dev_priv,
|
||||
MIPI_CTRL(port));
|
||||
temp &= ~BXT_PIXEL_OVERLAP_CNT_MASK |
|
||||
intel_dsi->pixel_overlap <<
|
||||
BXT_PIXEL_OVERLAP_CNT_SHIFT;
|
||||
intel_de_write(dev_priv, MIPI_CTRL(port),
|
||||
temp);
|
||||
}
|
||||
for_each_dsi_port(port, intel_dsi->ports)
|
||||
intel_de_rmw(dev_priv, MIPI_CTRL(port),
|
||||
BXT_PIXEL_OVERLAP_CNT_MASK,
|
||||
temp << BXT_PIXEL_OVERLAP_CNT_SHIFT);
|
||||
} else {
|
||||
temp = intel_de_read(dev_priv, VLV_CHICKEN_3);
|
||||
temp &= ~PIXEL_OVERLAP_CNT_MASK |
|
||||
intel_dsi->pixel_overlap <<
|
||||
PIXEL_OVERLAP_CNT_SHIFT;
|
||||
intel_de_write(dev_priv, VLV_CHICKEN_3, temp);
|
||||
intel_de_rmw(dev_priv, VLV_CHICKEN_3,
|
||||
PIXEL_OVERLAP_CNT_MASK,
|
||||
temp << PIXEL_OVERLAP_CNT_SHIFT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue