Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3283975img; Mon, 25 Mar 2019 07:21:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqymeSkSG1uYiT1dnh9aNLnRHTyQ+iHF+Ti3KZ56gYYBvt/Jrf4FfvVvKYxdfI0PAeK1u12o X-Received: by 2002:a62:5687:: with SMTP id h7mr24121320pfj.198.1553523660567; Mon, 25 Mar 2019 07:21:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553523660; cv=none; d=google.com; s=arc-20160816; b=WKKTEJsadUbcBlNp64i3g4xvVpCiHwxuoJcFjYiMoObsHDQP8PQgABVbXdqAEiyVS4 m1WM1nIB+RC5pGZdb8XE33o3dNCE9doPvYAwU7YoiOXUUonSraDkOFKXAPzJk48xMSI2 R1q2Lnd+PJMuyt9ZKelc0mDjtKn5b6vaoPbEV03qpKruPNMH7kSH9k1pk4NJBepSamAY RtqX/9cID/5+YxdPDbBEtRu61vK93Q5a37fqzA/AtGmMWQX0LBBavCcuLhCXeguV3pJd 4fjAoVDPQQSOY0ZOI6oZl5CBo4nzRIG/yB/Qvsm+oZE3aA5C2j874C0culuSxsB93gQk DEXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UakGg7pFINmeFLlNMB831/77cfd9ndMBEIB1YBWHGhc=; b=1JpEmEVDzuKmF/5LtmVq/MMlzv2yXvdczpipQ+T16M3u+a9TGhruxXZ+/vN6WLfiEw D93bIY7wQ36F3am7KJmqZVNBEaRg58EErYCZ+Xgqd6tL9DwJGFOUWh6QT1R4B8y5H9A1 geXxKGdw/juq95UNoCo+mtjbML0CcYh0cJ/S1GEV5miZ1Fgmj+blgDAwQS18WuqBojC2 t+OTN/9SKSoXAq5XaO2IJmzc2Q9a4ygRMItb0kB/ugWxRBwFF/D+tNqlGnKOrL6Q3LPr /XNEXNAmjzQQ1N9Loy0LaTEcGuwsElRh3Zl1Bw1RACHE/2l06yOLQDt3aaKWP7M58Dnt IozQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b="QQdDUz/h"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t4si12822867pgo.206.2019.03.25.07.20.45; Mon, 25 Mar 2019 07:21:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b="QQdDUz/h"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729473AbfCYOTR (ORCPT + 99 others); Mon, 25 Mar 2019 10:19:17 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:39045 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726182AbfCYOSf (ORCPT ); Mon, 25 Mar 2019 10:18:35 -0400 Received: by mail-wm1-f65.google.com with SMTP id t124so9256466wma.4 for ; Mon, 25 Mar 2019 07:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UakGg7pFINmeFLlNMB831/77cfd9ndMBEIB1YBWHGhc=; b=QQdDUz/hynfYXaGL3Ko0DRhMpJQJwBuv9bgNshh7ja7IMkhdkDEpsc7gcoobUUMaf3 2Cm8Z7KCYfpz8lvYM8RvBeUU0AhjVhhqHaN6uI2UfaXGEfSoXfOLjxESmBu7HwiAcgro t24uuyGP9FMSCx7JkT8f3eY2eNQ7HAfsiqQSeEwKePBg3eHip1OPKeKuwUBvKJDvGdFM o3MarFPqIiD03de7r/9jm23tQspRcRbf+nGAfSkj+4zmC6xDhbapdUGwEPkvS4BvRH5z AIXuE3kj/wqIJmgryLie3nksdvXcJVCMp2ppwrFYRLSjfQJmO3g505s+CJrV+Vp7aFlB J5sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UakGg7pFINmeFLlNMB831/77cfd9ndMBEIB1YBWHGhc=; b=B+aumheLn/qRcacpcTwlz9GZfQb2iIb2VcGJ/qUHIc7NdIOgTtYwwCte0wpXzMxzDA WywdI75lRXqUch4ueOmLFS2X2ub/YTtMn1dYnfpsnghJW7gt9vF3kSjuAiyo09uBaSDG 8zgpL7Az288ORIXOJvaj1H6//oVNQWQlkWa/Ws4Tdsq5GTJDHL/LsQwaoyHXmA6PERHR ZCoX38o4B/TrRThxy76XY7UAoW+v2pFO1DhpwfmexxMW8+1mO89On21oZ5DlGYRP/+Ce NZ2PSD0/qc3/TZMXNtEDwBzSLNPisxhURFtKjTvUWs03PdjyrKKPq34lxPw2Y1Y/YFDn T6Zw== X-Gm-Message-State: APjAAAW+zv/1uuo8qRxnMMa7KtInJz+1vMSHuFHoRZlzLbd6OzEWNLdF vbSzQz4/7DstALwChMTzfcGOew== X-Received: by 2002:a05:600c:2055:: with SMTP id p21mr6456775wmg.118.1553523513566; Mon, 25 Mar 2019 07:18:33 -0700 (PDT) Received: from localhost.localdomain (176-150-251-154.abo.bbox.fr. [176.150.251.154]) by smtp.gmail.com with ESMTPSA id 132sm26976794wmd.30.2019.03.25.07.18.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 25 Mar 2019 07:18:32 -0700 (PDT) From: Neil Armstrong To: dri-devel@lists.freedesktop.org Cc: Neil Armstrong , linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/11] drm/meson: Add G12A support for OSD1 Plane Date: Mon, 25 Mar 2019 15:18:18 +0100 Message-Id: <20190325141824.21259-6-narmstrong@baylibre.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190325141824.21259-1-narmstrong@baylibre.com> References: <20190325141824.21259-1-narmstrong@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Amlogic G12A SoC supports now up to 3 OSD planes (1 more than the previous SoCs) and a brand new OSD plane blender module. This patch uses the same OSD1 plane G12A, using the exact same scaler and OSD1 setup registers, except using the new blender register to disable the plane. Signed-off-by: Neil Armstrong --- drivers/gpu/drm/meson/meson_plane.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c index b7786218cb10..bf8f1fab63aa 100644 --- a/drivers/gpu/drm/meson/meson_plane.c +++ b/drivers/gpu/drm/meson/meson_plane.c @@ -294,6 +294,13 @@ static void meson_plane_atomic_update(struct drm_plane *plane, priv->viu.osd1_blk0_cfg[3] = ((dest.x2 - 1) << 16) | dest.x1; priv->viu.osd1_blk0_cfg[4] = ((dest.y2 - 1) << 16) | dest.y1; + if (meson_vpu_is_compatible(priv, "amlogic,meson-g12a-vpu")) { + priv->viu.osd_blend_din0_scope_h = ((dest.x2 - 1) << 16) | dest.x1; + priv->viu.osd_blend_din0_scope_v = ((dest.y2 - 1) << 16) | dest.y1; + priv->viu.osb_blend0_size = dst_h << 16 | dst_w; + priv->viu.osb_blend1_size = dst_h << 16 | dst_w; + } + /* Update Canvas with buffer address */ gem = drm_fb_cma_get_gem_obj(fb, 0); @@ -320,8 +327,12 @@ static void meson_plane_atomic_disable(struct drm_plane *plane, struct meson_drm *priv = meson_plane->priv; /* Disable OSD1 */ - writel_bits_relaxed(VPP_OSD1_POSTBLEND, 0, - priv->io_base + _REG(VPP_MISC)); + if (meson_vpu_is_compatible(priv, "amlogic,meson-g12a-vpu")) + writel_bits_relaxed(BIT(0) | BIT(21), 0, + priv->io_base + _REG(VIU_OSD1_CTRL_STAT)); + else + writel_bits_relaxed(VPP_OSD1_POSTBLEND, 0, + priv->io_base + _REG(VPP_MISC)); meson_plane->enabled = false; -- 2.21.0