1
0
Fork 0

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
Liu Ying 2018-11-30 13:50:53 +08:00
parent 805e90af5f
commit a530794d7e
1 changed files with 0 additions and 20 deletions

View File

@ -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;