aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_panel.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_panel.c')
-rw-r--r--drivers/gpu/drm/i915/intel_panel.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index bf721781c259..96c65d77e886 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -377,7 +377,7 @@ out:
377enum drm_connector_status 377enum drm_connector_status
378intel_panel_detect(struct drm_device *dev) 378intel_panel_detect(struct drm_device *dev)
379{ 379{
380 struct drm_i915_private *dev_priv = dev->dev_private; 380 struct drm_i915_private *dev_priv = to_i915(dev);
381 381
382 /* Assume that the BIOS does not lie through the OpRegion... */ 382 /* Assume that the BIOS does not lie through the OpRegion... */
383 if (!i915.panel_ignore_lid && dev_priv->opregion.lid_state) { 383 if (!i915.panel_ignore_lid && dev_priv->opregion.lid_state) {
@@ -504,7 +504,7 @@ static u32 i9xx_get_backlight(struct intel_connector *connector)
504 if (panel->backlight.combination_mode) { 504 if (panel->backlight.combination_mode) {
505 u8 lbpc; 505 u8 lbpc;
506 506
507 pci_read_config_byte(dev_priv->dev->pdev, LBPC, &lbpc); 507 pci_read_config_byte(dev_priv->drm.pdev, LBPC, &lbpc);
508 val *= lbpc; 508 val *= lbpc;
509 } 509 }
510 510
@@ -592,7 +592,7 @@ static void i9xx_set_backlight(struct intel_connector *connector, u32 level)
592 592
593 lbpc = level * 0xfe / panel->backlight.max + 1; 593 lbpc = level * 0xfe / panel->backlight.max + 1;
594 level /= lbpc; 594 level /= lbpc;
595 pci_write_config_byte(dev_priv->dev->pdev, LBPC, lbpc); 595 pci_write_config_byte(dev_priv->drm.pdev, LBPC, lbpc);
596 } 596 }
597 597
598 if (IS_GEN4(dev_priv)) { 598 if (IS_GEN4(dev_priv)) {
@@ -822,7 +822,7 @@ void intel_panel_disable_backlight(struct intel_connector *connector)
822 * backlight. This will leave the backlight on unnecessarily when 822 * backlight. This will leave the backlight on unnecessarily when
823 * another client is not activated. 823 * another client is not activated.
824 */ 824 */
825 if (dev_priv->dev->switch_power_state == DRM_SWITCH_POWER_CHANGING) { 825 if (dev_priv->drm.switch_power_state == DRM_SWITCH_POWER_CHANGING) {
826 DRM_DEBUG_DRIVER("Skipping backlight disable on vga switch\n"); 826 DRM_DEBUG_DRIVER("Skipping backlight disable on vga switch\n");
827 return; 827 return;
828 } 828 }
@@ -1142,7 +1142,7 @@ static int intel_backlight_device_get_brightness(struct backlight_device *bd)
1142{ 1142{
1143 struct intel_connector *connector = bl_get_data(bd); 1143 struct intel_connector *connector = bl_get_data(bd);
1144 struct drm_device *dev = connector->base.dev; 1144 struct drm_device *dev = connector->base.dev;
1145 struct drm_i915_private *dev_priv = dev->dev_private; 1145 struct drm_i915_private *dev_priv = to_i915(dev);
1146 u32 hw_level; 1146 u32 hw_level;
1147 int ret; 1147 int ret;
1148 1148
@@ -1163,7 +1163,7 @@ static const struct backlight_ops intel_backlight_device_ops = {
1163 .get_brightness = intel_backlight_device_get_brightness, 1163 .get_brightness = intel_backlight_device_get_brightness,
1164}; 1164};
1165 1165
1166static int intel_backlight_device_register(struct intel_connector *connector) 1166int intel_backlight_device_register(struct intel_connector *connector)
1167{ 1167{
1168 struct intel_panel *panel = &connector->panel; 1168 struct intel_panel *panel = &connector->panel;
1169 struct backlight_properties props; 1169 struct backlight_properties props;
@@ -1225,11 +1225,6 @@ void intel_backlight_device_unregister(struct intel_connector *connector)
1225 panel->backlight.device = NULL; 1225 panel->backlight.device = NULL;
1226 } 1226 }
1227} 1227}
1228#else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
1229static int intel_backlight_device_register(struct intel_connector *connector)
1230{
1231 return 0;
1232}
1233#endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */ 1228#endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
1234 1229
1235/* 1230/*
@@ -1321,7 +1316,7 @@ static u32 i9xx_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
1321static u32 i965_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz) 1316static u32 i965_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
1322{ 1317{
1323 struct drm_device *dev = connector->base.dev; 1318 struct drm_device *dev = connector->base.dev;
1324 struct drm_i915_private *dev_priv = dev->dev_private; 1319 struct drm_i915_private *dev_priv = to_i915(dev);
1325 int clock; 1320 int clock;
1326 1321
1327 if (IS_G4X(dev_priv)) 1322 if (IS_G4X(dev_priv))
@@ -1736,7 +1731,8 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
1736 panel->backlight.set = bxt_set_backlight; 1731 panel->backlight.set = bxt_set_backlight;
1737 panel->backlight.get = bxt_get_backlight; 1732 panel->backlight.get = bxt_get_backlight;
1738 panel->backlight.hz_to_pwm = bxt_hz_to_pwm; 1733 panel->backlight.hz_to_pwm = bxt_hz_to_pwm;
1739 } else if (HAS_PCH_LPT(dev_priv) || HAS_PCH_SPT(dev_priv)) { 1734 } else if (HAS_PCH_LPT(dev_priv) || HAS_PCH_SPT(dev_priv) ||
1735 HAS_PCH_KBP(dev_priv)) {
1740 panel->backlight.setup = lpt_setup_backlight; 1736 panel->backlight.setup = lpt_setup_backlight;
1741 panel->backlight.enable = lpt_enable_backlight; 1737 panel->backlight.enable = lpt_enable_backlight;
1742 panel->backlight.disable = lpt_disable_backlight; 1738 panel->backlight.disable = lpt_disable_backlight;
@@ -1809,11 +1805,3 @@ void intel_panel_fini(struct intel_panel *panel)
1809 drm_mode_destroy(intel_connector->base.dev, 1805 drm_mode_destroy(intel_connector->base.dev,
1810 panel->downclock_mode); 1806 panel->downclock_mode);
1811} 1807}
1812
1813void intel_backlight_register(struct drm_device *dev)
1814{
1815 struct intel_connector *connector;
1816
1817 for_each_intel_connector(dev, connector)
1818 intel_backlight_device_register(connector);
1819}