aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2009-09-10 03:45:47 -0400
committerEric Anholt <eric@anholt.net>2009-09-10 14:30:32 -0400
commitd0cbde93cc29a250de97ccb63d98da5bd1cbcfcd (patch)
tree56ff1ca3a69c1fe8ff2053a558fb057d221b4ed2 /drivers/gpu/drm/i915
parentb9219c5e8be99ddd697e3f9b61069d7ea477ddec (diff)
drm/i915: Add the brightness property for SDVO-LVDS
When the sdvo device is detected as SDVO-LVDS, we will check whether the brightness is supported by issue SDVO enhancement command. If it is supported, we will add the brightness property and then brightness can be adjusted. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index ce8c5622d653..1f671d96565b 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -1872,7 +1872,7 @@ void intel_sdvo_destroy_enhance_property(struct drm_connector *connector)
1872 if (sdvo_priv->hue_property) 1872 if (sdvo_priv->hue_property)
1873 drm_property_destroy(dev, sdvo_priv->hue_property); 1873 drm_property_destroy(dev, sdvo_priv->hue_property);
1874 } 1874 }
1875 if (sdvo_priv->is_tv) { 1875 if (sdvo_priv->is_tv || sdvo_priv->is_lvds) {
1876 if (sdvo_priv->brightness_property) 1876 if (sdvo_priv->brightness_property)
1877 drm_property_destroy(dev, 1877 drm_property_destroy(dev,
1878 sdvo_priv->brightness_property); 1878 sdvo_priv->brightness_property);
@@ -1900,7 +1900,7 @@ static void intel_sdvo_destroy(struct drm_connector *connector)
1900 drm_property_destroy(connector->dev, 1900 drm_property_destroy(connector->dev,
1901 sdvo_priv->tv_format_property); 1901 sdvo_priv->tv_format_property);
1902 1902
1903 if (sdvo_priv->is_tv) 1903 if (sdvo_priv->is_tv || sdvo_priv->is_lvds)
1904 intel_sdvo_destroy_enhance_property(connector); 1904 intel_sdvo_destroy_enhance_property(connector);
1905 1905
1906 drm_sysfs_connector_remove(connector); 1906 drm_sysfs_connector_remove(connector);
@@ -1940,7 +1940,7 @@ intel_sdvo_set_property(struct drm_connector *connector,
1940 changed = true; 1940 changed = true;
1941 } 1941 }
1942 1942
1943 if (sdvo_priv->is_tv) { 1943 if (sdvo_priv->is_tv || sdvo_priv->is_lvds) {
1944 cmd = 0; 1944 cmd = 0;
1945 temp_value = val; 1945 temp_value = val;
1946 if (sdvo_priv->left_property == property) { 1946 if (sdvo_priv->left_property == property) {
@@ -2627,7 +2627,7 @@ static void intel_sdvo_create_enhance_property(struct drm_connector *connector)
2627 data_value[0], data_value[1], response); 2627 data_value[0], data_value[1], response);
2628 } 2628 }
2629 } 2629 }
2630 if (sdvo_priv->is_tv) { 2630 if (sdvo_priv->is_tv || sdvo_priv->is_lvds) {
2631 if (sdvo_data.brightness) { 2631 if (sdvo_data.brightness) {
2632 intel_sdvo_write_cmd(intel_output, 2632 intel_sdvo_write_cmd(intel_output,
2633 SDVO_CMD_GET_MAX_BRIGHTNESS, NULL, 0); 2633 SDVO_CMD_GET_MAX_BRIGHTNESS, NULL, 0);
@@ -2750,10 +2750,12 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
2750 drm_encoder_helper_add(&intel_output->enc, &intel_sdvo_helper_funcs); 2750 drm_encoder_helper_add(&intel_output->enc, &intel_sdvo_helper_funcs);
2751 2751
2752 drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); 2752 drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc);
2753 if (sdvo_priv->is_tv) { 2753 if (sdvo_priv->is_tv)
2754 intel_sdvo_tv_create_property(connector); 2754 intel_sdvo_tv_create_property(connector);
2755
2756 if (sdvo_priv->is_tv || sdvo_priv->is_lvds)
2755 intel_sdvo_create_enhance_property(connector); 2757 intel_sdvo_create_enhance_property(connector);
2756 } 2758
2757 drm_sysfs_connector_add(connector); 2759 drm_sysfs_connector_add(connector);
2758 2760
2759 intel_sdvo_select_ddc_bus(sdvo_priv); 2761 intel_sdvo_select_ddc_bus(sdvo_priv);