Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp1861670rda; Tue, 24 Oct 2023 05:51:07 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG0aUwfWtYjCNLjNlo25JvNjB2+Ly0MAkf1Vktyff3cOhtOKhOByaHcRpNdqOsiOWSDhnAX X-Received: by 2002:a17:90b:2b4d:b0:27d:9b7:cc7 with SMTP id rr13-20020a17090b2b4d00b0027d09b70cc7mr9293098pjb.24.1698151866935; Tue, 24 Oct 2023 05:51:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698151866; cv=none; d=google.com; s=arc-20160816; b=mg9sGDzABpcko04Mj3JDcgAa/PWvS1xodBVuVGB1ZGaL6cYJAOcFzh2CLSjIWVchTN xwKpo3xiF6fq6+Loa614D1vHCGopSf6/O8nEMA5uBy01cax5zqqPVg5ws76lamoLG1mh 7JOdzqDjulxVrFrcWb69lj5eay6fd4nZSQ8wF9xC8jJXb4yVssWkA3pEIztHibTi3KT/ Dp+OI1oZ3OFDaZt956XT687xWJbKD7nL7NwrRMDBdufIUOGm52+Eaf5U3fBu/sKU4QX0 clhJ8PEx6TV1HIPPxPfn2zBX+xbGYSg9m93qMQ/xbCeBbUtOcVDiXLFTbnMmjVeJhqhU iO7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=BeGKd1zRDgUMe8T8OLiWdtvhv6/lo9wdPYUqunmKOOM=; fh=/WMNY/6hjElkxweC8+CBSZXXatbOpOCOiShj2zLzz1k=; b=U3f99VnTZu7101lww09OxBMzAxAsIU+P+lyhbhnmT6UkPlW9p4661z/N9n0piDgkxu DwXsF0B0+W7I0Pps9DJDyqaDX9CS1t14wx4sRFeZrou5RrRjQbQW2kitI3LI2FpIwU8S E5NQTgojMKOa2s3aOG2UAWLTlQ1FVfh5mZzxujpK76PfkIbPiqVGF5xyewZ2EiM40xjE YbLW8maRp9ehcY7k648jtjrrijN9LOwLHqsX+AXyf1H3+M/qZOkRAveTwC4pQS3W4SO7 ofn9ECneJf9V3RVXhnsJG04IikHPkV4bev2llXxxG2WgSTdPu3pqWd0nC1Vr5Htx/j8S HYhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rock-chips.com header.s=default header.b=UHrTmeSH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=rock-chips.com Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id d188-20020a6336c5000000b005ab7b51ab6csi656018pga.515.2023.10.24.05.51.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Oct 2023 05:51:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@rock-chips.com header.s=default header.b=UHrTmeSH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=rock-chips.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id C56CB807FD49; Tue, 24 Oct 2023 05:50:21 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234343AbjJXMuG (ORCPT + 99 others); Tue, 24 Oct 2023 08:50:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234315AbjJXMuF (ORCPT ); Tue, 24 Oct 2023 08:50:05 -0400 X-Greylist: delayed 404 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 24 Oct 2023 05:50:00 PDT Received: from mail-m49203.qiye.163.com (mail-m49203.qiye.163.com [45.254.49.203]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8790B9B for ; Tue, 24 Oct 2023 05:50:00 -0700 (PDT) DKIM-Signature: a=rsa-sha256; b=UHrTmeSHrqpiHdcOamHgQaAJb2h9+KyyQVQcQn0b7Mx7zc67kwERIw6q4Y2mpseJxNjoieASmXauE3B3S9w8reaBx0TJTIB0TAICu6Jwi0HcfvF5xZJnlUemBFeN9tyY64QXiqdm05KP7jmVV8btJKa/hZB4gNGCqEqQ25rQpAY=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=BeGKd1zRDgUMe8T8OLiWdtvhv6/lo9wdPYUqunmKOOM=; h=date:mime-version:subject:message-id:from; Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m12779.qiye.163.com (Hmail) with ESMTPA id 954C878024B; Tue, 24 Oct 2023 20:41:33 +0800 (CST) Message-ID: <107e7a80-ace1-441d-89c9-44e6465fefbd@rock-chips.com> Date: Tue, 24 Oct 2023 20:41:33 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full Content-Language: en-US To: Christopher Obbard , Jonas Karlman , Heiko Stuebner , Sandy Huang , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel References: <20231023211158.424489-1-jonas@kwiboo.se> From: Andy Yan In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1ktWUFJV1kPCRoVCBIfWUFZGkMfSVZISkMZGEkeQxodTR1VEwETFh oSFyQUDg9ZV1kYEgtZQVlOQ1VJSVVMVUpKT1lXWRYaDxIVHRRZQVlPS0hVSk1PSU5IVUpLS1VKQk tLWQY+ X-HM-Tid: 0a8b61b4639cb24fkuuu954c878024b X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6PT46Kio4CTwwVj0xGBA3IjAe OTpPChJVSlVKTUJDSk5KSUJPT0tKVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBT0NOQjcG X-Spam-Status: No, score=0.7 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_SORBS_WEB,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 24 Oct 2023 05:50:22 -0700 (PDT) Hi: On 10/24/23 16:49, Christopher Obbard wrote: > Hi Jonas, > > On Mon, 2023-10-23 at 21:11 +0000, Jonas Karlman wrote: >> Use of DRM_FORMAT_RGB888 and DRM_FORMAT_BGR888 on e.g. RK3288, RK3328 >> and RK3399 result in wrong colors being displayed. >> >> The issue can be observed using modetest: >> >>   modetest -s @:1920x1080-60@RG24 >>   modetest -s @:1920x1080-60@BG24 >> >> Vendor 4.4 kernel apply an inverted rb swap for these formats on VOP >> full (major = 3). >> >> Fix colors by applying rb swap similar to vendor 4.4 kernel. >> >> Signed-off-by: Jonas Karlman > How about a fixes tag? Seems like this was introduced in commit 85a359f25388 > ("drm/rockchip: Add BGR formats to VOP") > >> --- >>  drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 9 ++++++--- >>  1 file changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> index b3d0b6ae9294..a1ce09a22f83 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c >> @@ -247,14 +247,17 @@ static inline void vop_cfg_done(struct vop *vop) >>   VOP_REG_SET(vop, common, cfg_done, 1); >>  } >> >> -static bool has_rb_swapped(uint32_t format) >> +static bool has_rb_swapped(uint32_t version, uint32_t format) >>  { >>   switch (format) { >>   case DRM_FORMAT_XBGR8888: >>   case DRM_FORMAT_ABGR8888: >> - case DRM_FORMAT_BGR888: >>   case DRM_FORMAT_BGR565: >>   return true; >> + case DRM_FORMAT_RGB888: >> + return VOP_MAJOR(version) == 3; >> + case DRM_FORMAT_BGR888: >> + return VOP_MAJOR(version) != 3; > The hardcoded bits are quite scary as it applies to all hardware variants ;-). > Is it worth adding an inline comment to describe what is going on and how it > relates to VOPL and VOPH? Or would it be even better to add this as a quirk in > the various vop_data structs? Every vop hardware has a version(including VOPB/VOPL), so I think use VOP_MAJOR to distinguish is ok. Of course it's better to add some comments. As for adding some quirk in vop_data, I have the idea of adding a table to describe the drm format and it's (rb/uv swap, afbc) capability, but I think this is can be done in the future. > > > Cheers! > > Chris > >>   default: >>   return false; >>   } >> @@ -1035,7 +1038,7 @@ static void vop_plane_atomic_update(struct drm_plane >> *plane, >>   VOP_WIN_SET(vop, win, dsp_info, dsp_info); >>   VOP_WIN_SET(vop, win, dsp_st, dsp_st); >> >> - rb_swap = has_rb_swapped(fb->format->format); >> + rb_swap = has_rb_swapped(vop->data->version, fb->format->format); >>   VOP_WIN_SET(vop, win, rb_swap, rb_swap); >> >>   /* > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip