diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-02-06 04:58:18 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-02-09 05:15:25 -0500 |
commit | d9bc3c02e36d844c2d980e65ddda5c7699e073f8 (patch) | |
tree | 95de33796245ca8c4e7629ddf22629bcc89f1403 /drivers/gpu/drm/drm_crtc.c | |
parent | 4a67d39190315558631d944b1cea4466ed4c86d8 (diff) |
drm: add convenience function to create an range property
Creating a range property is a common pattern, so create
a convenience function for this and use it where appropriate.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 69 |
1 files changed, 29 insertions, 40 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 3fe99c456a19..6fdaf6fe94eb 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -742,28 +742,16 @@ int drm_mode_create_tv_properties(struct drm_device *dev, int num_modes, | |||
742 | * Other, TV specific properties: margins & TV modes. | 742 | * Other, TV specific properties: margins & TV modes. |
743 | */ | 743 | */ |
744 | dev->mode_config.tv_left_margin_property = | 744 | dev->mode_config.tv_left_margin_property = |
745 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 745 | drm_property_create_range(dev, 0, "left margin", 0, 100); |
746 | "left margin", 2); | ||
747 | dev->mode_config.tv_left_margin_property->values[0] = 0; | ||
748 | dev->mode_config.tv_left_margin_property->values[1] = 100; | ||
749 | 746 | ||
750 | dev->mode_config.tv_right_margin_property = | 747 | dev->mode_config.tv_right_margin_property = |
751 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 748 | drm_property_create_range(dev, 0, "right margin", 0, 100); |
752 | "right margin", 2); | ||
753 | dev->mode_config.tv_right_margin_property->values[0] = 0; | ||
754 | dev->mode_config.tv_right_margin_property->values[1] = 100; | ||
755 | 749 | ||
756 | dev->mode_config.tv_top_margin_property = | 750 | dev->mode_config.tv_top_margin_property = |
757 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 751 | drm_property_create_range(dev, 0, "top margin", 0, 100); |
758 | "top margin", 2); | ||
759 | dev->mode_config.tv_top_margin_property->values[0] = 0; | ||
760 | dev->mode_config.tv_top_margin_property->values[1] = 100; | ||
761 | 752 | ||
762 | dev->mode_config.tv_bottom_margin_property = | 753 | dev->mode_config.tv_bottom_margin_property = |
763 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 754 | drm_property_create_range(dev, 0, "bottom margin", 0, 100); |
764 | "bottom margin", 2); | ||
765 | dev->mode_config.tv_bottom_margin_property->values[0] = 0; | ||
766 | dev->mode_config.tv_bottom_margin_property->values[1] = 100; | ||
767 | 755 | ||
768 | dev->mode_config.tv_mode_property = | 756 | dev->mode_config.tv_mode_property = |
769 | drm_property_create(dev, DRM_MODE_PROP_ENUM, | 757 | drm_property_create(dev, DRM_MODE_PROP_ENUM, |
@@ -773,40 +761,22 @@ int drm_mode_create_tv_properties(struct drm_device *dev, int num_modes, | |||
773 | i, modes[i]); | 761 | i, modes[i]); |
774 | 762 | ||
775 | dev->mode_config.tv_brightness_property = | 763 | dev->mode_config.tv_brightness_property = |
776 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 764 | drm_property_create_range(dev, 0, "brightness", 0, 100); |
777 | "brightness", 2); | ||
778 | dev->mode_config.tv_brightness_property->values[0] = 0; | ||
779 | dev->mode_config.tv_brightness_property->values[1] = 100; | ||
780 | 765 | ||
781 | dev->mode_config.tv_contrast_property = | 766 | dev->mode_config.tv_contrast_property = |
782 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 767 | drm_property_create_range(dev, 0, "contrast", 0, 100); |
783 | "contrast", 2); | ||
784 | dev->mode_config.tv_contrast_property->values[0] = 0; | ||
785 | dev->mode_config.tv_contrast_property->values[1] = 100; | ||
786 | 768 | ||
787 | dev->mode_config.tv_flicker_reduction_property = | 769 | dev->mode_config.tv_flicker_reduction_property = |
788 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 770 | drm_property_create_range(dev, 0, "flicker reduction", 0, 100); |
789 | "flicker reduction", 2); | ||
790 | dev->mode_config.tv_flicker_reduction_property->values[0] = 0; | ||
791 | dev->mode_config.tv_flicker_reduction_property->values[1] = 100; | ||
792 | 771 | ||
793 | dev->mode_config.tv_overscan_property = | 772 | dev->mode_config.tv_overscan_property = |
794 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 773 | drm_property_create_range(dev, 0, "overscan", 0, 100); |
795 | "overscan", 2); | ||
796 | dev->mode_config.tv_overscan_property->values[0] = 0; | ||
797 | dev->mode_config.tv_overscan_property->values[1] = 100; | ||
798 | 774 | ||
799 | dev->mode_config.tv_saturation_property = | 775 | dev->mode_config.tv_saturation_property = |
800 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 776 | drm_property_create_range(dev, 0, "saturation", 0, 100); |
801 | "saturation", 2); | ||
802 | dev->mode_config.tv_saturation_property->values[0] = 0; | ||
803 | dev->mode_config.tv_saturation_property->values[1] = 100; | ||
804 | 777 | ||
805 | dev->mode_config.tv_hue_property = | 778 | dev->mode_config.tv_hue_property = |
806 | drm_property_create(dev, DRM_MODE_PROP_RANGE, | 779 | drm_property_create_range(dev, 0, "hue", 0, 100); |
807 | "hue", 2); | ||
808 | dev->mode_config.tv_hue_property->values[0] = 0; | ||
809 | dev->mode_config.tv_hue_property->values[1] = 100; | ||
810 | 780 | ||
811 | return 0; | 781 | return 0; |
812 | } | 782 | } |
@@ -2621,6 +2591,25 @@ struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags, | |||
2621 | } | 2591 | } |
2622 | EXPORT_SYMBOL(drm_property_create_enum); | 2592 | EXPORT_SYMBOL(drm_property_create_enum); |
2623 | 2593 | ||
2594 | struct drm_property *drm_property_create_range(struct drm_device *dev, int flags, | ||
2595 | const char *name, | ||
2596 | uint64_t min, uint64_t max) | ||
2597 | { | ||
2598 | struct drm_property *property; | ||
2599 | |||
2600 | flags |= DRM_MODE_PROP_RANGE; | ||
2601 | |||
2602 | property = drm_property_create(dev, flags, name, 2); | ||
2603 | if (!property) | ||
2604 | return NULL; | ||
2605 | |||
2606 | property->values[0] = min; | ||
2607 | property->values[1] = max; | ||
2608 | |||
2609 | return property; | ||
2610 | } | ||
2611 | EXPORT_SYMBOL(drm_property_create_range); | ||
2612 | |||
2624 | int drm_property_add_enum(struct drm_property *property, int index, | 2613 | int drm_property_add_enum(struct drm_property *property, int index, |
2625 | uint64_t value, const char *name) | 2614 | uint64_t value, const char *name) |
2626 | { | 2615 | { |