linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Claudiu Beznea <claudiu.beznea@microchip.com>
To: <boris.brezillon@bootlin.com>, <airlied@linux.ie>,
	<nicolas.ferre@microchip.com>, <alexandre.belloni@bootlin.com>,
	<lee.jones@linaro.org>, <sam@ravnborg.org>
Cc: <peda@axentia.se>, <dri-devel@lists.freedesktop.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	Claudiu Beznea <claudiu.beznea@microchip.com>
Subject: [PATCH v3 2/6] drm: atmel-hlcdc: enable clock before configuring timing engine
Date: Wed, 18 Dec 2019 14:28:25 +0200	[thread overview]
Message-ID: <1576672109-22707-3-git-send-email-claudiu.beznea@microchip.com> (raw)
In-Reply-To: <1576672109-22707-1-git-send-email-claudiu.beznea@microchip.com>

Changing pixel clock source without having this clock source enabled
will block the timing engine and the next operations after (in this case
setting ATMEL_HLCDC_CFG(5) settings in atmel_hlcdc_crtc_mode_set_nofb()
will fail). It is recomended (although in datasheet this is not present)
to actually enabled pixel clock source before doing any changes on timing
enginge (only SAM9X60 datasheet specifies that the peripheral clock and
pixel clock must be enabled before using LCD controller).

Fixes: 1a396789f65a ("drm: add Atmel HLCDC Display Controller support")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
---
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index 5040ed8d0871..721fa88bf71d 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -73,7 +73,11 @@ static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c)
 	unsigned long prate;
 	unsigned int mask = ATMEL_HLCDC_CLKDIV_MASK | ATMEL_HLCDC_CLKPOL;
 	unsigned int cfg = 0;
-	int div;
+	int div, ret;
+
+	ret = clk_prepare_enable(crtc->dc->hlcdc->sys_clk);
+	if (ret)
+		return;
 
 	vm.vfront_porch = adj->crtc_vsync_start - adj->crtc_vdisplay;
 	vm.vback_porch = adj->crtc_vtotal - adj->crtc_vsync_end;
@@ -147,6 +151,8 @@ static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c)
 			   ATMEL_HLCDC_VSPSU | ATMEL_HLCDC_VSPHO |
 			   ATMEL_HLCDC_GUARDTIME_MASK | ATMEL_HLCDC_MODE_MASK,
 			   cfg);
+
+	clk_disable_unprepare(crtc->dc->hlcdc->sys_clk);
 }
 
 static enum drm_mode_status
-- 
2.7.4


  parent reply	other threads:[~2019-12-18 12:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-18 12:28 [PATCH v3 0/6] fixes for atmel-hlcdc Claudiu Beznea
2019-12-18 12:28 ` [PATCH v3 1/6] drm: atmel-hlcdc: use double rate for pixel clock only if supported Claudiu Beznea
2019-12-18 12:28 ` Claudiu Beznea [this message]
2019-12-18 12:28 ` [PATCH v3 3/6] mfd: atmel-hlcdc: add struct device member to struct atmel_hlcdc_regmap Claudiu Beznea
2019-12-18 12:28 ` [PATCH v3 4/6] mfd: atmel-hlcdc: return in case of error Claudiu Beznea
2020-01-07 10:18   ` Lee Jones
2019-12-18 12:28 ` [PATCH v3 5/6] drm: atmel-hlcdc: prefer a lower pixel-clock than requested Claudiu Beznea
2020-01-02  9:08   ` Sam Ravnborg
2020-01-04 17:12     ` Sam Ravnborg
2020-01-06  9:25       ` Claudiu.Beznea
2020-01-06 19:02         ` Sam Ravnborg
2020-01-06  9:24     ` Claudiu.Beznea
2020-01-07  9:19       ` Peter Rosin
2019-12-18 12:28 ` [PATCH v3 6/6] Revert "drm: atmel-hlcdc: enable sys_clk during initalization." Claudiu Beznea
2020-01-02  9:05 ` [PATCH v3 0/6] fixes for atmel-hlcdc Sam Ravnborg
2020-01-02 16:05   ` Lee Jones
2020-01-02 16:21     ` Sam Ravnborg
2020-01-06 19:37 ` Sam Ravnborg
2020-01-07 10:17 ` [GIT PULL] Immutable branch between MFD and DRM due for the v5.6 merge window Lee Jones
2020-01-07 18:21   ` Sam Ravnborg

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=1576672109-22707-3-git-send-email-claudiu.beznea@microchip.com \
    --to=claudiu.beznea@microchip.com \
    --cc=airlied@linux.ie \
    --cc=alexandre.belloni@bootlin.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=peda@axentia.se \
    --cc=sam@ravnborg.org \
    /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;
as well as URLs for NNTP newsgroup(s).