f_ has quit [Read error: Connection reset by peer]
f_ has joined #linux-msm
Danct12 is now known as brrrrrrrrrrrrrrrrrrrrrrrrrrrrr
brrrrrrrrrrrrrrrrrrrrrrrrrrrrr has quit []
Danct12 has joined #linux-msm
marvin24 has joined #linux-msm
marvin24_ has quit [Ping timeout: 480 seconds]
pespin has joined #linux-msm
flto has joined #linux-msm
ungeskriptet has quit [Ping timeout: 480 seconds]
danylo has quit [Ping timeout: 480 seconds]
danylo has joined #linux-msm
ungeskriptet has joined #linux-msm
danylo is now known as Guest2625
danylo has joined #linux-msm
Guest2625 has quit [Ping timeout: 480 seconds]
<lumag>
sboyd, can we please try gaining your attention for a clk_disable_unused issue? https://gitlab.freedesktop.org/drm/msm/-/jobs/54990475 This happens on db410c (apq8016), if the DRM_MSM is built-in, but the adv7511, the DSI bridge, is built as a module.
<lumag>
konradybcio, ^^
<konradybcio>
(worth noting it's not exactly an issue with the clocks themselves being disabled :P, i like my unused cleanup..)
<lumag>
konradybcio, huh?
<konradybcio>
iirc there were some talks to get rid of it, i'm just preemptively defending the idea
<lumag>
aj
<lumag>
ah
<lumag>
robclark, sboyd, konradybcio : I traced the issue to the dsi0byte_mux attempted disablement. It looks like the clock framework tries to disable the whole DSI clock tree, but then it stumbles upon the dsi driver itself, which attempts to resume to be able to shut this clock down.
<lumag>
[ 14.884502] wcn36xx: mac address: 02:00:c2:21:3c:38
<lumag>
So, msm_mdss disabling MDSS clocks clashes with the clock subsystem trying to do its own work.
<sboyd>
lumag: does it work to mark clks with the ignore unused flag?
<lumag>
sboyd, which ones? low-level DSI clocks?
<lumag>
or the pixel /byte output clocks?
<sboyd>
lumag: yes something like that
<sboyd>
disabling unused clks is entirely broken
<lumag>
sboyd, guess, it doesn't help. The CLK_IGNORE_UNUSED flag is checked after clk_pm_runtime_get() returns
<sboyd>
lumag: sounds like we can change that?
<lumag>
sboyd, if we consider flags to be constant (which they probably are)
<sboyd>
lumag: yes they all are
<lumag>
sboyd, ok, it requires adding CLK_IGNORE_UNUSED to all 28nm clocks.
<lumag>
This sounds like a pretty strange idea.
<lumag>
Or like a hack.
pespin has quit [Remote host closed the connection]
jhovold has quit [Quit: WeeChat 4.1.2]
jhovold has joined #linux-msm
<javierm>
lumag: what I don't understand is why the clk is unused if the msm-mdss driver prepared/enabled it
<lumag>
javierm, the DSI clocks become unused, because there is no DSI consumer (adv7511=m).
<lumag>
So there is no video stream ongoing.
<javierm>
lumag: but then the DSI consumer should prepare the clock on probe right ?
<lumag>
javierm, only in bridge->pre_enable
<javierm>
lumag: which may be OK, but why then the mdss runtime PM callbacks try to enable/disable that clock ?
<javierm>
lumag: I think that the problem here is either that the dss driver is not grabbing all the clocks that needs to operate or their runtime PM count isn't correct
<javierm>
I'm not familiar with the QC DSS IP block to know the answer but from a bird's eye POV that is what looks to me
<javierm>
because as you said, some DSI clocks are left unused and the whole DSI sub-tree is disabled
<javierm>
but then the dss runtime PM callbacks try to disable it again?
<lumag>
I think the congestion is about a different clock.
<lumag>
Let me debug that
<javierm>
lumag: what usually happens is that the clk disable unused has some side effects because it disables the whole sub-tree as you said
<javierm>
but sometimes, having a child clock (i.e: dsi), has the side effect of keeping enabled a clock that was needed by another IP block (e.g: dss)
<lumag>
javierm, I think the whole clk_prepare_lock() is congested.
<javierm>
but just as a by product of the child clock left enabled (and so its parent no being disabled due lock)
<javierm>
lumag: oh, I see
<lumag>
And that's why the lockdep doesn't prevent that
<lumag>
I think, I'll abandon the CLK_IGNORE_UNUSED for now and just enforce clk_ignore_unused for the job.
<lumag>
Hopefully we will get sync_state instead of clk_ignore_unused at some point.
danylo has quit [Quit: Ping timeout (120 seconds)]