A connector can't be identified by a name, so add a configfs file to
retrieve its id.

Signed-off-by: Louis Chauvet <louis.chau...@bootlin.com>
---
 drivers/gpu/drm/vkms/vkms_configfs.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/gpu/drm/vkms/vkms_configfs.c 
b/drivers/gpu/drm/vkms/vkms_configfs.c
index 
09d9ac3cb3e25e980473686b7b0d2e66e78cf163..76f28862c7652fbd9e84c42b60ad818ddee1485b
 100644
--- a/drivers/gpu/drm/vkms/vkms_configfs.c
+++ b/drivers/gpu/drm/vkms/vkms_configfs.c
@@ -814,12 +814,31 @@ static ssize_t connector_status_store(struct config_item 
*item,
        return count;
 }
 
+static ssize_t connector_id_show(struct config_item *item, char *page)
+{
+       struct vkms_configfs_device *vkms_configfs =
+               connector_child_item_to_vkms_configfs_device(item);
+       struct vkms_config_connector *connector;
+
+       scoped_guard(mutex, &vkms_configfs->lock)
+       {
+               connector = 
connector_item_to_vkms_configfs_connector(item)->vkms_config_connector;
+               if (vkms_configfs->enabled)
+                       return sprintf(page, "%d\n",
+                                      connector->connector->base.id);
+               return -EINVAL;
+       }
+       return -EINVAL;
+}
+
 CONFIGFS_ATTR(connector_, type);
 CONFIGFS_ATTR(connector_, status);
+CONFIGFS_ATTR_RO(connector_, id);
 
 static struct configfs_attribute *connector_attrs[] = {
        &connector_attr_type,
        &connector_attr_status,
+       &connector_attr_id,
        NULL,
 };
 

-- 
2.47.1

Reply via email to