Hi Won, Thanks for the patch, I have now merged to drm-misc-next
Regards Manasi On Mon, Apr 17, 2023 at 3:52 PM Manasi Navare <navareman...@google.com> wrote: > > On Tue, Mar 28, 2023 at 6:45 PM Won Chung <wonch...@google.com> wrote: > > > > Expose DRM connector id in device sysfs so that we can map the connector > > id to the connector syspath. Currently, even if we can derive the > > connector id from modeset, we do not have a way to find the > > corresponding connector's syspath. > > > > This is helpful when determining the root connector of MST tree. When a > > tree of multiple MST hub is connected to the system, modeset describes > > the tree in the PATH blob. For example, consider the following scenario. > > > > +-------------+ > > | Source | +-------------+ > > | (Device) | | BranchX | > > | | | (MST) | > > | [conn6]--->| [port1]--->DisplayA > > +-------------+ | | > > | | +-------------+ > > | | | BranchY | > > | | | (MST) | > > | [port2]--->| [port1]----->DisplayB > > +-------------+ | | > > | [port2]----->DisplayC > > +-------------+ > > > > DPMST connector of DisplayA would have "mst:6-1" PATH. > > DPMST connector of DisplayB would have "mst:6-2-1" PATH. > > DPMST connector of DisplayC would have "mst:6-2-2" PATH. > > > > Given that connector id of 6 is the root of the MST connector tree, we > > can utilize this patch to parse through DRM connectors sysfs and find > > which connector syspath corresponds to the root connector (id == 6). > > > > ChromeOS intend to use this information for metrics collection. For > > example, we want to tell which port is deriving which displays even with > > a MST hub. Chromium patch for parsing DRM connector id from the kernel > > is at http://crrev.com/c/4317207. > > > > Signed-off-by: Won Chung <wonch...@google.com> > > Exposing connector id in device sysfs looks good to me. > > Reviewed-by: Manasi Navare <navareman...@chromium.org> > > Manasi > > > --- > > drivers/gpu/drm/drm_sysfs.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c > > index 183130355997..11f98c5d6103 100644 > > --- a/drivers/gpu/drm/drm_sysfs.c > > +++ b/drivers/gpu/drm/drm_sysfs.c > > @@ -282,16 +282,27 @@ static ssize_t modes_show(struct device *device, > > return written; > > } > > > > +static ssize_t connector_id_show(struct device *device, > > + struct device_attribute *attr, > > + char *buf) > > +{ > > + struct drm_connector *connector = to_drm_connector(device); > > + > > + return sysfs_emit(buf, "%d\n", connector->base.id); > > +} > > + > > static DEVICE_ATTR_RW(status); > > static DEVICE_ATTR_RO(enabled); > > static DEVICE_ATTR_RO(dpms); > > static DEVICE_ATTR_RO(modes); > > +static DEVICE_ATTR_RO(connector_id); > > > > static struct attribute *connector_dev_attrs[] = { > > &dev_attr_status.attr, > > &dev_attr_enabled.attr, > > &dev_attr_dpms.attr, > > &dev_attr_modes.attr, > > + &dev_attr_connector_id.attr, > > NULL > > }; > > > > -- > > 2.40.0.348.gf938b09366-goog > >