| From c2d0c49598a6954c4e7f1fd2f27da02f5b01212c Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Tue, 29 Nov 2016 22:56:30 +0200 |
| Subject: [PATCH 043/299] 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. |
| |
| Reviewed-by: Alex Deucher <alexander.deucher@amd.com> |
| Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> |
| Acked-by: Jyri Sarha <jsarha@ti.com> |
| Acked-by: Jani Nikula <jani.nikula@intel.com> |
| Acked-by: Philipp Zabel <p.zabel@pengutronix.de> |
| Acked-by: Vincent Abriou <vincent.abriou@st.com> |
| Acked-by: Alexey Brodkin <abrodkin@synopsys.com> |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| [seanpaul fixed small conflict in rcar-du/rcar_du_lvdscon.c] |
| Signed-off-by: Sean Paul <seanpaul@chromium.org> |
| |
| (cherry picked from commit 949f08862d662f17b9d2929c6afb2d4e8f5d50cb) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| 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/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 +++ |
| 25 files changed, 14 insertions(+), 179 deletions(-) |
| |
| --- 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_mode |
| 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, |
| --- 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 |
| 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 |
| |
| 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, |
| }; |
| --- 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_ |
| 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 |
| |
| 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, |
| }; |
| --- 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 |
| .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, |
| --- 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 |
| .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, |
| --- a/drivers/gpu/drm/bridge/tc358767.c |
| +++ b/drivers/gpu/drm/bridge/tc358767.c |
| @@ -1042,12 +1042,6 @@ err: |
| 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); |
| @@ -1175,7 +1169,6 @@ static const struct drm_connector_helper |
| 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, |
| --- 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_connec |
| 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 |
| |
| 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, |
| }; |
| --- a/drivers/gpu/drm/drm_probe_helper.c |
| +++ b/drivers/gpu/drm/drm_probe_helper.c |
| @@ -162,6 +162,14 @@ void drm_kms_helper_poll_enable_locked(s |
| } |
| 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 |
| @@ -249,7 +257,7 @@ int drm_helper_probe_single_connector_mo |
| if (connector->funcs->force) |
| connector->funcs->force(connector); |
| } else { |
| - connector->status = connector->funcs->detect(connector, true); |
| + connector->status = drm_connector_detect(connector, true); |
| } |
| |
| /* |
| @@ -415,7 +423,7 @@ static void output_poll_execute(struct w |
| |
| 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; |
| |
| @@ -595,7 +603,7 @@ bool drm_helper_hpd_irq_event(struct drm |
| |
| 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, |
| --- 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_destro |
| 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, |
| --- 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(stru |
| } |
| |
| /** |
| - * 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 |
| |
| 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, |
| --- 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(stru |
| } |
| |
| /* |
| - * 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, |
| --- a/drivers/gpu/drm/i915/intel_dsi.c |
| +++ b/drivers/gpu/drm/i915/intel_dsi.c |
| @@ -1299,12 +1299,6 @@ static void intel_dsi_prepare(struct int |
| } |
| } |
| |
| -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); |
| @@ -1408,7 +1402,6 @@ static const struct drm_connector_helper |
| |
| 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, |
| --- 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) |
| { |
| @@ -409,7 +403,6 @@ static int imx_ldb_encoder_atomic_check( |
| 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, |
| --- a/drivers/gpu/drm/imx/imx-tve.c |
| +++ b/drivers/gpu/drm/imx/imx-tve.c |
| @@ -229,12 +229,6 @@ static int tve_setup_vga(struct imx_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); |
| @@ -354,7 +348,6 @@ static int imx_tve_atomic_check(struct d |
| 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, |
| --- 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_displa |
| 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(s |
| 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, |
| --- a/drivers/gpu/drm/mediatek/mtk_dsi.c |
| +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c |
| @@ -594,12 +594,6 @@ static void mtk_dsi_encoder_enable(struc |
| 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); |
| @@ -616,7 +610,6 @@ static const struct drm_encoder_helper_f |
| |
| 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, |
| --- 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 |
| 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 |
| |
| 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, |
| }; |
| --- a/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c |
| +++ b/drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c |
| @@ -61,16 +61,9 @@ static const struct drm_connector_helper |
| .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 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 = drm_connector_cleanup, |
| .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, |
| --- 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 |
| .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_de |
| 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, |
| --- 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( |
| 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, |
| }; |
| --- 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_hd |
| .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 |
| 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, |
| --- 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 |
| .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_c |
| |
| 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, |
| --- 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 |
| .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 d |
| |
| 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, |
| --- 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(stru |
| 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_connect |
| 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, |
| --- a/include/drm/drm_connector.h |
| +++ b/include/drm/drm_connector.h |
| @@ -261,6 +261,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 |