mirror of
https://github.com/Fishwaldo/build.git
synced 2025-04-17 11:31:28 +00:00
71 lines
2.4 KiB
Diff
71 lines
2.4 KiB
Diff
From 61ceaf782220a596ac845483d00d50752f7c6e14 Mon Sep 17 00:00:00 2001
|
|
From: Neil Armstrong <narmstrong@baylibre.com>
|
|
Date: Thu, 15 Feb 2018 10:38:47 +0100
|
|
Subject: [PATCH 37/39] drm/meson: fix vsync buffer update
|
|
|
|
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
---
|
|
drivers/gpu/drm/meson/meson_crtc.c | 6 ++++++
|
|
drivers/gpu/drm/meson/meson_drv.h | 3 +++
|
|
drivers/gpu/drm/meson/meson_plane.c | 7 +++----
|
|
3 files changed, 12 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
|
|
index 5155f01..0552020 100644
|
|
--- a/drivers/gpu/drm/meson/meson_crtc.c
|
|
+++ b/drivers/gpu/drm/meson/meson_crtc.c
|
|
@@ -36,6 +36,7 @@
|
|
#include "meson_venc.h"
|
|
#include "meson_vpp.h"
|
|
#include "meson_viu.h"
|
|
+#include "meson_canvas.h"
|
|
#include "meson_registers.h"
|
|
|
|
/* CRTC definition */
|
|
@@ -192,6 +193,11 @@ void meson_crtc_irq(struct meson_drm *priv)
|
|
} else
|
|
meson_vpp_disable_interlace_vscaler_osd1(priv);
|
|
|
|
+ meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1,
|
|
+ priv->viu.osd1_addr, priv->viu.osd1_stride,
|
|
+ priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE,
|
|
+ MESON_CANVAS_BLKMODE_LINEAR);
|
|
+
|
|
/* Enable OSD1 */
|
|
writel_bits_relaxed(VPP_OSD1_POSTBLEND, VPP_OSD1_POSTBLEND,
|
|
priv->io_base + _REG(VPP_MISC));
|
|
diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
|
|
index 5e8b392..8450d6ac 100644
|
|
--- a/drivers/gpu/drm/meson/meson_drv.h
|
|
+++ b/drivers/gpu/drm/meson/meson_drv.h
|
|
@@ -43,6 +43,9 @@ struct meson_drm {
|
|
bool osd1_commit;
|
|
uint32_t osd1_ctrl_stat;
|
|
uint32_t osd1_blk0_cfg[5];
|
|
+ uint32_t osd1_addr;
|
|
+ uint32_t osd1_stride;
|
|
+ uint32_t osd1_height;
|
|
} viu;
|
|
|
|
struct {
|
|
diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
|
|
index 17e96fa..0b6011b 100644
|
|
--- a/drivers/gpu/drm/meson/meson_plane.c
|
|
+++ b/drivers/gpu/drm/meson/meson_plane.c
|
|
@@ -164,10 +164,9 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
|
|
/* Update Canvas with buffer address */
|
|
gem = drm_fb_cma_get_gem_obj(fb, 0);
|
|
|
|
- meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1,
|
|
- gem->paddr, fb->pitches[0],
|
|
- fb->height, MESON_CANVAS_WRAP_NONE,
|
|
- MESON_CANVAS_BLKMODE_LINEAR);
|
|
+ priv->viu.osd1_addr = gem->paddr;
|
|
+ priv->viu.osd1_stride = fb->pitches[0];
|
|
+ priv->viu.osd1_height = fb->height;
|
|
|
|
spin_unlock_irqrestore(&priv->drm->event_lock, flags);
|
|
}
|
|
--
|
|
2.7.4
|
|
|