Merge remote-tracking branch 'sm8350/lineage-20' into lineage-23.2

* sm8350/lineage-20:
  disp: msm: Avoid UB in VBIF register shift calculation
  disp: msm: Fix division by zero during ESD recovery
  disp: msm: dsi: Nullify display modes after kfree
  devfreq: Fix suspend callback for non-zero min_freq
  devfreq: Fix PM callbacks to support zero frequency
  devfreq: Allow zero values in opp table
  devfreq: govener_memlat: fix cpu_hotplug_lock recursive lock warning
  devfreq: governor_memlat: avoid deadlock due to cpu_grp->mons_lock usage
  devfreq: governor_bw_hwmon: fix deadlock warning due to state_lock usage
  msm: kgsl: Fix UBSAN warnings
  msm: kgsl: Use kthread instead of workqueue for event work
  BACKPORT: msm: kgsl: Avoid unmap after kgsl system suspend
  fixup! BACKPORT: kbuild: check the minimum assembler version in Kconfig

Change-Id: I2f722ad0f53673157f841eaf0ef032e4f5b1703d
This commit is contained in:
Michael Bestas 2026-05-27 19:31:50 +03:00
commit 103491ac60
No known key found for this signature in database
14 changed files with 85 additions and 71 deletions

View file

@ -7836,8 +7836,10 @@ exit:
rc = 0;
error:
if (rc)
if (rc) {
kfree(display->modes);
display->modes = NULL;
}
mutex_unlock(&display->display_lock);
return rc;

View file

@ -519,7 +519,8 @@ static inline int sde_crtc_get_mixer_width(struct sde_crtc *sde_crtc,
if (cstate->num_ds_enabled)
mixer_width = cstate->ds_cfg[0].lm_width;
else
mixer_width = mode->hdisplay / sde_crtc->num_mixers;
mixer_width = sde_crtc->num_mixers ?
mode->hdisplay / sde_crtc->num_mixers : mode->hdisplay;
return mixer_width;
}

View file

@ -1419,14 +1419,14 @@ static void sde_hw_rotator_vbif_rt_setting(void)
for (j = 0; j < MAX_XIN; j++) {
reg_high = ((mdata->vbif_xin_id[j]
& 0x8) >> 3) * 4 + (i * 8);
reg_shift = mdata->vbif_xin_id[j] * 4;
reg_shift = (mdata->vbif_xin_id[j] & 0x7) * 4;
reg_val = SDE_VBIF_READ(mdata,
MMSS_VBIF_NRT_VBIF_QOS_RP_REMAP_000 + reg_high);
reg_val_lvl = SDE_VBIF_READ(mdata,
MMSS_VBIF_NRT_VBIF_QOS_LVL_REMAP_000 + reg_high);
mask = 0x7 << (mdata->vbif_xin_id[j] * 4);
mask = 0x7 << reg_shift;
vbif_qos = mdata->vbif_nrt_qos[i];