diff options
author | Dave Airlie <airlied@redhat.com> | 2016-07-14 23:50:58 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-07-14 23:50:58 -0400 |
commit | ff37c05a996bb96eccc21f4fb1b32ba0e24f3443 (patch) | |
tree | c09b09b37521f2f8f3f7a9bb3b0a33a2b3bde1a1 /drivers/gpu/drm/i915/intel_panel.c | |
parent | 6c181c82106e12dced317e93a7a396cbb8c64f75 (diff) | |
parent | 0b2c0582f1570bfc95aa9ac1cd340a215d8e8335 (diff) |
Merge tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next
- select igt testing depencies for CONFIG_DRM_I915_DEBUG (Chris)
- track outputs in crtc state and clean up all our ad-hoc connector/encoder
walking in modest code (Ville)
- demidlayer drm_device/drm_i915_private (Chris Wilson)
- thundering herd fix from Chris Wilson, with lots of help from Tvrtko Ursulin
- piles of assorted clean and fallout from the thundering herd fix
- documentation and more tuning for waitboosting (Chris)
- pooled EU support on bxt (Arun Siluvery)
- bxt support is no longer considered prelimary!
- ring/engine vfunc cleanup from Tvrtko
- introduce intel_wait_for_register helper (Chris)
- opregion updates (Jani Nukla)
- tuning and fixes for wait_for macros (Tvrkto&Imre)
- more kabylake pci ids (Rodrigo)
- pps cleanup and fixes for bxt (Imre)
- move sink crc support over to atomic state (Maarten)
- fix up async fbdev init ordering (Chris)
- fbc fixes from Paulo and Chris
* tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel: (223 commits)
drm/i915: Update DRIVER_DATE to 20160711
drm/i915: Select DRM_VGEM for igt
drm/i915: Select X86_MSR for igt
drm/i915: Fill unused GGTT with scratch pages for VT-d
drm/i915: Introduce Kabypoint PCH for Kabylake H/DT.
drm/i915:gen9: implement WaMediaPoolStateCmdInWABB
drm/i915: Check for invalid cloning earlier during modeset
drm/i915: Simplify hdmi_12bpc_possible()
drm/i915: Kill has_dsi_encoder
drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/
drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s
drm/i915: Kill has_dp_encoder from pipe_config
drm/i915: Replace manual lvds and sdvo/hdmi counting with intel_crtc_has_type()
drm/i915: Unify intel_pipe_has_type() and intel_pipe_will_have_type()
drm/i915: Add output_types bitmask into the crtc state
drm/i915: Remove encoder type checks from MST suspend/resume
drm/i915: Don't mark eDP encoders as MST capable
drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
drm/i915: Group the irq breadcrumb variables into the same cacheline
drm/i915: Wake up the bottom-half if we steal their interrupt
...
Diffstat (limited to 'drivers/gpu/drm/i915/intel_panel.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_panel.c | 30 |
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: | |||
377 | enum drm_connector_status | 377 | enum drm_connector_status |
378 | intel_panel_detect(struct drm_device *dev) | 378 | intel_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 | ||
1166 | static int intel_backlight_device_register(struct intel_connector *connector) | 1166 | int 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 */ | ||
1229 | static 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) | |||
1321 | static u32 i965_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz) | 1316 | static 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 | |||
1813 | void 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 | } | ||