aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_crtc.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-02-06 04:58:18 -0500
committerDave Airlie <airlied@redhat.com>2012-02-09 05:15:25 -0500
commitd9bc3c02e36d844c2d980e65ddda5c7699e073f8 (patch)
tree95de33796245ca8c4e7629ddf22629bcc89f1403 /drivers/gpu/drm/drm_crtc.c
parent4a67d39190315558631d944b1cea4466ed4c86d8 (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.c69
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}
2622EXPORT_SYMBOL(drm_property_create_enum); 2592EXPORT_SYMBOL(drm_property_create_enum);
2623 2593
2594struct 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}
2611EXPORT_SYMBOL(drm_property_create_range);
2612
2624int drm_property_add_enum(struct drm_property *property, int index, 2613int 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{