Received: by 2002:aa6:da0e:0:b029:115:a171:fe4c with SMTP id z14csp1244972lkb; Wed, 7 Jul 2021 02:24:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/vxarKsXZDbLZiyF+j+NwfBbM8IJ8HF4rY+nD4JGZSDC6LCt2xNvdVx6S6AlozN7pPmzw X-Received: by 2002:a92:d9cf:: with SMTP id n15mr17347899ilq.112.1625649840655; Wed, 07 Jul 2021 02:24:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625649840; cv=none; d=google.com; s=arc-20160816; b=GmmQGCuZZredy7x9u/A8IVxw0hezM7ZTDAwki5v4g2SCvu4Nfw4fHv5RRxdsg6m2Lv hMpOSxB976aqWOGfTpYb6b14RQOcAUGtv2IhcD1cFbuD5fNxV064jGNnrPWfEnFcyFuw YSKeXcAAH5ATdBE49XcsB1Lewv/nX2CpPZH66ifO+hVx1/YlCa2DBbjGR/p9YBzQHI5a L40vZsFQIT+KCKV6GWd3G5pUDDwS2J7QfubMEuomLP0+7eMR6Tv+X7s0EslaDk97niMp Y5ztl/OA1s93i0uQ1e2cK9HK84PdkbB51DQxMUiQLzc/XQjEwR9zCnJTPIu723l3eGN6 Iv0w== 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=yPHveBCmazss3HiqhL18dQubSdoqqYUXa13P7zvEQzM=; b=UKMJoa3149VAzeOWjGaAZNj9dnllV380erh7snrEwAjJO26ELnHSss7Dt9DJNB9G+J EiJvttzWhAp7bxLo3OXblu3vK1S4knUDWfmEOME2ur0bDDkYWzmpBHDg7S7TndmeUiOJ XJPhShnI1fa1Ufgr7GvPeq5vnpBf39bxWHgFGjtwmUKr1zAfps5yUyazeTtIEQn1wO3m rJhBQYdfZd8VFC6QFhZJ2PqwJW5XRjLQ2jSmGWZp19wG3NdXM+peJy3iVVm36r7E0JA9 CSVPExC6aoKbUqSp1C39jLEXc6QoHTOkT+E1V2qS9VCzmT0ucCHHODgcYlMqQos9xsob zANg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=1p8PkATy; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=wWQnZPtJ; 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 c14si21762333ilu.89.2021.07.07.02.23.49; Wed, 07 Jul 2021 02:24:00 -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=1p8PkATy; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=wWQnZPtJ; 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 S231451AbhGGJZt (ORCPT + 99 others); Wed, 7 Jul 2021 05:25:49 -0400 Received: from wnew2-smtp.messagingengine.com ([64.147.123.27]:44767 "EHLO wnew2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231317AbhGGJZs (ORCPT ); Wed, 7 Jul 2021 05:25:48 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.west.internal (Postfix) with ESMTP id 5480C2B0091E; Wed, 7 Jul 2021 05:23:07 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Wed, 07 Jul 2021 05:23:08 -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=yPHveBCmazss3 HiqhL18dQubSdoqqYUXa13P7zvEQzM=; b=1p8PkATyxYJNVHFZ1auOw2oIpeJSh 7YMyPO1L3uNzu9k0k0/EgqEYNs6mxUcsMUYwEsVq9POiNYa/VaiAKfMAZyNPWV7Q bLvWdj4dtnb1vIj8gCsk3oRAgPlzsZHS5TaLaqpCVSQtprtpTRZ6Q1L/ho58rxHt CiWVWsJb9ecUsHgHpd2Z1SVN1Y5jmgylBsrTqMMHik2tLLDg+YJUJ/UE4gv7yP9l 4uW3cBgeNZ2guaMN/TBTQ5kLBCHf5Xr4+z7AHDGaILKHhFYtKYisekw/JN51aUS9 CQebNBym1Nx890I8xz3CtSYQKgJ8QAJ+nOB5Bj/qp6vzHQcW31vlOMyeQ== 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=yPHveBCmazss3HiqhL18dQubSdoqqYUXa13P7zvEQzM=; b=wWQnZPtJ 4P+rhqosIPoGwD47tBa3JR77NnZvI9/Ruc8R+5wvZ1X0Pc843fukPPMg0QG3NkeN 6+WLIoTlIp/pOauP1FuySBG5HwIwJgMememClk0RYlwfI8RaWScnGGeWAyyovLt8 sPXXxCM3AY0Ciozqz3tydQqddcxNNZGEc3NKSf6/Hf1sACm82fxk9umn9dj0kM4N IEp8XvVe/ElY7MG8KB7lamx076dHJSfW9+/uAP/DXcMG6604h1zphcPDKhzPe8H2 kDmPiFUi4/HF3/JulsbhjfNf+EpSEN8bIu0BVRrysIMMD5JYwm7b1Sem1NHN3jI4 AWOi8ajnuY/gIw== 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:04 -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 1/5] drm/vc4: hdmi: Make sure the controller is powered up during bind Date: Wed, 7 Jul 2021 11:22:53 +0200 Message-Id: <20210707092257.1465109-2-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 In the bind hook, we actually need the device to have the HSM clock running during the final part of the display initialisation where we reset the controller and initialise the CEC component. Failing to do so will result in a complete, silent, hang of the CPU. Fixes: 411efa18e4b0 ("drm/vc4: hdmi: Move the HSM clock enable to runtime_pm") Signed-off-by: Maxime Ripard --- drivers/gpu/drm/vc4/vc4_hdmi.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index aab1b36ceb3c..dac47b100b8b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -2176,6 +2176,18 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi->disable_4kp60 = true; } + /* + * We need to have the device powered up at this point to call + * our reset hook and for the CEC init. + */ + ret = vc4_hdmi_runtime_resume(dev); + if (ret) + goto err_put_ddc; + + pm_runtime_get_noresume(dev); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); + if (vc4_hdmi->variant->reset) vc4_hdmi->variant->reset(vc4_hdmi); @@ -2187,8 +2199,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) clk_prepare_enable(vc4_hdmi->pixel_bvb_clock); } - pm_runtime_enable(dev); - drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs); @@ -2208,6 +2218,8 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi_debugfs_regs, vc4_hdmi); + pm_runtime_put_sync(dev); + return 0; err_free_cec: @@ -2216,6 +2228,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) vc4_hdmi_connector_destroy(&vc4_hdmi->connector); err_destroy_encoder: drm_encoder_cleanup(encoder); + pm_runtime_put_sync(dev); pm_runtime_disable(dev); err_put_ddc: put_device(&vc4_hdmi->ddc->dev); -- 2.31.1