From patchwork Mon May 20 09:03:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 419 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 597CD3F36B for ; Mon, 20 May 2019 11:07:26 +0200 (CEST) Received: by mail-pg1-f198.google.com with SMTP id e6sf5323860pgl.1 for ; Mon, 20 May 2019 02:07:26 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343244; cv=pass; d=google.com; s=arc-20160816; b=TcskETS65l6qypoIBZ+zAh+hskYU2DD6ScqXl+5PfeEyVr9CQyo0EcxFqgnOZv5nKj jFaQSjHVUoTg5qPuYk5tfz78PogYBF7+djtWihy6xtSGGw7WknvHZLKPYiYA91PJiFkY edeNIOCBLUhY/2kg9SOBnOUfIWODVSwfMZBa7wOpuKJSLrxk7fDCMIOcTaqiZpSPVASj GP6tocgM47l2xHrVCQQqiK/MTHrDA5T+LYpoDWAI0BsZl0g8S0RhKUYisUaMg+gHIRoh fj5FfQWd9lWOJavpm1HwHqzkV/qvIc4dx4JwWfSKad48htqu8bgvLXCmcGuDC6YYvV+x fJCQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=jdRW6CZXdjoBm/DDrco5bMAtUsc/9aYULNS52tbeTmA=; b=AJh8umGzDg2rSG+C0L2k+SfTlHr/qeHNUkkxGRvw2WWkcLsQPU+gUzoz8Jq4Cq+KiA gjh5jHTG3ejBhqiTd6AVy4MoP9fNpdDA4/wgpaHlQpD2tCqdfvhQ2xxawzfyRTtjSc7r JtK2tA2s3BAVYGeDxwaSVM87+hLbsAcpnuyoA5KAeeqic7UMbNQF+RlKlJlJhwpXrflf NwQyPO6PQFATPVCb89JLhhyde7oQy8z2wAORNDsKO5xoJDojLwkfMmlZbt0kJkahxlw+ WQearO9XJSrnUuwufwX+MDEUkvzZk8yfGxjpulgtULXfptp/Kcn035GPKKXW4W7Wa8c3 EpwA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Fk3DTqyr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com 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:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=jdRW6CZXdjoBm/DDrco5bMAtUsc/9aYULNS52tbeTmA=; b=YiqFveSmQVWpoNo0OFz/cmMD/hxtt6afbdDRaijmNh9D1tIuZbUlzTqN/a75Lu/5gh IOHLbPDMV64cdooE9jqGHFvOR9y8bDcWaoMbb5bAlSQB+ukI5m5AFYDdTCiPfq44S0Zo r9/FU74YX7qfLNuFpGOLlDr/i78ASYR33UCmw= 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:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=jdRW6CZXdjoBm/DDrco5bMAtUsc/9aYULNS52tbeTmA=; b=GMIKY997ssiFHBSjTS08XJKMQp77QRnBpEy811LwteCPLYV43sMsvZznbHB1n8qgze 45rkFa6pH6FTjqoDj7hpK3uzY2AQA1fSQfvPe24+rNIE/WR+4ml6JNucLOYWHNjfME4M KBYj/0Ht2P3nvchvI0BU3F6NMb/0pkSzkAXsv5J3tI6D8XXVIGVQkO8OJIuM/vHfOFED wRFGCO8LsgTJUHqi66kdppzjV3w3s8VNMOSqlGPmygYlxYjoGkwS2hLnhTGsclRNnf5W vk8VHVRZWszjDHFk3r8zCfBDpZPwpObP6Fc5FvODvKlpEftrbXy5gZJdYCdyMDRQJ+tV dUKg== X-Gm-Message-State: APjAAAXS6PKSJrOufuszLBDJ4wPafD1qLEnzItnTjRhQZ4qo13IWhw7R vgVUUpEvJjfwGaWL3y7aPpWYROC8 X-Google-Smtp-Source: APXvYqy/FrtkyGH2gzfbau/L4cX5TWhBEj1duZGLmD08esBYdjO4YXGIhv96QhsWXziVNPwDFF4jNA== X-Received: by 2002:a63:1c10:: with SMTP id c16mr48037982pgc.442.1558343244805; Mon, 20 May 2019 02:07:24 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:7106:: with SMTP id m6ls4113244pgc.0.gmail; Mon, 20 May 2019 02:07:24 -0700 (PDT) X-Received: by 2002:aa7:9a99:: with SMTP id w25mr39678650pfi.249.1558343244379; Mon, 20 May 2019 02:07:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343244; cv=none; d=google.com; s=arc-20160816; b=p/TXfYfGXjYm+iS411JTEeaDiobC7ksf/Hop89LUgIYWY7/dhqcIkkSfDCMsa7c0bO aDfChKIjftvkLJ9yveey1MWk4dr7S+GG52CompXJn+jNqPGK2e+5mHsDd3D5LYxId2yt xWr2PYWGRiC39ITC+79MH3j6i9pgLjTfwCVrG2fb5zzaAGcJo3+qwpamha3QZCKS6S2B OG0k6GfhsCckJELjJstQNgoWcmrpRhRjxrV1OgK8BtxlBUCCOVmvW4lnVIZXPkqmY8q3 2i5dt+6sXUayHkcgI33iycVcj4YpjD48mUugmImpPYJ9rpxafz+Zpc5Pceyy673ndCkC ySGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=axjwgmFLRM1+L1ustb875bbTzYApAFo/Jx5LqGuNXAY=; b=XlLz5eF2BIkn2YHswJihAn2bIcEvIpGmJicDku9OtGV9YEfPj8Z4f5hvInNroQFcWF i8P8ogqNW0/s0WSBUf4vkW/bZ744N+guz4xel83fLr2Va9lNdLJX99bkIZlFZdMTLyJ8 Eci05QVXOIeiArLGbJC/ASWeEgWO5UhPLNNR4XvcqKYMpg+A6cJoAVMlUULhRABQ1ARD dzyjeM9rUPmdH7vgwV1F6Mo12jN9irXhEimzGzRdCRcEs8BDD2R+CW97f0kXQdyWAhsu 3dOQHvpe+rp7rcM6WnmGdDU1xtqRtPHQ+ayUvyJWv9lSfnkIBUtPqPEBYtgd2ptZ0rwb NBQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Fk3DTqyr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id 69sor18495785pfb.0.2019.05.20.02.07.24 for (Google Transport Security); Mon, 20 May 2019 02:07:24 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; 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 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Fk3DTqyr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , 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)