All of lore.kernel.org
 help / color / mirror / Atom feed
* Prepare for automatic drm_connector_unregister_all()
@ 2016-06-17 10:40 Chris Wilson
  2016-06-17 10:40 ` [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Chris Wilson @ 2016-06-17 10:40 UTC (permalink / raw)
  To: intel-gfx

In a planned drm-misc patchset, we make connector unregistering
automatic from drm_drv_unregister(). This requires that we give up our
own connector->unregister callback and use the DRM core's instead.

See http://patchwork.freedesktop.org/patch/msgid/1466151923-1572-1-git-send-email-chris@chris-wilson.co.uk
-Chris

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
  2016-06-17 10:40 Prepare for automatic drm_connector_unregister_all() Chris Wilson
@ 2016-06-17 10:40 ` Chris Wilson
  2016-06-17 13:00   ` kbuild test robot
  2016-06-17 10:40 ` [PATCH 2/2] drm/i915: Move backlight unregistration to connector unregistration Chris Wilson
  2016-06-17 11:07 ` ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Patchwork
  2 siblings, 1 reply; 6+ messages in thread
From: Chris Wilson @ 2016-06-17 10:40 UTC (permalink / raw)
  To: intel-gfx

We now have a connector->func that serves the same purpose as our own
intel_connector->unregister vfunc allowing us to unwrap ourselves and
use drm_connector_register() (and friends) as the central function.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_drv.h      |  2 +-
 drivers/gpu/drm/i915/intel_crt.c     |  2 +-
 drivers/gpu/drm/i915/intel_display.c | 10 ++--------
 drivers/gpu/drm/i915/intel_dp.c      | 21 ++++++++++-----------
 drivers/gpu/drm/i915/intel_dp_mst.c  |  4 ++--
 drivers/gpu/drm/i915/intel_drv.h     |  8 --------
 drivers/gpu/drm/i915/intel_dsi.c     |  2 +-
 drivers/gpu/drm/i915/intel_dvo.c     |  2 +-
 drivers/gpu/drm/i915/intel_hdmi.c    |  2 +-
 drivers/gpu/drm/i915/intel_lvds.c    |  2 +-
 drivers/gpu/drm/i915/intel_sdvo.c    | 26 +++++++++++---------------
 drivers/gpu/drm/i915/intel_tv.c      |  2 +-
 12 files changed, 32 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9fa9698fe247..e1cb102f2806 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -3704,7 +3704,7 @@ extern void intel_modeset_init_hw(struct drm_device *dev);
 extern void intel_modeset_init(struct drm_device *dev);
 extern void intel_modeset_gem_init(struct drm_device *dev);
 extern void intel_modeset_cleanup(struct drm_device *dev);
-extern void intel_connector_unregister(struct intel_connector *);
+extern void intel_connector_unregister(struct drm_connector *);
 extern int intel_modeset_vga_set_state(struct drm_device *dev, bool state);
 extern void intel_display_resume(struct drm_device *dev);
 extern void i915_redisable_vga(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 9465de4135aa..e115bcc6766f 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 = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_crt_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_crt_destroy,
 	.set_property = intel_crt_set_property,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
@@ -875,7 +876,6 @@ void intel_crt_init(struct drm_device *dev)
 		crt->base.get_hw_state = intel_crt_get_hw_state;
 	}
 	intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
 
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 8c6f4e2a2cb8..6159d59bcbfd 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -16311,18 +16311,14 @@ void intel_modeset_gem_init(struct drm_device *dev)
 	intel_backlight_register(dev);
 }
 
-void intel_connector_unregister(struct intel_connector *intel_connector)
+void intel_connector_unregister(struct drm_connector *connector)
 {
-	struct drm_connector *connector = &intel_connector->base;
-
 	intel_panel_destroy_backlight(connector);
-	drm_connector_unregister(connector);
 }
 
 void intel_modeset_cleanup(struct drm_device *dev)
 {
 	struct drm_i915_private *dev_priv = dev->dev_private;
-	struct intel_connector *connector;
 
 	intel_disable_gt_powersave(dev_priv);
 
@@ -16348,9 +16344,7 @@ void intel_modeset_cleanup(struct drm_device *dev)
 	/* flush any delayed tasks or pending work */
 	flush_scheduled_work();
 
-	/* destroy the backlight and sysfs files before encoders/connectors */
-	for_each_intel_connector(dev, connector)
-		connector->unregister(connector);
+	drm_connector_unregister_all(dev);
 
 	drm_mode_config_cleanup(dev);
 
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index be083519dac9..2e4b66c9ee3e 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1177,7 +1177,6 @@ static void intel_aux_reg_init(struct intel_dp *intel_dp)
 static void
 intel_dp_aux_fini(struct intel_dp *intel_dp)
 {
-	drm_dp_aux_unregister(&intel_dp->aux);
 	kfree(intel_dp->aux.name);
 }
 
@@ -1212,15 +1211,6 @@ intel_dp_aux_init(struct intel_dp *intel_dp, struct intel_connector *connector)
 	return 0;
 }
 
-static void
-intel_dp_connector_unregister(struct intel_connector *intel_connector)
-{
-	struct intel_dp *intel_dp = intel_attached_dp(&intel_connector->base);
-
-	intel_dp_aux_fini(intel_dp);
-	intel_connector_unregister(intel_connector);
-}
-
 static int
 intel_dp_sink_rates(struct intel_dp *intel_dp, const int **sink_rates)
 {
@@ -4457,6 +4447,13 @@ done:
 }
 
 static void
+intel_dp_connector_unregister(struct drm_connector *connector)
+{
+	drm_dp_aux_unregister(&intel_attached_dp(connector)->aux);
+	intel_connector_unregister(connector);
+}
+
+static void
 intel_dp_connector_destroy(struct drm_connector *connector)
 {
 	struct intel_connector *intel_connector = to_intel_connector(connector);
@@ -4466,6 +4463,8 @@ intel_dp_connector_destroy(struct drm_connector *connector)
 	if (!IS_ERR_OR_NULL(intel_connector->edid))
 		kfree(intel_connector->edid);
 
+	intel_dp_aux_fini(intel_attached_dp(connector));
+
 	/* Can't call is_edp() since the encoder may have been destroyed
 	 * already. */
 	if (connector->connector_type == DRM_MODE_CONNECTOR_eDP)
@@ -4572,6 +4571,7 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_dp_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
+	.early_unregister = intel_dp_connector_unregister,
 	.destroy = intel_dp_connector_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -5487,7 +5487,6 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
 		intel_connector->get_hw_state = intel_ddi_connector_get_hw_state;
 	else
 		intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_dp_connector_unregister;
 
 	/* Set up the hotplug pin. */
 	switch (port) {
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index f62ca9a126b3..9646816604be 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 = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_dp_mst_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dp_mst_connector_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -455,7 +456,6 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
 	drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, DRM_MODE_CONNECTOR_DisplayPort);
 	drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
 
-	intel_connector->unregister = intel_connector_unregister;
 	intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
 	intel_connector->mst_port = intel_dp;
 	intel_connector->port = port;
@@ -489,7 +489,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
 	struct intel_connector *intel_connector = to_intel_connector(connector);
 	struct drm_device *dev = connector->dev;
 
-	intel_connector->unregister(intel_connector);
+	drm_connector_unregister(connector);
 
 	/* need to nuke the connector */
 	drm_modeset_lock_all(dev);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 0c1dc9bae170..adb6b9eb9f2f 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -242,14 +242,6 @@ struct intel_connector {
 	 * and active (i.e. dpms ON state). */
 	bool (*get_hw_state)(struct intel_connector *);
 
-	/*
-	 * Removes all interfaces through which the connector is accessible
-	 * - like sysfs, debugfs entries -, so that no new operations can be
-	 * started on the connector. Also makes sure all currently pending
-	 * operations finish before returing.
-	 */
-	void (*unregister)(struct intel_connector *);
-
 	/* Panel info for eDP and LVDS */
 	struct intel_panel panel;
 
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 10e12829b13f..b444d0e35a98 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
 static const struct drm_connector_funcs intel_dsi_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dsi_detect,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dsi_connector_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_dsi_set_property,
@@ -1466,7 +1467,6 @@ void intel_dsi_init(struct drm_device *dev)
 	intel_encoder->get_config = intel_dsi_get_config;
 
 	intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	/*
 	 * On BYT/CHV, pipe A maps to MIPI DSI port A, pipe B maps to MIPI DSI
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index c86f88ed92fd..60e4ddf2ec6d 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)
 static const struct drm_connector_funcs intel_dvo_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_dvo_detect,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_dvo_destroy,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_connector_atomic_get_property,
@@ -447,7 +448,6 @@ void intel_dvo_init(struct drm_device *dev)
 	intel_encoder->compute_config = intel_dvo_compute_config;
 	intel_encoder->pre_enable = intel_dvo_pre_enable;
 	intel_connector->get_hw_state = intel_dvo_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	/* Now, try to find a controller */
 	for (i = 0; i < ARRAY_SIZE(intel_dvo_devices); i++) {
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index ad0c71b3e242..fb21626ada64 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 = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_hdmi_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_hdmi_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -1909,7 +1910,6 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
 		intel_connector->get_hw_state = intel_ddi_connector_get_hw_state;
 	else
 		intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	intel_hdmi_add_properties(intel_hdmi, connector);
 
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index e06b9036bebc..e9082185a375 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 = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_lvds_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_lvds_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -991,7 +992,6 @@ void intel_lvds_init(struct drm_device *dev)
 	intel_encoder->get_hw_state = intel_lvds_get_hw_state;
 	intel_encoder->get_config = intel_lvds_get_config;
 	intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	intel_connector_attach_encoder(intel_connector, intel_encoder);
 	intel_encoder->type = INTEL_OUTPUT_LVDS;
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index ab2d0658abe6..02b4a6695528 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2177,12 +2177,23 @@ done:
 #undef CHECK_PROPERTY
 }
 
+static void
+intel_sdvo_connector_unregister(struct drm_connector *connector)
+{
+	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
+
+	sysfs_remove_link(&connector->kdev->kobj,
+			  sdvo->ddc.dev.kobj.name);
+	intel_connector_unregister(connector);
+}
+
 static const struct drm_connector_funcs intel_sdvo_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_sdvo_detect,
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.set_property = intel_sdvo_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
+	.early_unregister = intel_sdvo_connector_unregister,
 	.destroy = intel_sdvo_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
 	.atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
@@ -2345,20 +2356,6 @@ intel_sdvo_get_slave_addr(struct drm_device *dev, struct intel_sdvo *sdvo)
 		return 0x72;
 }
 
-static void
-intel_sdvo_connector_unregister(struct intel_connector *intel_connector)
-{
-	struct drm_connector *drm_connector;
-	struct intel_sdvo *sdvo_encoder;
-
-	drm_connector = &intel_connector->base;
-	sdvo_encoder = intel_attached_sdvo(&intel_connector->base);
-
-	sysfs_remove_link(&drm_connector->kdev->kobj,
-			  sdvo_encoder->ddc.dev.kobj.name);
-	intel_connector_unregister(intel_connector);
-}
-
 static int
 intel_sdvo_connector_init(struct intel_sdvo_connector *connector,
 			  struct intel_sdvo *encoder)
@@ -2381,7 +2378,6 @@ intel_sdvo_connector_init(struct intel_sdvo_connector *connector,
 	connector->base.base.doublescan_allowed = 0;
 	connector->base.base.display_info.subpixel_order = SubPixelHorizontalRGB;
 	connector->base.get_hw_state = intel_sdvo_connector_get_hw_state;
-	connector->base.unregister = intel_sdvo_connector_unregister;
 
 	intel_connector_attach_encoder(&connector->base, &encoder->base);
 	ret = drm_connector_register(drm_connector);
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 7ac9e9b0e2c3..4ce70a9f9df2 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1501,6 +1501,7 @@ out:
 static const struct drm_connector_funcs intel_tv_connector_funcs = {
 	.dpms = drm_atomic_helper_connector_dpms,
 	.detect = intel_tv_detect,
+	.early_unregister = intel_connector_unregister,
 	.destroy = intel_tv_destroy,
 	.set_property = intel_tv_set_property,
 	.atomic_get_property = intel_connector_atomic_get_property,
@@ -1599,7 +1600,6 @@ intel_tv_init(struct drm_device *dev)
 	intel_encoder->disable = intel_disable_tv;
 	intel_encoder->get_hw_state = intel_tv_get_hw_state;
 	intel_connector->get_hw_state = intel_connector_get_hw_state;
-	intel_connector->unregister = intel_connector_unregister;
 
 	intel_connector_attach_encoder(intel_connector, intel_encoder);
 	intel_encoder->type = INTEL_OUTPUT_TVOUT;
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] drm/i915: Move backlight unregistration to connector unregistration
  2016-06-17 10:40 Prepare for automatic drm_connector_unregister_all() Chris Wilson
  2016-06-17 10:40 ` [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
@ 2016-06-17 10:40 ` Chris Wilson
  2016-06-17 11:07 ` ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Patchwork
  2 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2016-06-17 10:40 UTC (permalink / raw)
  To: intel-gfx

Currently the backlight is being unregistered in the unload phase (after
the display and its objects are unregistered). Move the backlight
unregistration into the analogous phase by performing it from the
connector unregistration, just prior to its deletion.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c |  5 +++--
 drivers/gpu/drm/i915/intel_drv.h     |  9 ++++++++-
 drivers/gpu/drm/i915/intel_panel.c   | 13 +------------
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 6159d59bcbfd..790972ede1f7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -16313,6 +16313,9 @@ void intel_modeset_gem_init(struct drm_device *dev)
 
 void intel_connector_unregister(struct drm_connector *connector)
 {
+	struct intel_connector *intel_connector = to_intel_connector(connector);
+
+	intel_backlight_device_unregister(intel_connector);
 	intel_panel_destroy_backlight(connector);
 }
 
@@ -16322,8 +16325,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
 
 	intel_disable_gt_powersave(dev_priv);
 
-	intel_backlight_unregister(dev);
-
 	/*
 	 * Interrupts and polling as the first thing to avoid creating havoc.
 	 * Too much stuff here (turning of connectors, ...) would
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index adb6b9eb9f2f..7d0e071fe355 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1501,7 +1501,14 @@ extern struct drm_display_mode *intel_find_panel_downclock(
 				struct drm_display_mode *fixed_mode,
 				struct drm_connector *connector);
 void intel_backlight_register(struct drm_device *dev);
-void intel_backlight_unregister(struct drm_device *dev);
+
+#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
+void intel_backlight_device_unregister(struct intel_connector *connector);
+#else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
+static inline void intel_backlight_device_unregister(struct intel_connector *connector)
+{
+}
+#endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
 
 
 /* intel_psr.c */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index f0b1602c3258..bf721781c259 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1216,7 +1216,7 @@ static int intel_backlight_device_register(struct intel_connector *connector)
 	return 0;
 }
 
