Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1631385

[PATCH 2/2] drm: arcpgu: Use crtc->mode_valid() callback

From Jose Abreu <Jose.Abreu@synopsys.com>
Newsgroups linux.kernel
Subject [PATCH 2/2] drm: arcpgu: Use crtc->mode_valid() callback
Date 2017-04-26 13:00 +0200
Message-ID <tAsPU-197-15@gated-at.bofh.it> (permalink)
References <tAsGe-15h-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Now that we have a callback to check if crtc supports a given mode
we can use it in arcpgu so that we restrict the number of probbed
modes to the ones we can actually display.

This is specially useful because arcpgu crtc is responsible to set
a clock value in the commit() stage but unfortunatelly this clock
does not support all the needed ranges.

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>
---
 drivers/gpu/drm/arc/arcpgu_crtc.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c
index ad9a959..dea7a18 100644
--- a/drivers/gpu/drm/arc/arcpgu_crtc.c
+++ b/drivers/gpu/drm/arc/arcpgu_crtc.c
@@ -64,6 +64,19 @@ static void arc_pgu_set_pxl_fmt(struct drm_crtc *crtc)
 	.atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 };
 
+enum drm_mode_status arc_pgu_crtc_mode_valid(struct drm_crtc *crtc,
+					     struct drm_display_mode *mode)
+{
+	struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
+	long rate, clk_rate = mode->clock * 1000;
+
+	rate = clk_round_rate(arcpgu->clk, clk_rate);
+	if (rate != clk_rate)
+		return MODE_NOCLOCK;
+
+	return MODE_OK;
+}
+
 static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc)
 {
 	struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
@@ -158,6 +171,7 @@ static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
 }
 
 static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = {
+	.mode_valid	= arc_pgu_crtc_mode_valid,
 	.mode_set	= drm_helper_crtc_mode_set,
 	.mode_set_base	= drm_helper_crtc_mode_set_base,
 	.mode_set_nofb	= arc_pgu_crtc_mode_set_nofb,
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/2] Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-04-26 12:50 +0200
  [PATCH 2/2] drm: arcpgu: Use crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-04-26 13:00 +0200
  [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-04-26 13:00 +0200
    Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Andrzej Hajda <a.hajda@samsung.com> - 2017-04-27 12:10 +0200
      Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-04-27 14:40 +0200
    Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Ville Syrjälä <ville.syrjala@linux.intel.com> - 2017-04-28 13:50 +0200
      Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-04-28 14:40 +0200
        Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Ville Syrjälä <ville.syrjala@linux.intel.com> - 2017-04-28 15:00 +0200
    Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-02 10:50 +0200
      Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-02 11:30 +0200
        Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-03 08:20 +0200
          Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-03 16:20 +0200
            Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-03 17:10 +0200
              Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Ville Syrjälä <ville.syrjala@linux.intel.com> - 2017-05-03 17:30 +0200
                Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-04 14:50 +0200
                Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Ville Syrjälä <ville.syrjala@linux.intel.com> - 2017-05-04 15:10 +0200
              Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-04 12:30 +0200
                Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Jose Abreu <Jose.Abreu@synopsys.com> - 2017-05-04 14:00 +0200
                Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-04 14:50 +0200
        Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Daniel Vetter <daniel@ffwll.ch> - 2017-05-03 08:30 +0200

csiph-web