> -----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