Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2223453ybd; Mon, 24 Jun 2019 02:51:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqzvy1rxfAgiB+89yAjCeY8csMIFZG0s49qDugV8AAmc97ezZGNT8fuqA94xt+wvRnaitAWn X-Received: by 2002:a17:90a:898e:: with SMTP id v14mr23747629pjn.119.1561369872028; Mon, 24 Jun 2019 02:51:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561369872; cv=none; d=google.com; s=arc-20160816; b=QFD+zVYua6sB4KSKf/Om4dThTlk6rz/0vDx96m0IbU9z2bbanYxM8ebx0IJ5+FPVqT xDFXDMyT5u3x001TKMJ7d4CCNcqo06UnehlMDARvPBWYF00iHVk0roNLTlcUeEXVIhSQ 8xm5TL275B2HnvRsnJyr3vFL2vc4KOtt9LWNX2UF1JGA01iKB1VUHSrsbqjepabiOfxs bBYa4yTaqO/4DXsDa73ldlX3IhDrMn94RvKONPYnqmIBoDi1Hk5JlZnobDAXlmf4pR3B AvPeaMP5r/W57Z9lOStSMENumKu2EJUKacHpCJA9elkbTkqkGRZQBp+6fjPCSB1HT1rd 9vKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=aVa47P92BemoaLBZOvSqv4LRSbGGjo9/5yhYubtSxi8=; b=Yyq2FZsE4agxjK/h+fnQ4Wm6tx/qBbEYORCO7EPi3KFpK9N+Nn0/75UI/sNj07S7gy XLOYo/aSxnL5kH/4Ay+VqYW01SddQYN80Jl2QFOsOihsONnSUV4vqdZuA8rdhDu7A2Uy poL0T4DAT352nx0ljB6PCjbDpiKRgf0YthnPi055WDrPZzwF7D97DTF2vAq9fphHm8bh zHqJlvyTmzi0SkrjgiRrLWem8F+4qLu6WxdWldZLN0dZjFbXJqLGvMun6r8y4H3XOGQL unGHG/VRZXMt8iWS2r/NLh2xpzj56etAc6qJr7cIMD/FwqeIDHiUBsndoZA1pUXUmfcW vB/Q== 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 x185si11058930pfx.243.2019.06.24.02.50.55; Mon, 24 Jun 2019 02:51:12 -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 S1728532AbfFXJec (ORCPT + 99 others); Mon, 24 Jun 2019 05:34:32 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:43283 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726331AbfFXJeb (ORCPT ); Mon, 24 Jun 2019 05:34:31 -0400 Received: by mail-ed1-f66.google.com with SMTP id e3so20761327edr.10 for ; Mon, 24 Jun 2019 02:34:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aVa47P92BemoaLBZOvSqv4LRSbGGjo9/5yhYubtSxi8=; b=CpuKjnACuBZXHJnqOifWPUNnVEfXl7t7IcrE/rhZC+12/9wVvOGb6SXZRE4OPuWk6L vo5HvPhRgBmw8n17YvfpyLHojfvzCKL63rmPyAw9jwcCtOE23qdgAe6gj3GAs6cyvbKB ZYTyK+2z3qgu0EXuGggEZt5U5Wimw6PyVrblI6guPEURGGUXWVwooUyTNuoD3N9Fx9WJ WEYcP5S6uR8JRXe+Si0ZmPCtSeGDhLB4Df5ijrZKz/c/RamSfUXzZCv4dhYjJjUsXrQz MjOXnPyy0jKLWWbvrUP9G8Wlo4loQc0p8Ou1qmSDDLnRr+WM1CyR8IMfJzUF0Ls/lzXR goVg== X-Gm-Message-State: APjAAAWe4btpW5HANXwPTKZCizDSX/yYTnnVgl2NsOpQhJvgJ6it6w6k VT6ifX7QXjobgGgDUKA2nwFObhaT7eA= X-Received: by 2002:a50:8bcc:: with SMTP id n12mr139909694edn.6.1561368868834; Mon, 24 Jun 2019 02:34:28 -0700 (PDT) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com. [209.85.221.49]) by smtp.gmail.com with ESMTPSA id x4sm3662749eda.22.2019.06.24.02.34.27 for (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Mon, 24 Jun 2019 02:34:28 -0700 (PDT) Received: by mail-wr1-f49.google.com with SMTP id x17so13085033wrl.9 for ; Mon, 24 Jun 2019 02:34:27 -0700 (PDT) X-Received: by 2002:a05:6000:114b:: with SMTP id d11mr41793692wrx.167.1561368867466; Mon, 24 Jun 2019 02:34:27 -0700 (PDT) MIME-Version: 1.0 References: <20190520090318.27570-1-jagan@amarulasolutions.com> <20190520090318.27570-3-jagan@amarulasolutions.com> In-Reply-To: <20190520090318.27570-3-jagan@amarulasolutions.com> From: Chen-Yu Tsai Date: Mon, 24 Jun 2019 17:34:16 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v10 02/11] drm/sun4i: dsi: Update start value in video start delay To: Jagan Teki Cc: Maxime Ripard , David Airlie , Daniel Vetter , dri-devel , linux-arm-kernel , linux-kernel , Bhushan Shah , Vasily Khoruzhick , =?UTF-8?B?5Z2a5a6a5YmN6KGM?= , Michael Trimarchi , linux-amarula , linux-sunxi Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Mon, May 20, 2019 at 5:07 PM Jagan Teki wrote: > > 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) There is a standard format for referencing commits. Please use it. The format is: ... commit ("commit subject") ... So your commit message should read: start value in video start delay was changed in commit da676c6aa641 ("drm/sun4i: dsi: Change the start delay calculation") to match the legacy BSP driver [1]. > > 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. It would be better to actually list the panels you tested. The list of "supported panels" is nowhere to be found, and would change from release to release anyways. It would be hard for anyone to realize which ones were actually tested. It would also help if others want to verify your fix, and/or test other hardware. Also I suggest following a similar pattern to the suggestions I gave for patch 1 for writing your commit logs: 1. Describe what you observe to be not working. In this case, the display is not working, with the provided traceback and kernel logs. 2. Describe what you think went wrong. This could be a git bisect result, or in this case, you are providing evidence from the BSP with links and actual results from hardware running the BSP. For actual running BSP, it would be better to provide the actual hardware combinations you are running on, in addition to the BSP links. Last, the best piece of concrete evidence might be relevant register values from functioning hardware. 3. Explain that the fix corrects the issue for you, and list the hardware that it works on. 4. Optional. Any other thoughts on the subject matter, such as suspicion of other broken hardware, or the fix might not be complete. > [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 Please list your references in increasing order: [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 [2] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/lowlevel_sun8iw5/de_dsi.c#L807 It is otherwise confusing. I believe Maxime might have mixed up the two. Otherwise I believe the commit message matches the intent of the code. I'm afraid I don't know enough about DSI in general or the hardware to comment on why this works and if it's the right fix though. Regards, ChenYu > 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 >