[RFC] drm + i915 DP MST code preview

Aaron Plattner aplattner at nvidia.com
Wed May 7 09:46:19 PDT 2014

On 05/07/2014 01:07 AM, Daniel Vetter wrote:
> On Wed, May 07, 2014 at 12:16:37AM -0700, Aaron Plattner wrote:
>> On 05/03/2014 02:00 AM, Chris Wilson wrote:
>>> On Sat, May 03, 2014 at 07:08:02AM +1000, Dave Airlie wrote:
>>>> On 2 May 2014 18:52, Chris Wilson <chris at chris-wilson.co.uk> wrote:
>>>>> On Fri, May 02, 2014 at 02:39:37PM +1000, Dave Airlie wrote:
>>>> the GUID is only on DP 1.2 devices, so you don't get one for ever
>>>> port, also GUIDs are wiped on powerdown on most devices, default GUID
>>>> is 0 except where devices have USB hubs as well, so it probably
>>>> doesn't make much sense to bother exposing them directly.
>>> Ok. It looks like if we do attempt to maintain persistent naming, we need
>>> to do it in the kernel anyway. That is to make sure that a downstream
>>> device always has the same type-id upon reconnection - at least for the
>>> lifetime of module. Or maybe the output name is irrelevant for
>>> preserving extended desktop configurations?
>> Dunno if it helps, but for roughly similar reasons we ended up naming the
>> outputs based on their topology paths in the NVIDIA driver.  So for example
>> a port named DP-3 that has a Dell UP2414Q attached will show up as two
>> outputs named DP-3.1 and DP-3.8 since its internal bridge uses downstream
>> ports 1 and 8.  This has worked out fairly well in practice.
>> Here's how I described it in the README:
>>      When DisplayPort 1.2 branch devices are present, display
>>      devices will be created with type- and connector-based names
>>      that are based on how they are connected to the branch device
>>      tree. For example, if a connector named DP-2 has a branch
>>      device attached and a DisplayPort device is connected to the
>>      branch device's first downstream port, a display device named
>>      DP-2.1 might be created. If another branch device is
>>      connected between the first branch device and the display
>>      device, the name might be DP-2.1.1.
>>      To avoid cluttering the output list, DisplayPort 1.2 devices
>>      can be deleted when they are no longer connected and are not
>>      named in any MetaModes. This behavior can be enabled with the
>>      DeleteUnusedDP12Displays option.
>> http://us.download.nvidia.com/XFree86/Linux-x86/337.19/README/displaydevicenames.html
> I'm unclear how you name non-DP branch devices. Do they show up as
> DP-2.1-HDMI or something similar? Or do you just keep the DP-2.1 name but
> set the connector type to HDMI?

I don't have any branches that support passive adapters on downstream 
ports, so I'm not sure what happens with those.

> In general I think your prosoal of adding branch downstream ports to name
> MST connectors sounds really good. The kms object ids will still be
> random, but at least if users connect the same topology to the same ports
> we should have stable names.

Yeah, the RandR output XIDs work the same way.

> And of course userspace can still check the EDID serial.
> -Daniel

More information about the dri-devel mailing list