diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 20 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp_mst.c | 14 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dvo.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 23 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 16 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/vlv_dsi.c | 12 |
11 files changed, 33 insertions, 102 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 0c6bf82bb059..ab3d6b074222 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
| @@ -849,12 +849,6 @@ out: | |||
| 849 | return status; | 849 | return status; |
| 850 | } | 850 | } |
| 851 | 851 | ||
| 852 | static void intel_crt_destroy(struct drm_connector *connector) | ||
| 853 | { | ||
| 854 | drm_connector_cleanup(connector); | ||
| 855 | kfree(connector); | ||
| 856 | } | ||
| 857 | |||
| 858 | static int intel_crt_get_modes(struct drm_connector *connector) | 852 | static int intel_crt_get_modes(struct drm_connector *connector) |
| 859 | { | 853 | { |
| 860 | struct drm_device *dev = connector->dev; | 854 | struct drm_device *dev = connector->dev; |
| @@ -909,7 +903,7 @@ static const struct drm_connector_funcs intel_crt_connector_funcs = { | |||
| 909 | .fill_modes = drm_helper_probe_single_connector_modes, | 903 | .fill_modes = drm_helper_probe_single_connector_modes, |
| 910 | .late_register = intel_connector_register, | 904 | .late_register = intel_connector_register, |
| 911 | .early_unregister = intel_connector_unregister, | 905 | .early_unregister = intel_connector_unregister, |
| 912 | .destroy = intel_crt_destroy, | 906 | .destroy = intel_connector_destroy, |
| 913 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 907 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 914 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, | 908 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, |
| 915 | }; | 909 | }; |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6a7fe89f3145..fd27b9b0b4d8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -6365,7 +6365,7 @@ struct intel_connector *intel_connector_alloc(void) | |||
| 6365 | * This should only be used after intel_connector_alloc has returned | 6365 | * This should only be used after intel_connector_alloc has returned |
| 6366 | * successfully, and before drm_connector_init returns successfully. | 6366 | * successfully, and before drm_connector_init returns successfully. |
| 6367 | * Otherwise the destroy callbacks for the connector and the state should | 6367 | * Otherwise the destroy callbacks for the connector and the state should |
| 6368 | * take care of proper cleanup/free | 6368 | * take care of proper cleanup/free (see intel_connector_destroy). |
| 6369 | */ | 6369 | */ |
| 6370 | void intel_connector_free(struct intel_connector *connector) | 6370 | void intel_connector_free(struct intel_connector *connector) |
| 6371 | { | 6371 | { |
| @@ -6373,6 +6373,24 @@ void intel_connector_free(struct intel_connector *connector) | |||
| 6373 | kfree(connector); | 6373 | kfree(connector); |
| 6374 | } | 6374 | } |
| 6375 | 6375 | ||
| 6376 | /* | ||
| 6377 | * Connector type independent destroy hook for drm_connector_funcs. | ||
| 6378 | */ | ||
| 6379 | void intel_connector_destroy(struct drm_connector *connector) | ||
| 6380 | { | ||
| 6381 | struct intel_connector *intel_connector = to_intel_connector(connector); | ||
| 6382 | |||
| 6383 | kfree(intel_connector->detect_edid); | ||
| 6384 | |||
| 6385 | if (!IS_ERR_OR_NULL(intel_connector->edid)) | ||
| 6386 | kfree(intel_connector->edid); | ||
| 6387 | |||
| 6388 | intel_panel_fini(&intel_connector->panel); | ||
| 6389 | |||
| 6390 | drm_connector_cleanup(connector); | ||
| 6391 | kfree(connector); | ||
| 6392 | } | ||
| 6393 | |||
| 6376 | /* Simple connector->get_hw_state implementation for encoders that support only | 6394 | /* Simple connector->get_hw_state implementation for encoders that support only |
| 6377 | * one connector and no cloning and hence the encoder state determines the state | 6395 | * one connector and no cloning and hence the encoder state determines the state |
| 6378 | * of the connector. */ | 6396 | * of the connector. */ |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index d12f987a6c43..0855b9785f7b 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
| @@ -5251,22 +5251,6 @@ intel_dp_connector_unregister(struct drm_connector *connector) | |||
| 5251 | intel_connector_unregister(connector); | 5251 | intel_connector_unregister(connector); |
| 5252 | } | 5252 | } |
| 5253 | 5253 | ||
| 5254 | static void | ||
| 5255 | intel_dp_connector_destroy(struct drm_connector *connector) | ||
| 5256 | { | ||
| 5257 | struct intel_connector *intel_connector = to_intel_connector(connector); | ||
| 5258 | |||
| 5259 | kfree(intel_connector->detect_edid); | ||
| 5260 | |||
| 5261 | if (!IS_ERR_OR_NULL(intel_connector->edid)) | ||
| 5262 | kfree(intel_connector->edid); | ||
| 5263 | |||
| 5264 | intel_panel_fini(&intel_connector->panel); | ||
| 5265 | |||
| 5266 | drm_connector_cleanup(connector); | ||
| 5267 | kfree(connector); | ||
| 5268 | } | ||
| 5269 | |||
| 5270 | void intel_dp_encoder_destroy(struct drm_encoder *encoder) | 5254 | void intel_dp_encoder_destroy(struct drm_encoder *encoder) |
| 5271 | { | 5255 | { |
| 5272 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); | 5256 | struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder); |
| @@ -5613,7 +5597,7 @@ static const struct drm_connector_funcs intel_dp_connector_funcs = { | |||
| 5613 | .atomic_set_property = intel_digital_connector_atomic_set_property, | 5597 | .atomic_set_property = intel_digital_connector_atomic_set_property, |
| 5614 | .late_register = intel_dp_connector_register, | 5598 | .late_register = intel_dp_connector_register, |
| 5615 | .early_unregister = intel_dp_connector_unregister, | 5599 | .early_unregister = intel_dp_connector_unregister, |
| 5616 | .destroy = intel_dp_connector_destroy, | 5600 | .destroy = intel_connector_destroy, |
| 5617 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 5601 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 5618 | .atomic_duplicate_state = intel_digital_connector_duplicate_state, | 5602 | .atomic_duplicate_state = intel_digital_connector_duplicate_state, |
| 5619 | }; | 5603 | }; |
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index 7f155b4f1a7d..bb6b8f03e9b5 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c | |||
| @@ -335,24 +335,12 @@ intel_dp_mst_detect(struct drm_connector *connector, bool force) | |||
| 335 | intel_connector->port); | 335 | intel_connector->port); |
| 336 | } | 336 | } |
| 337 | 337 | ||
| 338 | static void | ||
| 339 | intel_dp_mst_connector_destroy(struct drm_connector *connector) | ||
| 340 | { | ||
| 341 | struct intel_connector *intel_connector = to_intel_connector(connector); | ||
| 342 | |||
| 343 | if (!IS_ERR_OR_NULL(intel_connector->edid)) | ||
| 344 | kfree(intel_connector->edid); | ||
| 345 | |||
| 346 | drm_connector_cleanup(connector); | ||
| 347 | kfree(connector); | ||
| 348 | } | ||
| 349 | |||
| 350 | static const struct drm_connector_funcs intel_dp_mst_connector_funcs = { | 338 | static const struct drm_connector_funcs intel_dp_mst_connector_funcs = { |
| 351 | .detect = intel_dp_mst_detect, | 339 | .detect = intel_dp_mst_detect, |
| 352 | .fill_modes = drm_helper_probe_single_connector_modes, | 340 | .fill_modes = drm_helper_probe_single_connector_modes, |
| 353 | .late_register = intel_connector_register, | 341 | .late_register = intel_connector_register, |
| 354 | .early_unregister = intel_connector_unregister, | 342 | .early_unregister = intel_connector_unregister, |
| 355 | .destroy = intel_dp_mst_connector_destroy, | 343 | .destroy = intel_connector_destroy, |
| 356 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 344 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 357 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, | 345 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, |
| 358 | }; | 346 | }; |
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 8050d06c722a..4b8fec74ad49 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
| @@ -1510,6 +1510,7 @@ void intel_encoder_destroy(struct drm_encoder *encoder); | |||
| 1510 | int intel_connector_init(struct intel_connector *); | 1510 | int intel_connector_init(struct intel_connector *); |
| 1511 | struct intel_connector *intel_connector_alloc(void); | 1511 | struct intel_connector *intel_connector_alloc(void); |
| 1512 | void intel_connector_free(struct intel_connector *connector); | 1512 | void intel_connector_free(struct intel_connector *connector); |
| 1513 | void intel_connector_destroy(struct drm_connector *connector); | ||
| 1513 | bool intel_connector_get_hw_state(struct intel_connector *connector); | 1514 | bool intel_connector_get_hw_state(struct intel_connector *connector); |
| 1514 | void intel_connector_attach_encoder(struct intel_connector *connector, | 1515 | void intel_connector_attach_encoder(struct intel_connector *connector, |
| 1515 | struct intel_encoder *encoder); | 1516 | struct intel_encoder *encoder); |
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c index 4e142ff49708..be3c0a5f447d 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c | |||
| @@ -333,18 +333,11 @@ static int intel_dvo_get_modes(struct drm_connector *connector) | |||
| 333 | return 0; | 333 | return 0; |
| 334 | } | 334 | } |
| 335 | 335 | ||
| 336 | static void intel_dvo_destroy(struct drm_connector *connector) | ||
| 337 | { | ||
| 338 | drm_connector_cleanup(connector); | ||
| 339 | intel_panel_fini(&to_intel_connector(connector)->panel); | ||
| 340 | kfree(connector); | ||
| 341 | } | ||
| 342 | |||
| 343 | static const struct drm_connector_funcs intel_dvo_connector_funcs = { | 336 | static const struct drm_connector_funcs intel_dvo_connector_funcs = { |
| 344 | .detect = intel_dvo_detect, | 337 | .detect = intel_dvo_detect, |
| 345 | .late_register = intel_connector_register, | 338 | .late_register = intel_connector_register, |
| 346 | .early_unregister = intel_connector_unregister, | 339 | .early_unregister = intel_connector_unregister, |
| 347 | .destroy = intel_dvo_destroy, | 340 | .destroy = intel_connector_destroy, |
| 348 | .fill_modes = drm_helper_probe_single_connector_modes, | 341 | .fill_modes = drm_helper_probe_single_connector_modes, |
| 349 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 342 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 350 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, | 343 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 454f570275e9..2c53efc463e6 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
| @@ -2073,9 +2073,8 @@ static void intel_hdmi_destroy(struct drm_connector *connector) | |||
| 2073 | { | 2073 | { |
| 2074 | if (intel_attached_hdmi(connector)->cec_notifier) | 2074 | if (intel_attached_hdmi(connector)->cec_notifier) |
| 2075 | cec_notifier_put(intel_attached_hdmi(connector)->cec_notifier); | 2075 | cec_notifier_put(intel_attached_hdmi(connector)->cec_notifier); |
| 2076 | kfree(to_intel_connector(connector)->detect_edid); | 2076 | |
| 2077 | drm_connector_cleanup(connector); | 2077 | intel_connector_destroy(connector); |
| 2078 | kfree(connector); | ||
| 2079 | } | 2078 | } |
| 2080 | 2079 | ||
| 2081 | static const struct drm_connector_funcs intel_hdmi_connector_funcs = { | 2080 | static const struct drm_connector_funcs intel_hdmi_connector_funcs = { |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index f9f3b0885ba5..1fe970cf9909 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
| @@ -477,27 +477,6 @@ static int intel_lvds_get_modes(struct drm_connector *connector) | |||
| 477 | return 1; | 477 | return 1; |
| 478 | } | 478 | } |
| 479 | 479 | ||
| 480 | /** | ||
| 481 | * intel_lvds_destroy - unregister and free LVDS structures | ||
| 482 | * @connector: connector to free | ||
| 483 | * | ||
| 484 | * Unregister the DDC bus for this connector then free the driver private | ||
| 485 | * structure. | ||
| 486 | */ | ||
| 487 | static void intel_lvds_destroy(struct drm_connector *connector) | ||
| 488 | { | ||
| 489 | struct intel_lvds_connector *lvds_connector = | ||
| 490 | to_lvds_connector(connector); | ||
| 491 | |||
| 492 | if (!IS_ERR_OR_NULL(lvds_connector->base.edid)) | ||
| 493 | kfree(lvds_connector->base.edid); | ||
| 494 | |||
| 495 | intel_panel_fini(&lvds_connector->base.panel); | ||
| 496 | |||
| 497 | drm_connector_cleanup(connector); | ||
| 498 | kfree(connector); | ||
| 499 | } | ||
| 500 | |||
| 501 | static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs = { | 480 | static const struct drm_connector_helper_funcs intel_lvds_connector_helper_funcs = { |
| 502 | .get_modes = intel_lvds_get_modes, | 481 | .get_modes = intel_lvds_get_modes, |
| 503 | .mode_valid = intel_lvds_mode_valid, | 482 | .mode_valid = intel_lvds_mode_valid, |
| @@ -511,7 +490,7 @@ static const struct drm_connector_funcs intel_lvds_connector_funcs = { | |||
| 511 | .atomic_set_property = intel_digital_connector_atomic_set_property, | 490 | .atomic_set_property = intel_digital_connector_atomic_set_property, |
| 512 | .late_register = intel_connector_register, | 491 | .late_register = intel_connector_register, |
| 513 | .early_unregister = intel_connector_unregister, | 492 | .early_unregister = intel_connector_unregister, |
| 514 | .destroy = intel_lvds_destroy, | 493 | .destroy = intel_connector_destroy, |
| 515 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 494 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 516 | .atomic_duplicate_state = intel_digital_connector_duplicate_state, | 495 | .atomic_duplicate_state = intel_digital_connector_duplicate_state, |
| 517 | }; | 496 | }; |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 701372e512a8..1824d94ae123 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
| @@ -2058,14 +2058,6 @@ static int intel_sdvo_get_modes(struct drm_connector *connector) | |||
| 2058 | return !list_empty(&connector->probed_modes); | 2058 | return !list_empty(&connector->probed_modes); |
| 2059 | } | 2059 | } |
| 2060 | 2060 | ||
| 2061 | static void intel_sdvo_destroy(struct drm_connector *connector) | ||
| 2062 | { | ||
| 2063 | struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector); | ||
| 2064 | |||
| 2065 | drm_connector_cleanup(connector); | ||
| 2066 | kfree(intel_sdvo_connector); | ||
| 2067 | } | ||
| 2068 | |||
| 2069 | static int | 2061 | static int |
| 2070 | intel_sdvo_connector_atomic_get_property(struct drm_connector *connector, | 2062 | intel_sdvo_connector_atomic_get_property(struct drm_connector *connector, |
| 2071 | const struct drm_connector_state *state, | 2063 | const struct drm_connector_state *state, |
| @@ -2228,7 +2220,7 @@ static const struct drm_connector_funcs intel_sdvo_connector_funcs = { | |||
| 2228 | .atomic_set_property = intel_sdvo_connector_atomic_set_property, | 2220 | .atomic_set_property = intel_sdvo_connector_atomic_set_property, |
| 2229 | .late_register = intel_sdvo_connector_register, | 2221 | .late_register = intel_sdvo_connector_register, |
| 2230 | .early_unregister = intel_sdvo_connector_unregister, | 2222 | .early_unregister = intel_sdvo_connector_unregister, |
| 2231 | .destroy = intel_sdvo_destroy, | 2223 | .destroy = intel_connector_destroy, |
| 2232 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 2224 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 2233 | .atomic_duplicate_state = intel_sdvo_connector_duplicate_state, | 2225 | .atomic_duplicate_state = intel_sdvo_connector_duplicate_state, |
| 2234 | }; | 2226 | }; |
| @@ -2583,7 +2575,7 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, int type) | |||
| 2583 | return true; | 2575 | return true; |
| 2584 | 2576 | ||
| 2585 | err: | 2577 | err: |
| 2586 | intel_sdvo_destroy(connector); | 2578 | intel_connector_destroy(connector); |
| 2587 | return false; | 2579 | return false; |
| 2588 | } | 2580 | } |
| 2589 | 2581 | ||
| @@ -2675,7 +2667,7 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device) | |||
| 2675 | return true; | 2667 | return true; |
| 2676 | 2668 | ||
| 2677 | err: | 2669 | err: |
| 2678 | intel_sdvo_destroy(connector); | 2670 | intel_connector_destroy(connector); |
| 2679 | return false; | 2671 | return false; |
| 2680 | } | 2672 | } |
| 2681 | 2673 | ||
| @@ -2745,7 +2737,7 @@ static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo) | |||
| 2745 | &dev->mode_config.connector_list, head) { | 2737 | &dev->mode_config.connector_list, head) { |
| 2746 | if (intel_attached_encoder(connector) == &intel_sdvo->base) { | 2738 | if (intel_attached_encoder(connector) == &intel_sdvo->base) { |
| 2747 | drm_connector_unregister(connector); | 2739 | drm_connector_unregister(connector); |
| 2748 | intel_sdvo_destroy(connector); | 2740 | intel_connector_destroy(connector); |
| 2749 | } | 2741 | } |
| 2750 | } | 2742 | } |
| 2751 | } | 2743 | } |
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index b5b04cb892e9..8b9ce0dc78e5 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
| @@ -1377,17 +1377,10 @@ intel_tv_get_modes(struct drm_connector *connector) | |||
| 1377 | return count; | 1377 | return count; |
| 1378 | } | 1378 | } |
| 1379 | 1379 | ||
| 1380 | static void | ||
| 1381 | intel_tv_destroy(struct drm_connector *connector) | ||
| 1382 | { | ||
| 1383 | drm_connector_cleanup(connector); | ||
| 1384 | kfree(connector); | ||
| 1385 | } | ||
| 1386 | |||
| 1387 | static const struct drm_connector_funcs intel_tv_connector_funcs = { | 1380 | static const struct drm_connector_funcs intel_tv_connector_funcs = { |
| 1388 | .late_register = intel_connector_register, | 1381 | .late_register = intel_connector_register, |
| 1389 | .early_unregister = intel_connector_unregister, | 1382 | .early_unregister = intel_connector_unregister, |
| 1390 | .destroy = intel_tv_destroy, | 1383 | .destroy = intel_connector_destroy, |
| 1391 | .fill_modes = drm_helper_probe_single_connector_modes, | 1384 | .fill_modes = drm_helper_probe_single_connector_modes, |
| 1392 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, | 1385 | .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, |
| 1393 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, | 1386 | .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, |
diff --git a/drivers/gpu/drm/i915/vlv_dsi.c b/drivers/gpu/drm/i915/vlv_dsi.c index 435a2c35ee8c..5accd0c360f9 100644 --- a/drivers/gpu/drm/i915/vlv_dsi.c +++ b/drivers/gpu/drm/i915/vlv_dsi.c | |||
| @@ -1642,16 +1642,6 @@ static int intel_dsi_get_modes(struct drm_connector *connector) | |||
| 1642 | return 1; | 1642 | return 1; |
| 1643 | } | 1643 | } |
| 1644 | 1644 | ||
| 1645 | static void intel_dsi_connector_destroy(struct drm_connector *connector) | ||
| 1646 | { | ||
| 1647 | struct intel_connector *intel_connector = to_intel_connector(connector); | ||
| 1648 | |||
| 1649 | DRM_DEBUG_KMS("\n"); | ||
| 1650 | intel_panel_fini(&intel_connector->panel); | ||
| 1651 | drm_connector_cleanup(connector); | ||
| 1652 | kfree(connector); | ||
| 1653 | } | ||
| 1654 | |||
| 1655 | static void intel_dsi_encoder_destroy(struct drm_encoder *encoder) | 1645 | static void intel_dsi_encoder_destroy(struct drm_encoder *encoder) |
| 1656 | { | 1646 | { |
| 1657 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); | 1647 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder); |
| @@ -1676,7 +1666,7 @@ static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs | |||
| 1676 | static const struct drm_connector_funcs intel_dsi_connector_funcs = { | 1666 | static const struct drm_connector_funcs intel_dsi_connector_funcs = { |
| 1677 | .late_register = intel_connector_register, | 1667 | .late_register = intel_connector_register, |
| 1678 | .early_unregister = intel_connector_unregister, | 1668 | .early_unregister = intel_connector_unregister, |
| 1679 | .destroy = intel_dsi_connector_destroy, | 1669 | .destroy = intel_connector_destroy, |
| 1680 | .fill_modes = drm_helper_probe_single_connector_modes, | 1670 | .fill_modes = drm_helper_probe_single_connector_modes, |
| 1681 | .atomic_get_property = intel_digital_connector_atomic_get_property, | 1671 | .atomic_get_property = intel_digital_connector_atomic_get_property, |
| 1682 | .atomic_set_property = intel_digital_connector_atomic_set_property, | 1672 | .atomic_set_property = intel_digital_connector_atomic_set_property, |
