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

Lyude Paul lyude at redhat.com
Tue Jul 16 20:28:19 UTC 2019


On Tue, 2019-07-16 at 18:28 +0000, Li, Sun peng (Leo) wrote:
> 
> 
> On 2019-07-10 6:50 p.m., Lyude Paul wrote:
> > 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.
> 
> Funny enough, I was originally trying to make this work for SST devices.
> It didn't make sense to have by-name and by-path, but only have SST
> exist in the by-name symlinks. The question there was "what to use for
> sst paths?" Eventually I settled with keeping this purely for user
> friendliness. But since discussion is already underway for a better
> 'path', it makes sense to delay this.

Yeah-I think Ville's suggestion of making object IDs global instead of per-
device might be what we want to  go with, but getting the aux dev stuff in the
kernel first is priority imo

> 
> > 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.>
> 
> Sounds fair, going to spin up v3.
> 
> Thanks!
> Leo
> 
> > 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
> > >  };
> > >  
-- 
Cheers,
	Lyude Paul



More information about the amd-gfx mailing list