[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <691c1458eb5e45d8c14f24e78f47b2840f589ea7.camel@mediatek.com>
Date: Wed, 18 Oct 2023 04:54:31 +0000
From: Shawn Sung (宋孝謙)
<Shawn.Sung@...iatek.com>
To: CK Hu (胡俊光) <ck.hu@...iatek.com>,
"matthias.bgg@...il.com" <matthias.bgg@...il.com>,
"angelogioacchino.delregno@...labora.com"
<angelogioacchino.delregno@...labora.com>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"krzysztof.kozlowski+dt@...aro.org"
<krzysztof.kozlowski+dt@...aro.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mediatek@...ts.infradead.org"
<linux-mediatek@...ts.infradead.org>,
Yongqiang Niu (牛永强)
<yongqiang.niu@...iatek.com>,
"chunkuang.hu@...nel.org" <chunkuang.hu@...nel.org>,
Jason-JH Lin (林睿祥)
<Jason-JH.Lin@...iatek.com>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
Moudy Ho (何宗原) <Moudy.Ho@...iatek.com>,
Nancy Lin (林欣螢) <Nancy.Lin@...iatek.com>,
"daniel@...ll.ch" <daniel@...ll.ch>,
"p.zabel@...gutronix.de" <p.zabel@...gutronix.de>,
"mchehab@...nel.org" <mchehab@...nel.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
Nathan Lu (呂東霖) <Nathan.Lu@...iatek.com>,
"airlied@...il.com" <airlied@...il.com>,
"sean@...rly.run" <sean@...rly.run>,
"hverkuil-cisco@...all.nl" <hverkuil-cisco@...all.nl>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"fshao@...omium.org" <fshao@...omium.org>,
"johnson.wang@...iatek.corp-partner.google.com"
<johnson.wang@...iatek.corp-partner.google.com>
Subject: Re: [PATCH v8 22/23] drm/mediatek: Power on devices in OVL adaptor
when atomic enable
Hi CK,
On Wed, 2023-10-18 at 02:02 +0000, CK Hu (胡俊光) wrote:
> Hi, Hsiao-chien:
>
> On Mon, 2023-10-16 at 18:40 +0800, Hsiao Chien Sung wrote:
> > Different from OVL, OVL adaptor is a pseudo device so we didn't
> > define it in the device tree, consequently,
> > pm_runtime_resume_and_get()
> > called by .atomic_enable() powers on no device in OVL adaptor and
> > leads to power outage in the corresponding IOMMU.
> >
... snip ...
> > +int mtk_ovl_adaptor_power_on(struct device *dev)
> > +{
> > + int i, ret;
> > + struct mtk_disp_ovl_adaptor *ovl_adaptor =
> > dev_get_drvdata(dev);
> > +
> > + for (i = 0; i < OVL_ADAPTOR_ID_MAX; i++) {
> > + if (!ovl_adaptor->ovl_adaptor_comp[i] ||
> > + !comp_matches[i].funcs->power_on)
> > + continue;
>
> To simplify the code, you could call mtk_ddp_comp_power_on() for all
> sub device, and drop power_on()/power_off() of mdp_rdma.
>
> Regards,
> CK
>
Since ovl_adaptor_comp is a `struct device`, we can't reuse
mtk_ddp_comp_power_on() here. Had submited a new version (v9) and wrap
the power off procedure as a static inline function to reuse it.
Regards,
Shawn
Powered by blists - more mailing lists