From: Jose Abreu <Jose.Abreu@synopsys.com>
To: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Cc: "Jose Abreu" <Jose.Abreu@synopsys.com>,
"Carlos Palminha" <CARLOS.PALMINHA@synopsys.com>,
"Alexey Brodkin" <Alexey.Brodkin@synopsys.com>,
"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
"Dave Airlie" <airlied@linux.ie>
Subject: [PATCH 2/2] drm: arcpgu: Use crtc->mode_valid() callback
Date: Wed, 26 Apr 2017 11:48:35 +0100 [thread overview]
Message-ID: <40b1d9c12cac3fe2df39dfe92cdb3c5e33384d58.1493203049.git.joabreu@synopsys.com> (raw)
In-Reply-To: <cover.1493203049.git.joabreu@synopsys.com>
In-Reply-To: <cover.1493203049.git.joabreu@synopsys.com>
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
prev parent reply other threads:[~2017-04-26 10:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-26 10:48 [PATCH 0/2] Introduce " Jose Abreu
2017-04-26 10:48 ` [PATCH 1/2] drm: " Jose Abreu
2017-04-27 10:05 ` Andrzej Hajda
2017-04-27 12:34 ` Jose Abreu
2017-04-28 11:41 ` Ville Syrjälä
2017-04-28 12:30 ` Jose Abreu
2017-04-28 12:58 ` Ville Syrjälä
2017-05-02 8:48 ` Daniel Vetter
2017-05-02 9:29 ` Jose Abreu
2017-05-03 6:19 ` Daniel Vetter
2017-05-03 6:19 ` Daniel Vetter
2017-05-03 14:16 ` Jose Abreu
2017-05-03 15:00 ` Daniel Vetter
2017-05-03 15:21 ` Ville Syrjälä
2017-05-04 12:49 ` Daniel Vetter
2017-05-04 13:08 ` Ville Syrjälä
2017-05-04 10:21 ` Jose Abreu
2017-05-04 11:55 ` Jose Abreu
2017-05-04 12:48 ` Daniel Vetter
2017-04-26 10:48 ` Jose Abreu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40b1d9c12cac3fe2df39dfe92cdb3c5e33384d58.1493203049.git.joabreu@synopsys.com \
--to=jose.abreu@synopsys.com \
--cc=Alexey.Brodkin@synopsys.com \
--cc=CARLOS.PALMINHA@synopsys.com \
--cc=airlied@linux.ie \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®