util: resource: Make resource has its own driver 82/270882/2
authorDongwoo Lee <dwoo08.lee@samsung.com>
Thu, 10 Feb 2022 11:42:14 +0000 (20:42 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 11 Feb 2022 00:56:59 +0000 (00:56 +0000)
Change-Id: I5355dd10289ecd51546b7db26ee769439c17a734
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
include/util/resource.h
src/util/resource.c

index c996f7d..f6a18f9 100644 (file)
@@ -95,6 +95,7 @@ struct resource_device {
 
 struct resource {
        char *name;
+       const struct resource_driver *driver;
        int type;
        int index;
        void *user_data;
index c71c10b..25def15 100644 (file)
@@ -144,19 +144,11 @@ static void do_delete_resource(struct resource *resource)
 
 void delete_resource(struct resource *resource)
 {
-       const struct resource_driver *driver = NULL;
-
        if (!resource)
                return;
 
-       driver = find_resource_driver(resource->type);
-       if (!driver) {
-               _E("failed to find driver for resource type: %d\n", resource->type);
-               return;
-       }
-
-       if (driver->ops.exit)
-               driver->ops.exit(resource);
+       if (resource->driver && resource->driver->ops.exit)
+               resource->driver->ops.exit(resource);
 
        do_delete_resource(resource);
 }
@@ -195,6 +187,7 @@ struct resource *create_resource(int resource_type, int resource_index,
                resource->name = g_strdup(driver->name);
                resource->index = resource_index;
        }
+       resource->driver = driver;
        resource->user_data = user_data;
        resource->num_attrs = driver->num_attrs;
        resource->attrs = driver->attrs;