Received: by 10.213.65.68 with SMTP id h4csp1342049imn; Wed, 14 Mar 2018 18:03:39 -0700 (PDT) X-Google-Smtp-Source: AG47ELv3K5/yeWrtbrJyinyKaeMH1GycpC3mg0vO7ncsrQhsIg5Qa2qZJ7J4zXjMKFP88ZRj0W4v X-Received: by 2002:a17:902:10c:: with SMTP id 12-v6mr5789419plb.405.1521075819741; Wed, 14 Mar 2018 18:03:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521075819; cv=none; d=google.com; s=arc-20160816; b=uzTGnpXJiuJpe/85aI0JhaAopvjGl7aMvrc5D9p0PrXyBIdRCaISOupFzQAaSRz5h1 8OJSYtG8x8X+hmxml34PTwKuCa4C6JtOm+tUU4q5vK1sVKHIq6y1yOtWPxtQLLbgArWp pU2dMGa00EUcQrIkPlkyppwdEj0g2CRJ7HEPrMd3T8f/rfGs38WmEV1ohZoaocnzfp0G DDkBuq3GDGLqUHcgMhVh8hqJg0sqOONKGlrDJl0JpBA+12X5moMHA9PIxRr+2FbDfLtA G3n5dN0FmfnXq5Qm5BVEycS9nKbGJwsNcp5hoW+T5DwcWBSowCzDAIMRd0DuulHcea8b jVbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=aZKfBRlvqUNRyXpK7Evuq9B0CFn1cXonEJbIPe5FiJ0=; b=yh0XORAGQBEF0hSSSPoM2CMJRuHlPLusSEo9uuUbr++WyVI6UInzx6uPk2R1gmuD/s fWVuX8JzQ5FIk6B0p/haoAitIHudmuY489WKGAK2NsPxCDSsCxwPXmDljVUKfYqPf7cz nyhpvtkJ4OYb6sHSS8GLu/Ouc3POhEtwTEtcC9a0UD3G/p036WADD+Oj/0eXOBA0cTyt DUUgi29El3Xvt9BGVrlJHi08uyUWD690k5SsvsLSAonogiGYvRclT6ccUi2yYhIX99Z6 8vVQ0k0QwSS08ei2BKkJxPTocr+L07n9wrBerOL3yBixih1p7c37uzcozLgMmr0BwXHO 1H9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=FiVFQjWr; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y9si2610550pgp.800.2018.03.14.18.03.24; Wed, 14 Mar 2018 18:03:39 -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=@gmail.com header.s=20161025 header.b=FiVFQjWr; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751651AbeCOBBo (ORCPT + 99 others); Wed, 14 Mar 2018 21:01:44 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:46174 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751428AbeCOBBm (ORCPT ); Wed, 14 Mar 2018 21:01:42 -0400 Received: by mail-pf0-f193.google.com with SMTP id z10so2174186pfh.13; Wed, 14 Mar 2018 18:01:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=aZKfBRlvqUNRyXpK7Evuq9B0CFn1cXonEJbIPe5FiJ0=; b=FiVFQjWr20NBpRHZqjVPtYWGnQmjNjcnR8wXLt/VuNCms2VkxvFkiEuto0aoPqrAWu QCkzdKILsF7P2nOt/tLYuhJ1aNqigMrqKOCP2qN/bvrfgo9P9MhFV1RQGqmJ9hz1BE7v 8QIawYOTLLp0e4TKBxBr5U6FpBtrYDed2ZkvBy4omNUNDkD7TKiUIxxEEjvBgrvmzi+y JWEFMiKmqmn5VpoAQ47FE0/e1Vo6iuWkt1PubnvABqs+XAKvYFhcDRNTYYmg1hLgm6dt CFRoesW4WCFIpFGY+ntYsKWFKAA95K8nk6ukA/28ZR+7Q0wPYA/8VJ34EaDXS7VitbiC WFQg== 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; bh=aZKfBRlvqUNRyXpK7Evuq9B0CFn1cXonEJbIPe5FiJ0=; b=HNHcDoAeLl/vMQHT3KouxuWbAbIsrBAhaJaCKeSxq9WwY4H1Qn+/FVEiMxkoO1T5RZ l/gvJ99ki/lBkNIjHVqIuhJONIXcj8TaAJ+7nCSgcoXGf5WytIsMcEi+xli6kqZ07xTV m8Dd/a+HYTFxq3lkJ9wbZMm39yMQp/+AxQWv5XG1er533fUCY6VLaU3h5ax5tikDCbE9 qLOCmmXzMocVXEi3rUiuU/wHgwgggCbV8NamZ4snH7i3r+mb1BaQZkJiKYc/PA/Wzdcg MSScC4WFWadvZB6ogRnVMQlTJD7Jo7TCGFbpBYQxoySjjjFH3yOObbUB7dS1yHxtiePv cc9Q== X-Gm-Message-State: AElRT7FVp6dGew5fZzezYpa+f91kkVeQxcB63rfjtUjcXgMq/FhT9wUW 2RFhzDkp3HbX4XnNoa3kQ0Q= X-Received: by 10.98.57.143 with SMTP id u15mr12620pfj.79.1521075702222; Wed, 14 Mar 2018 18:01:42 -0700 (PDT) Received: from localhost.localdomain (ppp109-252-55-234.pppoe.spdop.ru. [109.252.55.234]) by smtp.gmail.com with ESMTPSA id k195sm6823009pgc.71.2018.03.14.18.01.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Mar 2018 18:01:41 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 1/3] drm/tegra: plane: Fix RGB565 plane format on older Tegra's Date: Thu, 15 Mar 2018 04:00:23 +0300 Message-Id: <8d9c7220b1d2cf126bd2030e5d232ec06f761440.1521075485.git.digetx@gmail.com> X-Mailer: git-send-email 2.16.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Simplify opaque format adjustment by removing format checking. There are only 4 formats that require the adjustment and so this way is less error prone, avoiding mishandling native formats, like in this case RGB565 is the format that was erroneously treated as invalid. Fixes: ebae8d07435a ("drm/tegra: dc: Implement legacy blending") Signed-off-by: Dmitry Osipenko --- drivers/gpu/drm/tegra/dc.c | 11 ++--------- drivers/gpu/drm/tegra/plane.c | 21 ++++++--------------- drivers/gpu/drm/tegra/plane.h | 2 +- 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 49df2db2ad46..22bf513612d1 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -456,15 +456,8 @@ static int tegra_plane_atomic_check(struct drm_plane *plane, * be emulated by disabling alpha blending for the plane. */ if (!dc->soc->supports_blending) { - if (!tegra_plane_format_has_alpha(format)) { - err = tegra_plane_format_get_alpha(format, &format); - if (err < 0) - return err; - - plane_state->opaque = true; - } else { - plane_state->opaque = false; - } + plane_state->opaque = !tegra_plane_format_has_alpha(format); + format = tegra_plane_format_adjust(format); tegra_plane_check_dependent(tegra, plane_state); } diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c index a056fbf83b53..fc37dcf8c458 100644 --- a/drivers/gpu/drm/tegra/plane.c +++ b/drivers/gpu/drm/tegra/plane.c @@ -268,32 +268,23 @@ bool tegra_plane_format_has_alpha(unsigned int format) return false; } -int tegra_plane_format_get_alpha(unsigned int opaque, unsigned int *alpha) +unsigned int tegra_plane_format_adjust(unsigned int opaque) { - if (tegra_plane_format_is_yuv(opaque, NULL)) { - *alpha = opaque; - return 0; - } - switch (opaque) { case WIN_COLOR_DEPTH_B5G5R5X1: - *alpha = WIN_COLOR_DEPTH_B5G5R5A1; - return 0; + return WIN_COLOR_DEPTH_B5G5R5A1; case WIN_COLOR_DEPTH_X1B5G5R5: - *alpha = WIN_COLOR_DEPTH_A1B5G5R5; - return 0; + return WIN_COLOR_DEPTH_A1B5G5R5; case WIN_COLOR_DEPTH_R8G8B8X8: - *alpha = WIN_COLOR_DEPTH_R8G8B8A8; - return 0; + return WIN_COLOR_DEPTH_R8G8B8A8; case WIN_COLOR_DEPTH_B8G8R8X8: - *alpha = WIN_COLOR_DEPTH_B8G8R8A8; - return 0; + return WIN_COLOR_DEPTH_B8G8R8A8; } - return -EINVAL; + return opaque; } unsigned int tegra_plane_get_overlap_index(struct tegra_plane *plane, diff --git a/drivers/gpu/drm/tegra/plane.h b/drivers/gpu/drm/tegra/plane.h index 6938719e7e5d..9fda841564cd 100644 --- a/drivers/gpu/drm/tegra/plane.h +++ b/drivers/gpu/drm/tegra/plane.h @@ -63,7 +63,7 @@ int tegra_plane_state_add(struct tegra_plane *plane, int tegra_plane_format(u32 fourcc, u32 *format, u32 *swap); bool tegra_plane_format_is_yuv(unsigned int format, bool *planar); bool tegra_plane_format_has_alpha(unsigned int format); -int tegra_plane_format_get_alpha(unsigned int opaque, unsigned int *alpha); +unsigned int tegra_plane_format_adjust(unsigned int opaque); void tegra_plane_check_dependent(struct tegra_plane *tegra, struct tegra_plane_state *state); -- 2.16.1