CSV-1550, CSV-7300, Synaptics VMM5330 and VIA Labs vl100 and vl103 woes

Updated on 03-12-2024 in MST Hub
5 on 08-05-2024

This is going to be more of a short how-to or thereabouts and a request for club3d to provide newer firmware for the chips mentioned in the topic.

Especially the CSV-1550 is advertised to work with at least Windows 10/11, but this is simply not true. I am unsure wether or not this affects every shipped unit or if some units are equipped with newer firmware that works. With my unit, it does not work. At all.

How the CSV-1550 and CSV-7300 work is that there is the Synaptics VMM5330 chip in them (found at https://www.synaptics.com/products/video-interface-ics datasheet can be found elsewhere for those curious) that acts as the MST hub for the displayport signal. In the CSV-1550 there is in addition a built-in usb-c alt-mode and power delivery controller chip to handle the usb-c port signaling to output a displayport signal and power for CSV-1550, the VIA Labs VL103 (https://www.via-labs.com/product_show.php?id=92 and specifically the vl103-q3 form factor chip).

Now for the fun part. Club3D (and startech and Delock afaik) used the reference design from synaptics for these devices and the only part that differs is the PCB layout. This can be seen with fwupdtool in linux. The VMM5330 attaches a sideband control channel into the displayport aux data channel through which its firmware can be updated. The VL103 similarly has an inband control channel through the usb-c connection (called a billboard device).

One needs the latest (at time of writing 1.9.19) version of fwupd for this to work since the older methods of accessing present in older versions of fwupd are obsolete and will not work. For at least debian and ubuntu, one can use the official(ish) snap (https://snapcraft.io/fwupd) versions of fwupd in case the system does not have this newer version directly available (this is not recommended for regular use with generic distros but will work for most cases).

To be able to access these devices at all, one needs some extra things to configure for fwupd. With the snap versions of fwupd, one needs to add the quirk files for the vmm5330 reference board and the vl100 and vl103 chips. These go into /var/snap/fwupd/common/var/lib/fwupd/quirks.d/. These two chips are not included to be accessed by fwupd by default and thus you need the contents of the following fwupd quirk files. VMM5330: https://github.com/fwupd/fwupd/blob/main/plugins/synaptics-mst/synaptics-mst-evb.quirk and VL100 and VL103: https://github.com/fwupd/fwupd/blob/main/plugins/vli/vli-noinst.quirk

After all this, one can use fwupd to see the devices and possibly push firmware onto them. Using “fwupdtool get-devices” one should see the vmm5330 and vl103 chips show up and report being upgradable. Afterwards if one gets the appropriate firmware blobs, one could push those with “install-blob FILENAME DEVICE-ID” (see the actual syntax for file and device-id from fwupd examples and such).

I have been mentioning the vl100 chip but talking about vl103 the whole time? CSV-7300 is an identical device to CSV-1550, only that the vl103 chip has been removed from it and it requires external power via a usb cable. One can use CAC-1567 to output a displayport signal from a usb-c port and lo and behold, it holds a vl100 chip which can be accessed identically. Internally the vl103 chip has the vl100 functionality and has slapped on the power deliver in addition. The CAC-1567 ironically works whereas the vl103 chip included CSV-1550 does not for whatever reason.

Heres the Club3D part. There are known issues with the VMM5330 and VL103 chips that have newer firmware available from Synaptics and VIA Labs. For instance CSV-7300 (and propably CSV-1550, but with the vl103, this propable renders the device inoperable) suffers from intermittent blacking out and loss of clock signal on the outputs that is not fixable via any cabling replacements or other physical signal boosting methods. It in addition suffers from DSC input and output decompression issues with the shipped version of the firmware (in my devices 5.04.01). I am certain that the VIA Labs chips suffer from some kind of issues as well but they are more elusive in nature.

I implore Club3D to provide newer firmwares for these devices (CSV-1550, CSV-7300, CAC-1567) that would according to Synaptics and some personal research fix many of the issues people are facing with these devices. At the end, i will repeat that the CSV-1550 does _not_ work with even Windows 10/11, thus the newer firmwares for the chips would likely be a requirement for them to work at all.

 
  • Liked by
Reply
0 on 09-05-2024

Is there an MST hub that supports DSC decompression for 10bpc color depth (required for HDR)? All the Synaptics MST hubs I have appear to have DSC decompression limited to 8bpc.

DSC decompression is required for displays that don’t support DSC when you want to connect multiple such displays to an MST hub where the bandwidth would exceed the maximum bandwidth of a DisplayPort port without DSC. For example, three 4K60 8bpc displays is ≈39 Gbps but DisplayPort can only do 25.92 Gbps.

With DSC, 8bpc and 10bpc both end up being compressed to 12bpp (or whatever the target bpp is for your OS/driver combination). So one would think that connecting three 4K60 10bpc displays should be possible, but the MST hubs don’t allow 10bpc decompression. Maybe they don’t have enough processing power. I haven’t checked the latest MST hubs.

Below are some fwupd MST hub related discussions. Some of them list the MST hubs I have.

https://github.com/fwupd/fwupd/issues/1665
https://github.com/fwupd/fwupd/pull/2923
https://github.com/fwupd/fwupd/discussions/3562

 

  • Liked by
Reply
Cancel
0 on 09-05-2024

The capabilities of an MST hub are listed in the DPCD info. I made a utility for macOS to dump that info. https://github.com/joevt/AllRez   . It can also read DPCD info for displays and other MST hubs attached to the MST hub.

There should be similar utilities for Linux. DPCD info may be available in Linux from sysfs. I suppose the code in AllRez for dumping the DPCD could be ported to Linux.

  • Liked by
Reply
Cancel
0 on 10-05-2024

The VMM5330 datasheet does at least claim to support the following:

DP output mode features
– 1.0V main-link operation
– Manchester AUX (I2C, Native)
– 1, 2, or 4 lane configurations
– 8.1, 5.4, 2.7, or 1.62 Gbps per lane
– Forward Error Correction (MST only)
– SST or up to 4 stream MST
– 6, 8, 10, 12 bpc video
– 1280 Mpps max stream clock
– Sideband messaging
– DSC1.2 compressed video transport (MST only)
– DSC1.2 decompressed stream (SST only)

And the same is supported in the input as well:

Input interfaces
– One receiver capable of DP1.4 operation
– ViewXpand SST horizontal splitting
– Hot Plug Detect (HPD)
– HDCP v1.4/v2.2 compliant
– EDID, MCCS support
– Interlaced and 3D video
– RGB, YCC444, YCC422, YCC420
– 1-32 channels of LPCM audio including HBR audio
rates
– IEC 61937 compressed audio
– 1.0V main-link operation
– Manchester AUX (I2C, Native)
– 1, 2, or 4 lane configurations
– 8.1, 5.4, 2.7, or 1.62 Gbps per lane
– Forward Error Correction
– SST or up to 12 stream MST
– 6, 8, 10, 12 bpc video
– 1280 Mpps max stream clock
– Sideband messaging
– DSC1.2 transport and up to 4-slice decompression
– High Dynamic Range (HDR) video

So at least it _should_ all be supported. My guess is at this point that its the vl100 or vl103 firmware that is causing some kind of a displayport issue with the video initialization. I got a newer firmware for the vmm5330 chip (5.05.207) from Club3D however this only stabilized the device so that the clock signal was always coherent but sync for video or audio streams still does not work. At least it fails consistently now.

The last option for linux issues at least, would propably be an amdgpu (or the windows amd display driver) driver issue or something i am not even able to take into account right now.

Debugging the kernel and a possible amdgpu and/or drm driver issue will take considerable time so im hoping i could get a newer firmware for the VIA Labs chip before i dive into that rabbithole…

  • Liked by
Reply
Cancel
0 on 28-05-2024

Well. After testing quite a bit, there are some amdgpu issues with this and AMD 780M, but i can conclude that the issue is indeed in the vl103 chip used with the CSV-1550. I ordered a https://www.delock.com/produkt/88041/merkmale.html?f=s and this works flawlessly with a new enough kernel on linux and somewhat well-ish on windows given one manages to force a retrain on some of the vmm5330 displayport outputs. The delock product uses a different vendors usb-c alt-mode chip which does not rely on any displayport sinks being connected to the device for it to become active as an alt-mode billboard device. I contacted Club3D for firmware for CSV-1550 vl103 chip but they have not responded back.

In conclusion, i can recommend the competitor product as a fully working alternative and hope that Club3D answers with a new firmware for the vl103 chip.

PS. using the CSV-7300 works with the new firmware in conjuction with CAC-1567, but the CAC-1567 overheats and becomes dysfunctional with the combination after a while until it can cool down again.

Hopefully this thread will find the SEO engines and help someone with a triple display 1440p setup such as mine.

PPS. ultimately the setup that i have is https://www.store.level1techs.com/products/p/14-kvm-switch-triple-monitor-2computer-pne46-fxlmw with the aforementioned delock mst hub and i can without issues switch between two computers and three monitors.

  • Liked by
Reply
Cancel
0 on 03-12-2024

I have a VMM5330 based 1-to-3 Displayport hub, connected to one of the DP ports of the AMD 7900 XTX. And this drives 3 monitors, with an additional 4th monitor connected to the GPU directly.

After the mentioned quircks applied, I was able to see the devices with fwupd

EVB development board:
    Device ID:          6b41cfa386381bb667f5782230840bafa80c1b7a
    Summary:            Multi-stream transport device
    Current version:    5.06.104
    Vendor:             Synaptics (DRM_DP_AUX_DEV:0x06CB)
    GUIDs:              82fe21c4-bd79-510b-ac6a-837fbd71ed80 ← MST-2
                        efb1e088-0b1b-5e6f-805f-ce252433fbfb ← MST-panamera_evb-2
                        7d42be6b-1d93-55d2-be6a-cb20c37a07e9 ← MST-panamera_evb-vmm5330-2
                        6a48e033-c337-5fac-8950-c348fcc658f6 ← MST-panamera-vmm5330-2
                        7c0b3298-0d20-5392-9d7b-42e5b4d0f274 ← MST-panamera-2
    Device Flags:       • Updatable
                        • Device stages updates
                        • Unsigned Payload
                        • Can tag for emulation
    Device Requests:    • Message

VL812 Hub:
    Device ID:          482cbd874881a3c3c52fd70939c4b2118b58e10c
    Summary:            USB 2.x hub
    Current version:    90.84
    Vendor:             VIA Labs, Inc. (USB:0x2109)
    Install Duration:   10 seconds
    GUIDs:              7aaf809e-a3f1-5beb-8a28-09e44471534b ← USB\VID_2109&PID_0812
                        f1175e69-cf09-55de-b71b-da24d8f331d4 ← USB\VID_2109&PID_0812&HUB_0000
                        775048cc-f382-5163-be9a-a8af643faf4b ← USB\VID_2109&PID_0812&SPI_7F9D
                        4f7447e9-9ae0-585d-962c-efa1da294015 ← USB\VID_2109&PID_0812&SPI_7F9D&REV_9084
    Device Flags:       • Updatable
                        • Cryptographic hash verification is available
                        • Unsigned Payload
                        • Can tag for emulation

VL812 Hub:
    Device ID:          f84b32291a696374a384c6715a8addee78738b64
    Summary:            USB 2.x hub
    Current version:    90.84
    Vendor:             VIA Labs, Inc. (USB:0x2109)
    Install Duration:   10 seconds
    GUIDs:              7aaf809e-a3f1-5beb-8a28-09e44471534b ← USB\VID_2109&PID_0812
                        f1175e69-cf09-55de-b71b-da24d8f331d4 ← USB\VID_2109&PID_0812&HUB_0000
                        775048cc-f382-5163-be9a-a8af643faf4b ← USB\VID_2109&PID_0812&SPI_7F9D
                        4f7447e9-9ae0-585d-962c-efa1da294015 ← USB\VID_2109&PID_0812&SPI_7F9D&REV_9084
    Device Flags:       • Updatable
                        • Cryptographic hash verification is available
                        • Unsigned Payload
                        • Can tag for emulation

It mostly works okay, but from time to time, every several minutes, the monitors will go blank for several seconds. And often this is accompanies with the following messages in dmesg,

[ 2648.118641] [drm] Send DSC disable to synaptics
[ 2648.459568] [drm] Send DSC enable to synaptics
[ 2648.731560] [drm] Send DSC enable to synaptics
[ 2649.003567] [drm] Send DSC enable to synaptics

The device itself is a no brand offered by hundreds of Chinese sellers. For example, https://www.amazon.com/dp/B09V2SWF48

  • Liked by
Reply
Cancel