Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp2237970ybm; Thu, 23 May 2019 13:36:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqxlmrDRGj5G+9xU+AjmQOUnW4GMfnKeuc7Vt3yxvWsn9OJCl4GRIF6lwhq3bc6vYS7Izbku X-Received: by 2002:a17:902:b495:: with SMTP id y21mr36035419plr.243.1558643805012; Thu, 23 May 2019 13:36:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558643805; cv=none; d=google.com; s=arc-20160816; b=xg/8eK0DHsLzohNQQzT2aR40UKGD+mhibhDDSIJcE+uBqbJ14/K8X+A0ypwDTlYVLP Ce7oDYpNv2kSlx1keRLUWNGaSs7BxNOrJOnYip1A5welqJ2Tpk2BhbEDHtxJYKTPUPN+ qMaaQypQM6nom8RCuXxeyDCxxdKYTDRKrY9DNA2QfTNndRFOt9j+ULMZ0Q+CvRdnTF7M XE1WaRqCwpGRV+lJMV4nUp0M8EBRYycabSn42CJdYD7mpaDMy347AZia9cS1tMC2GLw5 R+HNOK1KkjZwsP6V79Mb2wa4NOff2v0y2mH9k9npqXsZgoEoplV0KWAf7yWM4C2pomLB 7AIQ== 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=6F200WqNI0/BjgJO5nmiRj6b4jXSOG6S1hsSZ8Q/vZ8=; b=jLDykudEJHIZi0lk54YsOgj51fLr1Rg1S15UfvvQAHAshi3V5cnJfv3Wn0/Nfzjcd5 VHcSPxQ6/ArkH8G/mT8SyY5+PYFRP8Pk1sNf/ZOo44sASRQH0efp04m2Ugj13aAiZ3kN VvcrRfs7QNkFO8/yDwidkqfU8cqRqvupF5s4S14+b+HwcAcu2tpzhvLQ3lN+dmvxYkE4 Fuqan/V1jpIqWPF1cZZf1n84kkJs4NxKFagWDr3GjZpesb+RdDpsmdS0d3FMQiDh74L+ QMEN34+b+g2hh+2tQMYz8E0yCOM39QxW6l8nnPo5Q2WsH9DnYYrWdAgBUMkuxxtJ4GVr dB0g== 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 g5si916032plq.109.2019.05.23.13.36.29; Thu, 23 May 2019 13:36:44 -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 S2387917AbfEWUeP (ORCPT + 99 others); Thu, 23 May 2019 16:34:15 -0400 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:56755 "EHLO relay9-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387533AbfEWUeO (ORCPT ); Thu, 23 May 2019 16:34:14 -0400 X-Originating-IP: 90.89.68.76 Received: from localhost (lfbn-1-10718-76.w90-89.abo.wanadoo.fr [90.89.68.76]) (Authenticated sender: maxime.ripard@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 10FE9FF806; Thu, 23 May 2019 20:34:07 +0000 (UTC) Date: Thu, 23 May 2019 22:34:07 +0200 From: Maxime Ripard To: Jagan Teki Cc: David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bshah@mykolab.com, Vasily Khoruzhick , powerpan@qq.com, michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, linux-sunxi@googlegroups.com Subject: Re: [PATCH v10 01/11] drm/sun4i: dsi: Fix TCON DRQ set bits Message-ID: <20190523203407.o5obg2wtj7wwau6a@flea> References: <20190520090318.27570-1-jagan@amarulasolutions.com> <20190520090318.27570-2-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190520090318.27570-2-jagan@amarulasolutions.com> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. 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. Maxime -- Maxime Ripard, Bootlin Embedded Linux and Kernel engineering https://bootlin.com