Lines Matching refs:property

3656 	struct drm_property *property = NULL;  in drm_property_create()  local
3659 property = kzalloc(sizeof(struct drm_property), GFP_KERNEL); in drm_property_create()
3660 if (!property) in drm_property_create()
3663 property->dev = dev; in drm_property_create()
3666 property->values = kcalloc(num_values, sizeof(uint64_t), in drm_property_create()
3668 if (!property->values) in drm_property_create()
3672 ret = drm_mode_object_get(dev, &property->base, DRM_MODE_OBJECT_PROPERTY); in drm_property_create()
3676 property->flags = flags; in drm_property_create()
3677 property->num_values = num_values; in drm_property_create()
3678 INIT_LIST_HEAD(&property->enum_list); in drm_property_create()
3681 strncpy(property->name, name, DRM_PROP_NAME_LEN); in drm_property_create()
3682 property->name[DRM_PROP_NAME_LEN-1] = '\0'; in drm_property_create()
3685 list_add_tail(&property->head, &dev->mode_config.property_list); in drm_property_create()
3687 WARN_ON(!drm_property_type_valid(property)); in drm_property_create()
3689 return property; in drm_property_create()
3691 kfree(property->values); in drm_property_create()
3692 kfree(property); in drm_property_create()
3720 struct drm_property *property; in drm_property_create_enum() local
3725 property = drm_property_create(dev, flags, name, num_values); in drm_property_create_enum()
3726 if (!property) in drm_property_create_enum()
3730 ret = drm_property_add_enum(property, i, in drm_property_create_enum()
3734 drm_property_destroy(dev, property); in drm_property_create_enum()
3739 return property; in drm_property_create_enum()
3768 struct drm_property *property; in drm_property_create_bitmask() local
3774 property = drm_property_create(dev, flags, name, num_values); in drm_property_create_bitmask()
3775 if (!property) in drm_property_create_bitmask()
3782 drm_property_destroy(dev, property); in drm_property_create_bitmask()
3786 ret = drm_property_add_enum(property, index++, in drm_property_create_bitmask()
3790 drm_property_destroy(dev, property); in drm_property_create_bitmask()
3795 return property; in drm_property_create_bitmask()
3803 struct drm_property *property; in property_create_range() local
3805 property = drm_property_create(dev, flags, name, 2); in property_create_range()
3806 if (!property) in property_create_range()
3809 property->values[0] = min; in property_create_range()
3810 property->values[1] = max; in property_create_range()
3812 return property; in property_create_range()
3889 struct drm_property *property; in drm_property_create_object() local
3896 property = drm_property_create(dev, flags, name, 1); in drm_property_create_object()
3897 if (!property) in drm_property_create_object()
3900 property->values[0] = type; in drm_property_create_object()
3902 return property; in drm_property_create_object()
3943 int drm_property_add_enum(struct drm_property *property, int index, in drm_property_add_enum() argument
3948 if (!(drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_property_add_enum()
3949 drm_property_type_is(property, DRM_MODE_PROP_BITMASK))) in drm_property_add_enum()
3956 if (drm_property_type_is(property, DRM_MODE_PROP_BITMASK) && in drm_property_add_enum()
3960 if (!list_empty(&property->enum_list)) { in drm_property_add_enum()
3961 list_for_each_entry(prop_enum, &property->enum_list, head) { in drm_property_add_enum()
3978 property->values[index] = value; in drm_property_add_enum()
3979 list_add_tail(&prop_enum->head, &property->enum_list); in drm_property_add_enum()
3992 void drm_property_destroy(struct drm_device *dev, struct drm_property *property) in drm_property_destroy() argument
3996 list_for_each_entry_safe(prop_enum, pt, &property->enum_list, head) { in drm_property_destroy()
4001 if (property->num_values) in drm_property_destroy()
4002 kfree(property->values); in drm_property_destroy()
4003 drm_mode_object_put(dev, &property->base); in drm_property_destroy()
4004 list_del(&property->head); in drm_property_destroy()
4005 kfree(property); in drm_property_destroy()
4020 struct drm_property *property, in drm_object_attach_property() argument
4033 obj->properties->properties[count] = property; in drm_object_attach_property()
4036 if (property->flags & DRM_MODE_PROP_ATOMIC) in drm_object_attach_property()
4055 struct drm_property *property, uint64_t val) in drm_object_property_set_value() argument
4060 if (obj->properties->properties[i] == property) { in drm_object_property_set_value()
4085 struct drm_property *property, uint64_t *val) in drm_object_property_get_value() argument
4093 if (drm_core_check_feature(property->dev, DRIVER_ATOMIC) && in drm_object_property_get_value()
4094 !(property->flags & DRM_MODE_PROP_IMMUTABLE)) in drm_object_property_get_value()
4095 return drm_atomic_get_property(obj, property, val); in drm_object_property_get_value()
4098 if (obj->properties->properties[i] == property) { in drm_object_property_get_value()
4128 struct drm_property *property; in drm_mode_getproperty_ioctl() local
4141 property = drm_property_find(dev, out_resp->prop_id); in drm_mode_getproperty_ioctl()
4142 if (!property) { in drm_mode_getproperty_ioctl()
4147 if (drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_mode_getproperty_ioctl()
4148 drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_mode_getproperty_ioctl()
4149 list_for_each_entry(prop_enum, &property->enum_list, head) in drm_mode_getproperty_ioctl()
4153 value_count = property->num_values; in drm_mode_getproperty_ioctl()
4155 strncpy(out_resp->name, property->name, DRM_PROP_NAME_LEN); in drm_mode_getproperty_ioctl()
4157 out_resp->flags = property->flags; in drm_mode_getproperty_ioctl()
4162 if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) { in drm_mode_getproperty_ioctl()
4170 if (drm_property_type_is(property, DRM_MODE_PROP_ENUM) || in drm_mode_getproperty_ioctl()
4171 drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_mode_getproperty_ioctl()
4175 list_for_each_entry(prop_enum, &property->enum_list, head) { in drm_mode_getproperty_ioctl()
4201 if (drm_property_type_is(property, DRM_MODE_PROP_BLOB)) in drm_mode_getproperty_ioctl()
4422 bool drm_property_change_valid_get(struct drm_property *property, in drm_property_change_valid_get() argument
4427 if (property->flags & DRM_MODE_PROP_IMMUTABLE) in drm_property_change_valid_get()
4432 if (drm_property_type_is(property, DRM_MODE_PROP_RANGE)) { in drm_property_change_valid_get()
4433 if (value < property->values[0] || value > property->values[1]) in drm_property_change_valid_get()
4436 } else if (drm_property_type_is(property, DRM_MODE_PROP_SIGNED_RANGE)) { in drm_property_change_valid_get()
4439 if (svalue < U642I64(property->values[0]) || in drm_property_change_valid_get()
4440 svalue > U642I64(property->values[1])) in drm_property_change_valid_get()
4443 } else if (drm_property_type_is(property, DRM_MODE_PROP_BITMASK)) { in drm_property_change_valid_get()
4446 for (i = 0; i < property->num_values; i++) in drm_property_change_valid_get()
4447 valid_mask |= (1ULL << property->values[i]); in drm_property_change_valid_get()
4449 } else if (drm_property_type_is(property, DRM_MODE_PROP_BLOB)) { in drm_property_change_valid_get()
4452 } else if (drm_property_type_is(property, DRM_MODE_PROP_OBJECT)) { in drm_property_change_valid_get()
4458 if (property->values[0] == DRM_MODE_OBJECT_FB) { in drm_property_change_valid_get()
4460 fb = drm_framebuffer_lookup(property->dev, value); in drm_property_change_valid_get()
4468 return _object_find(property->dev, value, property->values[0]) != NULL; in drm_property_change_valid_get()
4472 for (i = 0; i < property->num_values; i++) in drm_property_change_valid_get()
4473 if (property->values[i] == value) in drm_property_change_valid_get()
4478 void drm_property_change_valid_put(struct drm_property *property, in drm_property_change_valid_put() argument
4484 if (drm_property_type_is(property, DRM_MODE_PROP_OBJECT)) { in drm_property_change_valid_put()
4485 if (property->values[0] == DRM_MODE_OBJECT_FB) in drm_property_change_valid_put()
4520 struct drm_property *property, in drm_mode_connector_set_obj_prop() argument
4527 if (property == connector->dev->mode_config.dpms_property) { in drm_mode_connector_set_obj_prop()
4532 ret = connector->funcs->set_property(connector, property, value); in drm_mode_connector_set_obj_prop()
4536 drm_object_property_set_value(&connector->base, property, value); in drm_mode_connector_set_obj_prop()
4541 struct drm_property *property, in drm_mode_crtc_set_obj_prop() argument
4548 ret = crtc->funcs->set_property(crtc, property, value); in drm_mode_crtc_set_obj_prop()
4550 drm_object_property_set_value(obj, property, value); in drm_mode_crtc_set_obj_prop()
4569 struct drm_property *property, in drm_mode_plane_set_obj_prop() argument
4576 ret = plane->funcs->set_property(plane, property, value); in drm_mode_plane_set_obj_prop()
4578 drm_object_property_set_value(obj, property, value); in drm_mode_plane_set_obj_prop()
4653 struct drm_property *property; in drm_mode_obj_set_property_ioctl() local
4683 property = obj_to_property(prop_obj); in drm_mode_obj_set_property_ioctl()
4685 if (!drm_property_change_valid_get(property, arg->value, &ref)) in drm_mode_obj_set_property_ioctl()
4690 ret = drm_mode_connector_set_obj_prop(arg_obj, property, in drm_mode_obj_set_property_ioctl()
4694 ret = drm_mode_crtc_set_obj_prop(arg_obj, property, arg->value); in drm_mode_obj_set_property_ioctl()
4698 property, arg->value); in drm_mode_obj_set_property_ioctl()
4702 drm_property_change_valid_put(property, ref); in drm_mode_obj_set_property_ioctl()
5476 struct drm_property *property, *pt; in drm_mode_config_cleanup() local
5490 list_for_each_entry_safe(property, pt, &dev->mode_config.property_list, in drm_mode_config_cleanup()
5492 drm_property_destroy(dev, property); in drm_mode_config_cleanup()