drm/meson: Add missing VPU init
authorNeil Armstrong <narmstrong@baylibre.com>
Wed, 6 Dec 2017 11:54:28 +0000 (12:54 +0100)
committerNeil Armstrong <narmstrong@baylibre.com>
Fri, 8 Dec 2017 09:43:46 +0000 (10:43 +0100)
The VPU init misses these configurations values.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1512561268-29806-5-git-send-email-narmstrong@baylibre.com
drivers/gpu/drm/meson/meson_drv.c
drivers/gpu/drm/meson/meson_registers.h

index 3b804fdaf7a05f3b19b60ce2bb647d70dedd0d34..f9ad0e960263fd6e112c9f42f88df611774fd5c5 100644 (file)
@@ -151,6 +151,14 @@ static struct regmap_config meson_regmap_config = {
        .max_register   = 0x1000,
 };
 
+static void meson_vpu_init(struct meson_drm *priv)
+{
+       writel_relaxed(0x210000, priv->io_base + _REG(VPU_RDARB_MODE_L1C1));
+       writel_relaxed(0x10000, priv->io_base + _REG(VPU_RDARB_MODE_L1C2));
+       writel_relaxed(0x900000, priv->io_base + _REG(VPU_RDARB_MODE_L2C1));
+       writel_relaxed(0x20000, priv->io_base + _REG(VPU_WRARB_MODE_L2C1));
+}
+
 static int meson_drv_bind_master(struct device *dev, bool has_components)
 {
        struct platform_device *pdev = to_platform_device(dev);
@@ -222,6 +230,7 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
 
        /* Hardware Initialization */
 
+       meson_vpu_init(priv);
        meson_venc_init(priv);
        meson_vpp_init(priv);
        meson_viu_init(priv);
index 284738196af9cb315f17b1756ae996288ffb38b0..bca87143e54880864a528da2fd5043ce9ca18e46 100644 (file)
 #define VPU_PROT3_STAT_1 0x277a
 #define VPU_PROT3_STAT_2 0x277b
 #define VPU_PROT3_REQ_ONOFF 0x277c
+#define VPU_RDARB_MODE_L1C1 0x2790
+#define VPU_RDARB_MODE_L1C2 0x2799
+#define VPU_RDARB_MODE_L2C1 0x279d
+#define VPU_WRARB_MODE_L2C1 0x27a2
 
 /* osd super scale */
 #define OSDSR_HV_SIZEIN 0x3130