[RFC] drm + i915 DP MST code preview
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.
> 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.
More information about the dri-devel