mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-13 16:11:54 +00:00
drm/rockchip: allocate correct crtc state structure on reset
Because we are using a custom crtc_state structure, we must override the reset helper to allocate the correct amount of memory. Cc: stable@vger.kernel.org Fixes: 4e257d9eee23 ("drm/rockchip: get rid of rockchip_drm_crtc_mode_config") Signed-off-by: John Keeping <john@metanate.com> Signed-off-by: Mark Yao <mark.yao@rock-chips.com> Reviewed-by: Sean Paul <seanpaul@chromium.org>
This commit is contained in:
parent
f5e193a16d
commit
dc0b408f5a
@ -1052,6 +1052,17 @@ static void vop_crtc_destroy(struct drm_crtc *crtc)
|
|||||||
drm_crtc_cleanup(crtc);
|
drm_crtc_cleanup(crtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void vop_crtc_reset(struct drm_crtc *crtc)
|
||||||
|
{
|
||||||
|
if (crtc->state)
|
||||||
|
__drm_atomic_helper_crtc_destroy_state(crtc->state);
|
||||||
|
kfree(crtc->state);
|
||||||
|
|
||||||
|
crtc->state = kzalloc(sizeof(struct rockchip_crtc_state), GFP_KERNEL);
|
||||||
|
if (crtc->state)
|
||||||
|
crtc->state->crtc = crtc;
|
||||||
|
}
|
||||||
|
|
||||||
static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc)
|
static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc)
|
||||||
{
|
{
|
||||||
struct rockchip_crtc_state *rockchip_state;
|
struct rockchip_crtc_state *rockchip_state;
|
||||||
@ -1077,7 +1088,7 @@ static const struct drm_crtc_funcs vop_crtc_funcs = {
|
|||||||
.set_config = drm_atomic_helper_set_config,
|
.set_config = drm_atomic_helper_set_config,
|
||||||
.page_flip = drm_atomic_helper_page_flip,
|
.page_flip = drm_atomic_helper_page_flip,
|
||||||
.destroy = vop_crtc_destroy,
|
.destroy = vop_crtc_destroy,
|
||||||
.reset = drm_atomic_helper_crtc_reset,
|
.reset = vop_crtc_reset,
|
||||||
.atomic_duplicate_state = vop_crtc_duplicate_state,
|
.atomic_duplicate_state = vop_crtc_duplicate_state,
|
||||||
.atomic_destroy_state = vop_crtc_destroy_state,
|
.atomic_destroy_state = vop_crtc_destroy_state,
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user