mirror of https://gitee.com/openkylin/linux.git
drm fixes for 5.7 final
amdgpu: - display atomic test fix - Fix soft hang in display vupdate code ingenic: - fix pointer cast - fix crtc atomic check callback -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJe0HGqAAoJEAx081l5xIa+vBEP/1RqP7mWmuj2p35+eh/Krl8V T+2GlbBi6XzL+doz1poBwSi+WJrzcCTU0uHe0MwsyLLAz5kdhxBXGTX7Zm0kp1U3 JvT0cdd7fEC6ai6OgwuiqaoxSU/sjeLOOWZSjdjDajclnxn0dNBnOntPjC4r1GSD TVkVzk/SzfJTMkUJuulTRh0E2WaCYFsOGjCgANtXA4NdAl0OhIjlZ4IZ7xvOyFHk SdPa/q4Wgmt4AUOc2nJ3VTEd2frI7OdsUsHecNGGsBU6+Vhj7NX3F8CajHsHyh9y dccDVdk68OPs4Wt2FNNjVgmqr4k2JnkjF/kuauUF4poBxW8a7sKQp5EYmYFNKxuH ESHY5KHP4n/N9roWIz5VccGZWCogaflGMCtqB0DC8vX0qoO+Y4JhZCaqtcDwIaS6 6ZBZdvGL+e+Lr0/yMQ7Q3uSh3exwW6Xqxphy3kU0ds0t9G12SUqCBDF1o4mI8sS4 gHFuzytaGmmMjzJL7SlGdLqU315CvZAPnOxUUIqe31+Quv0AiHx2qusEyV3J8shS rYSRzkTUXpOrU6R+Q6ET/jcqsz3kFYurAJNM3A4sZLuWUQBHRTV6lTm5MHpslrhS AfCXMyoaPkDVERvvJTOLHddts93jxFWVZ0vezBsVKA/OBXKaGz3lu960Bwq5J72/ KeWm0HZSLPo5G0GWHBPf =d8NX -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
86e43b8bf0
|
@ -7880,13 +7880,6 @@ static int dm_update_plane_state(struct dc *dc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (new_plane_state->crtc_x <= -new_acrtc->max_cursor_width ||
|
||||
new_plane_state->crtc_y <= -new_acrtc->max_cursor_height) {
|
||||
DRM_DEBUG_ATOMIC("Bad cursor position %d, %d\n",
|
||||
new_plane_state->crtc_x, new_plane_state->crtc_y);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1684,6 +1684,8 @@ static void delay_cursor_until_vupdate(struct dc *dc, struct pipe_ctx *pipe_ctx)
|
|||
return;
|
||||
|
||||
/* Stall out until the cursor update completes. */
|
||||
if (vupdate_end < vupdate_start)
|
||||
vupdate_end += stream->timing.v_total;
|
||||
us_vupdate = (vupdate_end - vupdate_start + 1) * us_per_line;
|
||||
udelay(us_to_vupdate + us_vupdate);
|
||||
}
|
||||
|
|
|
@ -328,8 +328,8 @@ static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc,
|
|||
if (!drm_atomic_crtc_needs_modeset(state))
|
||||
return 0;
|
||||
|
||||
if (state->mode.hdisplay > priv->soc_info->max_height ||
|
||||
state->mode.vdisplay > priv->soc_info->max_width)
|
||||
if (state->mode.hdisplay > priv->soc_info->max_width ||
|
||||
state->mode.vdisplay > priv->soc_info->max_height)
|
||||
return -EINVAL;
|
||||
|
||||
rate = clk_round_rate(priv->pix_clk,
|
||||
|
@ -474,7 +474,7 @@ static int ingenic_drm_encoder_atomic_check(struct drm_encoder *encoder,
|
|||
|
||||
static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg)
|
||||
{
|
||||
struct ingenic_drm *priv = arg;
|
||||
struct ingenic_drm *priv = drm_device_get_priv(arg);
|
||||
unsigned int state;
|
||||
|
||||
regmap_read(priv->map, JZ_REG_LCD_STATE, &state);
|
||||
|
|
Loading…
Reference in New Issue