-static void intel_backlight_device_unregister(struct intel_connector *connector)
+void intel_backlight_device_unregister(struct intel_connector *connector)
 {
 	struct intel_panel *panel = &connector->panel;
 
@@ -1230,9 +1230,6 @@ static int intel_backlight_device_register(struct intel_connector *connector)
 {
 	return 0;
 }
-static void intel_backlight_device_unregister(struct intel_connector *connector)
-{
-}
 #endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
 
 /*
@@ -1820,11 +1817,3 @@ void intel_backlight_register(struct drm_device *dev)
 	for_each_intel_connector(dev, connector)
 		intel_backlight_device_register(connector);
 }
-
-void intel_backlight_unregister(struct drm_device *dev)
-{
-	struct intel_connector *connector;
-
-	for_each_intel_connector(dev, connector)
-		intel_backlight_device_unregister(connector);
-}
-- 
2.8.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
  2016-06-17 10:40 Prepare for automatic drm_connector_unregister_all() Chris Wilson
  2016-06-17 10:40 ` [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
  2016-06-17 10:40 ` [PATCH 2/2] drm/i915: Move backlight unregistration to connector unregistration Chris Wilson
@ 2016-06-17 11:07 ` Patchwork
  2016-06-19  8:40   ` Daniel Vetter
  2 siblings, 1 reply; 6+ messages in thread
From: Patchwork @ 2016-06-17 11:07 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
URL   : https://patchwork.freedesktop.org/series/8825/
State : failure

== Summary ==

Series 8825v1 Series without cover letter
http://patchwork.freedesktop.org/api/1.0/series/8825/revisions/1/mbox

Test drv_getparams_basic:
        Subgroup basic-eu-total:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
        Subgroup basic-subslice-total:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
Test drv_hangman:
        Subgroup error-state-basic:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
Test drv_module_reload_basic:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                dmesg-warn -> SKIP       (ro-skl3-i5-6260u)
Test gem_basic:
        Subgroup bad-close:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
        Subgroup create-close:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
        Subgroup create-fd-close:
                pass       -> SKIP       (ro-bdw-i7-5557U)
                pass       -> SKIP       (ro-ilk1-i5-650)
                pass       -> SKIP       (ro-hsw-i3-4010u)
                pass       -> SKIP       (ro-bdw-i7-5600u)
                pass       -> SKIP       (ro-snb-i7-2620M)
                pass       -> SKIP       (ro-bdw-i5-5250u)
                pass       -> SKIP       (ro-hsw-i7-4770r)
                pass       -> SKIP       (ro-ivb-i7-3770)
                pass       -> SKIP       (ro-ivb2-i7-3770)
                pass       -> SKIP       (ro-byt-n2820)
                pass       -> SKIP       (fi-skl-i7-6700k)
                pass       -> SKIP       (ro-skl3-i5-6260u)
Test gem_busy:
        Subgroup basic-blt:
                pass       -> SKIP       (ro-bdw-i7-5557U)
WARNING: Long output truncated
fi-hsw-i7-4770k failed to connect after reboot
fi-skl-i5-6260u failed to connect after reboot
fi-snb-i7-2600 failed to connect after reboot

Results at /archive/results/CI_IGT_test/RO_Patchwork_1208/

828cccf drm-intel-nightly: 2016y-06m-17d-09h-38m-29s UTC integration manifest
36ed30a drm/i915: Move backlight unregistration to connector unregistration
c9d113b drm/i915: Move intel_connector->unregister to connector->early_unregister

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
  2016-06-17 10:40 ` [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
@ 2016-06-17 13:00   ` kbuild test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2016-06-17 13:00 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4859 bytes --]

Hi,

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.7-rc3 next-20160617]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Move-intel_connector-unregister-to-connector-early_unregister/20160617-190035
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/intel_crt.c:746:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_crt.c:746:22: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .early_unregister = intel_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_crt.c:746:22: note: (near initialization for 'intel_crt_connector_funcs.set_property')
   cc1: some warnings being treated as errors
--
>> drivers/gpu/drm/i915/intel_dp_mst.c:339:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_dp_mst.c:339:22: warning: excess elements in struct initializer
     .early_unregister = intel_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_dp_mst.c:339:22: note: (near initialization for 'intel_dp_mst_connector_funcs')
--
>> drivers/gpu/drm/i915/intel_dp.c:4574:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_dp_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_dp.c:4574:22: warning: excess elements in struct initializer
     .early_unregister = intel_dp_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_dp.c:4574:22: note: (near initialization for 'intel_dp_connector_funcs')
--
>> drivers/gpu/drm/i915/intel_dsi.c:1393:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
--
>> drivers/gpu/drm/i915/intel_dvo.c:344:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
--
>> drivers/gpu/drm/i915/intel_hdmi.c:1777:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_hdmi.c:1777:22: warning: excess elements in struct initializer
     .early_unregister = intel_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_hdmi.c:1777:22: note: (near initialization for 'intel_hdmi_connector_funcs')
--
>> drivers/gpu/drm/i915/intel_lvds.c:558:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_lvds.c:558:22: warning: excess elements in struct initializer
     .early_unregister = intel_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_lvds.c:558:22: note: (near initialization for 'intel_lvds_connector_funcs')
--
>> drivers/gpu/drm/i915/intel_sdvo.c:2196:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_sdvo_connector_unregister,
     ^
>> drivers/gpu/drm/i915/intel_sdvo.c:2196:22: warning: excess elements in struct initializer
     .early_unregister = intel_sdvo_connector_unregister,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/intel_sdvo.c:2196:22: note: (near initialization for 'intel_sdvo_connector_funcs')
--
>> drivers/gpu/drm/i915/intel_tv.c:1504:2: error: unknown field 'early_unregister' specified in initializer
     .early_unregister = intel_connector_unregister,
     ^

vim +/early_unregister +746 drivers/gpu/drm/i915/intel_crt.c

   740	
   741	static const struct drm_connector_funcs intel_crt_connector_funcs = {
   742		.reset = intel_crt_reset,
   743		.dpms = drm_atomic_helper_connector_dpms,
   744		.detect = intel_crt_detect,
   745		.fill_modes = drm_helper_probe_single_connector_modes,
 > 746		.early_unregister = intel_connector_unregister,
   747		.destroy = intel_crt_destroy,
   748		.set_property = intel_crt_set_property,
   749		.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 54751 bytes --]

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
  2016-06-17 11:07 ` ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Patchwork
@ 2016-06-19  8:40   ` Daniel Vetter
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2016-06-19  8:40 UTC (permalink / raw)
  To: intel-gfx

On Fri, Jun 17, 2016 at 11:07:57AM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister
> URL   : https://patchwork.freedesktop.org/series/8825/
> State : failure
> 
> == Summary ==
> 
> Series 8825v1 Series without cover letter
> http://patchwork.freedesktop.org/api/1.0/series/8825/revisions/1/mbox

CI entirely died here. Retrying with trybot shows it's all good:

https://patchwork.freedesktop.org/series/8852/

Merged both patches to drm-misc, thanks.
-Daniel

> 
> Test drv_getparams_basic:
>         Subgroup basic-eu-total:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
>         Subgroup basic-subslice-total:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
> Test drv_hangman:
>         Subgroup error-state-basic:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
> Test drv_module_reload_basic:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 dmesg-warn -> SKIP       (ro-skl3-i5-6260u)
> Test gem_basic:
>         Subgroup bad-close:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
>         Subgroup create-close:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
>         Subgroup create-fd-close:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
>                 pass       -> SKIP       (ro-ilk1-i5-650)
>                 pass       -> SKIP       (ro-hsw-i3-4010u)
>                 pass       -> SKIP       (ro-bdw-i7-5600u)
>                 pass       -> SKIP       (ro-snb-i7-2620M)
>                 pass       -> SKIP       (ro-bdw-i5-5250u)
>                 pass       -> SKIP       (ro-hsw-i7-4770r)
>                 pass       -> SKIP       (ro-ivb-i7-3770)
>                 pass       -> SKIP       (ro-ivb2-i7-3770)
>                 pass       -> SKIP       (ro-byt-n2820)
>                 pass       -> SKIP       (fi-skl-i7-6700k)
>                 pass       -> SKIP       (ro-skl3-i5-6260u)
> Test gem_busy:
>         Subgroup basic-blt:
>                 pass       -> SKIP       (ro-bdw-i7-5557U)
> WARNING: Long output truncated
> fi-hsw-i7-4770k failed to connect after reboot
> fi-skl-i5-6260u failed to connect after reboot
> fi-snb-i7-2600 failed to connect after reboot
> 
> Results at /archive/results/CI_IGT_test/RO_Patchwork_1208/
> 
> 828cccf drm-intel-nightly: 2016y-06m-17d-09h-38m-29s UTC integration manifest
> 36ed30a drm/i915: Move backlight unregistration to connector unregistration
> c9d113b drm/i915: Move intel_connector->unregister to connector->early_unregister
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-06-19  8:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-17 10:40 Prepare for automatic drm_connector_unregister_all() Chris Wilson
2016-06-17 10:40 ` [PATCH 1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
2016-06-17 13:00   ` kbuild test robot
2016-06-17 10:40 ` [PATCH 2/2] drm/i915: Move backlight unregistration to connector unregistration Chris Wilson
2016-06-17 11:07 ` ✗ Ro.CI.BAT: failure for series starting with [1/2] drm/i915: Move intel_connector->unregister to connector->early_unregister Patchwork
2016-06-19  8:40   ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.