i've been pretty quiet regarding work stuff lately, but finally have something to share!

here we have Qualcomm display drivers up and running, demo'd on the Ayaneo Pocket S2, but it also works on the SM8650 HDK.

This isn't relying on an existing framebuffer being set up, this is U-Boot as the first stage bootloader. So there unfortunately isn't much of a benefit here on most of the phones we run U-Boot on today since we already have a framebuffer xD

The pocket S2 was a "fun" first target since it uses dual DSI, so both DSI controllers are used to drive a single panel.

It's gonna take quite a lot of cleanup before this can go upstream (particularly in the clock drivers), but I hope we can expand this support to other platforms and enable additional functionality like DSC. This brings us one (big!) step closer to a viable alternative bootloader for Qualcomm mobile devices.

That all bring said, the current diff is ~10k LoC 😅

the "dummy_panel" device is a hack, since both DSI controllers expect to reference a panel and give that panel a reference to them for sending DCS commands, it works around a limitation in U-Boot's driver model and lets us send panel commands over both DSI controllers...

overall this has been by fair the most complicated thing i've worked on technically... And definitely wouldn't have happened without a whole lot of help and collaboration with my colleagues.

It also made it painfully clear to me that U-Boots driver model could use an overhaul...

@cas oooooh that thing is always unfused right? i vaguely remember hearing that i think..?? I'm not exactly short on devices lmao but one day i might be tempted to get it For The Freedom â„¢

@valpackett yeppers! so we can just replace edk2 with uboot, display works and we're flyingggg

well, display handoff is still a bit of an issue but mostly we're good :D

@cas so this is the cyberpunk dystopia where to escape corporate oppression you have to replace your phone with a.. handheld gaming console?? the gamers truly have risen up