Received: by 2002:aa6:da0e:0:b029:115:a171:fe4c with SMTP id z14csp1245479lkb; Wed, 7 Jul 2021 02:24:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzIaTJjEDhDuMv3EWPZvBjs1uSn2rNoSsego16TwL6SKIfLFMbt8jcgSMlVYmR2f6u5Vcnj X-Received: by 2002:a05:6e02:47:: with SMTP id i7mr18040856ilr.35.1625649886892; Wed, 07 Jul 2021 02:24:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625649886; cv=none; d=google.com; s=arc-20160816; b=jSVon9C7IMOGKWdW0AeLrvm+jzG3yfwC5bpPPhgu/SCs49gg2AWAlyaGcK8V7mbnSZ BhHN32v2fT5b6HVAbOa6zZO0fjoye4emys3z+RzTdlHPmDHUsyyeqcJl13KCrzykPk/R 7mDRlML47TGOSDDT2S4iJdahnoXCrivDzexx9ufNOQKpV2zzO/4BcST/MLC8kSsNw1pa usJd8/A1rz69TDmeyYYU10i4maRTk0qTKszhiA+X7vZ+C0BW5ca1Q81CicjqwZsKL0oy v5+cgJOOtpfIC5k1onj3A++emXv+HGZ/tEILCws5YPUtdDPVQK0D/Pkk5GVU+U2HtdVo KqFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=iECWjzZ9PtNQFQH9Y5iPSpZJa5FddrCIeq+02aACJyg=; b=B1iGXQrOGiwq5ZQq0H3dKvHTxuJ8mZisPbA9zdflMn88ciJKethOZsHaUhqEzsFBBm MoJGCl9N6U3QrOxzL8/OJ8ZmVvJuAPjC9NuJWQEEjp1znYtLHFQe1x7N1HT5HG5tQyi9 wPLXjOZwa1Ea5yaGtyMOhcYg8amYpJNRaYSdaq7hjH+zHOg5K8UaHCqR8wEPY2zr8+o3 KXb02UDzrjuspsr8xYCs1V4oxiPpXoqfy+b2iyUOwN3jhBnw5TRzF+4Wfg5ri6KP+28+ vPhxFcwSsJO9D+fTC6AhBT3u/01J4aroKXDDnPzuVab3XXk97Y62fzYjFEtnKDgi3ESW NuJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=MPA8pX3H; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=TZDD2GEL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m6si21697585iol.83.2021.07.07.02.24.34; Wed, 07 Jul 2021 02:24:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=MPA8pX3H; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=TZDD2GEL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231520AbhGGJ0D (ORCPT + 99 others); Wed, 7 Jul 2021 05:26:03 -0400 Received: from wnew2-smtp.messagingengine.com ([64.147.123.27]:55599 "EHLO wnew2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231515AbhGGJ0A (ORCPT ); Wed, 7 Jul 2021 05:26:00 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.west.internal (Postfix) with ESMTP id BCCDE2B00927; Wed, 7 Jul 2021 05:23:18 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Wed, 07 Jul 2021 05:23:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=iECWjzZ9PtNQF QH9Y5iPSpZJa5FddrCIeq+02aACJyg=; b=MPA8pX3H3Q8f12aPR1nEcRwc7OXAD Re1SZVBXQn23T1ojKYb8dGEuQa0585ksakgewvsoY+lWyqSndfC6GY7FuvwV3yAw P7ya/iXQPnMES9OZ3HmYRde/spqzb5MBpkZPIWAv3dtBaB7pPttSLcx+y60l03W2 JzAHDZkFjJ4ialrnkdGjjpOkwJoaA+GxaslllMpY9vR8AY2hcGHUXQEfU37t0ny5 6oVl0RT9oF3ASQGAdjIXnps/SPVlcmciH2iQvO3EThTRcEQvoMCTdRJ2ruWT8KA5 NGxoC/vqthgDfH6rPQIjWLctfx7uAp/htbO2Jzk5syeifw3cg42DTjLtA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=iECWjzZ9PtNQFQH9Y5iPSpZJa5FddrCIeq+02aACJyg=; b=TZDD2GEL 2h1n/jHVyCXfum8jtrQZf1vkbll3rSlkQlr+sQ9rGYD0SgWaAh/jCzMYrpoaDzH8 nWPYXnYT/Q48mU7n26wFhvhA8A3ecYWaUpzr44kWZsJOITTGMvtXMvPwfBws+Do0 NZ371wjf1kWJVzZ2ladnN4Y0Hereytt2/N2BH9oNVmC2MogzH95Cy/Y//eMQTaPf YLLlE8eTAlbfkoYg5Dxr2mzE7LMUdX3NR7QZgjVNrTXx3Ar/4hB25WscjxTKoD17 JICdfz8qyPUH4xW7o+ncacQqDNDH/buEdxdlHwd+JpUgajv/GNlzZqKR6yRFPPs6 7T38SLwsRETuLg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrtddvgddugecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepofgrgihimhgv ucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrghtth gvrhhnpedvkeelveefffekjefhffeuleetleefudeifeehuddugffghffhffehveevheeh vdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrg igihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 7 Jul 2021 05:23:17 -0400 (EDT) From: Maxime Ripard To: dri-devel@lists.freedesktop.org, Daniel Vetter , David Airlie , Maarten Lankhorst , Thomas Zimmermann , Maxime Ripard Cc: Maxime Ripard , Emma Anholt , Dave Stevenson , Boris Brezillon , Phil Elwell , Tim Gover , Dom Cobley , linux-rpi-kernel@lists.infradead.org, Nicolas Saenz Julienne , Hans Verkuil , linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com Subject: [PATCH v2 4/5] drm/vc4: hdmi: Make sure the device is powered with CEC Date: Wed, 7 Jul 2021 11:22:56 +0200 Message-Id: <20210707092257.1465109-5-maxime@cerno.tech> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210707092257.1465109-1-maxime@cerno.tech> References: <20210707092257.1465109-1-maxime@cerno.tech> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Similarly to what we encountered with the detect hook with DRM, nothing actually prevents any of the CEC callback from being run while the HDMI output is disabled. However, this is an issue since any register access to the controller when it's powered down will result in a silent hang. Let's make sure we run the runtime_pm hooks when the CEC adapter is opened and closed by the userspace to avoid that issue. Fixes: 15b4511a4af6 ("drm/vc4: add HDMI CEC support") Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 825696e6ef02..c37326f5e263 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -1745,8 +1745,14 @@ static int vc4_hdmi_cec_enable(struct cec_adapter *adap) struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap); /* clock period in microseconds */ const u32 usecs = 1000000 / CEC_CLOCK_FREQ; - u32 val = HDMI_READ(HDMI_CEC_CNTRL_5); + u32 val; + int ret; + ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev); + if (ret) + return ret; + + val = HDMI_READ(HDMI_CEC_CNTRL_5); val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET | VC4_HDMI_CEC_CNT_TO_4700_US_MASK | VC4_HDMI_CEC_CNT_TO_4500_US_MASK); @@ -1789,6 +1795,8 @@ static int vc4_hdmi_cec_disable(struct cec_adapter *adap) HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) | VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET); + pm_runtime_put(&vc4_hdmi->pdev->dev); + return 0; } -- 2.31.1