Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp6444586ybi; Wed, 29 May 2019 07:57:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqxu0zgws1Th0qkpmh3wU5Tjvt5i95WuI9N2fI70/H/Oe653yuuTzKhMu1Oj30bnGP+6N/tW X-Received: by 2002:a63:224a:: with SMTP id t10mr25732781pgm.27.1559141850789; Wed, 29 May 2019 07:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559141850; cv=none; d=google.com; s=arc-20160816; b=BJXwSQp5avTSzudDXpxRraXQ8Wxj7LqwnV/PX24yNOmtDHAE2rAry3dM2PbkyAfif6 yP7DSp47uzLz0zMDvgYKGVCcRRGG8mXdPoKyiA+mgnQVYhxWbKVNwqrojxHVWrX2oWVc VS0Iim21nL9HFVFPqOLJB/ClEwnoVmkqNFC6I1coGQuDSt5u+aZKKaI7HX5H4WV8R4vr DMLghzuo/v4IGE4WPvZqVp6lZRZWlPjmue9y9Yl6jO/7Vl9kBXZCX8gnOVMfHy5vIJQJ DdChOT1I9SBxsrVKmjkTsa8mhz7stRiPTOVyBhG4MTUX2Rx8M5ov/gWU0kzMSPsT6yrz s7xQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=cihwEIUCW4UFif+6oXZuW0rXT9uO9hT7f8GNUMh1k3o=; b=LgpxeGt0mh/8Y25tWtY3SYhs/ZCl5RKtEtHttfIKuYLx53/SY3uLhVqQJDad61gWev 3T4mFfjUIFC+4Rdl0Ue0ys/g8+lVB90TJnlDrfaP5KuaLxF5f9H7amLBgkpsOWSrYoLQ RCXT1zoj/aK/5MVfbky8MXmtGDuN1byZv+yMQEsOiWcWlNS58iRBeWeQApeNwjScDKKK ESZ8h2F0cDx7XUqihfR2+zBnd3dWBnILQhAuQOYyHMxOlwzlGkiONYutjpwpy2uMFYHC jD66N4X+DNYq4KmYhn6pO1Dmv+eZqIBWDvKkwZlFCxFIl4WByIMIdvg3hCyMdnp67BcM Sl0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n65si7754110pji.53.2019.05.29.07.57.14; Wed, 29 May 2019 07:57:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726439AbfE2Oy5 (ORCPT + 99 others); Wed, 29 May 2019 10:54:57 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:34067 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726068AbfE2Oy4 (ORCPT ); Wed, 29 May 2019 10:54:56 -0400 X-Originating-IP: 90.88.147.134 Received: from localhost (aaubervilliers-681-1-27-134.w90-88.abo.wanadoo.fr [90.88.147.134]) (Authenticated sender: maxime.ripard@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id B6E83FF810; Wed, 29 May 2019 14:54:50 +0000 (UTC) Date: Wed, 29 May 2019 16:54:50 +0200 From: Maxime Ripard To: Jagan Teki Cc: David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel , linux-arm-kernel , linux-kernel , Bhushan Shah , Vasily Khoruzhick , =?utf-8?B?5Z2a5a6a5YmN6KGM?= , Michael Trimarchi , linux-amarula , linux-sunxi Subject: Re: [PATCH v10 01/11] drm/sun4i: dsi: Fix TCON DRQ set bits Message-ID: <20190529145450.qnitxpmpr2a2xemk@flea> References: <20190520090318.27570-1-jagan@amarulasolutions.com> <20190520090318.27570-2-jagan@amarulasolutions.com> <20190523203407.o5obg2wtj7wwau6a@flea> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="e3ohgwzl5lwvn4wg" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --e3ohgwzl5lwvn4wg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, May 24, 2019 at 03:48:51PM +0530, Jagan Teki wrote: > On Fri, May 24, 2019 at 2:04 AM Maxime Ripard wrote: > > > > On Mon, May 20, 2019 at 02:33:08PM +0530, Jagan Teki wrote: > > > According to "DRM kernel-internal display mode structure" in > > > include/drm/drm_modes.h the current driver is trying to include > > > sync timings along with front porch value while checking and > > > computing drq set bits in non-burst mode. > > > > > > mode->hsync_end - mode->hdisplay => horizontal front porch + sync > > > > > > With adding additional sync timings, the dsi controller leads to > > > wrong drq set bits for "bananapi,s070wv20-ct16" panel which indeed > > > trigger panel flip_done timed out as: > > > > > > WARNING: CPU: 0 PID: 31 at drivers/gpu/drm/drm_atomic_helper.c:1429 drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0 > > > [CRTC:46:crtc-0] vblank wait timed out > > > Modules linked in: > > > CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted 5.1.0-next-20190514-00026-g01f0c75b902d-dirty #13 > > > Hardware name: Allwinner sun8i Family > > > Workqueue: events deferred_probe_work_func > > > [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > > > [] (show_stack) from [] (dump_stack+0x84/0x98) > > > [] (dump_stack) from [] (__warn+0xfc/0x114) > > > [] (__warn) from [] (warn_slowpath_fmt+0x44/0x68) > > > [] (warn_slowpath_fmt) from [] (drm_atomic_helper_wait_for_vblanks.part.1+0x298/0x2a0) > > > [] (drm_atomic_helper_wait_for_vblanks.part.1) from [] (drm_atomic_helper_commit_tail_rpm+0x5c/0x6c) > > > [] (drm_atomic_helper_commit_tail_rpm) from [] (commit_tail+0x40/0x6c) > > > [] (commit_tail) from [] (drm_atomic_helper_commit+0xbc/0x128) > > > [] (drm_atomic_helper_commit) from [] (restore_fbdev_mode_atomic+0x1cc/0x1dc) > > > [] (restore_fbdev_mode_atomic) from [] (drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa0) > > > [] (drm_fb_helper_restore_fbdev_mode_unlocked) from [] (drm_fb_helper_set_par+0x30/0x54) > > > [] (drm_fb_helper_set_par) from [] (fbcon_init+0x560/0x5ac) > > > [] (fbcon_init) from [] (visual_init+0xbc/0x104) > > > [] (visual_init) from [] (do_bind_con_driver+0x1b0/0x390) > > > [] (do_bind_con_driver) from [] (do_take_over_console+0x13c/0x1c4) > > > [] (do_take_over_console) from [] (do_fbcon_takeover+0x74/0xcc) > > > [] (do_fbcon_takeover) from [] (notifier_call_chain+0x44/0x84) > > > [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x48/0x60) > > > [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x18/0x20) > > > [] (blocking_notifier_call_chain) from [] (register_framebuffer+0x1e0/0x2f8) > > > [] (register_framebuffer) from [] (__drm_fb_helper_initial_config_and_unlock+0x2fc/0x50c) > > > [] (__drm_fb_helper_initial_config_and_unlock) from [] (drm_fbdev_client_hotplug+0xe8/0x1b8) > > > [] (drm_fbdev_client_hotplug) from [] (drm_fbdev_generic_setup+0x88/0x118) > > > [] (drm_fbdev_generic_setup) from [] (sun4i_drv_bind+0x128/0x160) > > > [] (sun4i_drv_bind) from [] (try_to_bring_up_master+0x164/0x1a0) > > > [] (try_to_bring_up_master) from [] (__component_add+0x94/0x140) > > > [] (__component_add) from [] (sun6i_dsi_probe+0x144/0x234) > > > [] (sun6i_dsi_probe) from [] (platform_drv_probe+0x48/0x9c) > > > [] (platform_drv_probe) from [] (really_probe+0x1dc/0x2c8) > > > [] (really_probe) from [] (driver_probe_device+0x60/0x160) > > > [] (driver_probe_device) from [] (bus_for_each_drv+0x74/0xb8) > > > [] (bus_for_each_drv) from [] (__device_attach+0xd0/0x13c) > > > [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) > > > [] (bus_probe_device) from [] (deferred_probe_work_func+0x64/0x90) > > > [] (deferred_probe_work_func) from [] (process_one_work+0x204/0x420) > > > [] (process_one_work) from [] (worker_thread+0x274/0x5a0) > > > [] (worker_thread) from [] (kthread+0x11c/0x14c) > > > [] (kthread) from [] (ret_from_fork+0x14/0x2c) > > > Exception stack(0xde539fb0 to 0xde539ff8) > > > 9fa0: 00000000 00000000 00000000 00000000 > > > 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > > > 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 > > > ---[ end trace b57eb1e5c64c6b8b ]--- > > > random: fast init done > > > [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:46:crtc-0] flip_done timed out > > > [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:48:DSI-1] flip_done timed out > > > [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:30:plane-0] flip_done timed out > > > > > > But according to Allwinner A33, A64 BSP code [1] [3] the TCON DRQ for > > > non-burst DSI mode can be computed based on "horizontal front porch" > > > value only (no sync timings included). > > > > > > Detailed evidence for drq set bits based on A33 BSP [1] [2] > > > > > > => panel->lcd_ht - panel->lcd_x - panel->lcd_hbp - 20 > > > => (tt->hor_front_porch + lcdp->panel_info.lcd_hbp + > > > lcdp->panel_info.lcd_x) - panel->lcd_x - panel->lcd_hbp - 20 > > > => tt->hor_front_porch - 20 > > > > The thing is, while your explanation on the DRM side is sound, > > Allwinner has been using the hbp field of their panel description to > > store what DRM calls the backporch and the sync period. > > Exactly, hbp = backporch + sync > https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L2046 > > And the above computation is rely on that as well. If you can see the > final out of the above computation you can get the front porch value > (w/o sync ) As I was saying, you are explaining it well for DRM, but in order for your last formula (the one coming from the BSP) to make sense, you have to explain that the horizontal back porch for Allwinner contains the sync period, otherwise your expansion of lcd_ht doesn't make sense. > > And nowhere in that commit log you are describing whether it's still > > an issue or not, and if it's not anymore how you did test that it's > > not the case anymore. > > No, I have explained 1st and 2nd para about > 00. There is any additional sync timings in the drq set bits > 01: issue occur due to adding addition sync timings with longs on the > panel, by referring > 03: and later paragraphs proved that there is no sync timings used in BSP > > Am I missing anythings? I'm sorry, but I'm not quite sure what you mean here :/ Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com --e3ohgwzl5lwvn4wg Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXO6dOgAKCRDj7w1vZxhR xb3JAQDiU9ih3FaFVzHFsCryipzzledy17txQyF0xAPZx3DffwD9GlUTRIfwWY6P ietvjmHvlDtHvP7JCiWM+ntELt2bHwU= =Exq+ -----END PGP SIGNATURE----- --e3ohgwzl5lwvn4wg--