RE: [PATCH] drm: Make the connector .detect() callback optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Laurent Pinchart
> [mailto:laurent.pinchart+renesas@xxxxxxxxxxxxxxxx]
> Sent: Tuesday, November 29, 2016 3:57 PM
> To: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: Deucher, Alexander; Koenig, Christian; Alexey Brodkin; Stefan Agner;
> Alison Wang; Patrik Jakobsson; Xinliang Liu; Rongrong Zou; Daniel Vetter;
> Philipp Zabel; CK Hu; Mark Yao; Benjamin Gaignard; Vincent Abriou; Maxime
> Ripard; Jyri Sarha
> Subject: [PATCH] drm: Make the connector .detect() callback optional
> 
> Many drivers (21 to be exact) create connectors that are always
> connected (for instance to an LVDS or DSI panel). Instead of forcing
> them to implement a dummy .detect() handler, make the callback optional
> and consider the connector as always connected in that case.
> 
> Signed-off-by: Laurent Pinchart
> <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>

Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

> ---
>  drivers/gpu/drm/amd/amdgpu/dce_virtual.c         |  7 -------
>  drivers/gpu/drm/arc/arcpgu_sim.c                 |  7 -------
>  drivers/gpu/drm/ast/ast_mode.c                   |  7 -------
>  drivers/gpu/drm/bochs/bochs_kms.c                |  7 -------
>  drivers/gpu/drm/bridge/nxp-ptn3460.c             |  7 -------
>  drivers/gpu/drm/bridge/parade-ps8622.c           |  7 -------
>  drivers/gpu/drm/bridge/tc358767.c                |  7 -------
>  drivers/gpu/drm/cirrus/cirrus_mode.c             |  7 -------
>  drivers/gpu/drm/drm_probe_helper.c               | 14 +++++++++++---
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c        |  7 -------
>  drivers/gpu/drm/gma500/cdv_intel_lvds.c          | 14 --------------
>  drivers/gpu/drm/gma500/psb_intel_lvds.c          | 14 --------------
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c |  7 -------
>  drivers/gpu/drm/i915/intel_dsi.c                 |  7 -------
>  drivers/gpu/drm/imx/imx-ldb.c                    |  7 -------
>  drivers/gpu/drm/imx/imx-tve.c                    |  7 -------
>  drivers/gpu/drm/imx/parallel-display.c           |  7 -------
>  drivers/gpu/drm/mediatek/mtk_dsi.c               |  7 -------
>  drivers/gpu/drm/mgag200/mgag200_mode.c           |  7 -------
>  drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c        |  7 -------
>  drivers/gpu/drm/rockchip/dw-mipi-dsi.c           |  7 -------
>  drivers/gpu/drm/shmobile/shmob_drm_crtc.c        |  7 -------
>  drivers/gpu/drm/sti/sti_hda.c                    |  7 -------
>  drivers/gpu/drm/sun4i/sun4i_rgb.c                |  7 -------
>  drivers/gpu/drm/sun4i/sun4i_tv.c                 |  7 -------
>  drivers/gpu/drm/tilcdc/tilcdc_panel.c            |  8 --------
>  include/drm/drm_connector.h                      |  3 +++
>  27 files changed, 14 insertions(+), 193 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> index 81cbf0b05dff..1d93e123532d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
> @@ -429,12 +429,6 @@ dce_virtual_dpms(struct drm_connector
> *connector, int mode)
>  	return 0;
>  }
> 
> -static enum drm_connector_status
> -dce_virtual_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int
>  dce_virtual_set_property(struct drm_connector *connector,
>  			 struct drm_property *property,
> @@ -463,7 +457,6 @@ static const struct drm_connector_helper_funcs
> dce_virtual_connector_helper_func
> 
>  static const struct drm_connector_funcs dce_virtual_connector_funcs = {
>  	.dpms = dce_virtual_dpms,
> -	.detect = dce_virtual_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.set_property = dce_virtual_set_property,
>  	.destroy = dce_virtual_destroy,
> diff --git a/drivers/gpu/drm/arc/arcpgu_sim.c
> b/drivers/gpu/drm/arc/arcpgu_sim.c
> index 2bf06d71556a..bca3a678c955 100644
> --- a/drivers/gpu/drm/arc/arcpgu_sim.c
> +++ b/drivers/gpu/drm/arc/arcpgu_sim.c
> @@ -41,12 +41,6 @@ static int arcpgu_drm_connector_get_modes(struct
> drm_connector *connector)
>  	return count;
>  }
> 
> -static enum drm_connector_status
> -arcpgu_drm_connector_detect(struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void arcpgu_drm_connector_destroy(struct drm_connector
> *connector)
>  {
>  	drm_connector_unregister(connector);
> @@ -61,7 +55,6 @@ arcpgu_drm_connector_helper_funcs = {
>  static const struct drm_connector_funcs arcpgu_drm_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
>  	.reset = drm_atomic_helper_connector_reset,
> -	.detect = arcpgu_drm_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = arcpgu_drm_connector_destroy,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/ast/ast_mode.c
> b/drivers/gpu/drm/ast/ast_mode.c
> index 5957c3e659fe..e26c98f51eb4 100644
> --- a/drivers/gpu/drm/ast/ast_mode.c
> +++ b/drivers/gpu/drm/ast/ast_mode.c
> @@ -839,12 +839,6 @@ static void ast_connector_destroy(struct
> drm_connector *connector)
>  	kfree(connector);
>  }
> 
> -static enum drm_connector_status
> -ast_connector_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_helper_funcs
> ast_connector_helper_funcs = {
>  	.mode_valid = ast_mode_valid,
>  	.get_modes = ast_get_modes,
> @@ -853,7 +847,6 @@ static const struct drm_connector_helper_funcs
> ast_connector_helper_funcs = {
> 
>  static const struct drm_connector_funcs ast_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = ast_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = ast_connector_destroy,
>  };
> diff --git a/drivers/gpu/drm/bochs/bochs_kms.c
> b/drivers/gpu/drm/bochs/bochs_kms.c
> index 0b4e5d117043..d5e63eff357b 100644
> --- a/drivers/gpu/drm/bochs/bochs_kms.c
> +++ b/drivers/gpu/drm/bochs/bochs_kms.c
> @@ -216,12 +216,6 @@ bochs_connector_best_encoder(struct
> drm_connector *connector)
>  	return NULL;
>  }
> 
> -static enum drm_connector_status bochs_connector_detect(struct
> drm_connector
> -							*connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_helper_funcs
> bochs_connector_connector_helper_funcs = {
>  	.get_modes = bochs_connector_get_modes,
>  	.mode_valid = bochs_connector_mode_valid,
> @@ -230,7 +224,6 @@ static const struct drm_connector_helper_funcs
> bochs_connector_connector_helper_
> 
>  static const struct drm_connector_funcs bochs_connector_connector_funcs
> = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = bochs_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = drm_connector_cleanup,
>  };
> diff --git a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> index f1a99938e924..27f98c518dde 100644
> --- a/drivers/gpu/drm/bridge/nxp-ptn3460.c
> +++ b/drivers/gpu/drm/bridge/nxp-ptn3460.c
> @@ -239,16 +239,9 @@ static const struct drm_connector_helper_funcs
> ptn3460_connector_helper_funcs =
>  	.get_modes = ptn3460_get_modes,
>  };
> 
> -static enum drm_connector_status ptn3460_detect(struct drm_connector
> *connector,
> -		bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_funcs ptn3460_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = ptn3460_detect,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/bridge/parade-ps8622.c
> b/drivers/gpu/drm/bridge/parade-ps8622.c
> index 6f7c2f9860d2..ac8cc5b50d9f 100644
> --- a/drivers/gpu/drm/bridge/parade-ps8622.c
> +++ b/drivers/gpu/drm/bridge/parade-ps8622.c
> @@ -477,16 +477,9 @@ static const struct drm_connector_helper_funcs
> ps8622_connector_helper_funcs = {
>  	.get_modes = ps8622_get_modes,
>  };
> 
> -static enum drm_connector_status ps8622_detect(struct drm_connector
> *connector,
> -								bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_funcs ps8622_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = ps8622_detect,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/bridge/tc358767.c
> b/drivers/gpu/drm/bridge/tc358767.c
> index 44d476ea6d2e..018be8911f71 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1038,12 +1038,6 @@ static int tc_main_link_stream(struct tc_data *tc,
> int state)
>  	return ret;
>  }
> 
> -static enum drm_connector_status
> -tc_connector_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void tc_bridge_pre_enable(struct drm_bridge *bridge)
>  {
>  	struct tc_data *tc = bridge_to_tc(bridge);
> @@ -1168,7 +1162,6 @@ static const struct drm_connector_helper_funcs
> tc_connector_helper_funcs = {
>  static const struct drm_connector_funcs tc_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = tc_connector_detect,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/cirrus/cirrus_mode.c
> b/drivers/gpu/drm/cirrus/cirrus_mode.c
> index 17c915d9a03e..9a4a27c1afd2 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_mode.c
> +++ b/drivers/gpu/drm/cirrus/cirrus_mode.c
> @@ -498,12 +498,6 @@ static struct drm_encoder
> *cirrus_connector_best_encoder(struct drm_connector
>  	return NULL;
>  }
> 
> -static enum drm_connector_status cirrus_vga_detect(struct drm_connector
> -						   *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void cirrus_connector_destroy(struct drm_connector *connector)
>  {
>  	drm_connector_cleanup(connector);
> @@ -517,7 +511,6 @@ static const struct drm_connector_helper_funcs
> cirrus_vga_connector_helper_funcs
> 
>  static const struct drm_connector_funcs cirrus_vga_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = cirrus_vga_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = cirrus_connector_destroy,
>  };
> diff --git a/drivers/gpu/drm/drm_probe_helper.c
> b/drivers/gpu/drm/drm_probe_helper.c
> index f6b64d7d3528..078d9703a4fe 100644
> --- a/drivers/gpu/drm/drm_probe_helper.c
> +++ b/drivers/gpu/drm/drm_probe_helper.c
> @@ -152,6 +152,14 @@ void drm_kms_helper_poll_enable_locked(struct
> drm_device *dev)
>  }
>  EXPORT_SYMBOL(drm_kms_helper_poll_enable_locked);
> 
> +static enum drm_connector_status
> +drm_connector_detect(struct drm_connector *connector, bool force)
> +{
> +	return connector->funcs->detect ?
> +		connector->funcs->detect(connector, force) :
> +		connector_status_connected;
> +}
> +
>  /**
>   * drm_helper_probe_single_connector_modes - get complete set of
> display modes
>   * @connector: connector to probe
> @@ -239,7 +247,7 @@ int
> drm_helper_probe_single_connector_modes(struct drm_connector
> *connector,
>  		if (connector->funcs->force)
>  			connector->funcs->force(connector);
>  	} else {
> -		connector->status = connector->funcs->detect(connector,
> true);
> +		connector->status = drm_connector_detect(connector,
> true);
>  	}
> 
>  	/*
> @@ -405,7 +413,7 @@ static void output_poll_execute(struct work_struct
> *work)
> 
>  		repoll = true;
> 
> -		connector->status = connector->funcs->detect(connector,
> false);
> +		connector->status = drm_connector_detect(connector,
> false);
>  		if (old_status != connector->status) {
>  			const char *old, *new;
> 
> @@ -565,7 +573,7 @@ bool drm_helper_hpd_irq_event(struct drm_device
> *dev)
> 
>  		old_status = connector->status;
> 
> -		connector->status = connector->funcs->detect(connector,
> false);
> +		connector->status = drm_connector_detect(connector,
> false);
>  		DRM_DEBUG_KMS("[CONNECTOR:%d:%s] status updated
> from %s to %s\n",
>  			      connector->base.id,
>  			      connector->name,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> index e1dd75b18118..05a8ee106879 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c
> @@ -58,17 +58,10 @@ static void fsl_dcu_drm_connector_destroy(struct
> drm_connector *connector)
>  	drm_connector_cleanup(connector);
>  }
> 
> -static enum drm_connector_status
> -fsl_dcu_drm_connector_detect(struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_funcs fsl_dcu_drm_connector_funcs = {
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
>  	.atomic_destroy_state =
> drm_atomic_helper_connector_destroy_state,
>  	.destroy = fsl_dcu_drm_connector_destroy,
> -	.detect = fsl_dcu_drm_connector_detect,
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
> b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
> index ea733ab5b1e0..5efdb7fbb7ee 100644
> --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c
> +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c
> @@ -387,19 +387,6 @@ static void cdv_intel_lvds_mode_set(struct
> drm_encoder *encoder,
>  }
> 
>  /**
> - * Detect the LVDS connection.
> - *
> - * This always returns CONNECTOR_STATUS_CONNECTED.
> - * This connector should only have
> - * been set up if the LVDS was actually connected anyway.
> - */
> -static enum drm_connector_status cdv_intel_lvds_detect(
> -				struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
> -/**
>   * Return the list of DDC modes if available, or the BIOS fixed mode
> otherwise.
>   */
>  static int cdv_intel_lvds_get_modes(struct drm_connector *connector)
> @@ -521,7 +508,6 @@ static const struct drm_connector_helper_funcs
> 
>  static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = cdv_intel_lvds_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.set_property = cdv_intel_lvds_set_property,
>  	.destroy = cdv_intel_lvds_destroy,
> diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c
> b/drivers/gpu/drm/gma500/psb_intel_lvds.c
> index fd7c91254841..483fdce74e39 100644
> --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
> +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
> @@ -500,19 +500,6 @@ static void psb_intel_lvds_mode_set(struct
> drm_encoder *encoder,
>  }
> 
>  /*
> - * Detect the LVDS connection.
> - *
> - * This always returns CONNECTOR_STATUS_CONNECTED.
> - * This connector should only have
> - * been set up if the LVDS was actually connected anyway.
> - */
> -static enum drm_connector_status psb_intel_lvds_detect(struct
> drm_connector
> -						   *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
> -/*
>   * Return the list of DDC modes if available, or the BIOS fixed mode
> otherwise.
>   */
>  static int psb_intel_lvds_get_modes(struct drm_connector *connector)
> @@ -643,7 +630,6 @@ const struct drm_connector_helper_funcs
> 
>  const struct drm_connector_funcs psb_intel_lvds_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = psb_intel_lvds_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.set_property = psb_intel_lvds_set_property,
>  	.destroy = psb_intel_lvds_destroy,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> index d1f67a9d4d86..12a18557c5fd 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
> @@ -39,12 +39,6 @@ hibmc_connector_best_encoder(struct
> drm_connector *connector)
>  	return drm_encoder_find(connector->dev, connector-
> >encoder_ids[0]);
>  }
> 
> -static enum drm_connector_status hibmc_connector_detect(struct
> drm_connector
> -						 *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_helper_funcs
>  	hibmc_connector_helper_funcs = {
>  	.get_modes = hibmc_connector_get_modes,
> @@ -54,7 +48,6 @@ static const struct drm_connector_helper_funcs
> 
>  static const struct drm_connector_funcs hibmc_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
> -	.detect = hibmc_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c
> b/drivers/gpu/drm/i915/intel_dsi.c
> index 4e0d025490a3..5b72c50d6f76 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1298,12 +1298,6 @@ static void intel_dsi_prepare(struct intel_encoder
> *intel_encoder,
>  	}
>  }
> 
> -static enum drm_connector_status
> -intel_dsi_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int intel_dsi_get_modes(struct drm_connector *connector)
>  {
>  	struct intel_connector *intel_connector =
> to_intel_connector(connector);
> @@ -1407,7 +1401,6 @@ 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,
>  	.late_register = intel_connector_register,
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_dsi_connector_destroy,
> diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
> index b300998dce7d..516d06490465 100644
> --- a/drivers/gpu/drm/imx/imx-ldb.c
> +++ b/drivers/gpu/drm/imx/imx-ldb.c
> @@ -101,12 +101,6 @@ struct imx_ldb {
>  	const struct bus_mux *lvds_mux;
>  };
> 
> -static enum drm_connector_status imx_ldb_connector_detect(
> -		struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void imx_ldb_ch_set_bus_format(struct imx_ldb_channel
> *imx_ldb_ch,
>  				      u32 bus_format)
>  {
> @@ -397,7 +391,6 @@ static int imx_ldb_encoder_atomic_check(struct
> drm_encoder *encoder,
>  static const struct drm_connector_funcs imx_ldb_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = imx_ldb_connector_detect,
>  	.destroy = imx_drm_connector_destroy,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
> index 8fc088843e55..3b602ee33c44 100644
> --- a/drivers/gpu/drm/imx/imx-tve.c
> +++ b/drivers/gpu/drm/imx/imx-tve.c
> @@ -227,12 +227,6 @@ static int tve_setup_vga(struct imx_tve *tve)
>  				 TVE_TVDAC_TEST_MODE_MASK, 1);
>  }
> 
> -static enum drm_connector_status imx_tve_connector_detect(
> -				struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int imx_tve_connector_get_modes(struct drm_connector
> *connector)
>  {
>  	struct imx_tve *tve = con_to_tve(connector);
> @@ -352,7 +346,6 @@ static int imx_tve_atomic_check(struct drm_encoder
> *encoder,
>  static const struct drm_connector_funcs imx_tve_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = imx_tve_connector_detect,
>  	.destroy = imx_drm_connector_destroy,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/imx/parallel-display.c
> b/drivers/gpu/drm/imx/parallel-display.c
> index d796ada2a47a..8582a83c0d9b 100644
> --- a/drivers/gpu/drm/imx/parallel-display.c
> +++ b/drivers/gpu/drm/imx/parallel-display.c
> @@ -49,12 +49,6 @@ static inline struct imx_parallel_display
> *enc_to_imxpd(struct drm_encoder *e)
>  	return container_of(e, struct imx_parallel_display, encoder);
>  }
> 
> -static enum drm_connector_status imx_pd_connector_detect(
> -		struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int imx_pd_connector_get_modes(struct drm_connector *connector)
>  {
>  	struct imx_parallel_display *imxpd = con_to_imxpd(connector);
> @@ -143,7 +137,6 @@ static int imx_pd_encoder_atomic_check(struct
> drm_encoder *encoder,
>  static const struct drm_connector_funcs imx_pd_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = imx_pd_connector_detect,
>  	.destroy = imx_drm_connector_destroy,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c
> b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 28b2044ed9f2..30027b26a59f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -562,12 +562,6 @@ static void mtk_dsi_encoder_enable(struct
> drm_encoder *encoder)
>  	mtk_output_dsi_enable(dsi);
>  }
> 
> -static enum drm_connector_status mtk_dsi_connector_detect(
> -	struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int mtk_dsi_connector_get_modes(struct drm_connector *connector)
>  {
>  	struct mtk_dsi *dsi = connector_to_dsi(connector);
> @@ -584,7 +578,6 @@ static const struct drm_encoder_helper_funcs
> mtk_dsi_encoder_helper_funcs = {
> 
>  static const struct drm_connector_funcs mtk_dsi_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
> -	.detect = mtk_dsi_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c
> b/drivers/gpu/drm/mgag200/mgag200_mode.c
> index 6b21cb27e1cc..3a03ac4045d8 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_mode.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
> @@ -1658,12 +1658,6 @@ static struct drm_encoder
> *mga_connector_best_encoder(struct drm_connector
>  	return NULL;
>  }
> 
> -static enum drm_connector_status mga_vga_detect(struct drm_connector
> -						   *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void mga_connector_destroy(struct drm_connector *connector)
>  {
>  	struct mga_connector *mga_connector =
> to_mga_connector(connector);
> @@ -1680,7 +1674,6 @@ static const struct drm_connector_helper_funcs
> mga_vga_connector_helper_funcs =
> 
>  static const struct drm_connector_funcs mga_vga_connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = mga_vga_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = mga_connector_destroy,
>  };
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> index ee87494f9218..ee91481131ad 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
> @@ -37,12 +37,6 @@ static const struct drm_connector_helper_funcs
> connector_helper_funcs = {
>  	.get_modes = rcar_du_lvds_connector_get_modes,
>  };
> 
> -static enum drm_connector_status
> -rcar_du_lvds_connector_detect(struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void rcar_du_lvds_connector_destroy(struct drm_connector
> *connector)
>  {
>  	struct rcar_du_connector *rcon = to_rcar_connector(connector);
> @@ -54,7 +48,6 @@ static void rcar_du_lvds_connector_destroy(struct
> drm_connector *connector)
>  static const struct drm_connector_funcs connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.reset = drm_atomic_helper_connector_reset,
> -	.detect = rcar_du_lvds_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = rcar_du_lvds_connector_destroy,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> index ca22e5ee89ca..d9aa382bb629 100644
> --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
> @@ -969,12 +969,6 @@ static struct drm_connector_helper_funcs
> dw_mipi_dsi_connector_helper_funcs = {
>  	.mode_valid = dw_mipi_dsi_mode_valid,
>  };
> 
> -static enum drm_connector_status
> -dw_mipi_dsi_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void dw_mipi_dsi_drm_connector_destroy(struct drm_connector
> *connector)
>  {
>  	drm_connector_unregister(connector);
> @@ -984,7 +978,6 @@ static void
> dw_mipi_dsi_drm_connector_destroy(struct drm_connector *connector)
>  static struct drm_connector_funcs dw_mipi_dsi_atomic_connector_funcs =
> {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = dw_mipi_dsi_detect,
>  	.destroy = dw_mipi_dsi_drm_connector_destroy,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> index 6547b1db460a..dddbdd62bed0 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> @@ -669,15 +669,8 @@ static void shmob_drm_connector_destroy(struct
> drm_connector *connector)
>  	drm_connector_cleanup(connector);
>  }
> 
> -static enum drm_connector_status
> -shmob_drm_connector_detect(struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static const struct drm_connector_funcs connector_funcs = {
>  	.dpms = drm_helper_connector_dpms,
> -	.detect = shmob_drm_connector_detect,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.destroy = shmob_drm_connector_destroy,
>  };
> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
> index e7c243f70870..96f336dd0e29 100644
> --- a/drivers/gpu/drm/sti/sti_hda.c
> +++ b/drivers/gpu/drm/sti/sti_hda.c
> @@ -642,12 +642,6 @@ struct drm_connector_helper_funcs
> sti_hda_connector_helper_funcs = {
>  	.mode_valid = sti_hda_connector_mode_valid,
>  };
> 
> -static enum drm_connector_status
> -sti_hda_connector_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int sti_hda_late_register(struct drm_connector *connector)
>  {
>  	struct sti_hda_connector *hda_connector
> @@ -665,7 +659,6 @@ static int sti_hda_late_register(struct drm_connector
> *connector)
>  static const struct drm_connector_funcs sti_hda_connector_funcs = {
>  	.dpms = drm_atomic_helper_connector_dpms,
>  	.fill_modes = drm_helper_probe_single_connector_modes,
> -	.detect = sti_hda_connector_detect,
>  	.destroy = drm_connector_cleanup,
>  	.reset = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> index c3ff10f559cc..5380085b3c06 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
> @@ -110,12 +110,6 @@ static struct drm_connector_helper_funcs
> sun4i_rgb_con_helper_funcs = {
>  	.mode_valid	= sun4i_rgb_mode_valid,
>  };
> 
> -static enum drm_connector_status
> -sun4i_rgb_connector_detect(struct drm_connector *connector, bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void
>  sun4i_rgb_connector_destroy(struct drm_connector *connector)
>  {
> @@ -129,7 +123,6 @@ sun4i_rgb_connector_destroy(struct drm_connector
> *connector)
> 
>  static struct drm_connector_funcs sun4i_rgb_con_funcs = {
>  	.dpms			= drm_atomic_helper_connector_dpms,
> -	.detect			= sun4i_rgb_connector_detect,
>  	.fill_modes		=
> drm_helper_probe_single_connector_modes,
>  	.destroy		= sun4i_rgb_connector_destroy,
>  	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c
> b/drivers/gpu/drm/sun4i/sun4i_tv.c
> index d430b331fed5..c6f47222e8fc 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_tv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
> @@ -537,12 +537,6 @@ static struct drm_connector_helper_funcs
> sun4i_tv_comp_connector_helper_funcs =
>  	.mode_valid	= sun4i_tv_comp_mode_valid,
>  };
> 
> -static enum drm_connector_status
> -sun4i_tv_comp_connector_detect(struct drm_connector *connector, bool
> force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static void
>  sun4i_tv_comp_connector_destroy(struct drm_connector *connector)
>  {
> @@ -551,7 +545,6 @@ sun4i_tv_comp_connector_destroy(struct
> drm_connector *connector)
> 
>  static struct drm_connector_funcs sun4i_tv_comp_connector_funcs = {
>  	.dpms			= drm_atomic_helper_connector_dpms,
> -	.detect			= sun4i_tv_comp_connector_detect,
>  	.fill_modes		=
> drm_helper_probe_single_connector_modes,
>  	.destroy		= sun4i_tv_comp_connector_destroy,
>  	.reset			= drm_atomic_helper_connector_reset,
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> index 2134bb20fbe9..e634201db821 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
> @@ -144,13 +144,6 @@ static void panel_connector_destroy(struct
> drm_connector *connector)
>  	drm_connector_cleanup(connector);
>  }
> 
> -static enum drm_connector_status panel_connector_detect(
> -		struct drm_connector *connector,
> -		bool force)
> -{
> -	return connector_status_connected;
> -}
> -
>  static int panel_connector_get_modes(struct drm_connector *connector)
>  {
>  	struct drm_device *dev = connector->dev;
> @@ -197,7 +190,6 @@ static struct drm_encoder
> *panel_connector_best_encoder(
>  static const struct drm_connector_funcs panel_connector_funcs = {
>  	.destroy            = panel_connector_destroy,
>  	.dpms               = drm_atomic_helper_connector_dpms,
> -	.detect             = panel_connector_detect,
>  	.fill_modes         = drm_helper_probe_single_connector_modes,
>  	.reset              = drm_atomic_helper_connector_reset,
>  	.atomic_duplicate_state =
> drm_atomic_helper_connector_duplicate_state,
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index e9390b1bd3a4..43b37906e20b 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -264,6 +264,9 @@ struct drm_connector_funcs {
>  	 * connector due to a user request. force can be used by the driver to
>  	 * avoid expensive, destructive operations during automated
> probing.
>  	 *
> +	 * This callback is optional, if not implemented the connector will be
> +	 * considered as always being attached.
> +	 *
>  	 * FIXME:
>  	 *
>  	 * Note that this hook is only called by the probe helper. It's not in
> --
> Regards,
> 
> Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux