]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpu/drm/rcar-du/rcar_du_vsp.c
drm: rcar-du: Add writeback support for R-Car Gen3
[linux.git] / drivers / gpu / drm / rcar-du / rcar_du_vsp.c
index 57c64134ab61f7e2c7004e043d17a1e140050dd5..4c8bed34838c13ed77135b97370c8f34f4c4acbb 100644 (file)
@@ -27,6 +27,7 @@
 #include "rcar_du_drv.h"
 #include "rcar_du_kms.h"
 #include "rcar_du_vsp.h"
+#include "rcar_du_writeback.h"
 
 static void rcar_du_vsp_complete(void *private, unsigned int status, u32 crc)
 {
@@ -37,6 +38,8 @@ static void rcar_du_vsp_complete(void *private, unsigned int status, u32 crc)
 
        if (status & VSP1_DU_STATUS_COMPLETE)
                rcar_du_crtc_finish_page_flip(crtc);
+       if (status & VSP1_DU_STATUS_WRITEBACK)
+               rcar_du_writeback_complete(crtc);
 
        drm_crtc_add_crc_entry(&crtc->crtc, false, 0, &crc);
 }
@@ -108,6 +111,8 @@ void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc)
        state = to_rcar_crtc_state(crtc->crtc.state);
        cfg.crc = state->crc;
 
+       rcar_du_writeback_setup(crtc, &cfg.writeback);
+
        vsp1_du_atomic_flush(crtc->vsp->vsp, crtc->vsp_pipe, &cfg);
 }