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


Groups > linux.kernel > #1677554

Re: [PATCH 3/8] drm/vc4: Use drm_mode_vrefresh() in DSI fixup, in case vrefresh is 0.

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Andrzej Hajda <a.hajda@samsung.com>
Newsgroups linux.kernel
Subject Re: [PATCH 3/8] drm/vc4: Use drm_mode_vrefresh() in DSI fixup, in case vrefresh is 0.
Date Thu, 29 Jun 2017 11:30:01 +0200
Message-ID <tXDVT-5Ni-7@gated-at.bofh.it> (permalink)
References <tX4Ou-5bs-11@gated-at.bofh.it> <tXDVT-5Ni-9@gated-at.bofh.it> <tX4Y9-5uo-7@gated-at.bofh.it>
X-Original-To Eric Anholt <eric@anholt.net>, dri-devel@lists.freedesktop.org, Archit Taneja <architt@codeaurora.org>, Laurent Pinchart <Laurent.pinchart@ideasonboard.com>, Thierry Reding <thierry.reding@gmail.com>
X-Auditid cbfec7f1-f796e6d00000116b-c8-5954c763163b
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 7bit
Content-Language en-US
X-Brightmail-Tracker H4sIAAAAAAAAA02Se0iTURjGO9t3c7j8nJYvdpNFmF1MrWCmiIHUIqhAA1dWfuiXSup0n46M /vCSMrVSZ5FN0RiapEY5dahgmokzE0pMQdAJXUQE74az0nI7Cv73Ozzned73ORxGLHtFejIJ yWm8JplLlFMSwty7+vl4jCVC5Wfrc1Fk62ZIxddfc5SiK2sIKfJLqmnFUHsFpVhtryRCKWX2 XC+lHHr8SKRsM4zTynLdc1I5UWgRKZdM+69Q1yTBsXxigpbXnAiJlsTP62rpFKPz3bIeHZmJ 8iQFyIkB9hR8nJ0WY94NX6xvKDvL2BoErS3qAiTZ4CUE5jU9tWVYqXtAYOElAlvRAIkPkwiq cusdUW5sNJRW/nUI7uwggpLREtouiFkv+G01kXamWB9Yaxp1xErZEOg0TiI7E+whmPr5zxG0 i40Eox57pawr2EqtG6MZxmljjZoKCY70gallPYH5ADQ1zIgxe0BO7iiBtzbTUFl70W4Fdh+Y ujYbh0HB20GE2Q2mLc005r2Qr3svsq8PbCGCxaI+Gh+eIFifL9t0B8EHyyCJh+0EvfmZGA+Q gi5Phq8oYXi5VYT5LGSVWWn8WI0IpqvHiWLkZdhWzbCtj2FbH8O2Pi8QUYfc+XQhKY4XAnwF LklIT47zjVEnmdDGB/q0blloRXN9Z7oRyyC5s3TH63CVjOS0QkZSNwJGLHeXns+MUMmksVzG PV6jvqVJT+SFbrSHIeQeUkn/SKSMjePS+Ds8n8JrtlQR4+SZiUyBYbedbl5YPHyy+B0kBhf+ GQmQ1jVFGdn7Ld8WOs8ZY4cHspo9LmnHlspt3+cCqY7+gJzLqoc34hqO8i7chKUxcCqoxy93 sG+8t812cCo3tV7rv+Ltbez4oXaLr1r3t4amNkaFU5FjQ8NXbddbe70yNTXHXFeWtKr+4dMZ s0/lhBDP+R8RawTuP4Ukxlg8AwAA
X-Brightmail-Tracker H4sIAAAAAAAAA+NgFjrOIsWRmVeSWpSXmKPExsVy+t/xa7pJx0MiDT7eM7Bo6njLanHl63s2 iwONlxktOicuYbe4vGsOm8XPXfNYHNg8mt4fY/O43NfL5LFz1l12j9kdM1k97ncfZ/L4vEku gC3KzSYjNTEltUghNS85PyUzL91WKTTETddCSSEvMTfVVilC1zckSEmhLDGnFMgzMkADDs4B 7sFK+nYJbhkfOpazFyziqZhxpIO1gbGNq4uRk0NCwETi+6oWFghbTOLCvfVsXYxcHEICSxgl bn7vZ4RwnjFKvFp1mh2kSlggQeL+4a9MILaIwEVGiTP/bEFsZgEFiV/3NrFCNGxklJi88SBY A5uApsTfzTfZQGxeATuJ/YueMYLYLAKqEi+e/mcGsUUFIiR2XT/AClEjKPFj8j2gkzg4OIHO WzqHC8RkFlCXmDIlF2KVvMTmNW+ZIWxxiebWmywTGAVnIWmehdAxC0nHLCQdCxhZVjGKpJYW 56bnFhvqFSfmFpfmpesl5+duYgRG4rZjPzfvYLy0MfgQowAHoxIP74pVwZFCrIllxZW5hxgl OJiVRHjdG0IihXhTEiurUovy44tKc1KLDzGaAn02kVlKNDkfmCTySuINTQzNLQ2NjC0szI2M lMR5Sz5cCRcSSE8sSc1OTS1ILYLpY+LglGpgdDi9JS5tfXvL/EU/7y3d7D091EGbl+Vqjfci nvilP3d03jpQtGPrg9XPOmr7Zih9vV5tYFzOOzvTsWjxKpmjFq9eSuo8VZT/mdT660/oVFPN U4Jfq/gdhFxs7h/+vShVfY9m0raO2RWRN7Qu9C57dUDO9O70K0ukJi3nmM8fYHNgcmdmg/dK AyWW4oxEQy3mouJEAEdYWCDaAgAA
X-Mtr 20000000000000000@CPGS
X-Cms-Mailid 20170629092450eucas1p1fb68c16e894840cba7a17e7f4d7a4485
X-Msg-Generator CA
X-Sender-IP 182.198.249.179
X-Local-Sender Andrzej HajdaSRPOL-Kernel (TP)삼성전자Senior Software Engineer
X-Global-Sender Andrzej HajdaSRPOL-Kernel (TP)Samsung ElectronicsSenior Software Engineer
X-Sender-Code C10EHQC10CD02CD027392
Cms-Type 201P
X-Hopcount 7
X-Cms-Rootmailid 20170627195915epcas4p262e067aa79edabe2fe0d7d95e85eace5
X-Rootmtr 20170627195915epcas4p262e067aa79edabe2fe0d7d95e85eace5
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 44
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org
X-Original-Date Thu, 29 Jun 2017 11:24:49 +0200
X-Original-Message-ID <8b4ae413-7bc9-9b7d-ae7f-55993dc7f09d@samsung.com>
X-Original-References <20170627195839.3338-1-eric@anholt.net> <CGME20170627195915epcas4p262e067aa79edabe2fe0d7d95e85eace5@epcas4p2.samsung.com> <20170627195839.3338-4-eric@anholt.net>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1677554

