<Marijn[m]>
Tooniis: -22 during initialize likely means the DSI host is off, but you probably figured that from an earlier message in this thread (`panel.prepare_prev_first = true;`)
<Marijn[m]>
JIaxyga: since you are on a _video mode_ panel with DSC, there were some mumblings previously about arbitrary `if (video mode) dont;` clauses in DSC codepaths, because they have not been tested. We should probably remove those and/or see if more code (typically register writes) need to be implemented before it starts to work
<Marijn[m]>
For example, there's nothing in phys_vid.c about DSC except getting the block mask... I'd say this affects the timings calculated there too
<JIaxyga[m]>
Marijn[m]: Sadly
<JIaxyga[m]>
I can test at any time if there are any fixes
<Marijn[m]>
OTOH phys_cmd.c doesn't have much either, it's all in the generic codepath it seems
<lumag>
krzk, because Marijn[m] has sent an updated version, but I did not pick it up yet.
<lumag>
I'll attend to it either today or in a next couple of days.
<krzk>
but that is not how next is working...
<Marijn[m]>
Anyway, as mentioned yesterday that `qcom,mdss-dsc-encoders = <1>` in your DTS seems to indicate a non-DSCmerge topology. I am not sure if that could affect the datastream (would at the very least see corruption I think, but the kernel says this is a "power optimal" topology as if it should be compatible), but we could try implementing it
<Marijn[m]>
JIaxyga: it shouldn't be much more complicated than changing a few `num_dsc = 2` and `num_lm = 2` to `1
<lumag>
krzk, we don't have a non-rebasing guarantee in linux-next.
<krzk>
lumag: that's ok, but why pushing to next something incomplete which triggers warnings/issues and then not allowing to fix it (because it was fixed but not pushed to next)?
<krzk>
How one can work on next in such case?
<Marijn[m]>
You are allowed to push fixes... But in this case another fix (a replacement of the original patch...) was sent much in advance and will take precedence
<krzk>
sure, but then it should replace the next material some days ago, not in few days from now on
<krzk>
otherwise next is just some outdated snapshot
<krzk>
Imagine now every maintainer does like this - keeps old stuff in next and some new version of existing patches coming in queue, bu tnot yet merged or pushed...
<krzk>
Imagine Bjorn handling his tree like this and try to work on it
<lumag>
krzk, when I picked these patches, the offending patch had your r-b tag, so I was not worried about the DT-bindings.
<lumag>
krzk, for every tree there is a delay between patch being submitted and then pushed to the tree. Otherwise other parties will not have time to react
<krzk>
lumag: it is not a problem that patch needing corrections was merged. This is why we have follow ups, bu there follow-up (v3 and v4) are waiting and they should have invalidated next immediately
<lumag>
Please define 'immediately'.
<krzk>
the moment vN+1 is coming and you intend to replace your patches, not do it incrementally, you should drop vN or even replaced it, so no one gets confused
<krzk>
Anyway, if you think it will be perfectly fine if every maintainer works like this, then sure, no problem
<lumag>
krzk, no, it is not perfectly fine. In the perfect world every maintainer reviewes patches within a day or so, picks them as soon as they are ready and never does any other mistakes. We are not living in a perfect world for some unfortunate reason. So we all make mistakes sometimes. Everybody has delays, etc. So, thanks for pointing out the issue. Please excuse me for you having to work on the issue that was already fixed and pending on my side.
<krzk>
lumag: apologies, I thought it is normal process, that's why I discussed.
<krzk>
lumag: I apologize for the tone and complaining.
<lumag>
krzk, I have a process/script to generate `b4 ty` mails, but sometimes it fails/skips some of the patches.
<Marijn[m]>
JIaxyga: exactly what I need: `qcom,display-topology = <1 1 1>;`
<Marijn[m]>
JIaxyga: do you have an environment where you can boot your downstream kernel? Otherwise we'll add the 1:1:1 topology to mainline and see if it works :)
<JIaxyga[m]>
Marijn[m]: I have android in dualboot if it helps. downstream kernel is not ported to pmos
<lumag>
JIaxyga[m], yes, note that your topology has 1 DSC encoder, while upstream uses 2 currently.
<Marijn[m]>
JIaxyga: cool: I'm not sure if it makes sense to try the `2 2 1` topology on downstream, or if we might miss a workaround somewhere
<Marijn[m]>
lumag: do you think the topology could affect video-mode here, or is dscmerge "supposed to" make that all opaque?
<lumag>
I have not checked whether we support working without DSCmerge ATM.
<Marijn[m]>
No, sure, besides changing num_lm, num_dsc, and some other counters down to 1, DSCmerge might be enabled unconditionally elsewhere
<Marijn[m]>
We will also have to turn off DSC_MODE_SPLIT_PANEL and DSC_MODE_MULTIPLEX (the latter will turn off automatically when dpu_encoder_use_dsc_merge() returns false)
<Marijn[m]>
And enc_ip_w = intf_ip_w / 2 shouldn't be divided by 2
<Marijn[m]>
I tested it on SM8350 (DPU 1.2 blocks though...) and no regressions. Perhaps I should try on SM8150 as well
<Marijn[m]>
(That is also why I am not really expecting this to fix anything... The panel should be oblivious to the topology as it all ends up in one stream after DSCMerge, AFAIU)
<JIaxyga[m]>
Marijn[m]: Thanks. I will test when Im home
<JIaxyga[m]>
Marijn: I think adomerle: can test this too on vayu (poco x3 pro) sm8150 with video mode and topology 1 0 1 fixing your patch-hack a bit
<Marijn[m]>
JIaxyga: Are you sure it's not `1 1 1`? It means `lm_count dsc_count intf_count`
<Marijn[m]>
Or does Vayu come without DSC? Then the patch is worthless to test because non-DSC already uses 1 0 1 topology on mainline
<Marijn[m]>
(Or do we use 2 LMs in some cases? I don't remember...)
<Marijn[m]>
Nvm, 2 LM is only used for wide displays (or when using two physical interfaces)
<JIaxyga[m]>
Oh wait, right. There is also 1 1 1
<Marijn[m]>
Yup
<Marijn[m]>
Okay, 1 1 1 seems to work on my SM8150 device
<Marijn[m]>
(USB broke, but that's for another day)
dliviu has joined #linux-msm
junari_ has joined #linux-msm
pespin has joined #linux-msm
junari has quit [Ping timeout: 480 seconds]
junari__ has quit [Ping timeout: 480 seconds]
junari has joined #linux-msm
pespin has quit [Remote host closed the connection]
<Marijn[m]>
Tooniis: has it worked before? JIaxyga is also bringing up a video-mode panel (albeit with DSC on sm7150). Which SoC are you on?
pespin has quit [Read error: No route to host]
<JIaxyga[m]>
<Marijn[m]> "Tooniis: has it worked before..." <- I got a very distorted picture, when I tested dsc on v6.1 or v6.2. But it was plausible. If I changed the volume, then distortions changed in the place where the volume level was displayed
<JIaxyga[m]>
I can try to find a video
<JIaxyga[m]>
Maybe something has changed critically since that time
junari_ has joined #linux-msm
junari__ has quit [Ping timeout: 480 seconds]
junari has quit [Ping timeout: 480 seconds]
junari has joined #linux-msm
<Tooniis[m]>
<Marijn[m]> "Tooniis: has it worked before..." <- yes on 6.3 at least
<Tooniis[m]>
to be clear, it works despite these messages
<Tooniis[m]>
im on msm8996
junari has quit [Remote host closed the connection]
junari_ has quit [Read error: Connection reset by peer]
<Marijn[m]>
JIaxyga: I'm sorry for not keeping up with all the many broken-panel reports on various configurations here (we almost need a table...), what do you observe now? Colorful distortion is good (especially if you see where it changes), that means the panel is properly initialized and that data is flowing, just that the DSC setup is very likely incorrect/mismatching (which is a given on older kernels).
<Marijn[m]>
Tooniis: oh, right. Is it refreshing slower though? Perhaps worth bisecting that
pespin has joined #linux-msm
<Marijn[m]>
Tooniis: are you on the mdp5 or DPU codepath? The latter hasn't yet landed afaik
pespin has quit [Read error: No route to host]
<JIaxyga[m]>
<Marijn[m]> "JIaxyga: I'm sorry for not..." <- It was on v6.2
<JIaxyga[m]>
<JIaxyga[m]> "1.mp4" <- Now I'm getting this
<JIaxyga[m]>
I havent tried your patch yet. Ill be home in three hours
djakov has quit [Remote host closed the connection]
djakov has joined #linux-msm
junari has quit [Ping timeout: 480 seconds]
<Tooniis[m]>
<Marijn[m]> "Tooniis: oh, right. Is it..." <- I got the errors only right after panel init
<Tooniis[m]>
I didn't notice any change in refresh rate, unless it only happened right after init as well
<Tooniis[m]>
<Marijn[m]> "Tooniis: are you on the mdp5..." <- whatever is in master currently
<Tooniis[m]>
ig mdp5
pespin has joined #linux-msm
pespin has quit [Remote host closed the connection]
pespin has joined #linux-msm
pespin has quit [Remote host closed the connection]
pespin has joined #linux-msm
<aka_[m]>
konradybcio: so how we do about max rate of hfpll lpass split?
<aka_[m]>
*and
<konradybcio>
would setting it to 2.something break anything for you?
<aka_[m]>
No
<konradybcio>
then let's use that
<aka_[m]>
Free oc if we do so
<konradybcio>
hm
<konradybcio>
but does it reach 2.x if you don't ask it via opp
<aka_[m]>
Tho my 8976 is burning hot anyway
<aka_[m]>
konradybcio: Why it should
<konradybcio>
just wanna make sure
<aka_[m]>
Isn't it just guarding set_rate?
<konradybcio>
think so
<konradybcio>
but some crazy drivers may have something like "start at max"
<aka_[m]>
I enable cores at almost lowest possible multiplier for pll settings so stock spmi values might not be needed to be guarded too much
<aka_[m]>
konradybcio: Here it says booted at x freq switching
<aka_[m]>
I was unable to see it outside of opps
<aka_[m]>
Worst case scenario preboot pll in lk2nd
<Marijn[m]>
JIaxyga: that's unfortunate. Can you possibly reproduce your 6.2 driver and DTS on -next so that we can start working up from there? Or go back to your 6.2 branch and see if it's still colorful and broken?
<Marijn[m]>
Those flashes and timeouts could mean anything to me...
<Marijn[m]>
adomerle: looks like your panels isn't even probing thanks to some pinctrl clash... Fix that first :)
<Marijn[m]>
panel*
<Marijn[m]>
Or is it and am I just mistaking TS probe for panel probe?
<Marijn[m]>
There's barely any DSI logs
pespin has quit [Read error: Connection reset by peer]
pespin has joined #linux-msm
<adomerle[m]>
<Marijn[m]> "Or is it and am I just mistaking..." <- yes, idk why there are so few DSI logs, now I’m building with the ts driver disabled
<Marijn[m]>
adomerle: it could also be me erroneously expecting my own dsi/dpu debug messages... But I thought there was more. Maybe drm.debug might help
<adomerle[m]>
Marijn[m]: that log already with drm.debug=0x3
<Marijn[m]>
JIaxyga: so the timeout messages turn out to be a common issue even if the panel works, then it's just the panel not really interpreting this DSC data and we'll have to look elsewhere with all the previous "video mode DSC is untested/unimplemented" context in mind
<Marijn[m]>
Maybe I or someone else will have to do a pass over dsi_host.c for all the video-mode DSC-specific register writes (dump their values on mainline vs downstream, then compare)
<Marijn[m]>
Given that the PPS is also printed on mainline, it's invaluable to print and back that up on downstream as well to have a reference
<Marijn[m]>
No you definitely have to apply prepare_prev_first=true unless reverting those bridge patches
<Marijn[m]>
There are two afaik, konradybcio had them reverted a while ago on our development branch
<Marijn[m]>
You don't loose anything for trying though, revert drm/msm/dsi: More properly handle errors in regards to dsi_mgr_bridge_power_on() and drm/msm/dsi: Stop unconditionally powering up DSI hosts at modeset
<Marijn[m]>
And then of course keep that prepare_prev_first=true commit dropped
junari_ has quit [Remote host closed the connection]
dliviu has quit [Ping timeout: 480 seconds]
Danct12 has quit [Quit: A-lined: User has been AVIVA lined]