Lines Matching refs:property

3617 	struct drm_property *property = NULL;  in drm_property_create()  local
3620 property = kzalloc(sizeof(struct drm_property), GFP_KERNEL); in drm_property_create()
3621 if (!property) in drm_property_create()
3624 property->dev = dev; in drm_property_create()
3627 property->values = kcalloc(num_values, sizeof(uint64_t), in drm_property_create()
3629 if (!property->values) in drm_property_create()
3633 ret = drm_mode_object_get(dev, &property->base, DRM_MODE_OBJECT_PROPERTY); in drm_property_create()
3637 property->flags = flags; in drm_property_create()
3638 property->num_values = num_values; in drm_property_create()
3639 INIT_LIST_HEAD(&property->enum_list); in drm_property_create()
3642 strncpy(property->name, name, DRM_PROP_NAME_LEN); in drm_property_create()
3643 property->name[DRM_PROP_NAME_LEN-1] = '\0'; in drm_property_create()
3646 list_add_tail(&property->head, &dev->mode_config.property_list); in drm_property_create()
3648 WARN_ON(!drm_property_type_valid(property)); in drm_property_create()
3650 return property; in drm_property_create()
3652 kfree(property->values); in drm_property_create()
3653 kfree(property); in drm_property_create()
3681 struct drm_property *property; in drm_property_create_enum() local
3686 property = drm_property_create(dev, flags, name, num_values); in drm_property_create_enum()
3687 if (!property) in drm_property_create_enum()
3691 ret = drm_property_add_enum(property, i, in drm_property_create_enum()
3695 drm_property_destroy(dev, property); in drm_property_create_enum()
3700 return property; in drm_property_create_enum()
3729 struct drm_property *property; in drm_property_create_bitmask() local
3735 property = drm_property_create(dev, flags, name, num_values); in drm_property_create_bitmask()
3736 if (!property) in drm_property_create_bitmask()
3743 drm_property_destroy(dev, property); in drm_property_create_bitmask()
3747 ret = drm_property_add_enum(property, index++, in drm_property_create_bitmask()
3751 drm_property_destroy(dev, property); in drm_property_create_bitmask()
3756 return property; in drm_property_create_bitmask()
3764 struct drm_property *property; in property_create_range() local
3766 property = drm_property_create(dev, flags, name, 2); in property_create_range()
3767 if (!property) in property_create_range()
3770 property->values[0] = min; in property_create_range()
3771 property->values[1] = max; in property_create_range()
3773 return property; in property_create_range()
3850 struct drm_property *property; in drm_property_create_object() local
3857 property = drm_property_create(dev, flags, name, 1); in drm_property_create_object()
3858 if (!property) in drm_property_create_object()
3861 property->values[0] = type; in drm_property_create_object()
3863 return property; in drm_property_create_object()
3904 int drm_property_add_enum(struct drm_property *property, int index, in drm_property_add_enum() argument
3909 if (!(drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_property_add_enum()
3910 drm_property_type_is(property, DRM_MODE_PROP_BITMASK))) in drm_property_add_enum()
3917 if (drm_property_type_is(property, DRM_MODE_PROP_BITMASK) && in drm_property_add_enum()
3921 if (!list_empty(&property->enum_list)) { in drm_property_add_enum()
3922 list_for_each_entry(prop_enum, &property->enum_list, head) { in drm_property_add_enum()
3939 property->values[index] = value; in drm_property_add_enum()
3940 list_add_tail(&prop_enum->head, &property->enum_list); in drm_property_add_enum()
3953 void drm_property_destroy(struct drm_device *dev, struct drm_property *property) in drm_property_destroy() argument
3957 list_for_each_entry_safe(prop_enum, pt, &property->enum_list, head) { in drm_property_destroy()
3962 if (property->num_values) in drm_property_destroy()
3963 kfree(property->values); in drm_property_destroy()
3964 drm_mode_object_put(dev, &property->base); in drm_property_destroy()
3965 list_del(&property->head); in drm_property_destroy()
3966 kfree(property); in drm_property_destroy()
3981 struct drm_property *property, in drm_object_attach_property() argument
3994 obj->properties->properties[count] = property; in drm_object_attach_property()
3997 if (property->flags & DRM_MODE_PROP_ATOMIC) in drm_object_attach_property()
4016 struct drm_property *property, uint64_t val) in drm_object_property_set_value() argument
4021 if (obj->properties->properties[i] == property) { in drm_object_property_set_value()
4046 struct drm_property *property, uint64_t *val) in drm_object_property_get_value() argument
4054 if (drm_core_check_feature(property->dev, DRIVER_ATOMIC) && in drm_object_property_get_value()
4055 !(property->flags & DRM_MODE_PROP_IMMUTABLE)) in drm_object_property_get_value()
4056 return drm_atomic_get_property(obj, property, val); in drm_object_property_get_value()
4059 if (obj->properties->properties[i] == property) { in drm_object_property_get_value()
4089 struct drm_property *property; in drm_mode_getproperty_ioctl() local
4102 property = drm_property_find(dev, out_resp->prop_id); in drm_mode_getproperty_ioctl()
4103 if (!property) { in drm_mode_getproperty_ioctl()
4108 if (drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_mode_getproperty_ioctl()
4109 drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_mode_getproperty_ioctl()
4110 list_for_each_entry(prop_enum, &property->enum_list, head) in drm_mode_getproperty_ioctl()
4114 value_count = property->num_values; in drm_mode_getproperty_ioctl()
4116 strncpy(out_resp->name, property->name, DRM_PROP_NAME_LEN); in drm_mode_getproperty_ioctl()
4118 out_resp->flags = property->flags; in drm_mode_getproperty_ioctl()
4123 if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) { in drm_mode_getproperty_ioctl()
4131 if (drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_mode_getproperty_ioctl()
4132 drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_mode_getproperty_ioctl()
4136 list_for_each_entry(prop_enum, &property->enum_list, head) { in drm_mode_getproperty_ioctl()
4162 if (drm_property_type_is(property, DRM_MODE_PROP_BLOB)) in drm_mode_getproperty_ioctl()
4721 bool drm_property_change_valid_get(struct drm_property *property, in drm_property_change_valid_get() argument
4726 if (property->flags & DRM_MODE_PROP_IMMUTABLE) in drm_property_change_valid_get()
4731 if (drm_property_type_is(property, DRM_MODE_PROP_RANGE)) { in drm_property_change_valid_get()
4732 if (value < property->values[0] || value > property->values[1]) in drm_property_change_valid_get()
4735 } else if (drm_property_type_is(property, DRM_MODE_PROP_SIGNED_RANGE)) { in drm_property_change_valid_get()
4738 if (svalue < U642I64(property->values[0]) || in drm_property_change_valid_get()
4739 svalue > U642I64(property->values[1])) in drm_property_change_valid_get()
4742 } else if (drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_property_change_valid_get()
4745 for (i = 0; i < property->num_values; i++) in drm_property_change_valid_get()
4746 valid_mask |= (1ULL << property->values[i]); in drm_property_change_valid_get()
4748 } else if (drm_property_type_is(property, DRM_MODE_PROP_BLOB)) { in drm_property_change_valid_get()
4754 blob = drm_property_lookup_blob(property->dev, value); in drm_property_change_valid_get()
4761 } else if (drm_property_type_is(property, DRM_MODE_PROP_OBJECT)) { in drm_property_change_valid_get()
4767 if (property->values[0] == DRM_MODE_OBJECT_FB) { in drm_property_change_valid_get()
4769 fb = drm_framebuffer_lookup(property->dev, value); in drm_property_change_valid_get()
4777 return _object_find(property->dev, value, property->values[0]) != NULL; in drm_property_change_valid_get()
4781 for (i = 0; i < property->num_values; i++) in drm_property_change_valid_get()
4782 if (property->values[i] == value) in drm_property_change_valid_get()
4787 void drm_property_change_valid_put(struct drm_property *property, in drm_property_change_valid_put() argument
4793 if (drm_property_type_is(property, DRM_MODE_PROP_OBJECT)) { in drm_property_change_valid_put()
4794 if (property->values[0] == DRM_MODE_OBJECT_FB) in drm_property_change_valid_put()
4796 } else if (drm_property_type_is(property, DRM_MODE_PROP_BLOB)) in drm_property_change_valid_put()
4830 struct drm_property *property, in drm_mode_connector_set_obj_prop() argument
4837 if (property == connector->dev->mode_config.dpms_property) { in drm_mode_connector_set_obj_prop()
4842 ret = connector->funcs->set_property(connector, property, value); in drm_mode_connector_set_obj_prop()
4846 drm_object_property_set_value(&connector->base, property, value); in drm_mode_connector_set_obj_prop()
4851 struct drm_property *property, in drm_mode_crtc_set_obj_prop() argument
4858 ret = crtc->funcs->set_property(crtc, property, value); in drm_mode_crtc_set_obj_prop()
4860 drm_object_property_set_value(obj, property, value); in drm_mode_crtc_set_obj_prop()
4879 struct drm_property *property, in drm_mode_plane_set_obj_prop() argument
4886 ret = plane->funcs->set_property(plane, property, value); in drm_mode_plane_set_obj_prop()
4888 drm_object_property_set_value(obj, property, value); in drm_mode_plane_set_obj_prop()
4963 struct drm_property *property; in drm_mode_obj_set_property_ioctl() local
4993 property = obj_to_property(prop_obj); in drm_mode_obj_set_property_ioctl()
4995 if (!drm_property_change_valid_get(property, arg->value, &ref)) in drm_mode_obj_set_property_ioctl()
5000 ret = drm_mode_connector_set_obj_prop(arg_obj, property, in drm_mode_obj_set_property_ioctl()
5004 ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value); in drm_mode_obj_set_property_ioctl()
5008 property, arg->value); in drm_mode_obj_set_property_ioctl()
5012 drm_property_change_valid_put(property, ref); in drm_mode_obj_set_property_ioctl()
5791 struct drm_property *property, *pt; in drm_mode_config_cleanup() local
5805 list_for_each_entry_safe(property, pt, &dev->mode_config.property_list, in drm_mode_config_cleanup()
5807 drm_property_destroy(dev, property); in drm_mode_config_cleanup()