Show key headers only | View raw


On 27.06.2017 21:58, Eric Anholt wrote:
> I'm not sure what changed where I started getting vrefresh=0 from the
> mode to be fixed up.

It can be a case of low pixel_clock value, maybe it should be
investigated further, unless there is execution path with forgotten
mode->vrefresh =

drm_mode_vrefresh(mode)

>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
>  drivers/gpu/drm/vc4/vc4_dsi.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c
> index 629d372633e6..fca4d7fd677e 100644
> --- a/drivers/gpu/drm/vc4/vc4_dsi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dsi.c
> @@ -866,7 +866,9 @@ static bool vc4_dsi_encoder_mode_fixup(struct drm_encoder *encoder,
>  	adjusted_mode->clock = pixel_clock_hz / 1000 + 1;
>  
>  	/* Given the new pixel clock, adjust HFP to keep vrefresh the same. */
> -	adjusted_mode->htotal = pixel_clock_hz / (mode->vrefresh * mode->vtotal);
> +	adjusted_mode->htotal = pixel_clock_hz / (drm_mode_vrefresh(mode) *
> +						  mode->vtotal);
> +

I am not sure but I guess division by zero is also possible here.
I do not know if you need to handle interlaced/dblscan/vscan modes, but
maybe it would be safer to calculate adjusted_htotal according to:

adjusted_mode->htotal = pixel_clock_hz * mode->htotal / (mode->clock * 1000)

or sth similar.


Regards
Andrzej

>  	adjusted_mode->hsync_end += adjusted_mode->htotal - mode->htotal;
>  	adjusted_mode->hsync_start += adjusted_mode->htotal - mode->htotal;
>  

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


Thread

[PATCH 3/8] drm/vc4: Use drm_mode_vrefresh() in DSI fixup, in case vrefresh is 0. Eric Anholt <eric@anholt.net> - 2017-06-27 22:10 +0200
  Re: [PATCH 3/8] drm/vc4: Use drm_mode_vrefresh() in DSI fixup,  in case vrefresh is 0. Andrzej Hajda <a.hajda@samsung.com> - 2017-06-29 11:30 +0200

csiph-web