MLK-20508 drm/imx: dpu: plane: Revert a patch related to tile to linear fb switch
The root cause of the on-the-fly switch from tile to linear fb switch issue is identified, so the full modeset workaround is no more needed. Patch "MLK-20506 gpu: imx: imx8_dprc: Set CROP_ULC_X/Y to be zero for linear fb" is the correct fix for this issue. Revert "MLK-20470 drm/imx: dpu: plane: Do full modeset for tile to linear fb switch" This reverts commit 9245bbf650fdeb79ebf869d48b6bd1b43c2bcf3b. Signed-off-by: Liu Ying <victor.liu@nxp.com> (cherry picked from commit 7812bebe9c60a6ce954ce5ad504a6be002835462)pull/10/head
parent
805e90af5f
commit
a530794d7e
|
@ -20,7 +20,6 @@
|
|||
#include <drm/drm_plane_helper.h>
|
||||
#include <video/dpu.h>
|
||||
#include <video/imx8-prefetch.h>
|
||||
#include "dpu-crtc.h"
|
||||
#include "dpu-plane.h"
|
||||
#include "imx-drm.h"
|
||||
|
||||
|
@ -246,10 +245,7 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
|
|||
struct dpu_plane_state *old_dpstate = to_dpu_plane_state(plane->state);
|
||||
struct dpu_plane_res *res = &dplane->grp->res;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
struct imx_crtc_state *imx_crtc_state;
|
||||
struct dpu_crtc_state *dcstate;
|
||||
struct drm_framebuffer *fb = state->fb;
|
||||
struct drm_framebuffer *old_fb = plane->state->fb;
|
||||
struct dpu_fetchunit *fu;
|
||||
struct dprc *dprc;
|
||||
dma_addr_t baseaddr, uv_baseaddr = 0;
|
||||
|
@ -335,22 +331,6 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
|
|||
(dpstate->base_y != old_dpstate->base_y))
|
||||
crtc_state->mode_changed = true;
|
||||
|
||||
/*
|
||||
* FIXME:
|
||||
* When pixel combiner is used, it turns out that on-the-fly
|
||||
* switch from tile fb to linear fb would cause hardware
|
||||
* malfunction - right half display would be missing and
|
||||
* master&slave content shadow load done event won't come.
|
||||
* Thus, go for a full modeset as a workaround. This could
|
||||
* be over-kill for some cases, however, since we usually
|
||||
* don't do this kind of switch in real graphics, it should
|
||||
* be fine.
|
||||
*/
|
||||
imx_crtc_state = to_imx_crtc_state(crtc_state);
|
||||
dcstate = to_dpu_crtc_state(imx_crtc_state);
|
||||
if (dcstate->use_pc && old_fb && old_fb->modifier && !fb->modifier)
|
||||
crtc_state->mode_changed = true;
|
||||
|
||||
if (state->crtc_x + state->crtc_w >
|
||||
crtc_state->adjusted_mode.hdisplay)
|
||||
return -EINVAL;
|
||||
|
|
Loading…
Reference in New Issue