display: Fix display actor getter/setter correctly 39/301639/2
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 16 Oct 2023 06:24:47 +0000 (15:24 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Tue, 21 Nov 2023 07:36:34 +0000 (16:36 +0900)
Getter for DEVICED_DISPLAY_ATTR_UINT64_ACTOR_CAPABILITY
 is now correctly returns capability.
Setter for DEVICED_DISPLAY_ATTR_TUPLE3_ACTOR_CAPABILITY
 is now correctly allocates actor->id.

Change-Id: I67773d32f154b7e499c18fd29de91f3e90054dbc
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
src/display/resource-display.c

index 299048a1acc820bef02869f27827e5b395f57a5d..911bf54f67e69539ecbec77ca85fec2cce3f3f66 100644 (file)
@@ -164,6 +164,7 @@ static int set_tuple3_display_attr_data(int resource_id,
                                actor = calloc(1, sizeof(struct syscommon_deviced_display_actor_ops));
                                if (!actor)
                                        return -ENOMEM;
+                               actor->id = id;
                                display_add_actor(actor);
                        }
 
@@ -276,9 +277,6 @@ static int get_display_attr_data_with_2_user_data(int resource_id,
        const struct syscommon_resman_resource_attribute *attr,
        void *user_data1, void *user_data2, int user_count1, int user_count2, void *data)
 {
-       int ret = 0;
-       resource_attr_data_t attr_data = { 0, };
-
        if (!data)
                return -EINVAL;
 
@@ -299,39 +297,9 @@ static int get_display_attr_data_with_2_user_data(int resource_id,
                         if (!actor)
                                 return -EINVAL;
 
-                        attr_data.u64 = display_has_caps(actor->caps, caps);
+                        *(int64_t *) data = display_has_caps(actor->caps, caps);
                }
                break;
-       default:
-               ret = -EINVAL;
-               break;
-       }
-
-       if (ret < 0)
-               return ret;
-
-       switch (attr->type) {
-       case SYSCOMMON_RESMAN_DATA_TYPE_INT:
-               *(int32_t *) data = attr_data.i32;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_INT64:
-               *(int64_t *) data = attr_data.i64;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_UINT:
-               *(uint32_t *) data = attr_data.u32;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_UINT64:
-               *(uint64_t *) data = attr_data.u64;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_DOUBLE:
-               *(double *) data = attr_data.d;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_PTR:
-               *(void **) data = attr_data.p;
-               break;
-       case SYSCOMMON_RESMAN_DATA_TYPE_BOOLEAN:
-               *(bool *) data = attr_data.b;
-               break;
        default:
                return -EINVAL;
        }