Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp1798990ybn; Thu, 26 Sep 2019 02:21:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqxeqZElvByJW7PqQg/SikBLzAOO0m8Qkm9Ufu1Zgc+IP7COyZT+Sz0UJ0zMOGiDWhVN6Qcd X-Received: by 2002:a17:906:41a:: with SMTP id d26mr2133784eja.17.1569489698957; Thu, 26 Sep 2019 02:21:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569489698; cv=none; d=google.com; s=arc-20160816; b=zuiBAOVax9v89hGkvoWmW7i6ys0QhhDHUDg12qi+rGN4Cawme73Z2XpwI/868UBvSN AHbVxQKUDbib09gREBb08O2p5SzwpSBka/XRe1VwcFhD4U8fxwSEO8pc5GYSZH/P4uty VF2D1jRjLksKOUpYIcPkgi8kI48bANUrFkSsMo9sMKZ0lShtsgFZtNs7b6f+cJGRUn2n ZWyJz3mPwJWWHlBb0QmPBJjrkj6UQ6HGD/aYJWc42uhiawAtWsVlys3Y2qLXuS7vBBUF NI0PIPwLeI31LRxJDkt7ULNnoUN/22UVPakAKk/KgwLZhS3CybW9c90eaCEpRKbvhhQq yVxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=jYAsU3TDfvO4/MonbNsMbTlsH7Ml5WrHMpVyo0HIEGw=; b=S6SSi4o+rYHdAkDAis0/oZKfqkxPtPbrs7Tj16KMn4V2QC1fSs5D/iqcGCqr0oXKuE sM2k4wjGc4arqIQIVPU3YcB2rCXCM4NaGz5j78ViCKtZi1tli5HD9eR6W/twnLGefu+v m3lY8BiZtRktBqh1B06KvYb3HxT5stz7m+kAtUgIuZCsQrNi9/Fg5jv5PZjNGVP8M7lP J8x8r3KyJQ4Z8lfAmZGoVresvULX7k9oprN+EWbAr46AzpuFsXni3aGBAaOWPcXBPfsx PNby5jVZah479HzfSzdckoS/qQwBrUab7+ClRBZAikVqjdvf7D6Yj2cVbQUmNTabpBOj jMiQ== ARC-Authentication-Results: i=1; mx.google.com; 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 e23si704815ejt.379.2019.09.26.02.21.14; Thu, 26 Sep 2019 02:21:38 -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; 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 S2406863AbfIYIHS (ORCPT + 99 others); Wed, 25 Sep 2019 04:07:18 -0400 Received: from regular1.263xmail.com ([211.150.70.202]:56772 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2406011AbfIYIHS (ORCPT ); Wed, 25 Sep 2019 04:07:18 -0400 Received: from hjc?rock-chips.com (unknown [192.168.167.42]) by regular1.263xmail.com (Postfix) with ESMTP id 00F882D5; Wed, 25 Sep 2019 16:07:11 +0800 (CST) X-263anti-spam: KSV:0;BIG:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ADDR-CHECKED4: 1 X-ABS-CHECKED: 1 X-SKE-CHECKED: 1 X-ANTISPAM-LEVEL: 2 Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp.263.net (postfix) whith ESMTP id P2645T139744972404480S1569398812082049_; Wed, 25 Sep 2019 16:07:10 +0800 (CST) X-IP-DOMAINF: 1 X-UNIQUE-TAG: <4eb4121ae0eabc237eee6c7347c4a621> X-RL-SENDER: hjc@rock-chips.com X-SENDER: hjc@rock-chips.com X-LOGIN-NAME: hjc@rock-chips.com X-FST-TO: dri-devel@lists.freedesktop.org X-SENDER-IP: 58.22.7.114 X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Sandy Huang To: dri-devel@lists.freedesktop.org, Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , David Airlie , Daniel Vetter Cc: Ayan.Halder@arm.com, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] drm/rockchip: Add vop_format_get_bpp to get format bpp Date: Wed, 25 Sep 2019 16:06:39 +0800 Message-Id: <1569398801-92201-3-git-send-email-hjc@rock-chips.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1569398801-92201-1-git-send-email-hjc@rock-chips.com> References: <1569398801-92201-1-git-send-email-hjc@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For 10bit yuv format, we need to get format bpp each plane, so we Add vop_format_get_bpp() to instead of format->cpp[]; Signed-off-by: Sandy Huang --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 2f821c5..ce5b45d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -249,6 +249,25 @@ static bool has_rb_swapped(uint32_t format) } } +static int vop_format_get_bpp(u32 format, u8 plane) +{ + const struct drm_format_info *info; + + info = drm_format_info(format); + if (!info || plane >= info->num_planes) + return 0; + + if (info->cpp[0] == 0) { + /* only support DRM_FORMAT_NVxx_10 now */ + if (plane == 0) + return 10; + else + return 20; + } + + return info->cpp[plane] * 8; +} + static enum vop_data_format vop_convert_format(uint32_t format) { switch (format) { @@ -832,7 +851,8 @@ static void vop_plane_atomic_update(struct drm_plane *plane, dsp_sty = dest->y1 + crtc->mode.vtotal - crtc->mode.vsync_start; dsp_st = dsp_sty << 16 | (dsp_stx & 0xffff); - offset = (src->x1 >> 16) * fb->format->cpp[0]; + offset = (src->x1 >> 16) * + vop_format_get_bpp(fb->format->format, 0) / 8; offset += (src->y1 >> 16) * fb->pitches[0]; dma_addr = rk_obj->dma_addr + offset + fb->offsets[0]; @@ -859,12 +879,12 @@ static void vop_plane_atomic_update(struct drm_plane *plane, if (is_yuv) { int hsub = fb->format->hsub; int vsub = fb->format->vsub; - int bpp = fb->format->cpp[1]; + int bpp = vop_format_get_bpp(fb->format->format, 1); uv_obj = fb->obj[1]; rk_uv_obj = to_rockchip_obj(uv_obj); - offset = (src->x1 >> 16) * bpp / hsub; + offset = (src->x1 >> 16) * bpp / 8 / hsub; offset += (src->y1 >> 16) * fb->pitches[1] / vsub; dma_addr = rk_uv_obj->dma_addr + offset + fb->offsets[1]; -- 2.7.4