01:02 lovesegfault: imirkin: An interesting update on the HDMI issue. Today sway segfaulted, but when I started it up again, the monitor worked with 4k@60!
01:03 lovesegfault: Unclear what happened there, whatever it was it recreated (I think) the behavior on boot that makes HDMI-2 work
01:15 imirkin: i think the basic deal is that my implementation of HDMI 2.0 is incomplete =/
01:15 imirkin: maybe we should just turn it off, dunno
01:23 lovesegfault: I prefer this one that only works on boot than nothing at all :P
01:24 lovesegfault: if you have time/desire to guide I can always help too, since I'd love to have this working :)
01:24 lovesegfault: Now with coronavirus I have loads of time
01:24 imirkin: well
01:24 imirkin: unfortunately i don't have the solution
01:25 imirkin: but basically you need to figure out what blob does differently
01:25 lovesegfault: I assume there will be some spec-digging to see what we're missing or misusing?
01:25 imirkin: the spec is the hardware
01:25 lovesegfault: What does that mean?
01:25 imirkin: there is no spec :)
01:26 lovesegfault: O.o
01:26 lovesegfault: H... what?
01:26 lovesegfault:is in denial
01:26 imirkin: they did make this available, but it doesn't really cover a bunch of this stuff...
01:26 lovesegfault: Also, how do you reverse eng. what the blob does?
01:26 imirkin: https://nvidia.github.io/open-gpu-doc/classes/display/cl917d.h
01:27 imirkin: stuff like that, which is (a) still not docs, and (b) only covers the "commands" that are sent to the display
01:27 imirkin: rather than all the programming that also has to happen on the side
01:27 imirkin: we RE using a tool called "mmiotrace"
01:27 imirkin: this basically tracks all reads/writes done by the blob
01:27 imirkin: and then we have a database of registers that we've RE'd
01:27 imirkin: and there's a tool to annotate such traces, so you can hopefully see what's going on
01:28 imirkin: as an example, here's the original change where i added hdmi 2.0 support:
01:29 imirkin: https://github.com/skeggsb/nouveau/commits/b971951e7ce55fbba23aa6837856cccfa9fd94b7
01:29 imirkin: look at the top 5 commits
01:30 imirkin: this was all done by analyzing mmiotrace's
01:30 imirkin: where i had loaded the nvidia driver and plugged/unplugged monitor, maybe changed resolutions (although i don't remember exactly)
01:31 imirkin: a lot of it is guess-work
01:31 imirkin: but, you know, educated guesses
01:32 lovesegfault: ansatz :D
01:48 lovesegfault: imirkin: Do I avoid all this by using DP (over USB-C)?
01:48 lovesegfault: And if so, why is DP less cursed than HDMI:
01:48 lovesegfault: *?
01:50 imirkin: coz skeggsb did DP
01:51 imirkin: (and then Lyude did a lot of fixing)
01:51 lovesegfault: :D
01:51 imirkin: DP is plenty cursed though
01:51 imirkin: don't worry
01:51 lovesegfault: Lessons in the video stack: It's all cursed
01:52 imirkin: to be clear, my testing was with a non-primary monitor
01:52 imirkin: it's a TV that i got, and was like "oh hey, let's try to get HDMI 2.0" working
01:52 imirkin: i plugged it in, seemed like it worked, i sent patches
01:53 lovesegfault: Yeah, work offered us all a stipend to buy WFH equipment
01:53 imirkin: i don't exactly have a validation lab of hundreds of monitors
01:53 Lyude: HDMI is also cursed
01:53 imirkin: or the hardware specs, so i don't really know what all i'm not doing
01:53 Lyude: just in different ways
01:53 lovesegfault: so I got a 4K monitor, and the rest you know
01:53 lovesegfault: Was VGA cursed?
01:54 Lyude: mst though? double cursed
01:54 imirkin: VGA was perfect. analog, infinite bpc
01:54 lovesegfault: Or that funny looking one, was it DPI?
01:54 Lyude: no hotplugging signals…
01:54 lovesegfault: DVI
01:54 imirkin: (pre-emptive shhhhh to anyone who mentions gain-bandwidth)
01:55 lovesegfault: I remember there was analogue and digital DVI
01:55 imirkin: Lyude: or EDID, back in the day :)
01:55 imirkin: DVI had both analog and digital pins
01:55 imirkin: more modern GPUs actually have DVI-D ports, so no analog pins
01:55 imirkin: and there was a very hypothetical DVI-A spec which *only* had the analog pins
01:56 imirkin: in practice, everything was DVI-I, which was both
01:56 Lyude: i think i have seen one dvi-a
01:56 lovesegfault: Wait, both analogue and digital?
01:56 lovesegfault: what's the point of that?
01:56 Lyude: sink end though
01:57 Lyude: lovesegfault: vga adaptors
01:57 lovesegfault: AH
01:57 lovesegfault: That makes sense
01:57 imirkin: so it was a round hole/square peg situation for VGA rather than some complex digital <-> analog thing
01:57 lovesegfault: What do these new USB-C displays use? DP over USB-C?
01:57 Lyude: lovesegfault: mostly
01:58 Lyude: but hdmi over usb-c is also a thing, but DP is almost always the default for alt-mode on computer monitors
01:59 lovesegfault: Why do we still have both DP and HDMI?
01:59 Lyude: usb-c itself is kinda better thought of as a container, since you can run multiple different standards over it (hdmi, thunderbolt, usb, dp…)
01:59 lovesegfault: I feel like one should've killed the other by now
01:59 Lyude: lovesegfault: patents/capitalism
02:00 Lyude: that's about it, dp is cheaper to use because you have to pay royalties for hdmi
02:00 lovesegfault: Ah, of course, patents
02:00 Lyude: but also dp has some kinda smarter designs then hdmi
02:01 Lyude: hdmi is basically "how fast can we make the pixel clock go"* (not thinking about the upcoming dsc stuff) and then they put ethernet and some other stuff over it sometimes
02:01 lovesegfault: Wait wait wait wait
02:01 lovesegfault: what
02:01 lovesegfault: WHAT
02:01 lovesegfault: there is ethernet over HDMI?
02:01 Lyude: yeah
02:01 lovesegfault: What the fucl
02:01 Lyude: it is surprisingly popular
02:02 lovesegfault: I am blown away
02:03 lovesegfault: Does linux support that?
02:03 lovesegfault: I'm also usually amazed when audio over hdmi works
02:03 Lyude: i am actually unsure
02:03 Lyude: well audio over hdmi is kinda easy usually on the hardware end
02:03 Lyude: *driver end
02:06 Lyude: it's sorta standardized, it's just a matter of knowing where to write the data
02:06 HdkR: I've...never seen a PC PCIe card that did HDMI output with ethernet. Theoretically there is some FPGA that supports it though. More likely a tv box situation that uses it
02:06 lovesegfault: I really want to connect two laptops together with HDMI and see what happens now
02:07 Lyude: HdkR: maybe some socs do it?
02:07 Lyude:shrugs
02:11 airlied: "A small number of advanced 3D Blu-ray players and Home Theatre receivers support for HDMI v1. 4 (aka "HDMI with Ethernet" or "HEC"), but today, this feature might be considered generally useless."
02:11 airlied: (the internet)
02:12 HdkR: haha
02:12 HdkR: I can understand a home theatre system for providing the Smart TV an internet connection over HDMI
02:22 imirkin: i had netgear switches a while back
02:22 imirkin: which used HDMI cables for their inter-switch "fabric" connection
02:22 imirkin: i'm sure not using the hdmi signalling standard itself, but ... clever idea to cut costs
02:24 lovesegfault: How does that cut costs?
02:24 imirkin: cheaper connector, no need to develop your own cables/etc
02:24 HdkR: Connections and cables are cheap purely from volume
02:24 HdkR: and high quality due to the signaling requirements of HDMI 2.0
02:24 lovesegfault: Ah, I see, makes sense
02:24 imirkin: well, this was like 2010, so no HDMI 2.0 yet
02:25 airlied: though I thought the connector had royalties
02:25 HdkR: Well, still decently high quality even at lower spec I guess :P
02:25 airlied: might still be cheaper
02:27 lovesegfault: My thinkpad uses a mini-DP port for ethernet
02:27 lovesegfault: (with an adaptor)
02:35 imirkin: well, i didn't do a cost analysis, i just know they had it
02:37 Conmanx360: Best way to deliver ethernet is through a home powerline
02:38 imirkin: https://www.eteknix.com/netgear-prosafe-gs724tps-24-port-gigabit-smart-stackable-poe-switch-review/3/
02:38 imirkin: look at the last photo of the stacking ports
02:39 Conmanx360: That's crazy. Didn't know they did that.
02:39 imirkin: (iirc we had the 48-port variants)
02:39 imirkin: (and no PoE ... but same idea)
02:40 Conmanx360: I mean, HDMI is just a serial connection, isn't it? I guess if you break most things down enough that's what they come to
12:48 rhyskidd: karolherbst: thanks for getting the runpm fix patch into 5.7!
22:41 Lyude: skeggsb: is there any special reason we use nvkm_rdaux() outside of nvkm instead of drm_dp_dpcd_read() so often in nouveau?
22:42 skeggsb: no, and we shouldn't be
22:42 Lyude: ah, cool
22:42 skeggsb: there's a sprinkle of stuff like that in the drm code, but we should move away from it if we're touching the code anyway
22:42 karolherbst: Lyude: where you ever looking into runpm with the nvidia driver? I doubt it, but I just wanted to make sure
22:42 Lyude: karolherbst: nope
22:42 karolherbst: :/
22:43 karolherbst: stupid nvidia driver
22:43 Lyude: karolherbst: nvidia can pay for fixing it if they'd like it fix
22:43 Lyude: *fixed
22:43 Lyude: :P
22:43 karolherbst: I hoped I could look into what nvidia does on that laptop with a turing gpu
22:43 karolherbst: but guess what
22:43 Lyude: oh it's broken isn't oit
22:43 karolherbst: nvidia doesn't do shit
22:43 karolherbst: I am sure I set this NVreg_DynamicPowerManagement module option correctly
22:43 Lyude: skeggsb: btw - reason I'm doing this is because I'm hooking up eDP backlight support for nouveau
22:44 karolherbst: the audio device also goes to sleep
22:44 karolherbst: and there is no usb controller
22:44 karolherbst: so
22:44 Lyude: karolherbst: lol, it doesn't even suspend it?
22:44 karolherbst: yes
22:44 Lyude: hah
22:44 karolherbst: yeah
22:44 skeggsb: Lyude: yeah, please do switch over to the drm versions, i'd like as few direct nvkm calls as possible :P
22:44 skeggsb: for future virt reasons, primarily
22:44 karolherbst: maybe I need to start X before they start doing shit though
22:44 karolherbst: mhhh
22:44 karolherbst: but that would be odd
22:45 karolherbst: Lyude: ohh my fault
22:45 karolherbst: I was stupid I think
22:46 karolherbst: had the laptop in discrete mode to look into that OLED stuff :)
22:49 karolherbst: ahh, now it works
22:50 karolherbst: okay.. interesting
22:53 karolherbst: okay, now I have stuff to do for tomorrow :)
22:53 karolherbst: Lyude: so yeah.. it seems like it works with the nvidia driver
22:54 karolherbst: ufff...
22:54 karolherbst: how they are lieing in theor readme
22:54 karolherbst: This feature requires system hardware as well as ACPI support (ACPI "_PR0" and "_PR3" methods are needed to control PCIe power). The necessary hardware and ACPI support was first added in Intel Coffeelake chipset series. Hence, this feature is supported from Intel Coffeelake chipset series.
22:54 karolherbst: kaby lake also has it
23:06 karolherbst: Lyude: hah...
23:07 karolherbst: soooo
23:07 karolherbst: mhhh
23:07 karolherbst: weird
23:07 karolherbst: nvm.. no idea what they do differently
23:18 karolherbst: skeggsb: so maybe we can indeed get rid of the workaround now that I can properly investigate this machine... would be cool, let's hope I find something out over the next days :)
23:18 karolherbst: I kind of assume they do crappy ACPI calls though...