From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752604AbeB1Oyi (ORCPT ); Wed, 28 Feb 2018 09:54:38 -0500 Received: from foss.arm.com ([217.140.101.70]:51056 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752395AbeB1Oyh (ORCPT ); Wed, 28 Feb 2018 09:54:37 -0500 Subject: Re: [PATCH v3 05/43] drm/bridge: analogix_dp: Don't power bridge in analogix_dp_bind To: =?UTF-8?Q?Heiko_St=c3=bcbner?= , linux-rockchip@lists.infradead.org Cc: Thierry Escande , Archit Taneja , Inki Dae , Thierry Reding , Sandy Huang , Sean Paul , David Airlie , Tomasz Figa , Enric Balletbo i Serra , Zain Wang , Lin Huang , Douglas Anderson , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yakir Yang , =?UTF-8?Q?=c3=98rjan_Eide?= , Mark Yao , Haixia Shi References: <20180130202913.28724-1-thierry.escande@collabora.com> <20180130202913.28724-6-thierry.escande@collabora.com> <2776489.2p7NH6SBud@diego> From: Marc Zyngier Organization: ARM Ltd Message-ID: <2c89da60-3c54-a8db-db9d-6079c51ed29d@arm.com> Date: Wed, 28 Feb 2018 14:54:30 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <2776489.2p7NH6SBud@diego> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/02/18 14:37, Heiko Stübner wrote: > Am Dienstag, 30. Januar 2018, 21:28:35 CET schrieb Thierry Escande: >> From: zain wang >> >> The bridge does not need to be powered in analogix_dp_bind(), so >> remove the calls to pm_runtime_get()/phy_power_on()/analogix_dp_init_dp() >> as well as their power-off counterparts. >> >> Cc: Stéphane Marchesin >> Signed-off-by: zain wang >> Signed-off-by: Caesar Wang >> [the patch originally just removed the power_on portion, seanpaul removed >> the power off code as well as improved the commit message] >> Signed-off-by: Sean Paul >> Signed-off-by: Thierry Escande >> --- >> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 10 ---------- >> 1 file changed, 10 deletions(-) >> >> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index >> cb5e18d6ba04..1477ea9ba85d 100644 >> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c >> @@ -1382,11 +1382,6 @@ analogix_dp_bind(struct device *dev, struct >> drm_device *drm_dev, >> >> pm_runtime_enable(dev); >> >> - pm_runtime_get_sync(dev); >> - phy_power_on(dp->phy); >> - >> - analogix_dp_init_dp(dp); >> - >> ret = devm_request_threaded_irq(&pdev->dev, dp->irq, >> analogix_dp_hardirq, >> analogix_dp_irq_thread, > > Not 100% sure here, as the driver has the request-irq + disable-irq hack > here. So a pending interrupt could possibly fire between request and > disable. > > Right now the block should be on, but can it still handle such an irq > when the power is removed? Probably not (see below). > So before removing the power here, we might want something > similar to what Marc posted for the vop [0] for the analogix-dp? You can do that trick only if the interrupt is not shared. In the VOP case, it is shared with the IOMMU, which makes it more... interesting. And when it comes to power and the analogix-dp driver, I've been carrying this[1] for a while. Fully exploitable from userspace. I know it is about to be replaced by this series, but at least 4.15 and 4.16 are affected. M. [1] https://www.spinics.net/lists/arm-kernel/msg623892.html -- Jazz is not dead. It just smells funny...