Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1644987
| From | Jose Abreu <Jose.Abreu@synopsys.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v4 10/10] drm: vc4: Use crtc->mode_valid() and encoder->mode_valid() callbacks |
| Date | 2017-05-19 03:00 +0200 |
| Message-ID | <tIEqS-2II-9@gated-at.bofh.it> (permalink) |
| References | <tIEqR-2II-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Now that we have a callback to check if crtc and encoder supports a
given mode we can use it in vc4 so that we restrict the number of
probbed modes to the ones we can actually display.
Also, remove the mode_fixup() calls as these are no longer needed
because mode_valid() will be called before.
NOTE: Not even compiled tested
Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Cc: Carlos Palminha <palminha@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dave Airlie <airlied@linux.ie>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/gpu/drm/vc4/vc4_crtc.c | 13 ++++++-------
drivers/gpu/drm/vc4/vc4_dpi.c | 13 ++++++-------
2 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
index d86c8cc..aae8c56 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
@@ -556,18 +556,17 @@ static void vc4_crtc_enable(struct drm_crtc *crtc)
drm_crtc_vblank_on(crtc);
}
-static bool vc4_crtc_mode_fixup(struct drm_crtc *crtc,
- const struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode)
+static enum drm_mode_status vc4_crtc_mode_valid(struct drm_crtc *crtc,
+ const struct drm_display_mode *mode)
{
/* Do not allow doublescan modes from user space */
- if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) {
+ if (mode->flags & DRM_MODE_FLAG_DBLSCAN) {
DRM_DEBUG_KMS("[CRTC:%d] Doublescan mode rejected.\n",
crtc->base.id);
- return false;
+ return MODE_NO_DBLESCAN;
}
- return true;
+ return MODE_OK;
}
static int vc4_crtc_atomic_check(struct drm_crtc *crtc,
@@ -877,7 +876,7 @@ static void vc4_crtc_destroy_state(struct drm_crtc *crtc,
.mode_set_nofb = vc4_crtc_mode_set_nofb,
.disable = vc4_crtc_disable,
.enable = vc4_crtc_enable,
- .mode_fixup = vc4_crtc_mode_fixup,
+ .mode_valid = vc4_crtc_mode_valid,
.atomic_check = vc4_crtc_atomic_check,
.atomic_flush = vc4_crtc_atomic_flush,
};
diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
index c6d7039..61958ab 100644
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -330,20 +330,19 @@ static void vc4_dpi_encoder_enable(struct drm_encoder *encoder)
}
}
-static bool vc4_dpi_encoder_mode_fixup(struct drm_encoder *encoder,
- const struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode)
+static enum drm_mode_status vc4_dpi_encoder_mode_valid(struct drm_encoder *encoder,
+ const struct drm_display_mode *mode)
{
- if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE)
- return false;
+ if (mode->flags & DRM_MODE_FLAG_INTERLACE)
+ return MODE_NO_INTERLACE;
- return true;
+ return MODE_OK;
}
static const struct drm_encoder_helper_funcs vc4_dpi_encoder_helper_funcs = {
.disable = vc4_dpi_encoder_disable,
.enable = vc4_dpi_encoder_enable,
- .mode_fixup = vc4_dpi_encoder_mode_fixup,
+ .mode_valid = vc4_dpi_encoder_mode_valid,
};
static const struct of_device_id vc4_dpi_dt_match[] = {
--
1.9.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v4 00/10] Introduce new mode validation callbacks Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 10/10] drm: vc4: Use crtc->mode_valid() and encoder->mode_valid() callbacks Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 02/10] drm: Introduce drm_bridge_mode_valid() Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 04/10] drm: Use mode_valid() in atomic modeset Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 09/10] drm/atmel-hlcdc: Use crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 03/10] drm: Use new mode_valid() helpers in connector probe helper Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
Re: [PATCH v4 03/10] drm: Use new mode_valid() helpers in connector probe helper Daniel Vetter <daniel@ffwll.ch> - 2017-05-22 10:00 +0200
[PATCH v4 07/10] drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
Re: [PATCH v4 07/10] drm/bridge/synopsys: dw-hdmi: Use bridge->mode_valid() callback Neil Armstrong <narmstrong@baylibre.com> - 2017-05-24 14:40 +0200
[PATCH v4 08/10] drm/arm: malidp: Use crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 06/10] drm/bridge: analogix-anx78xx: Use bridge->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
[PATCH v4 01/10] drm: Add drm_{crtc/encoder/connector}_mode_valid() Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-19 03:00 +0200
Re: [PATCH v4 00/10] Introduce new mode validation callbacks Daniel Vetter <daniel@ffwll.ch> - 2017-05-22 10:00 +0200
Re: [PATCH v4 00/10] Introduce new mode validation callbacks Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-22 12:10 +0200
Re: [PATCH v4 00/10] Introduce new mode validation callbacks Daniel Vetter <daniel@ffwll.ch> - 2017-05-22 17:40 +0200
Re: [PATCH v4 00/10] Introduce new mode validation callbacks Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-23 16:50 +0200
Re: [PATCH v4 00/10] Introduce new mode validation callbacks Daniel Vetter <daniel@ffwll.ch> - 2017-05-24 14:20 +0200
csiph-web