[PATCH v2] drm/sysfs: Add mstpath attribute to connector devices

Lyude Paul lyude at redhat.com
Wed Jul 10 22:50:54 UTC 2019


gah. So, I was originally going to ask "why didn't we add the connector name
into this?", but then I realized we're doing the right thing already and just
doing card%d-%s % (card_number, path_prop). Which means we probably really don't
want to add a property called mstpath, since it's hardly different from path
(whoops!).

Additionally, after some thinking I realized I may have made a mistake as I'm
not entirely sure if we would need to specify the DRM card in the path prop for
udev, considering that's specified in the sysfs path all ready. Even if I'm
wrong on that though, I think it might be better not to add an mstpath property
and just go the route of just adding a new path_v2 property that we could use
for both MST and non-MST connector paths. (I cc'd you on the email thread about
this, so you can read more about this there.

So, I would actually suggest we just drop this patch entirely for now. We should
be fine without it, even though the dp_aux_dev paths will be kind of ugly for a
little while. I'd rather the rest of this series get upstream first, and try to
do the path prop stuff separately.


On Fri, 2019-07-05 at 10:32 -0400, sunpeng.li at amd.com wrote:
> From: Leo Li <sunpeng.li at amd.com>
> 
> This can be used to create more descriptive symlinks for MST aux
> devices. Consider the following udev rule:
> 
> SUBSYSTEM=="drm_dp_aux_dev", SUBSYSTEMS=="drm", ATTRS{mstpath}=="?*",
> 	SYMLINK+="drm_dp_aux/by-path/$attr{mstpath}"
> 
> The following symlinks will be created (depending on your MST topology):
> 
> $ ls /dev/drm_dp_aux/by-path/
> card0-mst:0-1  card0-mst:0-1-1  card0-mst:0-1-8  card0-mst:0-8
> 
> v2: remove unnecessary locking of mode_config.mutex
> 
> Signed-off-by: Leo Li <sunpeng.li at amd.com>
> ---
>  drivers/gpu/drm/drm_sysfs.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
> index ad10810bc972..7d483ab684a0 100644
> --- a/drivers/gpu/drm/drm_sysfs.c
> +++ b/drivers/gpu/drm/drm_sysfs.c
> @@ -236,16 +236,36 @@ static ssize_t modes_show(struct device *device,
>  	return written;
>  }
>  
> +static ssize_t mstpath_show(struct device *device,
> +			    struct device_attribute *attr,
> +			    char *buf)
> +{
> +	struct drm_connector *connector = to_drm_connector(device);
> +	ssize_t ret = 0;
> +	char *path;
> +
> +	if (!connector->path_blob_ptr)
> +		return ret;
> +
> +	path = connector->path_blob_ptr->data;
> +	ret = snprintf(buf, PAGE_SIZE, "card%d-%s\n",
> +		       connector->dev->primary->index, path);
> +
> +	return ret;
> +}
> +
>  static DEVICE_ATTR_RW(status);
>  static DEVICE_ATTR_RO(enabled);
>  static DEVICE_ATTR_RO(dpms);
>  static DEVICE_ATTR_RO(modes);
> +static DEVICE_ATTR_RO(mstpath);
>  
>  static struct attribute *connector_dev_attrs[] = {
>  	&dev_attr_status.attr,
>  	&dev_attr_enabled.attr,
>  	&dev_attr_dpms.attr,
>  	&dev_attr_modes.attr,
> +	&dev_attr_mstpath.attr,
>  	NULL
>  };
>  



More information about the dri-devel mailing list