From patchwork Mon Nov 27 10:09:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 10076319 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6F543602BD for ; Mon, 27 Nov 2017 10:10:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7F43328DCC for ; Mon, 27 Nov 2017 10:10:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7430C28DE4; Mon, 27 Nov 2017 10:10:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 05C6828DCC for ; Mon, 27 Nov 2017 10:10:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EB8196E287; Mon, 27 Nov 2017 10:10:13 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id DCB1B6E264 for ; Mon, 27 Nov 2017 10:10:09 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id w73so4848492wmw.0 for ; Mon, 27 Nov 2017 02:10:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gpEqQUsWkJn9d6oTj+kNg2eDAbsyjPrEaf2PN3cg59M=; b=YsP4FcnvfCkkYBS0jzHXZtDAtiITtWG8cV/IPJk6JridKNI0ONoNB2480IIF2NfkeF doZhJSc91PXaM+CZLfW8vwe03FMRj6ccGWfl8ugkOJeGokwkqnCTK1+GNiT0P0ItUs/h us58XqvLCP9rjoYD3pw0CBB5v07XyuX9wFzwAwRSfoHTbggZjAJp6paLpgtCY/J0iDWe 4rvnNPWpk5jEbBbvNbrAxDAmhWvrYG+x7EYSBzCZW/JxVasJ4c6fr0A1pO0ejHOvYVmW +GwMfpiLGA6ZXOeh/P2FaQJoCy35Fb5+QvMQPDniz8PU+OaGccDvKKnNETxxYio67hKi nc+Q== 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; bh=gpEqQUsWkJn9d6oTj+kNg2eDAbsyjPrEaf2PN3cg59M=; b=ajQCJ2k65i0JjU3+fSWWIRwZ+wIYnwwYuw9FQlDqU1auXv7lPs6uzR0KI1Rj0udEj9 EHQ638/0WkHfvDTpYj+qjoswLK9JX9Qjrzm1SmOAMritoiXKnmzt3zIaSrwDlUKx0+ly bGN5LL6Jxf6M2mQUx4BIkYFun0SPvtpDwDNn7fUR32pErpAG6TZTHIMk1zykYFbtZv8n zlL5ekFYLZk4JDGGydVgemdHDCGOKUwh2bFZAu1cELNjhQ8jfLbWZOFJ0p689BZ/u1G9 mtNOQYVTCC4tJ5oLXxiah599sZN1k4UXYSXoA+DuO9QAsh6GY0DY7a7GbBp2HNgiTG8I 2jBg== X-Gm-Message-State: AJaThX67Epyl8SIsSf5WWJOUsohH8D7HAOr+xaodCAoseQDAo8rH+Pz3 b3B4W9BIDiThSmtgBigHP9QW1w== X-Google-Smtp-Source: AGs4zMYxWYuPG5h/HZ14jqm899UoTxcWCWKuGlVUyFbUoW1uh+BqVH1N+afU/QJU6SGMRbJ5Yt7gGw== X-Received: by 10.28.245.11 with SMTP id t11mr16478287wmh.113.1511777408478; Mon, 27 Nov 2017 02:10:08 -0800 (PST) Received: from localhost (p200300E41F200F003F65F430A8AE2E44.dip0.t-ipconnect.de. [2003:e4:1f20:f00:3f65:f430:a8ae:2e44]) by smtp.gmail.com with ESMTPSA id 10sm14104549wml.27.2017.11.27.02.10.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 27 Nov 2017 02:10:07 -0800 (PST) From: Thierry Reding To: Thierry Reding Subject: [PATCH 09/12] drm/tegra: Support ARGB and ABGR formats Date: Mon, 27 Nov 2017 11:09:49 +0100 Message-Id: <20171127100952.22465-10-thierry.reding@gmail.com> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127100952.22465-1-thierry.reding@gmail.com> References: <20171127100952.22465-1-thierry.reding@gmail.com> Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Thierry Reding These formats can easily be supported on all generations of Tegra. Note that the XRGB and XBGR formats that we supported were in fact using the ARGB and ABGR Tegra formats. This happened to work in cases where no alpha was being considered. This change is also a fix for those formats. Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/dc.c | 4 ++++ drivers/gpu/drm/tegra/dc.h | 2 ++ drivers/gpu/drm/tegra/plane.c | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 2d54657b538e..e40272493235 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -287,7 +287,9 @@ static void tegra_dc_setup_window(struct tegra_dc *dc, unsigned int index, static const u32 tegra_primary_plane_formats[] = { DRM_FORMAT_XBGR8888, + DRM_FORMAT_ABGR8888, DRM_FORMAT_XRGB8888, + DRM_FORMAT_ARGB8888, DRM_FORMAT_RGB565, }; @@ -649,7 +651,9 @@ static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm, static const uint32_t tegra_overlay_plane_formats[] = { DRM_FORMAT_XBGR8888, + DRM_FORMAT_ABGR8888, DRM_FORMAT_XRGB8888, + DRM_FORMAT_ARGB8888, DRM_FORMAT_RGB565, DRM_FORMAT_UYVY, DRM_FORMAT_YUYV, diff --git a/drivers/gpu/drm/tegra/dc.h b/drivers/gpu/drm/tegra/dc.h index 47f43663adcb..018fea74fb50 100644 --- a/drivers/gpu/drm/tegra/dc.h +++ b/drivers/gpu/drm/tegra/dc.h @@ -598,6 +598,8 @@ int tegra_dc_rgb_exit(struct tegra_dc *dc); #define WIN_COLOR_DEPTH_YUV422R 23 #define WIN_COLOR_DEPTH_YCbCr422RA 24 #define WIN_COLOR_DEPTH_YUV422RA 25 +#define WIN_COLOR_DEPTH_B8G8R8X8 37 +#define WIN_COLOR_DEPTH_R8G8B8X8 38 #define DC_WIN_POSITION 0x704 #define H_POSITION(x) (((x) & 0x1fff) << 0) /* XXX 0x7fff on Tegra186 */ diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c index 1847d0204e46..1fff98fe6962 100644 --- a/drivers/gpu/drm/tegra/plane.c +++ b/drivers/gpu/drm/tegra/plane.c @@ -111,10 +111,18 @@ int tegra_plane_format(u32 fourcc, u32 *format, u32 *swap) switch (fourcc) { case DRM_FORMAT_XBGR8888: + *format = WIN_COLOR_DEPTH_R8G8B8X8; + break; + + case DRM_FORMAT_ABGR8888: *format = WIN_COLOR_DEPTH_R8G8B8A8; break; case DRM_FORMAT_XRGB8888: + *format = WIN_COLOR_DEPTH_B8G8R8X8; + break; + + case DRM_FORMAT_ARGB8888: *format = WIN_COLOR_DEPTH_B8G8R8A8; break;