diff options
| author | Andrzej Hajda <a.hajda@samsung.com> | 2014-04-02 06:29:46 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-04-22 05:18:12 -0400 |
| commit | f9b0e251dfbf2c4da642ec9210db29a7ac63b81a (patch) | |
| tree | 9344941cc3a0e578dcfe88da49b016e3ff90c44b /drivers/gpu | |
| parent | 0967e6a5070e336507ce52f09f7297413b966981 (diff) | |
drm: make mode_valid callback optional
Many drm connectors do not need mode validation.
The patch makes this callback optional and removes dumb implementations.
v2: Rebase:
- imx move to a shared (but still dummy) ->mode_valid implementation.
- probe helpers have been extracted to drm_probe_helper.c
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/ast/ast_mode.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/bridge/ptn3460.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/cirrus/cirrus_mode.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_probe_helper.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_dp_core.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_dpi.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_vidi.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 7 |
10 files changed, 1 insertions, 65 deletions
diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c index a4afdc8bb578..e599d64a2620 100644 --- a/drivers/gpu/drm/ast/ast_mode.c +++ b/drivers/gpu/drm/ast/ast_mode.c | |||
| @@ -743,12 +743,6 @@ static int ast_get_modes(struct drm_connector *connector) | |||
| 743 | return 0; | 743 | return 0; |
| 744 | } | 744 | } |
| 745 | 745 | ||
| 746 | static int ast_mode_valid(struct drm_connector *connector, | ||
| 747 | struct drm_display_mode *mode) | ||
| 748 | { | ||
| 749 | return MODE_OK; | ||
| 750 | } | ||
| 751 | |||
| 752 | static void ast_connector_destroy(struct drm_connector *connector) | 746 | static void ast_connector_destroy(struct drm_connector *connector) |
| 753 | { | 747 | { |
| 754 | struct ast_connector *ast_connector = to_ast_connector(connector); | 748 | struct ast_connector *ast_connector = to_ast_connector(connector); |
| @@ -765,7 +759,6 @@ ast_connector_detect(struct drm_connector *connector, bool force) | |||
| 765 | } | 759 | } |
| 766 | 760 | ||
| 767 | static const struct drm_connector_helper_funcs ast_connector_helper_funcs = { | 761 | static const struct drm_connector_helper_funcs ast_connector_helper_funcs = { |
| 768 | .mode_valid = ast_mode_valid, | ||
| 769 | .get_modes = ast_get_modes, | 762 | .get_modes = ast_get_modes, |
| 770 | .best_encoder = ast_best_single_encoder, | 763 | .best_encoder = ast_best_single_encoder, |
| 771 | }; | 764 | }; |
diff --git a/drivers/gpu/drm/bridge/ptn3460.c b/drivers/gpu/drm/bridge/ptn3460.c index b171901a3553..98fd17ae4916 100644 --- a/drivers/gpu/drm/bridge/ptn3460.c +++ b/drivers/gpu/drm/bridge/ptn3460.c | |||
| @@ -225,12 +225,6 @@ out: | |||
| 225 | return num_modes; | 225 | return num_modes; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | static int ptn3460_mode_valid(struct drm_connector *connector, | ||
| 229 | struct drm_display_mode *mode) | ||
| 230 | { | ||
| 231 | return MODE_OK; | ||
| 232 | } | ||
| 233 | |||
| 234 | struct drm_encoder *ptn3460_best_encoder(struct drm_connector *connector) | 228 | struct drm_encoder *ptn3460_best_encoder(struct drm_connector *connector) |
| 235 | { | 229 | { |
| 236 | struct ptn3460_bridge *ptn_bridge; | 230 | struct ptn3460_bridge *ptn_bridge; |
| @@ -242,7 +236,6 @@ struct drm_encoder *ptn3460_best_encoder(struct drm_connector *connector) | |||
| 242 | 236 | ||
| 243 | struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = { | 237 | struct drm_connector_helper_funcs ptn3460_connector_helper_funcs = { |
| 244 | .get_modes = ptn3460_get_modes, | 238 | .get_modes = ptn3460_get_modes, |
| 245 | .mode_valid = ptn3460_mode_valid, | ||
| 246 | .best_encoder = ptn3460_best_encoder, | 239 | .best_encoder = ptn3460_best_encoder, |
| 247 | }; | 240 | }; |
| 248 | 241 | ||
diff --git a/drivers/gpu/drm/cirrus/cirrus_mode.c b/drivers/gpu/drm/cirrus/cirrus_mode.c index f59433b7610c..49332c5fe35b 100644 --- a/drivers/gpu/drm/cirrus/cirrus_mode.c +++ b/drivers/gpu/drm/cirrus/cirrus_mode.c | |||
| @@ -505,13 +505,6 @@ static int cirrus_vga_get_modes(struct drm_connector *connector) | |||
| 505 | return count; | 505 | return count; |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | static int cirrus_vga_mode_valid(struct drm_connector *connector, | ||
| 509 | struct drm_display_mode *mode) | ||
| 510 | { | ||
| 511 | /* Any mode we've added is valid */ | ||
| 512 | return MODE_OK; | ||
| 513 | } | ||
| 514 | |||
| 515 | static struct drm_encoder *cirrus_connector_best_encoder(struct drm_connector | 508 | static struct drm_encoder *cirrus_connector_best_encoder(struct drm_connector |
| 516 | *connector) | 509 | *connector) |
| 517 | { | 510 | { |
| @@ -546,7 +539,6 @@ static void cirrus_connector_destroy(struct drm_connector *connector) | |||
| 546 | 539 | ||
| 547 | struct drm_connector_helper_funcs cirrus_vga_connector_helper_funcs = { | 540 | struct drm_connector_helper_funcs cirrus_vga_connector_helper_funcs = { |
| 548 | .get_modes = cirrus_vga_get_modes, | 541 | .get_modes = cirrus_vga_get_modes, |
| 549 | .mode_valid = cirrus_vga_mode_valid, | ||
| 550 | .best_encoder = cirrus_connector_best_encoder, | 542 | .best_encoder = cirrus_connector_best_encoder, |
| 551 | }; | 543 | }; |
| 552 | 544 | ||
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index e70f54d4a581..d06340985a72 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c | |||
| @@ -169,7 +169,7 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, | |||
| 169 | drm_mode_validate_flag(connector, mode_flags); | 169 | drm_mode_validate_flag(connector, mode_flags); |
| 170 | 170 | ||
| 171 | list_for_each_entry(mode, &connector->modes, head) { | 171 | list_for_each_entry(mode, &connector->modes, head) { |
| 172 | if (mode->status == MODE_OK) | 172 | if (mode->status == MODE_OK && connector_funcs->mode_valid) |
| 173 | mode->status = connector_funcs->mode_valid(connector, | 173 | mode->status = connector_funcs->mode_valid(connector, |
| 174 | mode); | 174 | mode); |
| 175 | } | 175 | } |
diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c index aed533bbfd31..bb74472b4e4b 100644 --- a/drivers/gpu/drm/exynos/exynos_dp_core.c +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c | |||
| @@ -949,12 +949,6 @@ static int exynos_dp_get_modes(struct drm_connector *connector) | |||
| 949 | return 1; | 949 | return 1; |
| 950 | } | 950 | } |
| 951 | 951 | ||
| 952 | static int exynos_dp_mode_valid(struct drm_connector *connector, | ||
| 953 | struct drm_display_mode *mode) | ||
| 954 | { | ||
| 955 | return MODE_OK; | ||
| 956 | } | ||
| 957 | |||
| 958 | static struct drm_encoder *exynos_dp_best_encoder( | 952 | static struct drm_encoder *exynos_dp_best_encoder( |
| 959 | struct drm_connector *connector) | 953 | struct drm_connector *connector) |
| 960 | { | 954 | { |
| @@ -965,7 +959,6 @@ static struct drm_encoder *exynos_dp_best_encoder( | |||
| 965 | 959 | ||
| 966 | static struct drm_connector_helper_funcs exynos_dp_connector_helper_funcs = { | 960 | static struct drm_connector_helper_funcs exynos_dp_connector_helper_funcs = { |
| 967 | .get_modes = exynos_dp_get_modes, | 961 | .get_modes = exynos_dp_get_modes, |
| 968 | .mode_valid = exynos_dp_mode_valid, | ||
| 969 | .best_encoder = exynos_dp_best_encoder, | 962 | .best_encoder = exynos_dp_best_encoder, |
| 970 | }; | 963 | }; |
| 971 | 964 | ||
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c index 2b09c7c0bfcc..82e52c71bccc 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c | |||
| @@ -94,12 +94,6 @@ static int exynos_dpi_get_modes(struct drm_connector *connector) | |||
| 94 | return 0; | 94 | return 0; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static int exynos_dpi_mode_valid(struct drm_connector *connector, | ||
| 98 | struct drm_display_mode *mode) | ||
| 99 | { | ||
| 100 | return MODE_OK; | ||
| 101 | } | ||
| 102 | |||
| 103 | static struct drm_encoder * | 97 | static struct drm_encoder * |
| 104 | exynos_dpi_best_encoder(struct drm_connector *connector) | 98 | exynos_dpi_best_encoder(struct drm_connector *connector) |
| 105 | { | 99 | { |
| @@ -110,7 +104,6 @@ exynos_dpi_best_encoder(struct drm_connector *connector) | |||
| 110 | 104 | ||
| 111 | static struct drm_connector_helper_funcs exynos_dpi_connector_helper_funcs = { | 105 | static struct drm_connector_helper_funcs exynos_dpi_connector_helper_funcs = { |
| 112 | .get_modes = exynos_dpi_get_modes, | 106 | .get_modes = exynos_dpi_get_modes, |
| 113 | .mode_valid = exynos_dpi_mode_valid, | ||
| 114 | .best_encoder = exynos_dpi_best_encoder, | 107 | .best_encoder = exynos_dpi_best_encoder, |
| 115 | }; | 108 | }; |
| 116 | 109 | ||
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index 7afead9c3f30..b6980865dd50 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c | |||
| @@ -533,12 +533,6 @@ static int vidi_get_modes(struct drm_connector *connector) | |||
| 533 | return drm_add_edid_modes(connector, edid); | 533 | return drm_add_edid_modes(connector, edid); |
| 534 | } | 534 | } |
| 535 | 535 | ||
| 536 | static int vidi_mode_valid(struct drm_connector *connector, | ||
| 537 | struct drm_display_mode *mode) | ||
| 538 | { | ||
| 539 | return MODE_OK; | ||
| 540 | } | ||
| 541 | |||
| 542 | static struct drm_encoder *vidi_best_encoder(struct drm_connector *connector) | 536 | static struct drm_encoder *vidi_best_encoder(struct drm_connector *connector) |
| 543 | { | 537 | { |
