Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp482962ybl; Fri, 24 Jan 2020 04:08:10 -0800 (PST) X-Google-Smtp-Source: APXvYqwiJ+2clm4eDRunZLLauDxT9mFRtv4314s0rvpX8tiTK6aQMXVkyU8WyhEIdyBgZtuxISFG X-Received: by 2002:a05:6830:2141:: with SMTP id r1mr2447414otd.39.1579867689814; Fri, 24 Jan 2020 04:08:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579867689; cv=none; d=google.com; s=arc-20160816; b=Ojh1drVdl+5EDattKzEWteg9pRv85yeacHvl8bIv/uFAUfSibQqND2H6xn2HOr2aC5 Ff/NovRv/sVWfg69W5M61XbIVfgg6eOG6lAvI9m/Z6fDb0hgGIX3ezTbsPMY7kJwYEN5 eP+Ov99H5NEErHi6fwrTbVJY/W1IBP23zCQJl6xqKgWUZ2KcsRKlRI8Nc4yguavT9Sru cqlNm5Uy0PL72/8+4FGu2+7cTf7uBSKpL11visD2TvQh2nifovXpSzqdIxWxFzYSuyXy uZaSBw1D6UTwyz74DOUSIBLvnG1DYkCXkGGydKnPrnsZpW81dtF3bs/ztI/cGzedhdki 0ikg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=o2RazwC3qqmiW0OkQRYd3sHU2dOuM0NO2QzjbZgvVwA=; b=qZAfWKKiUH1U/P7VAz2kfibM0N6qyOx+s4XbdDEYphL+vzRLnCOHZ+if84Tx1JdMXy xk4TUnXJxj+pEBWJK5mPKal9RZwal7CrO69nW8haPCrYjhJjENI2rhG4ttUWODX36XiJ 9/sckqFq1/FsemGevL4IO2pxeOkwl8aNaWjmMyxx3DzjMLPHQ+K2zxwE5rU0MdA2xm5R wrNdMUX0z+sceXcoKVn8sK2KuQgPE7kIqZ+e1tccZQNWJixQfNtudYLlog2DziBDAthL N2MqdIWqTNLURurqWVr1CiVJtM1k+JDYIwXxzyORzLeLd0lC8ENRB6M55JerKAvIt73E GOgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LhbRJSlq; 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 c19si2863494otp.3.2020.01.24.04.07.57; Fri, 24 Jan 2020 04:08:09 -0800 (PST) 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=@kernel.org header.s=default header.b=LhbRJSlq; 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 S1732125AbgAXJkD (ORCPT + 99 others); Fri, 24 Jan 2020 04:40:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:37266 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731991AbgAXJkB (ORCPT ); Fri, 24 Jan 2020 04:40:01 -0500 Received: from localhost (unknown [145.15.244.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 98E842070A; Fri, 24 Jan 2020 09:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579858800; bh=14siYZSO9Gnx/JKTpNTZO/Ck4Uyg4bLyMf/9qF8vPhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LhbRJSlqrVV4TufD3zqTpoblCZDdx26UAyf+++RstnZsNF20asFN8Nt2c+Dv/vvco T6UDMGfg6aykw7CykEv4rYKYHz3kzKT3WH2STNMH1qz6F+gTe9vhIUDNR6Y7jRrMQp 9bViBtzINUL8qHQ3Dpe+MwTcXAGOqTzN3yJQ8/Xg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yoshihiro Shimoda , Geert Uytterhoeven , Ulrich Hecht , Laurent Pinchart , Sasha Levin Subject: [PATCH 5.4 059/102] drm: rcar_lvds: Fix color mismatches on R-Car H2 ES2.0 and later Date: Fri, 24 Jan 2020 10:31:00 +0100 Message-Id: <20200124092815.243746922@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200124092806.004582306@linuxfoundation.org> References: <20200124092806.004582306@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Geert Uytterhoeven [ Upstream commit 3986457110a054466bf02f9c4a85aa2bba96177b ] Commit 5cca30ebe089be23 ("drm/rcar-du: Add LVDS_LANES quirk") states that LVDS lanes 1 and 3 are inverted on R-Car H2 ES1 only, and that the problem has been fixed in newer revisions. However, the code didn't take into account the actual hardware revision, thus applying the quirk also on newer hardware revisions, causing green color reversals. Fix this by applying the quirk when running on R-Car H2 ES1.x only. Reported-by: Yoshihiro Shimoda Fixes: 5cca30ebe089be23 ("drm/rcar-du: Add LVDS_LANES quirk") Signed-off-by: Geert Uytterhoeven Tested-by: Yoshihiro Shimoda Reviewed-by: Ulrich Hecht Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart Signed-off-by: Sasha Levin --- drivers/gpu/drm/rcar-du/rcar_lvds.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c b/drivers/gpu/drm/rcar-du/rcar_lvds.c index 3fc7e6899cab5..50c11a7f0467f 100644 --- a/drivers/gpu/drm/rcar-du/rcar_lvds.c +++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -842,8 +843,23 @@ static int rcar_lvds_get_clocks(struct rcar_lvds *lvds) return 0; } +static const struct rcar_lvds_device_info rcar_lvds_r8a7790es1_info = { + .gen = 2, + .quirks = RCAR_LVDS_QUIRK_LANES, + .pll_setup = rcar_lvds_pll_setup_gen2, +}; + +static const struct soc_device_attribute lvds_quirk_matches[] = { + { + .soc_id = "r8a7790", .revision = "ES1.*", + .data = &rcar_lvds_r8a7790es1_info, + }, + { /* sentinel */ } +}; + static int rcar_lvds_probe(struct platform_device *pdev) { + const struct soc_device_attribute *attr; struct rcar_lvds *lvds; struct resource *mem; int ret; @@ -857,6 +873,10 @@ static int rcar_lvds_probe(struct platform_device *pdev) lvds->dev = &pdev->dev; lvds->info = of_device_get_match_data(&pdev->dev); + attr = soc_device_match(lvds_quirk_matches); + if (attr) + lvds->info = attr->data; + ret = rcar_lvds_parse_dt(lvds); if (ret < 0) return ret; @@ -893,12 +913,6 @@ static const struct rcar_lvds_device_info rcar_lvds_gen2_info = { .pll_setup = rcar_lvds_pll_setup_gen2, }; -static const struct rcar_lvds_device_info rcar_lvds_r8a7790_info = { - .gen = 2, - .quirks = RCAR_LVDS_QUIRK_LANES, - .pll_setup = rcar_lvds_pll_setup_gen2, -}; - static const struct rcar_lvds_device_info rcar_lvds_gen3_info = { .gen = 3, .quirks = RCAR_LVDS_QUIRK_PWD, @@ -930,7 +944,7 @@ static const struct of_device_id rcar_lvds_of_table[] = { { .compatible = "renesas,r8a7744-lvds", .data = &rcar_lvds_gen2_info }, { .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info }, { .compatible = "renesas,r8a774c0-lvds", .data = &rcar_lvds_r8a77990_info }, - { .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_r8a7790_info }, + { .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_gen2_info }, { .compatible = "renesas,r8a7791-lvds", .data = &rcar_lvds_gen2_info }, { .compatible = "renesas,r8a7793-lvds", .data = &rcar_lvds_gen2_info }, { .compatible = "renesas,r8a7795-lvds", .data = &rcar_lvds_gen3_info }, -- 2.20.1