bool b;
} resource_attr_data_t;
+static int display_get_lcd_state_from_display_state(enum syscommon_deviced_display_state display_state, int *lcd_state)
+{
+ if (!lcd_state)
+ return -EINVAL;
+
+ switch (display_state) {
+ case SYSCOMMON_DEVICED_DISPLAY_STATE_ON:
+ *lcd_state = LCD_NORMAL;
+ break;
+ case SYSCOMMON_DEVICED_DISPLAY_STATE_DIM:
+ *lcd_state = LCD_DIM;
+ break;
+ case SYSCOMMON_DEVICED_DISPLAY_STATE_OFF:
+ *lcd_state = LCD_OFF;
+ break;
+ case SYSCOMMON_DEVICED_DISPLAY_STATE_SLEEP:
+ *lcd_state = SUSPEND;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int set_display_attr_data(int resource_id,
const struct syscommon_resman_resource_attribute *attr,
const void *data, int count)
const struct syscommon_resman_resource_attribute *attr,
const void *data1, const void *data2, int count1, int count2)
{
+ int ret = 0;
+
if (!data1 || !data2)
return -EINVAL;
display_panel_lcd_on_direct(flag);
return 0;
}
+ case DEVICED_DISPLAY_ATTR_TUPLE2_CURRENT_STATE_WITH_OPTION:
+ {
+ pid_t pid = *(pid_t *) data1;
+ enum syscommon_deviced_display_state display_state = *(enum syscommon_deviced_display_state *) data2;
+ int flag;
+
+ ret = display_get_lcd_state_from_display_state(display_state, &flag);
+ if (ret < 0)
+ return ret;
+
+ ret = display_state_transition_request_state_transition_with_option(pid, flag);
+ return ret;
+ }
break;
}
const struct syscommon_resman_resource_attribute *attr,
const void *data1, const void *data2, const void *data3, int count1, int count2, int count3)
{
+ int ret = 0;
+
if (!data1 || !data2 || !data3)
return -EINVAL;
actor->caps &= ~caps;
}
break;
+ case DEVICED_DISPLAY_ATTR_TUPLE3_UNLOCK_WITH_OPTION:
+ {
+ enum deviced_event display_event_type = *(enum deviced_event *) data1;
+ enum syscommon_deviced_display_state display_state = *(enum syscommon_deviced_display_state *) data2;
+ unsigned long display_lock_flag = *(unsigned long *) data3;
+ int lcd_state = 0;
+
+ ret = display_get_lcd_state_from_display_state(display_state, &lcd_state);
+ if (ret < 0)
+ return ret;
+
+ ret = display_lock_request_unlock_with_option(display_event_type, lcd_state, display_lock_flag);
+ if (ret < 0)
+ return ret;
+ }
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int set_tuple4_display_attr_data(int resource_id,
+ const struct syscommon_resman_resource_attribute *attr,
+ const void *data1, const void *data2, const void *data3, const void *data4,
+ int count1, int count2, int count3, int count4)
+{
+ int ret = 0;
+
+ if (!data1 || !data2 || !data3 || !data4)
+ return -EINVAL;
+
+ switch (attr->id) {
+ case DEVICED_DISPLAY_ATTR_TUPLE4_LOCK_WITH_OPTION:
+ {
+ enum deviced_event display_event_type = *(enum deviced_event *) data1;
+ enum syscommon_deviced_display_state display_state = *(enum syscommon_deviced_display_state *) data2;
+ unsigned long display_state_flag = *(unsigned long *) data3;
+ int display_state_timeout = *(unsigned long *) data4;
+ int lcd_state = 0;
+
+ ret = display_get_lcd_state_from_display_state(display_state, &lcd_state);
+ if (ret < 0)
+ return ret;
+
+ ret = display_lock_request_lock_with_option(display_event_type, lcd_state, display_state_flag, display_state_timeout);
+ if (ret < 0)
+ return ret;
+ }
+ break;
default:
return -EINVAL;
}
.get = get_display_attr_data,
.is_supported = syscommon_resman_resource_attr_supported_always,
},
+ }, {
+ .name = "DEVICED_DISPLAY_ATTR_TUPLE2_CURRENT_STATE_WITH_OPTION",
+ .id = DEVICED_DISPLAY_ATTR_TUPLE2_CURRENT_STATE_WITH_OPTION,
+ .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+ .type = SYSCOMMON_RESMAN_DATA_TYPE_2_UINT64,
+ .ops = {
+ .set_2_tuple = set_tuple2_display_attr_data,
+ .is_supported = syscommon_resman_resource_attr_supported_always,
+ },
+ }, {
+ .name = "DEVICED_DISPLAY_ATTR_TUPLE4_LOCK_WITH_OPTION",
+ .id = DEVICED_DISPLAY_ATTR_TUPLE4_LOCK_WITH_OPTION,
+ .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+ .type = SYSCOMMON_RESMAN_DATA_TYPE_4_UINT64,
+ .ops = {
+ .set_4_tuple = set_tuple4_display_attr_data,
+ .is_supported = syscommon_resman_resource_attr_supported_always,
+ },
+ }, {
+ .name = "DEVICED_DISPLAY_ATTR_TUPLE3_UNLOCK_WITH_OPTION",
+ .id = DEVICED_DISPLAY_ATTR_TUPLE3_UNLOCK_WITH_OPTION,
+ .flag = SYSCOMMON_RESMAN_RESOURCE_FLAG_PUBLIC,
+ .type = SYSCOMMON_RESMAN_DATA_TYPE_3_UINT64,
+ .ops = {
+ .set_3_tuple = set_tuple3_display_attr_data,
+ .is_supported = syscommon_resman_resource_attr_supported_always,
+ },
}
};