From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98AE1C432C0 for ; Tue, 3 Dec 2019 13:48:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6370720803 for ; Tue, 3 Dec 2019 13:48:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="bzQVtQsv" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726763AbfLCNss (ORCPT ); Tue, 3 Dec 2019 08:48:48 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:40535 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726684AbfLCNsq (ORCPT ); Tue, 3 Dec 2019 08:48:46 -0500 Received: by mail-pg1-f194.google.com with SMTP id k25so1705754pgt.7 for ; Tue, 03 Dec 2019 05:48:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=bzQVtQsvU9O8dXv0M3xGbCqaL/q9CJlsqOgF/n0/hHdtOVxO72jDaIEkuyUHzEV57O qM3Bj9ZKAxHvUv3WI2J6Y5gAxkCp6TuLc2HzernLE1JTTaenMGcBkRIwMB42wg6gjvqY Utw7kPxSbcEWTXM9ZCgJpIMtVH6IzQLCePT74= 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:mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=rUbM9LcoeOsY4LuHXrnF6JbDflhzi/oWfVip8josivWDBX3lcvli+ei0n0y7LDgIAb k5kTKRbIzmC7ZYLu2WdhxuUVocBHXFtRj3i++/XQ490+VFrkNbn8rlKAn86Cgl8xS4BJ AsDZb1hNYPFV+lztVirqcEH+u0MnMi6zMNK655eRXkD9Ooaio3h+RW4aML/vSASTk1Pg YYzzWTGyzjURbnfdkXJesl3BUFE0JTp/HNauoZ2jjB8A1xfAzrQcsh9GQKdoqgSwzrM0 0pcFP0B5P4Za5xgGHfx2E6qXC62OHRz785dEud0gFTi2QYfC6yLucnFsrbTe+CXNb5ph Dn9w== X-Gm-Message-State: APjAAAW73YNNwO8e6FdglxcWxvY5uU1cvSRitwruszSDR7HexUiir04f aSZ03p2ktL2YdgLHWtTGl63XGA== X-Google-Smtp-Source: APXvYqzOhrp2vBfBWLr6WtTENMHpXtD/Gx6XDn+ryyG4N1W0Xbbc1zWvgIC4t9s/eR2eo7kqDboxPw== X-Received: by 2002:a63:c652:: with SMTP id x18mr5478439pgg.211.1575380925537; Tue, 03 Dec 2019 05:48:45 -0800 (PST) Received: from localhost.localdomain ([115.97.190.29]) by smtp.gmail.com with ESMTPSA id y144sm4397892pfb.188.2019.12.03.05.48.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 05:48:45 -0800 (PST) From: Jagan Teki To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Cc: michael@amarulasolutions.com, Icenowy Zheng , linux-sunxi , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-amarula@amarulasolutions.com, Jagan Teki Subject: [PATCH v12 3/7] drm/sun4i: dsi: Add has_mod_clk quirk Date: Tue, 3 Dec 2019 19:18:12 +0530 Message-Id: <20191203134816.5319-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20191203134816.5319-1-jagan@amarulasolutions.com> References: <20191203134816.5319-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As per the user manual, look like mod clock is not mandatory for all Allwinner MIPI DSI controllers, it is connected to CLK_DSI_SCLK for A31 and not available in A64. So add has_mod_clk quirk and process the mod clk accordingly. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- Changes for v12: - none drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 38 ++++++++++++++++++-------- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 5 ++++ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index c958ca9bae63..8c4c541224dd 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -1093,6 +1094,7 @@ static int sun6i_dsi_probe(struct platform_device *pdev) dsi->dev = dev; dsi->host.ops = &sun6i_dsi_host_ops; dsi->host.dev = dev; + dsi->variant = of_device_get_match_data(dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = devm_ioremap_resource(dev, res); @@ -1120,17 +1122,20 @@ static int sun6i_dsi_probe(struct platform_device *pdev) return PTR_ERR(dsi->reset); } - dsi->mod_clk = devm_clk_get(dev, "mod"); - if (IS_ERR(dsi->mod_clk)) { - dev_err(dev, "Couldn't get the DSI mod clock\n"); - return PTR_ERR(dsi->mod_clk); + if (dsi->variant->has_mod_clk) { + dsi->mod_clk = devm_clk_get(dev, "mod"); + if (IS_ERR(dsi->mod_clk)) { + dev_err(dev, "Couldn't get the DSI mod clock\n"); + return PTR_ERR(dsi->mod_clk); + } } /* * In order to operate properly, that clock seems to be always * set to 297MHz. */ - clk_set_rate_exclusive(dsi->mod_clk, 297000000); + if (dsi->variant->has_mod_clk) + clk_set_rate_exclusive(dsi->mod_clk, 297000000); dsi->dphy = devm_phy_get(dev, "dphy"); if (IS_ERR(dsi->dphy)) { @@ -1160,7 +1165,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev) err_pm_disable: pm_runtime_disable(dev); err_unprotect_clk: - clk_rate_exclusive_put(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_rate_exclusive_put(dsi->mod_clk); return ret; } @@ -1172,7 +1178,8 @@ static int sun6i_dsi_remove(struct platform_device *pdev) component_del(&pdev->dev, &sun6i_dsi_ops); mipi_dsi_host_unregister(&dsi->host); pm_runtime_disable(dev); - clk_rate_exclusive_put(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_rate_exclusive_put(dsi->mod_clk); return 0; } @@ -1189,7 +1196,8 @@ static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev) } reset_control_deassert(dsi->reset); - clk_prepare_enable(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_prepare_enable(dsi->mod_clk); /* * Enable the DSI block. @@ -1217,7 +1225,8 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev) { struct sun6i_dsi *dsi = dev_get_drvdata(dev); - clk_disable_unprepare(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_disable_unprepare(dsi->mod_clk); reset_control_assert(dsi->reset); regulator_disable(dsi->regulator); @@ -1230,9 +1239,16 @@ static const struct dev_pm_ops sun6i_dsi_pm_ops = { NULL) }; +static const struct sun6i_dsi_variant sun6i_a31_mipi_dsi = { + .has_mod_clk = true, +}; + static const struct of_device_id sun6i_dsi_of_table[] = { - { .compatible = "allwinner,sun6i-a31-mipi-dsi" }, - { } + { + .compatible = "allwinner,sun6i-a31-mipi-dsi", + .data = &sun6i_a31_mipi_dsi, + }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sun6i_dsi_of_table); diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 3f4846f581ef..d791c9f6fccf 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -15,6 +15,10 @@ #define SUN6I_DSI_TCON_DIV 4 +struct sun6i_dsi_variant { + bool has_mod_clk; +}; + struct sun6i_dsi { struct drm_connector connector; struct drm_encoder encoder; @@ -31,6 +35,7 @@ struct sun6i_dsi { struct sun4i_drv *drv; struct mipi_dsi_device *device; struct drm_panel *panel; + const struct sun6i_dsi_variant *variant; }; static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) -- 2.18.0.321.gffc6fa0e3 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2B8D4C432C0 for ; Tue, 3 Dec 2019 13:49:34 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 023BC2073F for ; Tue, 3 Dec 2019 13:49:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DDC0x76V"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="bzQVtQsv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 023BC2073F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XKMK7p4o1fHvJqQQWNzPQ2QGxfn3rDyemAmHE5oAu+w=; b=DDC0x76V9kxZeW rcI/V2TvPlHj3J/B+lvOk6So3zZ9bTbn1mDpPazIiH6LGJmc0PlpYg7POcriydfVbbQUewHNGUDrX 6uPFpuTxLOqXF2AyEWecLWvP02e+Ro+zp99ywnXAOWzwuqJwrGGjfWgHu7GrnPvybujHJUYh7q4e4 8dwpzMmgi/4bEs+FsP0mS/b9YWWpNEg8oqe/ePJyix/oc5d8cgSTI6XnbMDzC7HrzDd0GpuIgdz4p J2l6E0sOGEXV297XJnPWn67bzIVL8Xo1L9tM1VomPm5kmFKVouzlDgOJ+WTl4dlMqaMOns1CPrODn V+dPwZ3SVO8jRBl73JFg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ic8YW-0000Vd-Hh; Tue, 03 Dec 2019 13:49:32 +0000 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ic8Xm-0008Sd-Of for linux-arm-kernel@lists.infradead.org; Tue, 03 Dec 2019 13:48:48 +0000 Received: by mail-pf1-x443.google.com with SMTP id d199so1877127pfd.11 for ; Tue, 03 Dec 2019 05:48:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=bzQVtQsvU9O8dXv0M3xGbCqaL/q9CJlsqOgF/n0/hHdtOVxO72jDaIEkuyUHzEV57O qM3Bj9ZKAxHvUv3WI2J6Y5gAxkCp6TuLc2HzernLE1JTTaenMGcBkRIwMB42wg6gjvqY Utw7kPxSbcEWTXM9ZCgJpIMtVH6IzQLCePT74= 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:mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=T+C8KNI9yjADqYzDG3Pf1EHZnpjBS0Pqx5lEX/9WjLhjht/KJPj8f7tPMoorNTNfbf hDKyvPdS9Z2WORAJMBf5lJBDNptPgmn+gIZ7xxBJD+XzhdMhrjmhV+BSE6pd2XvcYxvL 52WbDIc8JRsVy8bT0+5Ag+G8qvUdlQvL9FcLl89gJWlr8bU1JvNGXBy05/GYEyo34FKR vHXp0trkg1eABqaiPYHJPqc3cnQTVU1xhOBYtsgMGGJJO5g+qFQNrSTDr2nxO6Gkipal 1KWEnHKdmC6A5SFXqXavuNoizFm/vED4QZ8W1SjpMicfKNeAQcnCelTX5HVA1vzk0zgI g7AQ== X-Gm-Message-State: APjAAAUoWHo+4rwbGjSKAFDRqrgO1uzOa7t9923nYfRBDKgYfeGPeuMh VLQbo6RHMA4k66bF6+tm05ih6Q== X-Google-Smtp-Source: APXvYqzOhrp2vBfBWLr6WtTENMHpXtD/Gx6XDn+ryyG4N1W0Xbbc1zWvgIC4t9s/eR2eo7kqDboxPw== X-Received: by 2002:a63:c652:: with SMTP id x18mr5478439pgg.211.1575380925537; Tue, 03 Dec 2019 05:48:45 -0800 (PST) Received: from localhost.localdomain ([115.97.190.29]) by smtp.gmail.com with ESMTPSA id y144sm4397892pfb.188.2019.12.03.05.48.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 05:48:45 -0800 (PST) From: Jagan Teki To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH v12 3/7] drm/sun4i: dsi: Add has_mod_clk quirk Date: Tue, 3 Dec 2019 19:18:12 +0530 Message-Id: <20191203134816.5319-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20191203134816.5319-1-jagan@amarulasolutions.com> References: <20191203134816.5319-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191203_054846_849840_C0EC8F53 X-CRM114-Status: GOOD ( 19.06 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi , Jagan Teki , michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org, Icenowy Zheng Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org As per the user manual, look like mod clock is not mandatory for all Allwinner MIPI DSI controllers, it is connected to CLK_DSI_SCLK for A31 and not available in A64. So add has_mod_clk quirk and process the mod clk accordingly. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- Changes for v12: - none drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 38 ++++++++++++++++++-------- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 5 ++++ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index c958ca9bae63..8c4c541224dd 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -1093,6 +1094,7 @@ static int sun6i_dsi_probe(struct platform_device *pdev) dsi->dev = dev; dsi->host.ops = &sun6i_dsi_host_ops; dsi->host.dev = dev; + dsi->variant = of_device_get_match_data(dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = devm_ioremap_resource(dev, res); @@ -1120,17 +1122,20 @@ static int sun6i_dsi_probe(struct platform_device *pdev) return PTR_ERR(dsi->reset); } - dsi->mod_clk = devm_clk_get(dev, "mod"); - if (IS_ERR(dsi->mod_clk)) { - dev_err(dev, "Couldn't get the DSI mod clock\n"); - return PTR_ERR(dsi->mod_clk); + if (dsi->variant->has_mod_clk) { + dsi->mod_clk = devm_clk_get(dev, "mod"); + if (IS_ERR(dsi->mod_clk)) { + dev_err(dev, "Couldn't get the DSI mod clock\n"); + return PTR_ERR(dsi->mod_clk); + } } /* * In order to operate properly, that clock seems to be always * set to 297MHz. */ - clk_set_rate_exclusive(dsi->mod_clk, 297000000); + if (dsi->variant->has_mod_clk) + clk_set_rate_exclusive(dsi->mod_clk, 297000000); dsi->dphy = devm_phy_get(dev, "dphy"); if (IS_ERR(dsi->dphy)) { @@ -1160,7 +1165,8 @@ static int sun6i_dsi_probe(struct platform_device *pdev) err_pm_disable: pm_runtime_disable(dev); err_unprotect_clk: - clk_rate_exclusive_put(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_rate_exclusive_put(dsi->mod_clk); return ret; } @@ -1172,7 +1178,8 @@ static int sun6i_dsi_remove(struct platform_device *pdev) component_del(&pdev->dev, &sun6i_dsi_ops); mipi_dsi_host_unregister(&dsi->host); pm_runtime_disable(dev); - clk_rate_exclusive_put(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_rate_exclusive_put(dsi->mod_clk); return 0; } @@ -1189,7 +1196,8 @@ static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev) } reset_control_deassert(dsi->reset); - clk_prepare_enable(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_prepare_enable(dsi->mod_clk); /* * Enable the DSI block. @@ -1217,7 +1225,8 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev) { struct sun6i_dsi *dsi = dev_get_drvdata(dev); - clk_disable_unprepare(dsi->mod_clk); + if (dsi->variant->has_mod_clk) + clk_disable_unprepare(dsi->mod_clk); reset_control_assert(dsi->reset); regulator_disable(dsi->regulator); @@ -1230,9 +1239,16 @@ static const struct dev_pm_ops sun6i_dsi_pm_ops = { NULL) }; +static const struct sun6i_dsi_variant sun6i_a31_mipi_dsi = { + .has_mod_clk = true, +}; + static const struct of_device_id sun6i_dsi_of_table[] = { - { .compatible = "allwinner,sun6i-a31-mipi-dsi" }, - { } + { + .compatible = "allwinner,sun6i-a31-mipi-dsi", + .data = &sun6i_a31_mipi_dsi, + }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sun6i_dsi_of_table); diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 3f4846f581ef..d791c9f6fccf 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -15,6 +15,10 @@ #define SUN6I_DSI_TCON_DIV 4 +struct sun6i_dsi_variant { + bool has_mod_clk; +}; + struct sun6i_dsi { struct drm_connector connector; struct drm_encoder encoder; @@ -31,6 +35,7 @@ struct sun6i_dsi { struct sun4i_drv *drv; struct mipi_dsi_device *device; struct drm_panel *panel; + const struct sun6i_dsi_variant *variant; }; static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) -- 2.18.0.321.gffc6fa0e3 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5AE6C432C3 for ; Tue, 3 Dec 2019 13:48:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 983B62073B for ; Tue, 3 Dec 2019 13:48:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 983B62073B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1F7F66E546; Tue, 3 Dec 2019 13:48:47 +0000 (UTC) Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 06D646E546 for ; Tue, 3 Dec 2019 13:48:46 +0000 (UTC) Received: by mail-pf1-x443.google.com with SMTP id y14so1421694pfm.13 for ; Tue, 03 Dec 2019 05:48:46 -0800 (PST) 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:mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=QZhs1oh0q9xSvwRSeJ+nctqFddler0k77B7tJYk620f51OwRLI6zclzdAlbR7sXkkB tyL6XROtrc3q10q9xwsU4cq2CdF21UuUevOclTNa92RTPW8vLAUMDPDG/PRBGqthlyr0 TvsWEXKwDK4raM/5rATvgeaIx9QeWnEisHQhPRG2LJh+oiQomPqcAqx1RX9en4shJe0c sfaE/9sQgTYoGlONHc9gaysvRSEz4GOeXepKVLLvYw49Ks5rQ4sUqeIbnEZ0I/Ks3vhC lz7lWUuHFHkbuxJi4GhV1QOcmVbHss6IjUIMoUej8h1mDTo4761QH+06/sgyesUgsQ9d y4qg== X-Gm-Message-State: APjAAAWlMl5bN9hOc9ONg+jZPW8e9yE0NIUOVjYH+l+UexeTJyxtA2um e1Jiex0estwCoTONgkDTdsydzg== X-Google-Smtp-Source: APXvYqzOhrp2vBfBWLr6WtTENMHpXtD/Gx6XDn+ryyG4N1W0Xbbc1zWvgIC4t9s/eR2eo7kqDboxPw== X-Received: by 2002:a63:c652:: with SMTP id x18mr5478439pgg.211.1575380925537; Tue, 03 Dec 2019 05:48:45 -0800 (PST) Received: from localhost.localdomain ([115.97.190.29]) by smtp.gmail.com with ESMTPSA id y144sm4397892pfb.188.2019.12.03.05.48.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 05:48:45 -0800 (PST) From: Jagan Teki To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland Subject: [PATCH v12 3/7] drm/sun4i: dsi: Add has_mod_clk quirk Date: Tue, 3 Dec 2019 19:18:12 +0530 Message-Id: <20191203134816.5319-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20191203134816.5319-1-jagan@amarulasolutions.com> References: <20191203134816.5319-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cZ4/teiuFdafb5RuME47dUY85SO685foNncJ+cZhSOo=; b=bzQVtQsvU9O8dXv0M3xGbCqaL/q9CJlsqOgF/n0/hHdtOVxO72jDaIEkuyUHzEV57O qM3Bj9ZKAxHvUv3WI2J6Y5gAxkCp6TuLc2HzernLE1JTTaenMGcBkRIwMB42wg6gjvqY Utw7kPxSbcEWTXM9ZCgJpIMtVH6IzQLCePT74= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi , Jagan Teki , michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org, Icenowy Zheng Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QXMgcGVyIHRoZSB1c2VyIG1hbnVhbCwgbG9vayBsaWtlIG1vZCBjbG9jayBpcyBub3QgbWFuZGF0 b3J5CmZvciBhbGwgQWxsd2lubmVyIE1JUEkgRFNJIGNvbnRyb2xsZXJzLCBpdCBpcyBjb25uZWN0 ZWQgdG8KQ0xLX0RTSV9TQ0xLIGZvciBBMzEgYW5kIG5vdCBhdmFpbGFibGUgaW4gQTY0LgoKU28g YWRkIGhhc19tb2RfY2xrIHF1aXJrIGFuZCBwcm9jZXNzIHRoZSBtb2QgY2xrIGFjY29yZGluZ2x5 LgoKVGVzdGVkLWJ5OiBNZXJsaWpuIFdhamVyIDxtZXJsaWpuQHdpenp1cC5vcmc+ClNpZ25lZC1v ZmYtYnk6IEphZ2FuIFRla2kgPGphZ2FuQGFtYXJ1bGFzb2x1dGlvbnMuY29tPgotLS0KQ2hhbmdl cyBmb3IgdjEyOgotIG5vbmUKCiBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2ku YyB8IDM4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vc3VuNGkv c3VuNmlfbWlwaV9kc2kuaCB8ICA1ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjZpX21pcGlfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2ku YwppbmRleCBjOTU4Y2E5YmFlNjMuLjhjNGM1NDEyMjRkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjZpX21pcGlfZHNpLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9jcmMt Y2NpdHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9h ZGRyZXNzLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgv cGh5L3BoeS1taXBpLWRwaHkuaD4KICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CiAjaW5jbHVk ZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CkBAIC0xMDkzLDYgKzEwOTQsNyBAQCBzdGF0aWMg aW50IHN1bjZpX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWRzaS0+ ZGV2ID0gZGV2OwogCWRzaS0+aG9zdC5vcHMgPSAmc3VuNmlfZHNpX2hvc3Rfb3BzOwogCWRzaS0+ aG9zdC5kZXYgPSBkZXY7CisJZHNpLT52YXJpYW50ID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRh KGRldik7CiAKIAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9N RU0sIDApOwogCWJhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOwpAQCAtMTEy MCwxNyArMTEyMiwyMCBAQCBzdGF0aWMgaW50IHN1bjZpX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gUFRSX0VSUihkc2ktPnJlc2V0KTsKIAl9CiAKLQlk c2ktPm1vZF9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAibW9kIik7Ci0JaWYgKElTX0VSUihkc2kt Pm1vZF9jbGspKSB7Ci0JCWRldl9lcnIoZGV2LCAiQ291bGRuJ3QgZ2V0IHRoZSBEU0kgbW9kIGNs b2NrXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIoZHNpLT5tb2RfY2xrKTsKKwlpZiAoZHNpLT52YXJp YW50LT5oYXNfbW9kX2NsaykgeworCQlkc2ktPm1vZF9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAi bW9kIik7CisJCWlmIChJU19FUlIoZHNpLT5tb2RfY2xrKSkgeworCQkJZGV2X2VycihkZXYsICJD b3VsZG4ndCBnZXQgdGhlIERTSSBtb2QgY2xvY2tcbiIpOworCQkJcmV0dXJuIFBUUl9FUlIoZHNp LT5tb2RfY2xrKTsKKwkJfQogCX0KIAogCS8qCiAJICogSW4gb3JkZXIgdG8gb3BlcmF0ZSBwcm9w ZXJseSwgdGhhdCBjbG9jayBzZWVtcyB0byBiZSBhbHdheXMKIAkgKiBzZXQgdG8gMjk3TUh6Lgog CSAqLwotCWNsa19zZXRfcmF0ZV9leGNsdXNpdmUoZHNpLT5tb2RfY2xrLCAyOTcwMDAwMDApOwor CWlmIChkc2ktPnZhcmlhbnQtPmhhc19tb2RfY2xrKQorCQljbGtfc2V0X3JhdGVfZXhjbHVzaXZl KGRzaS0+bW9kX2NsaywgMjk3MDAwMDAwKTsKIAogCWRzaS0+ZHBoeSA9IGRldm1fcGh5X2dldChk ZXYsICJkcGh5Iik7CiAJaWYgKElTX0VSUihkc2ktPmRwaHkpKSB7CkBAIC0xMTYwLDcgKzExNjUs OCBAQCBzdGF0aWMgaW50IHN1bjZpX2RzaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogZXJyX3BtX2Rpc2FibGU6CiAJcG1fcnVudGltZV9kaXNhYmxlKGRldik7CiBlcnJfdW5w cm90ZWN0X2NsazoKLQljbGtfcmF0ZV9leGNsdXNpdmVfcHV0KGRzaS0+bW9kX2Nsayk7CisJaWYg KGRzaS0+dmFyaWFudC0+aGFzX21vZF9jbGspCisJCWNsa19yYXRlX2V4Y2x1c2l2ZV9wdXQoZHNp LT5tb2RfY2xrKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMTcyLDcgKzExNzgsOCBAQCBzdGF0 aWMgaW50IHN1bjZpX2RzaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlj b21wb25lbnRfZGVsKCZwZGV2LT5kZXYsICZzdW42aV9kc2lfb3BzKTsKIAltaXBpX2RzaV9ob3N0 X3VucmVnaXN0ZXIoJmRzaS0+aG9zdCk7CiAJcG1fcnVudGltZV9kaXNhYmxlKGRldik7Ci0JY2xr X3JhdGVfZXhjbHVzaXZlX3B1dChkc2ktPm1vZF9jbGspOworCWlmIChkc2ktPnZhcmlhbnQtPmhh c19tb2RfY2xrKQorCQljbGtfcmF0ZV9leGNsdXNpdmVfcHV0KGRzaS0+bW9kX2Nsayk7CiAKIAly ZXR1cm4gMDsKIH0KQEAgLTExODksNyArMTE5Niw4IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVz ZWQgc3VuNmlfZHNpX3J1bnRpbWVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAl9CiAKIAly ZXNldF9jb250cm9sX2RlYXNzZXJ0KGRzaS0+cmVzZXQpOwotCWNsa19wcmVwYXJlX2VuYWJsZShk c2ktPm1vZF9jbGspOworCWlmIChkc2ktPnZhcmlhbnQtPmhhc19tb2RfY2xrKQorCQljbGtfcHJl cGFyZV9lbmFibGUoZHNpLT5tb2RfY2xrKTsKIAogCS8qCiAJICogRW5hYmxlIHRoZSBEU0kgYmxv Y2suCkBAIC0xMjE3LDcgKzEyMjUsOCBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHN1bjZp X2RzaV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBzdW42 aV9kc2kgKmRzaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCi0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGRzaS0+bW9kX2Nsayk7CisJaWYgKGRzaS0+dmFyaWFudC0+aGFzX21vZF9jbGspCisJCWNs a19kaXNhYmxlX3VucHJlcGFyZShkc2ktPm1vZF9jbGspOwogCXJlc2V0X2NvbnRyb2xfYXNzZXJ0 KGRzaS0+cmVzZXQpOwogCXJlZ3VsYXRvcl9kaXNhYmxlKGRzaS0+cmVndWxhdG9yKTsKIApAQCAt MTIzMCw5ICsxMjM5LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBzdW42aV9k c2lfcG1fb3BzID0gewogCQkJICAgTlVMTCkKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3Vu NmlfZHNpX3ZhcmlhbnQgc3VuNmlfYTMxX21pcGlfZHNpID0geworCS5oYXNfbW9kX2NsayA9IHRy dWUsCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW42aV9kc2lfb2Zf dGFibGVbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gImFsbHdpbm5lcixzdW42aS1hMzEtbWlwaS1k c2kiIH0sCi0JeyB9CisJeworCQkuY29tcGF0aWJsZSA9ICJhbGx3aW5uZXIsc3VuNmktYTMxLW1p cGktZHNpIiwKKwkJLmRhdGEgPSAmc3VuNmlfYTMxX21pcGlfZHNpLAorCX0sCisJeyAvKiBzZW50 aW5lbCAqLyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuNmlfZHNpX29mX3RhYmxl KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmgg Yi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2kuaAppbmRleCAzZjQ4NDZmNTgx ZWYuLmQ3OTFjOWY2ZmNjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZp X21pcGlfZHNpLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmgK QEAgLTE1LDYgKzE1LDEwIEBACiAKICNkZWZpbmUgU1VONklfRFNJX1RDT05fRElWCTQKIAorc3Ry dWN0IHN1bjZpX2RzaV92YXJpYW50IHsKKwlib29sCQkJaGFzX21vZF9jbGs7Cit9OworCiBzdHJ1 Y3Qgc3VuNmlfZHNpIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgljb25uZWN0b3I7CiAJc3RydWN0 IGRybV9lbmNvZGVyCWVuY29kZXI7CkBAIC0zMSw2ICszNSw3IEBAIHN0cnVjdCBzdW42aV9kc2kg ewogCXN0cnVjdCBzdW40aV9kcnYJKmRydjsKIAlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlCSpkZXZp Y2U7CiAJc3RydWN0IGRybV9wYW5lbAkqcGFuZWw7CisJY29uc3Qgc3RydWN0IHN1bjZpX2RzaV92 YXJpYW50CSp2YXJpYW50OwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc3VuNmlfZHNpICpo b3N0X3RvX3N1bjZpX2RzaShzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCkKLS0gCjIuMTguMC4z MjEuZ2ZmYzZmYTBlMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVs