From patchwork Mon Oct 25 22:40:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 12583333 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE932C4167D for ; Mon, 25 Oct 2021 22:46:18 +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 8EC856105A for ; Mon, 25 Oct 2021 22:46:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8EC856105A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 940AB6E2E3; Mon, 25 Oct 2021 22:46:07 +0000 (UTC) Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com [IPv6:2a00:1450:4864:20::235]) by gabe.freedesktop.org (Postfix) with ESMTPS id 829A26E2E1 for ; Mon, 25 Oct 2021 22:45:58 +0000 (UTC) Received: by mail-lj1-x235.google.com with SMTP id q16so12204446ljg.3 for ; Mon, 25 Oct 2021 15:45:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CCCJ0mW2gwsnFPN+OPsgUTOb6pwwmydDjjp/u9hKbfY=; b=QxYo2YxRLTZ/QUkVuiRrnKUMCi8iGuqEstVwgsUSEQsoc6hmdMw+zQ8cHA1k7e+jeQ qHcynesgFZvCObbzzG8s/OVks7bTtwzpjKUP3t3xwCnPFhBLOBcUtwJ7LJ8QyP733364 Y7mqrB7OTybWq+UzpoGZQ1frr+KhmDX2njZoTQHC6YN7ypxeHsjJR0lwz1fHkmJ27XTn VoOgsLDf4WEx63DqHAznvn5LOOi87i85TNtLZdcdvmvlawvuaBN/U0yB7UnNG50w5VDr tek6PpbQmfgzSzr8/KVws4qYlCWEadcasHxJN+GGCsmMiHlgEJ5Bd8aE9VWYZHmDYWOM yzAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CCCJ0mW2gwsnFPN+OPsgUTOb6pwwmydDjjp/u9hKbfY=; b=d1cHfjoOuIWkK2c+MvPxXmM3zfr0f2yNt8/RXE6OWlJU9QTTjoaQT8Z3qE1LCQv6yj QQNcW2v58VRtOLdzH8mndI7Y7n8edUyTbG/amtIOHlw+6FhARtKdJSRiFdEHKtq8r8zE BZg1zqdr6CzUuaeNg3XiLOyjBwfPKCiTzr20tlH+C9/nGaxJbwz0V95JceftNAQV6Dcr WBXo6Hj9HpJSUInHst2vnvlnXXUULt6UheXMM8+p2wdx4H1RSy6ajMDJL9K5a5kaMC3N vWA6MTi0RtI+YDdUyezeUmUDntlJv6aYCsaRSn7taBILxK22O9iRwJEyvj0zsMQIcmru fZzg== X-Gm-Message-State: AOAM531mTmwu46ucUcKIrevIE6H2nUdGrQOObkULS5Rb4Br1K99b7REC lRGuSQyllvLD08V1b/4FMzs= X-Google-Smtp-Source: ABdhPJyvIkPk0JW1nUlhm/sbKY+klJKBKRC4kwdUeSR8nEuSsxoPCzdbWKExoyLredOoboxG47izfA== X-Received: by 2002:a2e:9b09:: with SMTP id u9mr22560700lji.111.1635201956554; Mon, 25 Oct 2021 15:45:56 -0700 (PDT) Received: from localhost.localdomain (46-138-41-28.dynamic.spd-mgts.ru. [46.138.41.28]) by smtp.gmail.com with ESMTPSA id t20sm2040956lft.240.2021.10.25.15.45.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Oct 2021 15:45:56 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter , Ulf Hansson , Viresh Kumar , Stephen Boyd , Peter De Schrijver , Mikko Perttunen , Lee Jones , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Nishanth Menon , Adrian Hunter , Michael Turquette Cc: linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org, linux-pwm@vger.kernel.org, linux-mmc@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, David Heidelberg Subject: [PATCH v14 11/39] drm/tegra: hdmi: Add OPP support Date: Tue, 26 Oct 2021 01:40:04 +0300 Message-Id: <20211025224032.21012-12-digetx@gmail.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211025224032.21012-1-digetx@gmail.com> References: <20211025224032.21012-1-digetx@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The HDMI on Tegra belongs to the core power domain and we're going to enable GENPD support for the core domain. Now HDMI driver must use OPP API for driving the controller's clock rate because OPP API takes care of reconfiguring the domain's performance state based on HDMI clock rate. Add OPP support to the HDMI driver. Signed-off-by: Dmitry Osipenko --- drivers/gpu/drm/tegra/hdmi.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index e5d2a4026028..9a87d351a828 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -11,10 +11,13 @@ #include #include #include +#include #include #include #include +#include + #include #include #include @@ -1195,7 +1198,7 @@ static void tegra_hdmi_encoder_enable(struct drm_encoder *encoder) h_back_porch = mode->htotal - mode->hsync_end; h_front_porch = mode->hsync_start - mode->hdisplay; - err = clk_set_rate(hdmi->clk, hdmi->pixel_clock); + err = dev_pm_opp_set_rate(hdmi->dev, hdmi->pixel_clock); if (err < 0) { dev_err(hdmi->dev, "failed to set HDMI clock frequency: %d\n", err); @@ -1732,7 +1735,14 @@ static int tegra_hdmi_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, hdmi); - pm_runtime_enable(&pdev->dev); + + err = devm_pm_runtime_enable(&pdev->dev); + if (err) + return err; + + err = devm_tegra_core_dev_init_opp_table_common(&pdev->dev); + if (err) + return err; INIT_LIST_HEAD(&hdmi->client.list); hdmi->client.ops = &hdmi_client_ops; @@ -1753,8 +1763,6 @@ static int tegra_hdmi_remove(struct platform_device *pdev) struct tegra_hdmi *hdmi = platform_get_drvdata(pdev); int err; - pm_runtime_disable(&pdev->dev); - err = host1x_client_unregister(&hdmi->client); if (err < 0) { dev_err(&pdev->dev, "failed to unregister host1x client: %d\n",