Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp31603yba; Mon, 20 May 2019 04:28:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqzmTSh9dWxKsk7DkUE6T4l6XVyFmK7ynbhZ6QHU3FcbsVAz8GGukJUfXMVPULG+FyRZm62t X-Received: by 2002:a62:6341:: with SMTP id x62mr78777989pfb.63.1558351704109; Mon, 20 May 2019 04:28:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558351704; cv=none; d=google.com; s=arc-20160816; b=tXNbgTkIo/W++NlYVsiDPYxGHYWcU4yLbQth4V02BG8hWHmLq3bFJ5zKY2+PJcZDlm 7uEKmYsGD63EHVe3EBJFQPmjipjPj+qM9HExeFsxRYCUjFFcLAlNukNrUL1iNmx/TlUG jaa7aiIt/W679u34etSV9C0Jfbdea54nlej4iheAm1ZDxo3AUXozyZqyHHlQhy3uSEp7 Le8Q8ZjhDVlpOrFOdXmu8sXsWoqI+nig1laraOvd2x98aqWkmXlROFCgqvXwT6QnaOqq IMdFKb0gKOjndwidEy5wOgtmOJTprRDhgu278EU1c1HP2GTEpe83cZ2L+uYHcTYz562F 14RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=axjwgmFLRM1+L1ustb875bbTzYApAFo/Jx5LqGuNXAY=; b=urNez3inzJ05OuDEyfkGdSVS9+Eb8Q8rS29UzSOTVtWqARWP8UPuyJ0Ne3bzCSNPMS hXHKPK4B2WCxH4eubPNZsIt8V1yxoCbjtSo06H5xO6wNhzEegtZbBA9oaC7P/azbWhur gnPfLYimO3g8WB2Eaax466X6h37SfKZ7+F9C0VWZhc+ri1rDN+R+aUHnOcD0l7W5UF+F IpFFtaHF5Zcq0IdmEBeaV6l/l34f7WR61gTzHvpZJUWuBsJ+xwIhsZ+kVl6f1RwLi5P9 DYP30Z/0mj/7/7tJGwEDDobB6MwH0V3HLe/g569GmlXCO/5rym31oY8ISNC0Xhxf+/0C Y8eQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Fk3DTqyr; 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 p19si17018177pgm.175.2019.05.20.04.28.09; Mon, 20 May 2019 04:28:24 -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; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Fk3DTqyr; 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 S1731841AbfETJHZ (ORCPT + 99 others); Mon, 20 May 2019 05:07:25 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:45083 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725764AbfETJHY (ORCPT ); Mon, 20 May 2019 05:07:24 -0400 Received: by mail-pf1-f195.google.com with SMTP id s11so6886070pfm.12 for ; Mon, 20 May 2019 02:07:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=axjwgmFLRM1+L1ustb875bbTzYApAFo/Jx5LqGuNXAY=; b=Fk3DTqyrXSG8DMVkQ5jpdd51WKOTXKnsgFqEzAEtHchQc+G9zhS3xB1IG7609RXfVX q75/4k3vKdMrJbBa8X4VuV/51N1jOEQsaWSoW90Qjyt4YPbticQxegvVVGoPchYpQXoc 5I8nhBuj8pJEGKNFi7ISyYNWx8OZwjG9ZIjFM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=axjwgmFLRM1+L1ustb875bbTzYApAFo/Jx5LqGuNXAY=; b=S9JJRHBzsK901Zm5rKNedcDwxMRXNryexBj0rN8Ea0jnnmsdiCUnBRBxaaTJrs5xif 7/HQsLu2iLwMwwf9EXwNFdrMDejieTCueC8FOTkJLw/nylOPwUje7Egxz4udzfrh14lK NckXW5dAy7CNgsrQv2J2KeUz0BlV8L42MzmEVWMNJHHZE0Noki9IAWueGighyqLDJUig SWx8PBToAAs46jZ96hj3KJV7eQcdQ2AxLNHXdh+HEQisx25BJ9Sqwq0O3C9yoNkO5+gT /LsN4sHbcwVtIQgt1j9/xuBh32wiwQjA1D6hASKnZoCXxhjwNaDln0EMIz8Iy6loGULe vgfw== X-Gm-Message-State: APjAAAU5l8RsoDsQvazQX3OCZjkrCNhKlOPhfXbidi+AHcvD4BLSEBiI SR0AVjWAx4bi3cWAKrjCpnT6vA== X-Received: by 2002:a62:36c1:: with SMTP id d184mr57798189pfa.49.1558343243972; Mon, 20 May 2019 02:07:23 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:23 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: bshah@mykolab.com, Vasily Khoruzhick , powerpan@qq.com, michael@amarulasolutions.com, linux-amarula@amarulasolutions.com, linux-sunxi@googlegroups.com, Jagan Teki Subject: [PATCH v10 02/11] drm/sun4i: dsi: Update start value in video start delay Date: Mon, 20 May 2019 14:33:09 +0530 Message-Id: <20190520090318.27570-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190520090318.27570-1-jagan@amarulasolutions.com> References: <20190520090318.27570-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org start value in video start delay computation done in below commit is as per the legacy bsp drivers/video/sunxi/legacy.. "drm/sun4i: dsi: Change the start delay calculation" (sha1: da676c6aa6413d59ab0a80c97bbc273025e640b2) This existing start delay computation gives start value of 35, for "bananapi,s070wv20-ct16" panel timings 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 Tainted: G W 5.1.0-next-20190514-00025-gf928bc7cc146 #15 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_pan_display+0xac/0x1d0) [] (drm_fb_helper_pan_display) from [] (fb_pan_display+0xcc/0x134) [] (fb_pan_display) from [] (bit_update_start+0x14/0x30) [] (bit_update_start) from [] (fbcon_switch+0x3d8/0x4e0) [] (fbcon_switch) from [] (redraw_screen+0x174/0x238) [] (redraw_screen) from [] (fbcon_prepare_logo+0x3c4/0x400) [] (fbcon_prepare_logo) from [] (fbcon_init+0x3c8/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 755e10f62b83f396 ]--- Console: switching to colour frame buffer device 100x30 [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 the expected start delay value is 1 which is confirmed from new bsp [2]. The important and unclear note on legacy and new bsp codes [1] [2] is both use similar start computation initially but it later reassign it to 1 in new bsp. Unfortunately we don't have any evidence or documentation for this reassignment to 1 in new bsp, but it is working with all supported panels in A33, A64. So, use the start as per new bsp code since it is working in all the supported panels. [2] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/lowlevel_sun8iw5/de_dsi.c#L807 [1] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/legacy/disp/de_bsp/de/ebios/de_dsi.c#L682 Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index c5bec0096b7c..b3ca85410b2c 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -364,7 +364,17 @@ static void sun6i_dsi_inst_init(struct sun6i_dsi *dsi, static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi, struct drm_display_mode *mode) { - u16 start = clamp(mode->vtotal - mode->vdisplay - 10, 8, 100); + /** + * Allwinner legacy (drivers/video/sunxi/legacy), + * new (drivers/video/sunxi/disp/de/lowlevel_sun8iw5) bsp drivers + * are evaluating start as: + * + * vtotal - vdisplay - 10 + * + * but the new drivers are reassigning start to 1, which seems to be + * working in all supported panels as of now. + */ + u8 start = 1; u16 delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + start; if (delay > mode->vtotal) -- 2.18.0.321.gffc6fa0e3