Lines Matching defs:property
886 * drm_mode_create_scaling_mode_property - create scaling mode property
911 * drm_mode_create_dithering_property - create dithering property
935 * drm_mode_create_dirty_property - create dirty property
1059 struct drm_property *property, *pt;
1073 list_for_each_entry_safe(property, pt, &dev->mode_config.property_list,
1075 drm_property_destroy(dev, property);
2750 struct drm_property *property = NULL;
2753 property = malloc(sizeof(struct drm_property), DRM_MEM_KMS,
2757 property->values = malloc(sizeof(uint64_t)*num_values, DRM_MEM_KMS,
2760 ret = drm_mode_object_get(dev, &property->base, DRM_MODE_OBJECT_PROPERTY);
2764 property->flags = flags;
2765 property->num_values = num_values;
2766 INIT_LIST_HEAD(&property->enum_blob_list);
2769 strncpy(property->name, name, DRM_PROP_NAME_LEN);
2770 property->name[DRM_PROP_NAME_LEN-1] = '\0';
2773 list_add_tail(&property->head, &dev->mode_config.property_list);
2774 return property;
2776 free(property->values, DRM_MEM_KMS);
2777 free(property, DRM_MEM_KMS);
2787 struct drm_property *property;
2792 property = drm_property_create(dev, flags, name, num_values);
2793 if (!property)
2797 ret = drm_property_add_enum(property, i,
2801 drm_property_destroy(dev, property);
2806 return property;
2815 struct drm_property *property;
2820 property = drm_property_create(dev, flags, name, num_values);
2821 if (!property)
2825 ret = drm_property_add_enum(property, i,
2829 drm_property_destroy(dev, property);
2834 return property;
2842 struct drm_property *property;
2846 property = drm_property_create(dev, flags, name, 2);
2847 if (!property)
2850 property->values[0] = min;
2851 property->values[1] = max;
2853 return property;
2857 int drm_property_add_enum(struct drm_property *property, int index,
2862 if (!(property->flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)))
2869 if ((property->flags & DRM_MODE_PROP_BITMASK) && (value > 63))
2872 if (!list_empty(&property->enum_blob_list)) {
2873 list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
2888 property->values[index] = value;
2889 list_add_tail(&prop_enum->head, &property->enum_blob_list);
2894 void drm_property_destroy(struct drm_device *dev, struct drm_property *property)
2898 list_for_each_entry_safe(prop_enum, pt, &property->enum_blob_list, head) {
2903 if (property->num_values)
2904 free(property->values, DRM_MEM_KMS);
2905 drm_mode_object_put(dev, &property->base);
2906 list_del(&property->head);
2907 free(property, DRM_MEM_KMS);
2912 struct drm_property *property,
2918 DRM_WARNING("Failed to attach object property (type: 0x%x). Please "
2925 obj->properties->ids[count] = property->base.id;
2932 struct drm_property *property, uint64_t val)
2937 if (obj->properties->ids[i] == property->base.id) {
2948 struct drm_property *property, uint64_t *val)
2953 if (obj->properties->ids[i] == property->base.id) {
2968 struct drm_property *property;
2990 property = obj_to_property(obj);
2992 if (property->flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)) {
2993 list_for_each_entry(prop_enum, &property->enum_blob_list, head)
2995 } else if (property->flags & DRM_MODE_PROP_BLOB) {
2996 list_for_each_entry(prop_blob, &property->enum_blob_list, head)
3000 value_count = property->num_values;
3002 strncpy(out_resp->name, property->name, DRM_PROP_NAME_LEN);
3004 out_resp->flags = property->flags;
3009 if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) {
3017 if (property->flags & (DRM_MODE_PROP_ENUM | DRM_MODE_PROP_BITMASK)) {
3021 list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
3039 if (property->flags & DRM_MODE_PROP_BLOB) {
3045 list_for_each_entry(prop_blob, &property->enum_blob_list, head) {
3163 static bool drm_property_change_is_valid(struct drm_property *property,
3166 if (property->flags & DRM_MODE_PROP_IMMUTABLE)
3168 if (property->flags & DRM_MODE_PROP_RANGE) {
3169 if (value < property->values[0] || value > property->values[1])
3172 } else if (property->flags & DRM_MODE_PROP_BITMASK) {
3175 for (i = 0; i < property->num_values; i++)
3176 valid_mask |= (1ULL << property->values[i]);
3178 } else if (property->flags & DRM_MODE_PROP_BLOB) {
3183 for (i = 0; i < property->num_values; i++)
3184 if (property->values[i] == value)
3206 struct drm_property *property,
3213 if (property == connector->dev->mode_config.dpms_property) {
3218 ret = connector->funcs->set_property(connector, property, value);
3220 /* store the property value if successful */
3222 drm_object_property_set_value(&connector->base, property, value);
3227 struct drm_property *property,
3234 ret = crtc->funcs->set_property(crtc, property, value);
3236 drm_object_property_set_value(obj, property, value);
3242 struct drm_property *property,
3249 ret = plane->funcs->set_property(plane, property, value);
3251 drm_object_property_set_value(obj, property, value);
3318 struct drm_property *property;
3344 property = obj_to_property(prop_obj);
3346 if (!drm_property_change_is_valid(property, arg->value))
3351 ret = drm_mode_connector_set_obj_prop(arg_obj, property,
3355 ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value);
3358 ret = drm_mode_plane_set_obj_prop(arg_obj, property, arg->value);