From 8a9fe134f2eecaf8701fe6833c28b6b53ea215f8 Mon Sep 17 00:00:00 2001
From: Suvendhu Hansa <suvendhu.hansa@iopsys.eu>
Date: Thu, 18 Jul 2024 20:43:30 +0530
Subject: [PATCH] Draft: added dm params

---
 src/datamodel.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/datamodel.c b/src/datamodel.c
index 2ed5775..ce6e29f 100644
--- a/src/datamodel.c
+++ b/src/datamodel.c
@@ -912,7 +912,7 @@ static int get_USBUSBHostsHostDevice_DeviceNumber(char *refparam, struct dmctx *
 static int get_USBUSBHostsHostDevice_USBVersion(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
 {
 	struct dm_data *p = (struct dm_data *)data;
-	return read_sysfs_usb_port(p->additional_data, "bcdDevice", value);
+	return read_sysfs_usb_port(p->additional_data, "version", value);
 }
 
 static int get_USBUSBHostsHostDevice_DeviceClass(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
@@ -927,6 +927,12 @@ static int get_USBUSBHostsHostDevice_DeviceSubClass(char *refparam, struct dmctx
 	return read_sysfs_usb_port(p->additional_data, "bDeviceSubClass", value);
 }
 
+static int get_USBUSBHostsHostDevice_DeviceVersion(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
+{
+	struct dm_data *p = (struct dm_data *)data;
+	return read_sysfs_usb_port(p->additional_data, "bcdDevice", value);
+}
+
 static int get_USBUSBHostsHostDevice_DeviceProtocol(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
 {
 	struct dm_data *p = (struct dm_data *)data;
@@ -1069,6 +1075,21 @@ static int get_USBUSBHostsHostDevice_IsSuspended(char *refparam, struct dmctx *c
 	return 0;
 }
 
+static int get_USBUSBHostsHostDevice_IsSelfPowered(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
+{
+#if 0
+	char status[16] = {0};
+	struct dm_data *p = (struct dm_data *)data;
+
+	__read_sysfs_usb_port(p->additional_data, "power/runtime_status", status, sizeof(status));
+	if(DM_LSTRNCMP(status, "suspended", 9) == 0)
+		*value= "1";
+	else
+		*value = "0";
+#endif
+	return 0;
+}
+
 static int get_USBUSBHostsHostDevice_ConfigurationNumberOfEntries(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
 {
 	struct dm_data *p = (struct dm_data *)data;
@@ -1232,7 +1253,7 @@ DMLEAF tUSBUSBHostsHostDeviceParams[] = {
 {"USBVersion", &DMREAD, DMT_STRING, get_USBUSBHostsHostDevice_USBVersion, NULL, BBFDM_BOTH},
 {"DeviceClass", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceClass, NULL, BBFDM_BOTH},
 {"DeviceSubClass", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceSubClass, NULL, BBFDM_BOTH},
-//{"DeviceVersion", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_DeviceVersion, NULL, BBFDM_BOTH},
+{"DeviceVersion", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_DeviceVersion, NULL, BBFDM_BOTH},
 {"DeviceProtocol", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceProtocol, NULL, BBFDM_BOTH},
 {"ProductID", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_ProductID, NULL, BBFDM_BOTH},
 {"VendorID", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_VendorID, NULL, BBFDM_BOTH},
@@ -1245,7 +1266,7 @@ DMLEAF tUSBUSBHostsHostDeviceParams[] = {
 {"Parent", &DMREAD, DMT_STRING, get_USBUSBHostsHostDevice_Parent, NULL, BBFDM_BOTH, DM_FLAG_REFERENCE},
 {"MaxChildren", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_MaxChildren, NULL, BBFDM_BOTH},
 {"IsSuspended", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSuspended, NULL, BBFDM_BOTH},
-//{"IsSelfPowered", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSelfPowered, NULL, BBFDM_BOTH},
+{"IsSelfPowered", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSelfPowered, NULL, BBFDM_BOTH},
 {"ConfigurationNumberOfEntries", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_ConfigurationNumberOfEntries, NULL, BBFDM_BOTH},
 {0}
 };
-- 
GitLab