From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED,USER_AGENT_NEOMUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 96C2CC28CC0 for ; Wed, 29 May 2019 14:55:13 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6BB7623B08 for ; Wed, 29 May 2019 14:55:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Jfhn/7uO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BB7623B08 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type:Cc: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: In-Reply-To:MIME-Version:References:Message-ID:Subject:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Tt2TKYTGPQgjhG3mOaoBxM4P4WuIxTCqjx/K9NFTztU=; b=Jfhn/7uORyWACLXH/j7IATjFy uwiEeNgEBn+sQAeKfVcsO5ASGKkeofNa4ZGIM+LTAPZ1lW8mPpQjhDyFPkrSb2/u/YwsIuAWCsH7C JfPQFWM6PMOvh4W4qlzCKNllAMnS54zTPtgUVfPHSB9Hxc5iBv16DYqolgHVaLd7ODpphlshsqYNK gnq2hdIr7VJaraG2anMaXozIK6tiAs+kx/rdmLQ8GbvPsOddOUG/hcxkSpX3zPc3sVZXCZ0AF0q6g v+xSaSKo98vmVp7K480Rccxew59UoRkOxTafPZLyV3LQtUzQTUkx1DZrcTJ0y4iVARAW84usE5Udq RnnhBMKhg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hVzys-0003w8-9q; Wed, 29 May 2019 14:55:06 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hVzyo-0003FA-D6 for linux-arm-kernel@lists.infradead.org; Wed, 29 May 2019 14:55:04 +0000 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 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 In-Reply-To: User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190529_075502_762171_7D4FC968 X-CRM114-Status: GOOD ( 20.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bhushan Shah , David Airlie , linux-sunxi , linux-kernel , dri-devel , =?utf-8?B?5Z2a5a6a5YmN6KGM?= , Chen-Yu Tsai , Daniel Vetter , Michael Trimarchi , linux-amarula , linux-arm-kernel Content-Type: multipart/mixed; boundary="===============7677870015749302898==" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org --===============7677870015749302898== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="e3ohgwzl5lwvn4wg" Content-Disposition: inline --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-- --===============7677870015749302898== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel --===============7677870015749302898==--