ChanServ changed the topic of #aarch64-laptops to: Linux support for AArch64 Laptops (Asus NovaGo TP370QL - HP Envy x2 - Lenovo Mixx 630 - Lenovo Yoga C630)
<qzed>
that doesn't seem to work
<qzed>
what I think is a bit weird: I can blacklist msm, the distcc and gpucc modules and I still get a black screen
<robclark>
black from start of boot, or goes off somewhere in the middle? I guess iommu (arm_smmu) is another candidate, perhaps? gpucc shouldn't have much to do with anything but dispcc could
<qzed>
it's on for short while, as far as I can tell it turns black even before it's done with the initram
<qzed>
it's been a problem before, which at that point I've fixed by not building the distcc and gpucc modules (at all)
<qzed>
but things have changed in the DT and blacklisting them (which should have worked before) doesn't any longer
<qzed>
IIRC not having those blocked the smmu from loading
<qzed>
*dispcc of course, not distcc
<qzed>
also another weird thing: having gcc_8180 built into the kernel causes a stall
<qzed>
whereas having it as module included in the initram does not
<qzed>
I assume that's some power-up sequence problem
Lucanis0 has quit []
Lucanis has joined #aarch64-laptops
<qzed>
so I tried blacklisting arm_smmu and that results in a boot failure
<qzed>
even before I can get anything off the device via usb-serial
<qzed>
and also a black screen, just like before
<robclark>
if it gets to initramfs, I guess you can try to figure out which module kill it.. there are basically a lot more ways for it to go wrong than to go right (ie. some unrelated driver could enable then disable a clock with the disable propagating up the tree until it disables some parent clk that display indirectly depends on, and things like that)
<qzed>
not sure if this is works well with IRC, but here's a video of what's currently happening wrt. black screen
<qzed>
seems like it flashes white for a bit
<robclark>
could be when arm-smmu takes over, or at least it looks fairly early in boot.. not sure how much you should worry about it, since it wouldn't really be a problem once more of the platform enablement is in place and display driver works
<qzed>
yeah, just can't figure out why it stays black... so I thought this might be related, but it might also just be a red herring
<robclark>
probably red herring.. the real question is why it doesn't come back ;-)
<qzed>
I briefly thought it might be a power thing but the kernel (and I) can read the edid from the aux i2c just fine
<qzed>
so I guess that works?
<robclark>
I suspect reading edid means dp block has power which probably means display block has power.. so could be something as simple as backlight?
<qzed>
that works too, can control that and change brightness
<robclark>
if dpu thinks it did modeset and it wasn't powered, it would be insta-reboot.. if you can read edid over dp aux channel, that should mean that panel has power... so idk
hexdump01 has joined #aarch64-laptops
hexdump0815 has quit [Ping timeout: 480 seconds]
hexdump0815 has joined #aarch64-laptops
hexdump01 has quit [Ping timeout: 480 seconds]
derzahl has quit [Ping timeout: 480 seconds]
<qzed>
is it possibel for edp panels to use only 2 of the 4 lanes?
<qzed>
if I have 4 specified in the DT, it fails 2 times when trying to train the link
<qzed>
it eventually succeeds but when I look in debugfs, it shows that only 2 lanes are used in the connector
<qzed>
when I specify 2 lanes in the dt, there are no link training errors
<qzed>
also there's still the "disp_cc_mdss_edp_pixel_clk_src: rcg didn't update its configuration."
<qzed>
that's only printed once though, and if I check the clock is set each link training try, so the subsequent tries it seems to work
<HdkR>
Definitely yes, you don't need four lanes unless you're pushing high BW
matthias_bgg has quit [Ping timeout: 480 seconds]
<qzed>
okay thanks, so then that shouldn't cause any problems...
matthias_bgg has joined #aarch64-laptops
<qzed>
robclark: so I figured out what the issue regarding the early blank screen is...
<qzed>
and as you've said it seems to be unrelated
<qzed>
during boot, panel and display are driven by the embedded controller
<qzed>
and as soon as it "detects" that we're trying to drive them it more or less hands them over to us
<qzed>
and it seems to detect that via a panel enable GPIO, which also controls the soc-driven power
<qzed>
so my current setup is to use the enable pin in a voltage regulator which is then provided as supply to the panel node
<qzed>
turns out that if I drop the GPIO from the voltage regulator spec and make it fixed instead, the panel stays on until the GPU boots up (or something happens around that time)
<qzed>
so the EC detects something even though the panel regulator shouldn't be on yet
<qzed>
maybe the regulator somehow power-cycles?
<qzed>
anyways, it looks like the EC detects us fiddling with the panel-enable pin and decides it can drop its panel-enable signal
<qzed>
(both are essentially or-ed together)
<qzed>
and that then likely results in the panel being off, until we actually turn it back on later, at which point the second issue kicks in