[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2c89da60-3c54-a8db-db9d-6079c51ed29d@arm.com>
Date: Wed, 28 Feb 2018 14:54:30 +0000
From: Marc Zyngier <marc.zyngier@....com>
To: Heiko Stübner <heiko@...ech.de>,
linux-rockchip@...ts.infradead.org
Cc: Thierry Escande <thierry.escande@...labora.com>,
Archit Taneja <architt@...eaurora.org>,
Inki Dae <inki.dae@...sung.com>,
Thierry Reding <thierry.reding@...il.com>,
Sandy Huang <hjc@...k-chips.com>,
Sean Paul <seanpaul@...omium.org>,
David Airlie <airlied@...ux.ie>,
Tomasz Figa <tfiga@...omium.org>,
Enric Balletbo i Serra <enric.balletbo@...labora.com>,
Zain Wang <wzz@...k-chips.com>, Lin Huang <hl@...k-chips.com>,
Douglas Anderson <dianders@...omium.org>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
Yakir Yang <ykk@...k-chips.com>,
Ørjan Eide <orjan.eide@....com>,
Mark Yao <mark.yao@...k-chips.com>,
Haixia Shi <hshi@...omium.org>
Subject: Re: [PATCH v3 05/43] drm/bridge: analogix_dp: Don't power bridge in
analogix_dp_bind
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 <wzz@...k-chips.com>
>>
>> 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 <marcheu@...omium.org>
>> Signed-off-by: zain wang <wzz@...k-chips.com>
>> Signed-off-by: Caesar Wang <wxt@...k-chips.com>
>> [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 <seanpaul@...omium.org>
>> Signed-off-by: Thierry Escande <thierry.escande@...labora.com>
>> ---
>> 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...
Powered by blists - more mailing lists