Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'drm-fixes-2020-05-29-1' of git://anongit.freedesktop.org/drm/drm

Pull drm fixes from Dave Airlie:
"A couple of amdgpu fixes and minor ingenic fixes:

amdgpu:
- display atomic test fix
- Fix soft hang in display vupdate code

ingenic:
- fix pointer cast
- fix crtc atomic check callback"

* tag 'drm-fixes-2020-05-29-1' of git://anongit.freedesktop.org/drm/drm:
drm/amd/display: Fix potential integer wraparound resulting in a hang
drm/amd/display: drop cursor position check in atomic test
gpu/drm: Ingenic: Fix opaque pointer casted to wrong type
gpu/drm: ingenic: Fix bogus crtc_atomic_check callback

+5 -10
-7
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 7880 7880 return -EINVAL; 7881 7881 } 7882 7882 7883 - if (new_plane_state->crtc_x <= -new_acrtc->max_cursor_width || 7884 - new_plane_state->crtc_y <= -new_acrtc->max_cursor_height) { 7885 - DRM_DEBUG_ATOMIC("Bad cursor position %d, %d\n", 7886 - new_plane_state->crtc_x, new_plane_state->crtc_y); 7887 - return -EINVAL; 7888 - } 7889 - 7890 7883 return 0; 7891 7884 } 7892 7885
+2
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
··· 1684 1684 return; 1685 1685 1686 1686 /* Stall out until the cursor update completes. */ 1687 + if (vupdate_end < vupdate_start) 1688 + vupdate_end += stream->timing.v_total; 1687 1689 us_vupdate = (vupdate_end - vupdate_start + 1) * us_per_line; 1688 1690 udelay(us_to_vupdate + us_vupdate); 1689 1691 }
+3 -3
drivers/gpu/drm/ingenic/ingenic-drm.c
··· 328 328 if (!drm_atomic_crtc_needs_modeset(state)) 329 329 return 0; 330 330 331 - if (state->mode.hdisplay > priv->soc_info->max_height || 332 - state->mode.vdisplay > priv->soc_info->max_width) 331 + if (state->mode.hdisplay > priv->soc_info->max_width || 332 + state->mode.vdisplay > priv->soc_info->max_height) 333 333 return -EINVAL; 334 334 335 335 rate = clk_round_rate(priv->pix_clk, ··· 474 474 475 475 static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg) 476 476 { 477 - struct ingenic_drm *priv = arg; 477 + struct ingenic_drm *priv = drm_device_get_priv(arg); 478 478 unsigned int state; 479 479 480 480 regmap_read(priv->map, JZ_REG_LCD_STATE, &state);