aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c1
-rw-r--r--drivers/gpu/drm/i915/intel_display.c15
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c5
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c1
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h6
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c1
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c1
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c1
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c1
-rw-r--r--drivers/gpu/drm/i915/intel_panel.c15
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c5
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c1
13 files changed, 38 insertions, 16 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6d96b14b53c8..42298a87db7e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3734,6 +3734,7 @@ extern void intel_modeset_init_hw(struct drm_device *dev);
3734extern void intel_modeset_init(struct drm_device *dev); 3734extern void intel_modeset_init(struct drm_device *dev);
3735extern void intel_modeset_gem_init(struct drm_device *dev); 3735extern void intel_modeset_gem_init(struct drm_device *dev);
3736extern void intel_modeset_cleanup(struct drm_device *dev); 3736extern void intel_modeset_cleanup(struct drm_device *dev);
3737extern int intel_connector_register(struct drm_connector *);
3737extern void intel_connector_unregister(struct drm_connector *); 3738extern void intel_connector_unregister(struct drm_connector *);
3738extern int intel_modeset_vga_set_state(struct drm_device *dev, bool state); 3739extern int intel_modeset_vga_set_state(struct drm_device *dev, bool state);
3739extern void intel_display_resume(struct drm_device *dev); 3740extern void intel_display_resume(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index e115bcc6766f..8d7d48c74751 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -743,6 +743,7 @@ static const struct drm_connector_funcs intel_crt_connector_funcs = {
743 .dpms = drm_atomic_helper_connector_dpms, 743 .dpms = drm_atomic_helper_connector_dpms,
744 .detect = intel_crt_detect, 744 .detect = intel_crt_detect,
745 .fill_modes = drm_helper_probe_single_connector_modes, 745 .fill_modes = drm_helper_probe_single_connector_modes,
746 .late_register = intel_connector_register,
746 .early_unregister = intel_connector_unregister, 747 .early_unregister = intel_connector_unregister,
747 .destroy = intel_crt_destroy, 748 .destroy = intel_crt_destroy,
748 .set_property = intel_crt_set_property, 749 .set_property = intel_crt_set_property,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1141b8699dbe..12897d11df60 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -16314,8 +16314,21 @@ void intel_modeset_gem_init(struct drm_device *dev)
16314 c->state->plane_mask &= ~(1 << drm_plane_index(c->primary)); 16314 c->state->plane_mask &= ~(1 << drm_plane_index(c->primary));
16315 } 16315 }
16316 } 16316 }
16317}
16318
16319int intel_connector_register(struct drm_connector *connector)
16320{
16321 struct intel_connector *intel_connector = to_intel_connector(connector);
16322 int ret;
16323
16324 ret = intel_backlight_device_register(intel_connector);
16325 if (ret)
16326 goto err;
16327
16328 return 0;
16317 16329
16318 intel_backlight_register(dev); 16330err:
16331 return ret;
16319} 16332}
16320 16333
16321void intel_connector_unregister(struct drm_connector *connector) 16334void intel_connector_unregister(struct drm_connector *connector)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d4e037e20fa1..30d410173816 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4507,6 +4507,11 @@ static int
4507intel_dp_connector_register(struct drm_connector *connector) 4507intel_dp_connector_register(struct drm_connector *connector)
4508{ 4508{
4509 struct intel_dp *intel_dp = intel_attached_dp(connector); 4509 struct intel_dp *intel_dp = intel_attached_dp(connector);
4510 int ret;
4511
4512 ret = intel_connector_register(connector);
4513 if (ret)
4514 return ret;
4510 4515
4511 i915_debugfs_connector_add(connector); 4516 i915_debugfs_connector_add(connector);
4512 4517
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 89e7c98f5693..5f88e12575ac 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -336,6 +336,7 @@ static const struct drm_connector_funcs intel_dp_mst_connector_funcs = {
336 .fill_modes = drm_helper_probe_single_connector_modes, 336 .fill_modes = drm_helper_probe_single_connector_modes,
337 .set_property = intel_dp_mst_set_property, 337 .set_property = intel_dp_mst_set_property,
338 .atomic_get_property = intel_connector_atomic_get_property, 338 .atomic_get_property = intel_connector_atomic_get_property,
339 .late_register = intel_connector_register,
339 .early_unregister = intel_connector_unregister, 340 .early_unregister = intel_connector_unregister,
340 .destroy = intel_dp_mst_connector_destroy, 341 .destroy = intel_dp_mst_connector_destroy,
341 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, 342 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index ca2de043b9ce..3156d8df7921 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1506,11 +1506,15 @@ extern struct drm_display_mode *intel_find_panel_downclock(
1506 struct drm_device *dev, 1506 struct drm_device *dev,
1507 struct drm_display_mode *fixed_mode, 1507 struct drm_display_mode *fixed_mode,
1508 struct drm_connector *connector); 1508 struct drm_connector *connector);
1509void intel_backlight_register(struct drm_device *dev);
1510 1509
1511#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) 1510#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
1511int intel_backlight_device_register(struct intel_connector *connector);
1512void intel_backlight_device_unregister(struct intel_connector *connector); 1512void intel_backlight_device_unregister(struct intel_connector *connector);
1513#else /* CONFIG_BACKLIGHT_CLASS_DEVICE */ 1513#else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
1514static int intel_backlight_device_register(struct intel_connector *connector)
1515{
1516 return 0;
1517}
1514static inline void intel_backlight_device_unregister(struct intel_connector *connector) 1518static inline void intel_backlight_device_unregister(struct intel_connector *connector)
1515{ 1519{
1516} 1520}
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index ae2dcaf1b52e..80cc0f9de6c9 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1390,6 +1390,7 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs
1390static const struct drm_connector_funcs intel_dsi_connector_funcs = { 1390static const struct drm_connector_funcs intel_dsi_connector_funcs = {
1391 .dpms = drm_atomic_helper_connector_dpms, 1391 .dpms = drm_atomic_helper_connector_dpms,
1392 .detect = intel_dsi_detect, 1392 .detect = intel_dsi_detect,
1393 .late_register = intel_connector_register,
1393 .early_unregister = intel_connector_unregister, 1394 .early_unregister = intel_connector_unregister,
1394 .destroy = intel_dsi_connector_destroy, 1395 .destroy = intel_dsi_connector_destroy,
1395 .fill_modes = drm_helper_probe_single_connector_modes, 1396 .fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 60e4ddf2ec6d..669eae46ffa9 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -341,6 +341,7 @@ static void intel_dvo_destroy(struct drm_connector *connector)
341static const struct drm_connector_funcs intel_dvo_connector_funcs = { 341static const struct drm_connector_funcs intel_dvo_connector_funcs = {
342 .dpms = drm_atomic_helper_connector_dpms, 342 .dpms = drm_atomic_helper_connector_dpms,
343 .detect = intel_dvo_detect, 343 .detect = intel_dvo_detect,
344 .late_register = intel_connector_register,
344 .early_unregister = intel_connector_unregister, 345 .early_unregister = intel_connector_unregister,
345 .destroy = intel_dvo_destroy, 346 .destroy = intel_dvo_destroy,
346 .fill_modes = drm_helper_probe_single_connector_modes, 347 .fill_modes = drm_helper_probe_single_connector_modes,
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index fb21626ada64..48ca48c9faff 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1774,6 +1774,7 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
1774 .fill_modes = drm_helper_probe_single_connector_modes, 1774 .fill_modes = drm_helper_probe_single_connector_modes,
1775 .set_property = intel_hdmi_set_property, 1775 .set_property = intel_hdmi_set_property,
1776 .atomic_get_property = intel_connector_atomic_get_property, 1776 .atomic_get_property = intel_connector_atomic_get_property,
1777 .late_register = intel_connector_register,
1777 .early_unregister = intel_connector_unregister, 1778 .early_unregister = intel_connector_unregister,
1778 .destroy = intel_hdmi_destroy, 1779 .destroy = intel_hdmi_destroy,
1779 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, 1780 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6306c5499587..d4d06fb8de2e 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -555,6 +555,7 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = {
555 .fill_modes = drm_helper_probe_single_connector_modes, 555 .fill_modes = drm_helper_probe_single_connector_modes,
556 .set_property = intel_lvds_set_property, 556 .set_property = intel_lvds_set_property,
557 .atomic_get_property = intel_connector_atomic_get_property, 557 .atomic_get_property = intel_connector_atomic_get_property,
558 .late_register = intel_connector_register,
558 .early_unregister = intel_connector_unregister, 559 .early_unregister = intel_connector_unregister,
559 .destroy = intel_lvds_destroy, 560 .destroy = intel_lvds_destroy,
560 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, 561 .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index bf721781c259..3c0b97f0bfae 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -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/*
@@ -1809,11 +1804,3 @@ void intel_panel_fini(struct intel_panel *panel)
1809 drm_mode_destroy(intel_connector->base.dev, 1804 drm_mode_destroy(intel_connector->base.dev,
1810 panel->downclock_mode); 1805 panel->downclock_mode);
1811} 1806}
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}
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 580cc876a90f..c0c0a65fabf3 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2181,6 +2181,11 @@ static int
2181intel_sdvo_connector_register(struct drm_connector *connector) 2181intel_sdvo_connector_register(struct drm_connector *connector)
2182{ 2182{
2183 struct intel_sdvo *sdvo = intel_attached_sdvo(connector); 2183 struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
2184 int ret;
2185
2186 ret = intel_connector_register(connector);
2187 if (ret)
2188 return ret;
2184 2189
2185 return sysfs_create_link(&connector->kdev->kobj, 2190 return sysfs_create_link(&connector->kdev->kobj,
2186 &sdvo->ddc.dev.kobj, 2191 &sdvo->ddc.dev.kobj,
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 4ce70a9f9df2..83fe6706a188 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1501,6 +1501,7 @@ out:
1501static const struct drm_connector_funcs intel_tv_connector_funcs = { 1501static const struct drm_connector_funcs intel_tv_connector_funcs = {
1502 .dpms = drm_atomic_helper_connector_dpms, 1502 .dpms = drm_atomic_helper_connector_dpms,
1503 .detect = intel_tv_detect, 1503 .detect = intel_tv_detect,
1504 .late_register = intel_connector_register,
1504 .early_unregister = intel_connector_unregister, 1505 .early_unregister = intel_connector_unregister,
1505 .destroy = intel_tv_destroy, 1506 .destroy = intel_tv_destroy,
1506 .set_property = intel_tv_set_property, 1507 .set_property = intel_tv_set_property,