Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1207275pxb; Fri, 21 Jan 2022 12:14:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJyoJ2i92OwRivg86lcymk4Nu22e3rOtVeZggGIHAJVm5oif2t06ymSTtHh1V5syxdOInnqQ X-Received: by 2002:a17:902:e810:b0:14b:2636:9ec3 with SMTP id u16-20020a170902e81000b0014b26369ec3mr2389527plg.102.1642796097735; Fri, 21 Jan 2022 12:14:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642796097; cv=none; d=google.com; s=arc-20160816; b=kDijGiZciD9ksxyoR0MclVhJJYESXPWpQPSuJZrwpKl63AD0iM/Dov2VcZVFvbF+CD OiMY+cGpkr6rWtWgdeUG3+zotZyi/to9urY+tn8yhFatuv7IOIgfrEHd/TKd1KNqxcBj Zw1jFR83qy2E9mtCZU+LU3DHVWN11v1X9wj77b2/cl1zSC95I2XvrzL/Yu+T8lkB2CBD 0+UPGvx5U42b5eVedGUE2xGm/7mo6eNb8lh6YKAsCyCKSGVtUox/mX/8mTL9ga/6qloy qLVT/Ks7Xc4oTDg+0mkRZ4UI5HAn4mOkXh1HGfdW4AkKv2m+x6HHKPeJ/JHW5Ov+u7Fp xPzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=xVjyliV2Seqod5G5KIrqETEB6DdMnlj/gwwO0Ms37r0=; b=lEm/JJ6QzwohVMusPncD9MHUwpA8uLHrBbtzracSh4SltbbUU+8mbQotqTsf4KsDMZ /HD93atk3cvSjoAKYOeXDHVYfmMJZnIXvNsGJzJuANjU1z4UINDoEgWo3hFlMPZSYu/S K7tYnDvTwczMVjN05KyWyLWhR0XElQaS/QHdJAxaP9tcUjtR8K2voTOcWYFP9XnH82Sh UdIzcslu9yXQRfrCq0bJFVm1I6mZ6T+gD3WoG/qqU6nUuPO+sxIX6XOVrLtyT1vcuq/m YA7uCSjFi4n+gXxz9KDtOnB6rO2SmSn1abvo4sx2zyD0XLjA81ZUyf0h4qyfdVoLlZ04 Mi7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=m2Cq3pKg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nu18si8719466pjb.42.2022.01.21.12.14.45; Fri, 21 Jan 2022 12:14:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=m2Cq3pKg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357646AbiATALl (ORCPT + 99 others); Wed, 19 Jan 2022 19:11:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344778AbiATALj (ORCPT ); Wed, 19 Jan 2022 19:11:39 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39833C061574 for ; Wed, 19 Jan 2022 16:11:39 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id b1-20020a17090a990100b001b14bd47532so4224960pjp.0 for ; Wed, 19 Jan 2022 16:11:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=xVjyliV2Seqod5G5KIrqETEB6DdMnlj/gwwO0Ms37r0=; b=m2Cq3pKgOPSZH8kQrR3RmS6xRkj5mu1noGfRe3JZhs8okQ1LqSuYyK//XFTZkx1aQs yHUXZol3p03WVKjGCTEpbNIwX1Y17hojgjvIyt4T8a5US0T0fRGuh5XrTFE7N2jsmURt d5YyE0CUQIeGJ0Q571BvcoBoXM5+SCFLLetkw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=xVjyliV2Seqod5G5KIrqETEB6DdMnlj/gwwO0Ms37r0=; b=Rt9o9rcQO5HDqEvyhzfTxUGIQyIb1ef5ePR4kZSHrGSYiqfH7YgFMI7H+NlKIQmaPa JdJh/NGg2E85uiTnNJvX6Lsvklso1+9vnq5nUrA8G+oducfmg68NLF5C95xB/lyKpgTB 1GvTAzhhzAJiOlN7Dl+u8w/lzh8CoO+RBEaz6wnkLK/q5OkyB52WbhWqvc8KzU+jtp26 yde2e6xMt/w4Gk0/Q7Dp/le7u/B7q4dHHRTo3us4M2RWJ7qct4SPW6SMGLEIFuk2I+tW 3bqXdSlh9rkQpRRXxTPVywKAuMDgEc+294MFQKkihdSxAvEuMobZKMGjph0SHwpJ8PYE GecA== X-Gm-Message-State: AOAM531mNRBlDTXC+iilC7Og+vQ330beh3Hem59iGgkOD2SwdDYfKw9R r9ngIbs5jCigQDIEVcFQn76+SQ== X-Received: by 2002:a17:902:7c89:b0:14a:a76f:78d2 with SMTP id y9-20020a1709027c8900b0014aa76f78d2mr21640702pll.166.1642637498672; Wed, 19 Jan 2022 16:11:38 -0800 (PST) Received: from localhost ([2620:15c:202:201:bebd:c462:321a:9b63]) by smtp.gmail.com with UTF8SMTPSA id j4sm804788pfc.125.2022.01.19.16.11.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Jan 2022 16:11:37 -0800 (PST) From: Brian Norris To: Daniel Vetter , David Airlie , =?UTF-8?q?Heiko=20St=C3=BCbner?= Cc: Sandy Huang , linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Mark Yao , dri-devel@lists.freedesktop.org, Brian Norris , Andrzej Pietrasiewicz , stable@vger.kernel.org Subject: [PATCH] drm/rockchip: vop: Correct RK3399 VOP register fields Date: Wed, 19 Jan 2022 16:11:22 -0800 Message-Id: <20220119161104.1.I1d01436bef35165a8cdfe9308789c0badb5ff46a@changeid> X-Mailer: git-send-email 2.34.1.703.g22d0c6ccf7-goog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 7707f7227f09 ("drm/rockchip: Add support for afbc") switched up the rk3399_vop_big[] register windows, but it did so incorrectly. The biggest problem is in rk3288_win23_data[] vs. rk3368_win23_data[] .format field: RK3288's format: VOP_REG(RK3288_WIN2_CTRL0, 0x7, 1) RK3368's format: VOP_REG(RK3368_WIN2_CTRL0, 0x3, 5) Bits 5:6 (i.e., shift 5, mask 0x3) are correct for RK3399, according to the TRM. There are a few other small differences between the 3288 and 3368 definitions that were swapped in commit 7707f7227f09. I reviewed them to the best of my ability according to the RK3399 TRM and fixed them up. This fixes IOMMU issues (and display errors) when testing with BG24 color formats. Fixes: 7707f7227f09 ("drm/rockchip: Add support for afbc") Cc: Andrzej Pietrasiewicz Cc: Signed-off-by: Brian Norris --- I'd appreciate notes or testing from Andrzej, since I'm not sure how he tested his original AFBC work. drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c index 1f7353f0684a..798b542e5916 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c @@ -902,6 +902,7 @@ static const struct vop_win_phy rk3399_win01_data = { .enable = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 0), .format = VOP_REG(RK3288_WIN0_CTRL0, 0x7, 1), .rb_swap = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 12), + .x_mir_en = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 21), .y_mir_en = VOP_REG(RK3288_WIN0_CTRL0, 0x1, 22), .act_info = VOP_REG(RK3288_WIN0_ACT_INFO, 0x1fff1fff, 0), .dsp_info = VOP_REG(RK3288_WIN0_DSP_INFO, 0x0fff0fff, 0), @@ -912,6 +913,7 @@ static const struct vop_win_phy rk3399_win01_data = { .uv_vir = VOP_REG(RK3288_WIN0_VIR, 0x3fff, 16), .src_alpha_ctl = VOP_REG(RK3288_WIN0_SRC_ALPHA_CTRL, 0xff, 0), .dst_alpha_ctl = VOP_REG(RK3288_WIN0_DST_ALPHA_CTRL, 0xff, 0), + .channel = VOP_REG(RK3288_WIN0_CTRL2, 0xff, 0), }; /* @@ -922,11 +924,11 @@ static const struct vop_win_phy rk3399_win01_data = { static const struct vop_win_data rk3399_vop_win_data[] = { { .base = 0x00, .phy = &rk3399_win01_data, .type = DRM_PLANE_TYPE_PRIMARY }, - { .base = 0x40, .phy = &rk3288_win01_data, + { .base = 0x40, .phy = &rk3368_win01_data, .type = DRM_PLANE_TYPE_OVERLAY }, - { .base = 0x00, .phy = &rk3288_win23_data, + { .base = 0x00, .phy = &rk3368_win23_data, .type = DRM_PLANE_TYPE_OVERLAY }, - { .base = 0x50, .phy = &rk3288_win23_data, + { .base = 0x50, .phy = &rk3368_win23_data, .type = DRM_PLANE_TYPE_CURSOR }, }; -- 2.34.1.703.g22d0c6ccf7-goog