From patchwork Mon May 20 09:03:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 418 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id B199C3F36B for ; Mon, 20 May 2019 11:07:19 +0200 (CEST) Received: by mail-pf1-f199.google.com with SMTP id f1sf9563182pfb.0 for ; Mon, 20 May 2019 02:07:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343238; cv=pass; d=google.com; s=arc-20160816; b=gy7cTwcG7lk/Na5nGTAEaqHpfN/2t4QWvd20gkbdBahxB3Cuzb0xM/HL10FXKBIQqy AJAersmvVp7ObItVJLWNNw5ZCBmyuNeZwv50uQKriH1Af4NddU4fZJdctVR4IQtMI7vg OpeO5yJT/WU4tAnAyMQ0R6TAQQREMtnJVxO4Eu3lCko+GJ9KVJOcXLzuKNBNziQ2g1SQ DydSvJXKvIzkByJA1T71I+HQug6/rkKJ2gRQGb2ZjqKH/rvj94p8HA6ENhTRVqeEgaLX C2hbW4079LjxC2aGHLVMdTC9NcOkP7tEWQMpj/jP6V3m+De84skQjOj/+xg1xAJ8XYUL 2ULQ== 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=r1tyu9pxAoBbi8VR2AG7BH4EBr7G2bl4TyUGbJx6ivA=; b=I6npsGykJOl4X6VIIlUDSPub5xj2cDgJVTqpyrqoPAWei5yJKLOng6BxWZ/Yf9NYNc aJWWqA6Sc/otYO74g9s7KAl1GpMcqd97YoAJgNe2o8KEPjOTcZlp0njfCnc7p1szumVD IonlDP2HwpySlrPxIWvO5SwqKK71uRmCNX+SFioCb/bzIkOXFj702iEYFn2zpnyNOH1f +6SDEJZOWVIKVii+LVtLAefQLOXcH+4NK3xRb7t6ZR/NsFmD3Q49/Usaqt85DQbA9jrR LNBVUvqlnkCDFp7a0Ei5pzRwWLChYBgiT4K/jVbsmmRWD4Etl/HkdyMB3SpaewFtFcfP +XaA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=WCUUST4d; 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=r1tyu9pxAoBbi8VR2AG7BH4EBr7G2bl4TyUGbJx6ivA=; b=DUFT3DYS9+KKlb5aC7bKEL0f+naZUjfvQwEzvDyZ3LvQckQ0aJLqF7CGhiDT2iNMat vrzXCBJJT8aCk4lG8tvq3WBEZoQgVsKPXdsAAo+A76gCVu1Kyt9AVB/S5L4OWMa9Tiwg WW5au9+5SICOfz3gIalSIOVKy7fxFSigiryuY= 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=r1tyu9pxAoBbi8VR2AG7BH4EBr7G2bl4TyUGbJx6ivA=; b=UrqrJHfVPSbBaFFpVh6YooPuV6w1ReuLsk3vVHX33u2WkVuSaM43eipE+jyJBxVKbY IrWNUfAVkw0J2j1zjChBnkfgXu0As2Go+w3toMt3zdS+/Y5cp2pmhsG7265oouWont4y W7vexQCXa68hCKFKuZEXR42niaTOtzANv/mFxcxUoFQOwORVf6aNTgp11FZYGUaAlaNG SgH4jjoy/wufsN7hmyA/yKk1KACxoFKWqMG4INTw7Yb+bDNz9DYLwYSTO2hOZ5uU+4Fv nQ9HHEGpovTK3kkTmxLeth3oUrdRIgqrzroRujb/1pId7FkElGRP1+jdGt+EmZfYQQ9X 5ojQ== X-Gm-Message-State: APjAAAXUUJ2oQ0uEzduYfg6X7esGQgZYESiVPJcWxbnkWAxC0f7H/Bry kEZCG6iKmn3vf2oFHiDnPpVz8OVF X-Google-Smtp-Source: APXvYqw0nOyBJwABt2wue8J+YsUhQtBlCbIQhEguc385nKo8de/EZDp+AB4qTm3RXd0zCglbajzeIw== X-Received: by 2002:a17:902:3fa5:: with SMTP id a34mr47112939pld.297.1558343238218; Mon, 20 May 2019 02:07:18 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:aa7:8085:: with SMTP id v5ls5084001pff.5.gmail; Mon, 20 May 2019 02:07:17 -0700 (PDT) X-Received: by 2002:a63:295:: with SMTP id 143mr73964686pgc.279.1558343237830; Mon, 20 May 2019 02:07:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343237; cv=none; d=google.com; s=arc-20160816; b=jDTErnJ4Ds7fxtteIYM5H5Chn8pCcBt/AuUnw7YoJhfHPI3qtfvfc9jzavHahCBYRp gySb19LMxvlw3FXNs5ZKzm2gWC2yO2SSfUXFMdJ42ssvs+o8b4QR9vyFvxKBXNykkFNL vxs3XHvJdnE4JVeCNUwhPwcX6w3mWKzE4qGjpR7Xph3klU6NR2/jFj9qXF5lA2JzceIq AuJ7sNgtDjEDAckhGV197yobKn4SCFf/e9bvLpE6dIGwj6vKAPVW0XTA0R58HecJ3N5t qjQ5KblRJXFSoDCPiR+WwnQ3cGH4+mOubwL9MdYUnyPcvQFXyI0OkA4mIAVjOxpOsY5L irnQ== 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=f8TMcXIdAGJzNv/R9JRXO6fjRcOJSJIXQUyqy5meT6c=; b=XPqKpT0kHEYjpJkwsOGNyUcYlJScc/hobmwHhvWCH10wPfEPr91DmfH2gz6Hai1QeB 479deAl9U6Kh6nnWHv02Xc7lWq+TbdWp4NT/daJYRWaolotY5B3MLFNBxsCiAtvrUvJZ MP0+bL4WWvhWDeM5Eirs1m7BkwVu7pkxYLaj0Mz5FFehWfLomml30wk5hJaK7ETyPsuL 2q2nl/fp3OXE8oq3SSAVtU86xnUagDd6Jij5gI+KLd76Ol2AYc5WRBKJShDn/sYjUQEl cvhfTl30+9l4qMCDVyu+Di6CtkNl/ig0SFvp64XQrfP8BJGuXx4Mv6G8+kQDCAeU8mRA Jc6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=WCUUST4d; 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 f85sor18363427pfh.10.2019.05.20.02.07.17 for (Google Transport Security); Mon, 20 May 2019 02:07:17 -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:aa7:93c6:: with SMTP id y6mr25628819pff.0.1558343237216; Mon, 20 May 2019 02:07:17 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:16 -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 01/11] drm/sun4i: dsi: Fix TCON DRQ set bits Date: Mon, 20 May 2019 14:33:08 +0530 Message-Id: <20190520090318.27570-2-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=WCUUST4d; 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: , 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 Which is mode->hsync_start - mode->hdisplay as per "DRM kernel-internal display mode structure" in include/drm/drm_modes.h So, This patch update the DRQ set bits to use front porch value. [3] https://github.com/BPI-SINOVOIP/BPI-M64-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/de_dsi.c#L774 [2] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L2031 [1] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/lowlevel_sun8iw5/de_dsi.c#L851 Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index a9ed87956f6d..c5bec0096b7c 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -436,9 +436,9 @@ static void sun6i_dsi_setup_burst(struct sun6i_dsi *dsi, SUN6I_DSI_BURST_LINE_SYNC_POINT(SUN6I_DSI_SYNC_POINT)); val = SUN6I_DSI_TCON_DRQ_ENABLE_MODE; - } else if ((mode->hsync_end - mode->hdisplay) > 20) { + } else if ((mode->hsync_start - mode->hdisplay) > 20) { /* Maaaaaagic */ - u16 drq = (mode->hsync_end - mode->hdisplay) - 20; + u16 drq = (mode->hsync_start - mode->hdisplay) - 20; drq *= mipi_dsi_pixel_format_to_bpp(device->format); drq /= 32; 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) From patchwork Mon May 20 09:03:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 420 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 29AA43F36B for ; Mon, 20 May 2019 11:07:31 +0200 (CEST) Received: by mail-pl1-f197.google.com with SMTP id s19sf8794135plp.6 for ; Mon, 20 May 2019 02:07:31 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343250; cv=pass; d=google.com; s=arc-20160816; b=wE3sqADdXLqrVm8aVCN6a1P61JrYc5lT1HyQy//gjzS7WbsZPXoMJeLIkW6fsg+YyD 1LoYJgiVS3hAWXmI4eB6BjbkF/uOWvHvfG6Wkvq0GIDqsRn+RBkpwSD8KBbx6xg9kGyO uE7uFJTHE13fqnxQm4iahx1GcOvdQ9paHxyT8+L6QFPAgwgy4xMAI3SGmQ7++MinO/wA 8YysIyRN0Br9z72dyuNVriAY2jqb+jrSzXSiejBKTqB2ANhvM1gpKabRpMukOz1Kmq29 ClztH67TQrHYkMvZpz0thD+FMui5RMU2wvNvPOqb6+kRgHWax2b6Hu7ZXrTZMbWWxozs KvaA== 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=BAd2LjBuJIkqJT2jMtg5t8mF07sRV3ncKBKOXKbqH/s=; b=feDhURdaEFhavYFJTyp5qR5hcj8PcI3zQLcSGBlxanX7DhTjZvbekjG8EEhymXrJNl g+jKIDzfwiONDaEzB388noh/ByZ6GsRCMPvemwXIonqvZ9vsW5u/u1hZO3UTU4uH9bqF eqPl8ij0+LZ1jIVuMyv6IFmY7ReBlXB7TAFErC2XQNUlTT81W/PNjn8yY1UCKSaSpjzy jnAIZGiUnXQljQf1ra6ORTrS/QzPbhJRhJ1cwcTLL+xCFUvXjjTx6vF4yOomdzSUezWp roJn2F6Kq+3q/X+zUl2xLzF4+QCiYuIVGmaYlfjkc9YbEzYm7Gr050Xf1ShfKvRjKHSo roNQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=KGiXud+0; 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=BAd2LjBuJIkqJT2jMtg5t8mF07sRV3ncKBKOXKbqH/s=; b=Vp/aXAPBkonAUPmKL2Z4Yo9KF8Q4SmZvPJoa9OOcFOdwzEASiqyCD71brQzzZcGCOd 6IFr+03FWtv1Sb2JxT6saOD5+nfrG+W1qgyRQpEQQB64DGp2l6tEXlfv7Uhx/KD8HVBD MJG/yoJo6vYX+OpGPBZiykPA+FCBo8swQ6onA= 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=BAd2LjBuJIkqJT2jMtg5t8mF07sRV3ncKBKOXKbqH/s=; b=Tal/t7briiyossy03mR0u+Ob0IIyQMkkWdBlM57XeUMamuz4w/sdWXeNkjyPNF8LEM ISqjmZ77jgGLhAtko54LEey+zbq/qByqKrxJnfRX/0VFvSPQtS+b2KhKu/m5MtJjIvDb xxH2oyQn37kzjkGQ85tFvEaNvoMQliNwH9ZN9MG32z/AvQYMtFmbaFKpnaKluY+sehzv irFVXvYBk3WN21Cwj8AGxohpb3artkClb6CBNTqHhpTIpUHc+AFunUvmGPwgC65G9R1k rQbLlaaCN+Hty9CrZBFzsBHPP80PeAshYSVU5KyHBv5mT1YoCDU08jeNJUZ1RXp+xzLh zZRw== X-Gm-Message-State: APjAAAUiNTZbIl+cHkxkWJaIiBrstP4C37r3G8/736ZtdwtGJoGW9cTT 3GLVksqu72YIOtlDuWHMc0M97n44 X-Google-Smtp-Source: APXvYqzyvwo4s6ZmW/l80/J4u3cCMLMig4H/GiunymWoNBssO/i/r/9neN07u+MfMv7y9TCupIP7xg== X-Received: by 2002:a62:3605:: with SMTP id d5mr58159141pfa.28.1558343249914; Mon, 20 May 2019 02:07:29 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:902:505:: with SMTP id 5ls4349201plf.5.gmail; Mon, 20 May 2019 02:07:29 -0700 (PDT) X-Received: by 2002:a17:902:2869:: with SMTP id e96mr51179377plb.150.1558343249548; Mon, 20 May 2019 02:07:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343249; cv=none; d=google.com; s=arc-20160816; b=d1etBRiP6FdGjQ7ww7UAQeGGdcvHhjV5l4ih/2L/zp3XhVd0NZG6iV+fGWbll0iJJH O0D0D4bOl9vzzY4qxXsiSvpCoYq0BHm5d81Mmk1w+QrGq4+2XYtN5fJGfa/HSdaDxB4W oTx7f3FO90k5gdz5yXHWOtxE42quwQe92U5Rp+2jOjCLem3zrhr5HwFsb26WqM5if5ab 2vgP0/r335ALbqqKS9cftT31yvxqDfnr8BO/s2KDVPPvsGSO4Rnpixj+rmld9wey3HN5 SdkdEcR+16evdBpGgzKB2GV5blEPjN+vGZa+y/df+V8mEu6rSuxp4JC/KJj2tW8BOkVu TWiQ== 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=kYczVIziVgtoXaMdiCSJdvyko6PsZTz3vls3yir8pOc=; b=B2dYBGlaDFE3G8GdzeHMebRCvtP4kKtZBaF4XvXbUwotKBHhrvtFWLssMO5GcHBkjk QwroJp6mj0qHwLb0TGQwJfvtbiP6Gbeg6ZsAjL/3YnAhbhUFXlruFmTy+aYD44JTeipc G/kQ6L1vVnx9ZBXS0D54zsoZQwZ7dAapOl8GAIE7uApFIon9oVtZF7RTSe5zY02at9rN Y1zLXV4pGhYtW815wtdvz6I7waTrRlIsnji53woQVcfEaYqvjlv6p3Apr+78nFZ/5Z46 9WNL3kOKSy9HiFRn3CrWm4059LxpbF/0KkJqzdLJIPHuN6857gq3XTZlI+PYgjFQqUx/ 7WMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=KGiXud+0; 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 78sor17159511pgb.30.2019.05.20.02.07.29 for (Google Transport Security); Mon, 20 May 2019 02:07:29 -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:a65:6449:: with SMTP id s9mr72257102pgv.90.1558343249223; Mon, 20 May 2019 02:07:29 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:28 -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 03/11] drm/sun4i: dsi: Fix video start delay computation Date: Mon, 20 May 2019 14:33:10 +0530 Message-Id: <20190520090318.27570-4-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=KGiXud+0; 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: , The current code is computing vertical video start delay as delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + start; On which the second parameter mode->vsync_end - mode->vdisplay = front porch + sync timings according to "DRM kernel-internal display mode structure" in include/drm/drm_modes.h With adding additional sync timings, the desired video start delay value as 510 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 Not tainted 5.1.0-next-20190514-00029-g09e5b0ed0a58 #18 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 495200a78b24980e ]--- 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 the expected video start delay value is 513 which states that the second parameter on the computation is "front porch" value (no sync timings included). This is clearly confirmed from the legacy [1] and new [2] bsp codes that the second parameter on the video start delay is "front porch" Here is the detailed evidence for calculating front porch as per bsp code. vfp = panel->lcd_vt - panel->lcd_y - panel->lcd_vbp => (panel->lcd_vt) - panel->lcd_y - panel->lcd_vbp => (tt->ver_front_porch + lcdp->panel_info.lcd_vbp + lcdp->panel_info.lcd_y) - panel->lcd_y - panel->lcd_vbp => tt->ver_front_porch Which is mode->vsync_start - mode->vdisplay according to "DRM kernel-internal display mode structure" in include/drm/drm_modes.h This patch fix this by updating the video start delay to use front porch value. [2] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L2051 [1] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/lowlevel_sun8iw5/de_dsi.c#L803 Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index b3ca85410b2c..47d571d97600 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -375,7 +375,7 @@ static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi, * working in all supported panels as of now. */ u8 start = 1; - u16 delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + start; + u16 delay = mode->vtotal - (mode->vsync_start - mode->vdisplay) + start; if (delay > mode->vtotal) delay = delay % mode->vtotal; From patchwork Mon May 20 09:03:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 421 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 756D23F36B for ; Mon, 20 May 2019 11:07:36 +0200 (CEST) Received: by mail-pf1-f198.google.com with SMTP id d9sf9550686pfo.13 for ; Mon, 20 May 2019 02:07:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343255; cv=pass; d=google.com; s=arc-20160816; b=gQpjipQ3yNqn6FBPt4I5gYTBRi+CRQi8ECTq6ITs46ZmzR0FoUHWUNiwtY4bp0xmGB SVOESSV4G36kJTxL7D4VwKJjSY7xKXwZDpL/rQXxxI9vxRg2ixd3Cl4swoFMIZGgBYkp Fe5WN7UWhieF5LhLIliTXJgy0rfbe8ImGUZLvzjfBCujujQ1nFWhZQ/cvByZ/4jBE3ua M1JZIY+zWFM/LcUula5K5Zej+gCc0k6kR+T6nEnuMJbbiYmdyrgbvGEX60LfQh4BjB7F y+BcZrGlqz6ZQfMcPsBOxxLpVYgYrKkZojQMzLB+KmuvBOB6djZwAV6ajHQ3J4n84VVD gysw== 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=6f3zsfYGNcZry/ZL5v94cb42mjcyYvpaQKyTmFV5yBI=; b=bkMYJnRmtkuO/OhT/1yqN3IOAarC90ajYdZ0joWCRKC0sjvxgV8ybKZrzJGq/y8xzb uhdijDmdpCURXfGcGVIoFjEJb0xeS6iQTtCBR0izzqZ9RHvkGoud0uzdR5Dv47x5HD65 fe04dGWWa+zsBTHw0p1H7i9c9CpRGEGCQ7tDijgGtjTDJpmgv7qhUOWRh+dMrIVQaPvm azvmFjLzWe1bbmjepbwscdym6lHT4oaRnZ2PHs7Hjw7mxciCkL8GyBZbo/v5SHluhjM8 fVyE9YNZe+cYe9Y0QII/3YgYaIEl916InfQR1gHIC8VpLqzSsFpsFtaIssgZCddLjrKZ 8H7Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=r3DLdZVq; 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=6f3zsfYGNcZry/ZL5v94cb42mjcyYvpaQKyTmFV5yBI=; b=MLFFKXPhEJFBF9u23dVdHclMgjWhwFIaeOJYz6+V3O7m6SoTKbsZ4O0/pBtC9VxYpB +sHFp/I2X3Y8+b90n2lQh0GD68iGdrzkTWcQDM2qHsRWbfLuPMNvA4CB9fd2bljhBw8J /ygM0pUlr+3SwjkCSAHn9MMgS62K2XUSteYh8= 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=6f3zsfYGNcZry/ZL5v94cb42mjcyYvpaQKyTmFV5yBI=; b=WyDi5dqRBdCOAx2A2q3ao57KH8QN90/2TBnofd8952u63YWqE+9GwlZDfd8n3JsPYH 75UVaCEUin0hfWqSMGdDkvjAbaSdna74XykuBQoTsoRiX1xcbrvfobhxYBOdYhUNx8nb CrhJW+Uw7enEbZnwnDx/0QtkSDJxRLQ22dLCvFFk8DzN6goNMOp5xyml3p3ve6f0mfUm hQY0qqi58M9uCW3DUShMfpHqajIG6GdanYODvyefy7o74Mbb5E0N5spcq8BULhIM+6Se CXbFujnvHMOk9iU1hUm8rGFIKSZp9XWxWqnMlaTgaqlPdnzED7JbQCVPQ2+T/ryzEtul A3cw== X-Gm-Message-State: APjAAAV+QiAS7ZWZ2A50muoq5Tw9YP9MZKqm4FZfV+KZPgHPETiYK/dC a7+Cqge1aQqUHH1BWYSmlcmEfzCy X-Google-Smtp-Source: APXvYqzWoFtLBSumDo6V/KY7ZI2X2H1i88ABNnE1O1ZZcqFlNcSbVptJOh+bj1UJLxZq7uz9+Sww3Q== X-Received: by 2002:a65:4105:: with SMTP id w5mr74589662pgp.260.1558343255252; Mon, 20 May 2019 02:07:35 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:902:8d84:: with SMTP id v4ls4348365plo.4.gmail; Mon, 20 May 2019 02:07:35 -0700 (PDT) X-Received: by 2002:a17:902:2bc9:: with SMTP id l67mr38928319plb.171.1558343254858; Mon, 20 May 2019 02:07:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343254; cv=none; d=google.com; s=arc-20160816; b=qJO3nEHGacVA2Ket/xfKb1QUE1p/09fANaqa5W0yD0j0zy1fHohXMFjFhwYSLTaziC fK6UKdfwKG5LyaO9zgT3t/Q9tHYPknl0jIFsjxpZtacxET4HomFsrVJpaU/zeB91X26v fObMGfaYGIxdpNyyld0u3z6PteIdvi/tEaApzoI902l/E3gBx9NqRTjQrFqGR+Zc33IX +lokctKL/fRvpqpm2Nqi/6rHzRF1gbR7GTMWmmc5PiWQxh98lHZCqTxY3gAPEK+z6k5H Ds9uv9YIiYgpBAQ4txfsuC55shh4frGoZxl8/xGf5mBHokbr/WI+xlMZKDqn3vP+Oovf 3Yng== 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=7Z3x6LljX02dT+qUsi4m5KdJMqoZuShmgkReRd7s7dw=; b=Z2PvzLXym5bEbfIbEmJlH8Ib/DN7Bv0AKOtZENtQr1Chj6fanlbB5jX1g1SKagjaLe O+mw9lTBs9JI4bTUDPVxzTWuLqP5Xz2aW77JIrGY64EK0MYb3nwq3b+Kfvupg4HDxhWx e6ZFkJ7eEMKeCrOy4yCaYMjuupbqkL+wOk6UcmL+Q09xfIJnrRBW0+gMT+WlneEZfGDi rJaqp63/FcdJdPIgdlM7aC5Xn6NDSihuhKbardAwZeZxTkOTOmXoUwi5M/1Iwkt3U96M 5ym9RdIUQ7wGXAR73DqKfMfdueja41t9okuTGxJVlqRl7kN/RcI4G1qUAmRz+4WnV4ly EnLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=r3DLdZVq; 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 w4sor18597936pfi.67.2019.05.20.02.07.34 for (Google Transport Security); Mon, 20 May 2019 02:07:34 -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:62c1:: with SMTP id w184mr77662542pfb.95.1558343254514; Mon, 20 May 2019 02:07:34 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:34 -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 04/11] drm/sun4i: tcon: Compute DCLK dividers based on format, lanes Date: Mon, 20 May 2019 14:33:11 +0530 Message-Id: <20190520090318.27570-5-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=r3DLdZVq; 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: , pll-video => pll-mipi => tcon0 => tcon0-pixel-clock is the typical MIPI clock topology in Allwinner DSI controller. TCON dotclock driver is computing the desired DCLK divider based on panel pixel clock along with input DCLK min, max divider values from tcon driver and that would eventually set the pll-mipi clock rate. The current code is passing dsi min and max divider value as 4 via tcon driver which would ended-up triggering below vblank wait timed out warning on "bananapi,s070wv20-ct16" panel. 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-00025-g5186cdf10757-dirty #6 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 4017fea4906ab391 ]--- But accordingly to Allwinner A33, A64 BSP codes [1] [2] this divider is clearly using 'format/lanes' for dsi divider value, dsi_clk.clk_div Which would compute the pll_freq and set a clock rate for it in [3] and [4] respectively. The same issue has reproduced in A33, A64 with 4-lane and 2-lane devices and got fixed with this computation logic 'format/lanes', so this patch using dclk min and max dividers as per BSP. [1] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L1106 [2] https://github.com/BPI-SINOVOIP/BPI-M64-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/disp_al.c#L213 [3] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L1127 [4] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/video/sunxi/disp/de/disp_lcd.c#L1161 Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 9d8d8124b1f6..8f93121fead4 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -341,8 +341,8 @@ static void sun4i_tcon0_mode_set_cpu(struct sun4i_tcon *tcon, u32 block_space, start_delay; u32 tcon_div; - tcon->dclk_min_div = SUN6I_DSI_TCON_DIV; - tcon->dclk_max_div = SUN6I_DSI_TCON_DIV; + tcon->dclk_min_div = bpp/lanes; + tcon->dclk_max_div = bpp/lanes; sun4i_tcon0_mode_set_common(tcon, mode); From patchwork Mon May 20 09:03:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 422 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id A31BC3F36B for ; Mon, 20 May 2019 11:07:41 +0200 (CEST) Received: by mail-pl1-f199.google.com with SMTP id 94sf8790550plc.19 for ; Mon, 20 May 2019 02:07:41 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343260; cv=pass; d=google.com; s=arc-20160816; b=L/DPPyE/QsA5IRXarbpWrP1RP3H0qFvGBN+JwrRlJUkYOerB0090n22gO4haB6+uBI D+wyAoIhl5lb6BE30fwbo2BHmR5uzWPLyXFrGyhtSklowHMIITKR7awxskpfzD6n5pA9 erjrYOij44stUJYOe8d4ZmQY2UkLUH72k3kZF3KRNt6SG/9xhwT+0/wORUSL8hjRXtFP JwUQMd2g8tzGtR1Ii+oxLIsUM9ixcWO+4joEHPlIuAyNZQV/gncS+gOvEk1mIYw4MV2h TtMAYZBLc6syCdkAgmHokKvDBSQPpbuOXqMvWB74j3dBZQvRucUZU+Vm3W/xliq2e0dn KxGg== 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=6Cbnc+Gas+mxw4wb0a55B5CSmcehztrL4TzLftyw0cA=; b=uLr6tBMzQ9tdz6nXAjtUC2jtJivzcrcDBlOF4cQvvxofqMMifeNHwHJcohpehSFnUh ggSeSCnJDcE/EyexEikOmhQggWnV/E8D2Hxa5wYO+mbEpVWW9u6Snqozc9BOiQaLwEy0 MVJ42BQkkSE3wfTAx+eOcEWK0WyFgM5b0g5SNVrEv/xgbHLT/lspSaRuk/o1aKzksTmr vRxiW1KD9cK35eta1d8KJF+7hAO0NG/ti95gWDFFrT9TfhUCPceLyEfPEV43tnVVdFVj h61RyiTN6c3giBcFRNRLEs2WaGmSR5dTU/z4IHYREa8Y3G8l4oJitGsZ5MxuHVKzTnMk KdYQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=DZf0IHTg; 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=6Cbnc+Gas+mxw4wb0a55B5CSmcehztrL4TzLftyw0cA=; b=EOwAWRDwqMIYBlki4Jua5ermzjZfyV63mkEskJUzOJCzAC/tukdPGVYczLUzSH6Xah LEIezU7DtXgS8S9MRD4kSUGpMS7HOMhaWfQZ5vRMMOb+hDJ9fJU/IgnXky0SjFYdc+x1 W8jFYfvn6cRyX4WC3dav5yP2RQaAmjc2HTDTQ= 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=6Cbnc+Gas+mxw4wb0a55B5CSmcehztrL4TzLftyw0cA=; b=fgYn/gprstwbbuxzECMwwvsQj/RmOoR/0IW8UVKiHNNL1gyVjCbBJG/vTWE9UV1Ghe KpMzVfLCjQJYauxWebmfE2MT5lXbOVcu/fpNWZhN/WOWLy1iICinyTQXN1A63EUCGr+P wSiKwygCUyfF7wjPx52xRmzA5R5PjPnz+KsmBge5bkKJjTGDXD/oAdO0Ay7M+DVqNMpI 07XHPdRyn4XWSaLqan+XFJweuqph9X7pWQYX4Av9KUsl2vDRDGu9VYv1kx2VALc/MWl4 +87ss3ZMGRM7WymajrU+lfxiem5rj392Gs+4VHYWHVCFCls6UivqyK5A+DphJKmVLe2K V+1A== X-Gm-Message-State: APjAAAX+KbFsVObgKmPxEAQ8Bo7/olOWAG269UsHV/I93bd+fytcnD7W LBOMqFCl2AZiCWjB8mjfVmtDDbh1 X-Google-Smtp-Source: APXvYqx60ii2IKqEVwQW1P6Mo8TrgbZ0IHnn+LZ/FiKvwlyRonjag4kgHLH8qU5K4tFq1b1+DVF77w== X-Received: by 2002:a63:2d0:: with SMTP id 199mr17002274pgc.188.1558343260504; Mon, 20 May 2019 02:07:40 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a62:474c:: with SMTP id u73ls5087183pfa.4.gmail; Mon, 20 May 2019 02:07:40 -0700 (PDT) X-Received: by 2002:a62:65c1:: with SMTP id z184mr59993196pfb.130.1558343260122; Mon, 20 May 2019 02:07:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343260; cv=none; d=google.com; s=arc-20160816; b=b0y9wSO35AUvkA3ZSDhr8aFj7xB3WmEZMHFhBQ/3jFWUQhJ7AMetZk8zg4FiHhdPWr xhjnDubULYoQTijrJCORgjPiKcDh2vdPs9CXFR4NRsLXR2DqYIPNdWhaBoELhEK4KfyW Uq5RencPJ+bqzPF+tagfRoU3r1hxU6LCfQ5olHEQa9pKu9SEd/8gJZiXu20WLbNm14JS zmR6+nUb95TbZHu714789HFf3QaX39xUyNgDKBe5ZJM3jgDG5gPjL7k52Y0MiF2ndD0E Fsq4CGi27eD/fsAwMVQQsPPOYgsfdi5w587Jzypep+bNbiufbkuZmO/26dnCSFYklZWG mIWA== 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=v9fCm6pJfwNnZtBLiOWDCiXX9M7MmpxMOv/deygL7hU=; b=qpkP9lFWS1miLpQWmpSOzofGFIMo28elEwteBhkunGtCweV5mMz/3F4uYIiAvRufzT wUSVMvZq/oxuAmx1yOu3bH5dQfJsibiG62a49Ymx5XTaMWGe1DiMaHvFHKzfD949FC4X fSGAxBvIXUnebCkeBy6aSYCinqj0gAeVmfaRHil03Kof6p4s+l6JdYBHe9bTcyIV1BLp xT6z5aVpO06gvjCvK3CocXcSP4GkIqFGWDMBxuIgTcmm5NhyBZa7YJ+ES5V3zYePpkvW ddwX26n/kHeYT1e86DEjfYoqeb8WAqTghBi6Bm+aIyBoLxow9HC2VDbX/1zOLyLsMC9I LfXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=DZf0IHTg; 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 a37sor789989pga.23.2019.05.20.02.07.40 for (Google Transport Security); Mon, 20 May 2019 02:07:40 -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:a63:ee0b:: with SMTP id e11mr21644801pgi.453.1558343259840; Mon, 20 May 2019 02:07:39 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:39 -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 05/11] drm/sun4i: tcon: Export get tcon0 routine Date: Mon, 20 May 2019 14:33:12 +0530 Message-Id: <20190520090318.27570-6-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=DZf0IHTg; 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: , Sometimes tcon attributes like tcon divider, clock rate etc are needed in interface drivers like DSI. So for such cases interface driver must probe the respective tcon and get the attributes. Since tcon0 probe is already available, via sun4i_get_tcon0 function, export the same instead of probing tcon explicitly. Signed-off-by: Jagan Teki Tested-by: Merlijn Wajer --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 3 ++- drivers/gpu/drm/sun4i/sun4i_tcon.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 8f93121fead4..9e9d08ee8387 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -221,7 +221,7 @@ EXPORT_SYMBOL(sun4i_tcon_enable_vblank); * are located in TCON0. This helper returns a pointer to TCON0's * sun4i_tcon structure, or NULL if not found. */ -static struct sun4i_tcon *sun4i_get_tcon0(struct drm_device *drm) +struct sun4i_tcon *sun4i_get_tcon0(struct drm_device *drm) { struct sun4i_drv *drv = drm->dev_private; struct sun4i_tcon *tcon; @@ -235,6 +235,7 @@ static struct sun4i_tcon *sun4i_get_tcon0(struct drm_device *drm) return NULL; } +EXPORT_SYMBOL(sun4i_get_tcon0); static void sun4i_tcon_set_mux(struct sun4i_tcon *tcon, int channel, const struct drm_encoder *encoder) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h index 84cfb1952ff7..88e971d5f937 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.h +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h @@ -272,6 +272,7 @@ struct sun4i_tcon { struct drm_bridge *sun4i_tcon_find_bridge(struct device_node *node); struct drm_panel *sun4i_tcon_find_panel(struct device_node *node); +struct sun4i_tcon *sun4i_get_tcon0(struct drm_device *drm); void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool enable); void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, const struct drm_encoder *encoder, From patchwork Mon May 20 09:03:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 423 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id C492F3F36B for ; Mon, 20 May 2019 11:07:46 +0200 (CEST) Received: by mail-pg1-f199.google.com with SMTP id j36sf9361172pgb.20 for ; Mon, 20 May 2019 02:07:46 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343265; cv=pass; d=google.com; s=arc-20160816; b=Z4HbO1rp9lNdeU1V1U/iUUREOrf+DJ7gPpyaO+8scf1mG5sx3U8sLirjDe7VWoOCrK Tsu0503bQBaqpmwIfqzwGdqqT3V4GOYiZcIOdHjJClGFdv6+BF1LCrIZsPlV2jqb+Q57 rfG9vucgIHpqslC0ZAw0ZTEujuSkoE/Q32WDBN0J04xyB32vHKqnONakJofC/FTAPy1L ExAxjbCEByVGlPEFV+sECcLKhnHODLATa2bekfI135Jo8F5kE/H7ke1YMGVUZQBq8Y2N ZxicuU27ek3zUAFTsbR+5DHn8Kis8Vwd8KneZzoWuBcOCoqAajN6cM0Lcm5L5JxS7SyQ ivQg== 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=QhKarGDOI5o1hdMF7gpRoAI1WT5qfdYe3ugF33OJyfM=; b=T4qjdPBy/+Gzz1LZGfj6jecnoFPGSth78+wM5MPLL2/ETHhp0HJ/bUo5vM4OdQK/6O X6UCmWXJcP8tm7EvJ04vuda45qvmBoCqZhepqPRniPgHTYdb67QgK/K58lP/w3Nl1jEy 76CbsfUpYclCSfiItVCcRz0hxmCBbKY/hYGcHVXMAMdAhRjP3KY5upCoyTspg3n6Vvlc 67PzMG6r/302Bw+DHtJurz4r6D7OmZpjAp3sDm+zZhL8AGXV8n0BPB+lQgr7O4u63n0j MA1fbLe8q3A4Ia3PgSwxUzsu4gAfjN3mKQu16HTiJI3I8NwdGo8skUFG5floBjJnJlEj vpUQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=BwmX6vUw; 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=QhKarGDOI5o1hdMF7gpRoAI1WT5qfdYe3ugF33OJyfM=; b=Kf56nttHErisg2mnzxCE2xXLvayRx6+2r/SiR6hjDq6Qf/7fX0hUHL1fpNEL+pmQoX nGmRdDP65MV4m57Ut9ihsI+zY0oLnEfQ3ljhbo8yRnrM/s5OzitIfZLHFGJN7g4wF+rw D8CLnJm+fx+SLMau491BWCF1DY+UsuB5Lvmaw= 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=QhKarGDOI5o1hdMF7gpRoAI1WT5qfdYe3ugF33OJyfM=; b=AEap2kKB2Vjk0OpFIaQytAvXcjfAl5TMVVI60C0VIur8RJxvIrsfzjm1f/7Lod6QPq w3saplo/PFW//M/sFH8IVipBmcdnKDLzR82vLuzdNTbIB2oOYnOVPkb79zEncqW1lCUA hbddWcZBrhmHxVJnQ1Vk9FbMnF/uLeCfK0l7EedbLydmXGBqBWWw+wa7mLkPJPaOltgG yU1xULznAJ49hXzgWuQo7ZiMc7d6OuNZ2D6SH6BVMPTtIdiqkLbm6m5JmZmk8DnFP7LF bZ4/eBMrSKuQyWN7Bo7D66m8tg92e/Qdcb5x85k8+48j2OggVIQBQCEnIS86I89ReR1Z CGcg== X-Gm-Message-State: APjAAAXwQker2WXLZ+xeVjGhIGQcycNrOzElMoqQ7Xfmcz0sewMfAzbW bsGm382YMh2o6M4bdOpiJX/lxMVS X-Google-Smtp-Source: APXvYqynziNKjsQQGjZaSsqu5/lBYjaJD7OEfKrt6BofegyodMB5CBK75WZegaVR9I0VXzM+3mW9+g== X-Received: by 2002:a63:cc4b:: with SMTP id q11mr74968506pgi.43.1558343265634; Mon, 20 May 2019 02:07:45 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:2b0b:: with SMTP id r11ls4113402pgr.4.gmail; Mon, 20 May 2019 02:07:45 -0700 (PDT) X-Received: by 2002:a62:5306:: with SMTP id h6mr20995523pfb.29.1558343265299; Mon, 20 May 2019 02:07:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343265; cv=none; d=google.com; s=arc-20160816; b=lq7c31UGiZnzvHUARlHfhaieCzUsV2nceD7SimkWtYZ89x4w9r2BLTta3e304rUrUN kTF6Nchz3cYXvZRTJPRxKnUAc93A3/CJOAmwDOfOYeVFnnNVJVSUFT95/J6ry+cUp1LH 7D/fFjFTDz+r6uVF4/qE/c3ZEvd8aiNyR1dAvaY9YwY9b/qk9zF4Jfr2wmqbuQoYBVYk EZStbcTwJ0OrE6X6Z9bBOsNjw4EOpDM/POqzvt2JwsJq3yVwzeT1LXiP4tNCwZE80BP0 jwXVXlII8M+xjMUdvejI7jj65qCKMGGb28FPYSfAOL15a2fyHPzDjFxWgsRzsWy+FmbS Zyuw== 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=qhq8BOri8GqXtdsxg8qxzoiDzDhWP4zxzqC5ifM9GUM=; b=re5SkthAFDKrpyX6M2Y0A3pqro7Rp2/Oun4+IDvfOMfTS7+IklpnbVR5a0hORok9Oy 252CwstMoxyhkZfsNq6KSrSFAECLdffWM3GYa1bVkeTFqiUl1iumcj8nllCgcE9Dz/i9 7f4deFZU+ZTFy32uYCEaniKYvBnTVboyBwxLRRrbLD5t9DD9FwO6ZlRum7sVoQih0+id GLZNGAqSLHEBTICfQoXATGpeBREhbjsxIRfla+v+kY/pJIPYAUU0vzv44zSQ4GBODRn5 uhNEJFf5i9PMEaE1fWMUY5r8c1feUnZwY5x0M6c2kn3I0uMUiPRVrGpAxwZwPpP9nkVv aUKA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=BwmX6vUw; 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 j192sor16789419pge.47.2019.05.20.02.07.45 for (Google Transport Security); Mon, 20 May 2019 02:07:45 -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:a65:628b:: with SMTP id f11mr71262665pgv.95.1558343265015; Mon, 20 May 2019 02:07:45 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:44 -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 06/11] drm/sun4i: dsi: Probe tcon0 during dsi_bind Date: Mon, 20 May 2019 14:33:13 +0530 Message-Id: <20190520090318.27570-7-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=BwmX6vUw; 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: , Probe tcon0 during dsi_bind, so-that the tcon attributes like divider value, clock rates are available whenever it required. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 6 ++++++ drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 47d571d97600..1f9ed2642a47 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -1045,6 +1045,7 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, struct drm_device *drm = data; struct sun4i_drv *drv = drm->dev_private; struct sun6i_dsi *dsi = dev_get_drvdata(dev); + struct sun4i_tcon *tcon0 = sun4i_get_tcon0(drm); int ret; if (!(dsi->panel || dsi->bridge)) { @@ -1054,6 +1055,11 @@ static int sun6i_dsi_bind(struct device *dev, struct device *master, dsi->drv = drv; + if (!tcon0) + return -EINVAL; + + dsi->tcon = tcon0; + drm_encoder_helper_add(&dsi->encoder, &sun6i_dsi_enc_helper_funcs); ret = drm_encoder_init(drm, diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 9c140f55b822..f2826e3ea165 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -28,6 +28,7 @@ struct sun6i_dsi { struct device *dev; struct sun4i_drv *drv; + struct sun4i_tcon *tcon; struct mipi_dsi_device *device; struct drm_panel *panel; struct drm_bridge *bridge; From patchwork Mon May 20 09:03:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 424 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 804473F36B for ; Mon, 20 May 2019 11:07:51 +0200 (CEST) Received: by mail-pf1-f199.google.com with SMTP id c7sf9539302pfp.14 for ; Mon, 20 May 2019 02:07:51 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343270; cv=pass; d=google.com; s=arc-20160816; b=bvTu+N8S7T+LnY4AucyoQeE1imGraPg95ZrBPcSE4BgeOAZ+ja3mNddjPu28q4Id28 rjdJfl8UDpPjNI18TGKggEhfravgyU6kOW1weDdXSEXFy/+2VyX1k6aAqnYNqjkbz83G NSOUfhcL3zMXPR4L29zSV4MbWA5VHzEjcozDhjzUda5AJmisaUuYqvrtb7TQUmJkQLkt WP+yUp4VkTfiXqlWQq/ZUTB5HuhSb9ZE9nCSAVPt7wQ+0vjBUypFO0giS98nJd3pQDA4 XU1aEYhRUrO0kqRFnrxSWwkeQ2aAxDzD8L756BTy2hnt7Viv3rj9GslYoxCzxr7yCieL KmwA== 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=TRrA+QLSOVtxQZf8ClABpH1Nv8ibguJl94X0bMJW5Uw=; b=l+hkMAljyXmm3Ry8qycCWXVtYCWnnMv4csFiC3h6S2OUImyvQ2BvMT/VUlqMSTJdGP dH9kKkII+1AMJR2XwryCOl39N4WUs/9Sy3kb2HHCzSpRA0j3TmjAFIRdVdbYQBeefEzG ROZ3RHTaoWr2g26o0w4S8ipNqx5HGpp6D4OXmm71KcbCPh6D0YLSRjbGfR61Fg5OFuyP TmKN/SM2hh1ukFyIZ+t2kAyWicXLahsSf1xZ3Rf5qKG03S2Owc5MWDsu7VELXtBin/kz MuCF8aFYa+1wUWJaJI//lsdis11vlkcqWvHlDgT+MlHZZbkmJY2fK2GiUZxgy+XYuzr0 wolg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=izXs0xnF; 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=TRrA+QLSOVtxQZf8ClABpH1Nv8ibguJl94X0bMJW5Uw=; b=kEUmYfBqBYQGlKNsk40qG0nANYtZzGQsODAMtg8tRxsH3MmBuBNHWQkp3ASJ8J/d5O Q3G30remIYR0emvC7evcOHE1qtdPWHBVYYO9bIZHh4QYEF4TV0Dcpn1Gzswo5ylfxWW9 8EwYNqlSOfwurwfhxXovwLkblcL08IsPT/Obo= 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=TRrA+QLSOVtxQZf8ClABpH1Nv8ibguJl94X0bMJW5Uw=; b=kkATDqo5wxRZR0CFDTDyIfPkHeap8Mpq0467QTaon4T4EEUpwt1DyWwNsjKGOfRAFS ytsDrJVcdAdNtyA4KosvffOjIS77S1ZjrNW1QSEE0cVdF+Nv5BWj5BK3rtjfPmF6NLVI fVsGCfbzcCrri8nICUl9o9WiAH7i62KetCpRd/3ApHN7+61xszL63yXV0iGvvb8cc+2S 2SqwnOv+BbDFlhQD9kMObrTEjvS5EZoRNipSoZpe1ge2eQ8yEDHm0m6f5L0h0g4cHq2R nX1Din/FOAHRTh4ryvUnjV+E/Tgw5jfepHYQ7/CoYeJgQUaXLI/9IsORDV6YCPNqTlhV sBnA== X-Gm-Message-State: APjAAAX9u8RUjCHvb1eb/3IwoVhoDtbe1lrtKVjy1Ykc4gK0nqzqpe1I 1p8wj5MECGZd+BamVgy0Fe5J82iT X-Google-Smtp-Source: APXvYqwHDVJ4Kw3xedc49r3PrXK4HIEsJzLIqeXHI4wQ00OosG8p2BP+u6u2orlkXa2f5d5iFy+Qbg== X-Received: by 2002:a62:460a:: with SMTP id t10mr77655958pfa.3.1558343270363; Mon, 20 May 2019 02:07:50 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:1cc:: with SMTP id 195ls4112255pgb.2.gmail; Mon, 20 May 2019 02:07:50 -0700 (PDT) X-Received: by 2002:a65:5c4c:: with SMTP id v12mr29805182pgr.283.1558343269897; Mon, 20 May 2019 02:07:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343269; cv=none; d=google.com; s=arc-20160816; b=v9CAO/nW+iPlSvJhvXFLpJaoTb5IWdmS/PlizZxl0ELP8fYhrc29CsQBVbuadMz88B PqNFtyzeW8W9LDGMmE6ug/DwHMNm7xa0ZfxVCT9Bjds76fUSzcNJ4RKF0BE+0NS8fcGN 3y1Rxy6or9z0bdtsAB4iReIJMGd29wH8BgXfTjUZgWu1nhmt948cWgzR7GP5z5Z2g5WW ZGBy1Or7SAu7nrtvlKRrdXt0qu4xRtXKjMVR1VkLNKYbxxxpKjS2tnUi5GklC0Iq7OyO XcNKVBO8FqOBd9sFUsvN8aPa+zwKk49fW3Lx4OFS1nnBViJd2t6okUMr7cTal8W2T/Ac DO5w== 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=l8/eiiMRzRHMeJJfg+NtIFfqaA+aEUt7A5oo1QrAYME=; b=w+bTecO/gxoCX1RDocsu1fnORSaMYOFI5V06N+8Nq7Dtd7Rr+FDjyCDuz7LVC/Am3g l7UkRlyhg2qIsYxWSbtYjdHJC9vP01SlIQeS3kPpyYFBUzHGXiEDwNRv9k62HvCaB2GF nRWsbSXdLjQl3fvx6vG03PiyaajP5iypI3pVgkWD3xUsr7RxH0NRQ3xXi5oKt+YCZFKQ iNCXes6rRKpvH/ydC/mlq+cuWpu8A5NFOln4wcKvEq2RZ9V9+sax1t5z8e21kb3oLJSY LWYTbnBjyC1b/Pd0HMuPQqdFs3tnHOSqKx80xwF94+B/yxciBdu0Oxgzc9Xt+ldIhNAv iAkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=izXs0xnF; 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 y16sor18589939pfl.18.2019.05.20.02.07.49 for (Google Transport Security); Mon, 20 May 2019 02:07:49 -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:51c2:: with SMTP id f185mr18546991pfb.16.1558343269570; Mon, 20 May 2019 02:07:49 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:49 -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 07/11] drm/sun4i: dsi: Get tcon0_div at runtime Date: Mon, 20 May 2019 14:33:14 +0530 Message-Id: <20190520090318.27570-8-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=izXs0xnF; 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: , tcon0 divider is used while computing drq edge0 for burst mode devices, currently driver is using default macro value 4 via SUN6I_DSI_TCON_DIV. Unfortunately not all the panel devices are working with this default divider value 4, so to make future changes on this divider value get the divider from tcon dot clock at runtime instead of static macro value. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 8 +++++++- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 2 -- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 1f9ed2642a47..5584e9c2f8bd 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -396,9 +396,15 @@ static u16 sun6i_dsi_get_drq_edge0(struct sun6i_dsi *dsi, struct drm_display_mode *mode, u16 line_num, u16 edge1) { + struct sun4i_tcon *tcon = dsi->tcon; + unsigned long dclk_rate, dclk_parent_rate, tcon0_div; u16 edge0 = edge1; - edge0 += (mode->hdisplay + 40) * SUN6I_DSI_TCON_DIV / 8; + dclk_rate = clk_get_rate(tcon->dclk); + dclk_parent_rate = clk_get_rate(clk_get_parent(tcon->dclk)); + tcon0_div = dclk_parent_rate / dclk_rate; + + edge0 += (mode->hdisplay + 40) * tcon0_div / 8; if (edge0 > line_num) return edge0 - line_num; diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index f2826e3ea165..156523859d82 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -13,8 +13,6 @@ #include #include -#define SUN6I_DSI_TCON_DIV 4 - struct sun6i_dsi { struct drm_connector connector; struct drm_encoder encoder; From patchwork Mon May 20 09:03:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 425 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 41E903F36B for ; Mon, 20 May 2019 11:07:56 +0200 (CEST) Received: by mail-pg1-f197.google.com with SMTP id x13sf9390156pgl.10 for ; Mon, 20 May 2019 02:07:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343275; cv=pass; d=google.com; s=arc-20160816; b=R18RCmcJbOvU3L71hkPdNnDb4KbrtLl9mkHhyG64exJ6W8s4Xz1LGsDOach2KStx5/ d29DWsonmJ/1x0W1xN0LBK2Ke8l/ne5t7b4kG6mTZx9wV+nndJtluvWKj2yl6vUt5BcO 7/GRdh6QaxdVDV0+GUr+K4uJferNL3hfmq/i+Aomr81jM2ZOo+52bhoU6NuCRLvBOouB OgOVy9RfeTzPnzWGRQSdVl/kq0KeLQXK0SBJgb3CWr/9mz+kDWEqGpjJMQPP3rMqCUqI g6MOWnF22vdE5ZIRLbj+6L1EBb5YeXcjZYTunzE6M4+eFe6wodDUfWw9Kh9LrtImgJoM DXzw== 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=qrbSMAb+5anaVNwrOMKk7+o+TceRxthrXHd+39RlfX8=; b=XZ97lRlAZE2IyYtjQsOmVpaK3QUw112F+M67IV2jyNBJuv7cs5sUT90l3IRTG0I+HQ /jEoyzTPrwMfqA6eyRvf/WFyGBdAffnfNsURfv+jqWmW258rvImJYyZbX9pl+JCQxn52 e5P/SBWJA8ezVvHlsRpaa/l+4fkHnu7qm3Q1EeEY7kpqIU1InfwZ0gfoaY27xqNBfDaD bYg5lBtqX6ZFw3OklrT+2SMgX7xXxasdQqd9AoH7tiJ9nsUuR1zecrcXIoZzBia+aG3o QxKcsAGBofKxgGsIJ4ocUQCOWPn7ukv6tdxM+fEQO55CU9QDJNAabSAC5ByQnPIwR5Yw +oCg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=r7FvqZFw; 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=qrbSMAb+5anaVNwrOMKk7+o+TceRxthrXHd+39RlfX8=; b=mtZhwlzIVY5zFlQ4ufjvYnwPGQmeGyHSqz9Kd/zreGHJ5x5CKv1VUMijxuCnsEyvkh 67HP42YxDFJ8PiGYtxO+WN2nBPxFZxVNnBcIJpqcnDmgpPo7Jn3qOnz2Tzb7GIH7cE0z DaFEAJQAkJuAjQGbdn6rZwWoIX1GGxTXW8G9w= 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=qrbSMAb+5anaVNwrOMKk7+o+TceRxthrXHd+39RlfX8=; b=SFB2x6fMNlcoCaRU5hCWVP9TQMZ1P0kR1npDe5iuKDU7FlUwIS4uZvhSu70wXOZgFD pbp5g7a7MticWD04wRGykPa6K/5ujvAcxLTp7Wj9aP4gPF7AXGZT98eXYAouO9QGlYKJ /THH4Rz20N9kIkus78f1vUUu/89VT2vlWW+wnEt/QFlFeHP3PVKy34LvLlF5+UM9yLys Q4qUrMGiUO+LtJjDzuPGdvG0dM3d/7T6Aim0k9USu+9Ocn/r/gu8GBIRaUjSE+ehEpkI XfXXcyRpxImWTN4Bb1jnXyt+L5idpWHJxzWVB99wmVBeaArJi+M2WYK4gB8IsVPEPqm+ UdQg== X-Gm-Message-State: APjAAAWwrc22czTlsVE/yA+V3raXqk1PWVb5tvzQ5AsH+meZXElrPYYj HuQxRSFdqOzLrGrCNBOhZEAo6SxL X-Google-Smtp-Source: APXvYqxBsQj+65EwvcgMRvwef78Jy+6rXgpGnQCqlJ5oRH+XgtmSL+OGGk9F4hCWglSXs4wpeLZnFA== X-Received: by 2002:a62:117:: with SMTP id 23mr50176381pfb.156.1558343275067; Mon, 20 May 2019 02:07:55 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:aa7:985b:: with SMTP id n27ls5083858pfq.7.gmail; Mon, 20 May 2019 02:07:54 -0700 (PDT) X-Received: by 2002:a62:7995:: with SMTP id u143mr78878147pfc.61.1558343274702; Mon, 20 May 2019 02:07:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343274; cv=none; d=google.com; s=arc-20160816; b=uG643NQJuRIJ2UjJc7aLUvenWXMbqCIB83xz3akG00cl9Zkv7dS3NDCrAcZf74+I/Q mhnKj76Yxf20tksEgO7KwanxiFAe4+XxbCqOZvQF/ykfHrFAyY2e37B4wqcAblWLkj59 LpkW9qce/REVpFE4oH8v3Fq/q0wmRXf3B+2ArUPHAIbMAW35PN0rf2LzvP4LTp+0Enfa lWLHtKSOu8nsMkYm468N73GmTQdAebvAjU0lBZKoax/CWcylxF5/AlgdGDUx1kc3y17y AaBmY1CZvSHBWzkxuFw1E63P5MT1Bcisih1gcWhC3BvY5FAQQpyEfrbRA7dLY1qygldn XR6A== 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=RhhbywtZgL9mTL+/aS2gTie5gz+AOsOECX4GcmEvNm8=; b=mgzV1JwhH/4hX5q4XzmJ/ADEZT81guD/3hxrj9tZCkkn0tPBTi42cSH/uTk7IQcFPB UTAqBM6y+Hy5Fxsqb8EZS+P5TwKGc21UU80nhO3iFE+lLvH0+5IXFesSnvRnicZmFe60 q2nqSjITFyLEH9Fx3Jwurx4a3NQwe+2l0S8l0FneT+xMUv+GMRH/u2ydG4Tbr1HjtT3z CTHc3WpsFt908QrdRm4uR1NnE02RlzXv93P22dz37xMbbufNxziwu83Q5xy9rZ6gAy63 l0eOjPVoec8N/rH7d3bWzhkr49mIrEp4vsY+5oyx9Dg+kE/utCxUnQu8wcyPWrt0MB5m 0WGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=r7FvqZFw; 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 d12sor6999555pfm.50.2019.05.20.02.07.54 for (Google Transport Security); Mon, 20 May 2019 02:07:54 -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:a63:1150:: with SMTP id 16mr74722565pgr.40.1558343274409; Mon, 20 May 2019 02:07:54 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:53 -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 08/11] dt-bindings: sun6i-dsi: Add VCC-DSI supply property Date: Mon, 20 May 2019 14:33:15 +0530 Message-Id: <20190520090318.27570-9-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=r7FvqZFw; 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: , Allwinner MIPI DSI controllers are supplied with SoC DSI power rails via VCC-DSI pin. Some board still work without supplying this but give more faith on datasheet and hardware schematics and document this supply property in required property list. Reviewed-by: Rob Herring Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- Documentation/devicetree/bindings/display/sunxi/sun6i-dsi.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/display/sunxi/sun6i-dsi.txt b/Documentation/devicetree/bindings/display/sunxi/sun6i-dsi.txt index 6a6cf5de08b0..1cc40663b7a2 100644 --- a/Documentation/devicetree/bindings/display/sunxi/sun6i-dsi.txt +++ b/Documentation/devicetree/bindings/display/sunxi/sun6i-dsi.txt @@ -21,6 +21,7 @@ Required properties: - phys: phandle to the D-PHY - phy-names: must be "dphy" - resets: phandle to the reset controller driving the encoder + - vcc-dsi-supply: the VCC-DSI power supply of the DSI encoder - ports: A ports node with endpoint definitions as defined in Documentation/devicetree/bindings/media/video-interfaces.txt. The From patchwork Mon May 20 09:03:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 426 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 5081B3F36B for ; Mon, 20 May 2019 11:08:01 +0200 (CEST) Received: by mail-pf1-f198.google.com with SMTP id g11sf9531536pfq.7 for ; Mon, 20 May 2019 02:08:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343280; cv=pass; d=google.com; s=arc-20160816; b=RZfVGVmuzRE8qf7hKgLBswUIXr4dUhz3J4KKVGsz16BJgWTTIACeg44idMhmOBIjdA xiX3ooqWf9250cc9p6+j49C00LM5ccCqwstKjcToyfLgLZeQYkQVdjSdIugmEuTG8dUF akbw6+H5q5pCrgqidXOFe3lHkE2MVkdqxVi12XzJG/vCd3x/MC6ALczVrs0sz5+NdoBY O2fOp1/NbQLCf6ApEtZKSpi7TvB0vlx2kZ0zYmKMTgLgsL8/ZY/RP2KZ1bhKqpHR3WSS TJTr0HZySfWBec5tWRhR1ACkR58vIOtP29Gd1wUsoOjtnb0iYGICudo/qd+7v+0Wm3uH 8Fvw== 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=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=MZ9KWbacVgi4MGc6zxY4J8jMWTSCGDJRvgHSq2q9nojenStsRy59V87BH9wD3Ql9dM 05+6ro6s/z8Lept1kI5OJzJ5Dw7hHamW5iyywfpRhFASxAPMnk5L7UsRRG1vjVFykEeX MjW1KRtVLEx1sOytV2LtaW3wrpJbR1csJSoXoiultF1co8YiBOcaCcmRiyQOD2DvEl7s fabcpFzffhbQLGWfMfJGntjPbEW3SHtayxOY9MeYZR5TPuYqPBEGpKiEV9XpGbEzDk45 Z0d0RcHfOi+C8kMOjaxXi2Oi7b/H09asAlXpCvC055kLbmiMSaCXHQSeC6nXO7uL7pMd mtbg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pkRCUHr3; 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=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=WMUvg9MOP7T7DOwolPJW4VVHVyNYQ2WEpwvVSugNcoHu1y7YUJIFORfFUG7aRdFNJE TaKdRxOXfTWZDIex/6i04kbVQ+rWgkl2mC/j1iiOAOpFGHCUkHMN/rh5LyEs+itPjR7r F7cJ62W3AOtjSJco1FbOEf7CNTHMRpXfg779I= 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=DFIr7fBWvrZfUcwGCU/hA7iubwbmoZFE31K5OcZtKgs=; b=PffGYU6c8uuvmv+ReM/bPRubzh2m3YRTd7DCx3sazcdVOuApsFhG9eafGMRzYC0in2 bgxvS33T/ij1mlsvwLqw5mPRTynBd0h+q+Blzk69lZ3re/wvGBXfuUZybqnG+6UnnQvn ndAaTGZS01SP5Rb1U+umq1yQwgsqukeERw9lp6x8YrAi+VR/IbMPM5AIGnbsGR/qFkok oLR0zHI9/2l+8Q7yCpz6+oCTYvayLg6qfm0aWkfI3ROIKUgIoUhW8OewVdpmCvXgH2Ct fF3XWkCbIFZyN9eFvZckV4Uy2CVoUVry0XZeKpqPfXN5jSg3VVPUmug3xVkzJ0VHkbrs VEOg== X-Gm-Message-State: APjAAAW2ppMyVzJSbi4OHEsHc08TLufvgDt7k3Axlcwcu8LTguwL4gEw JdJH7QzcC00YZHONCnO+9Oqsyt3d X-Google-Smtp-Source: APXvYqyo0WgYJAKINZJ9Td23w9Cu+IK3R+VwUMhkqEziRa8i8daBTnfEc9JnIllrSd2iymf8aEXiOw== X-Received: by 2002:aa7:90ce:: with SMTP id k14mr77710600pfk.239.1558343280165; Mon, 20 May 2019 02:08:00 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a63:6cc1:: with SMTP id h184ls4114446pgc.9.gmail; Mon, 20 May 2019 02:07:59 -0700 (PDT) X-Received: by 2002:a63:4006:: with SMTP id n6mr74952446pga.424.1558343279833; Mon, 20 May 2019 02:07:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343279; cv=none; d=google.com; s=arc-20160816; b=0wQzzqy11XO62HEeYbXZIKSqN1IG9kysTJy8pD94ErP6BZCAg+ljpAqozd0GTZtqOr ML18bcUJcAHCDALpNQJzPTmq2jiYsElBBBhgN7m1xhX55YKmVgoWRL7Q6nR5q8dv4S1d HUhybzj989gERwbUL0DpWIncMj2+iIj+omNKNusEtz+kYwUyQF//9SL7TuuWFp5MHaSF /nYmHI5TL3BksYBCvBHXWHHLD6r6nPq1/4zEQ2p3sHJpqxahreP97aUdtK72YgoHgfc9 eArv04DfI7t5utSscpIsvjM9X/YZQX4S1e2S145PSiDNn2LGE3bdeyzUwfXSYCB+Cbtq HSIA== 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=xEFhsAjZ+Xzcbx2mHUcUiTH2Zxcv+pD6TtDJ+37nOCw=; b=G2ryrpAZ9g87ZddilwbzOcn+66SlA2TKYv/t1dfmT6omVnJK7vcICIujKo6c5PUyyk QpsoOhkAX1eb0TxInGeGdomz/xlOzPSk9DSX/CrKyfe9LAyYT9VGIIc1Y9je9oh8L9Ty xmq74Gwcqy3v5SIYf3kI7eXqas0bG5vCdco0fZ0QAxt3WV/9Axl+XR++HouHHVTbtwtg zAkvjLVFQ+L49FHUAm2jE523XTeRImCsqQcKX4kE8bIJ7TcOrzDmYw+lz4pc1qYRcUC1 Kx6Z6i6OJ1mlNiWMerhyYXUq5TBANngork1y79NckGV8a9GfcGz+kolHfmvfmVvghgV+ Mitg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pkRCUHr3; 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 l1sor17007021pgq.1.2019.05.20.02.07.59 for (Google Transport Security); Mon, 20 May 2019 02:07:59 -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:a63:3ece:: with SMTP id l197mr36282516pga.268.1558343279532; Mon, 20 May 2019 02:07:59 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:07:59 -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 09/11] drm/sun4i: sun6i_mipi_dsi: Add VCC-DSI regulator support Date: Mon, 20 May 2019 14:33:16 +0530 Message-Id: <20190520090318.27570-10-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=pkRCUHr3; 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: , Allwinner MIPI DSI controllers are supplied with SoC DSI power rails via VCC-DSI pin. Add support for this supply pin by adding voltage regulator handling code to MIPI DSI driver. Tested-by: Merlijn Wajer Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 14 ++++++++++++++ drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 5584e9c2f8bd..a5d73a283ed7 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -1150,6 +1150,12 @@ static int sun6i_dsi_probe(struct platform_device *pdev) return PTR_ERR(base); } + dsi->regulator = devm_regulator_get(dev, "vcc-dsi"); + if (IS_ERR(dsi->regulator)) { + dev_err(dev, "Couldn't get VCC-DSI supply\n"); + return PTR_ERR(dsi->regulator); + } + dsi->regs = devm_regmap_init_mmio_clk(dev, "bus", base, &sun6i_dsi_regmap_config); if (IS_ERR(dsi->regs)) { @@ -1223,6 +1229,13 @@ static int sun6i_dsi_remove(struct platform_device *pdev) static int __maybe_unused sun6i_dsi_runtime_resume(struct device *dev) { struct sun6i_dsi *dsi = dev_get_drvdata(dev); + int err; + + err = regulator_enable(dsi->regulator); + if (err) { + dev_err(dsi->dev, "failed to enable VCC-DSI supply: %d\n", err); + return err; + } reset_control_deassert(dsi->reset); clk_prepare_enable(dsi->mod_clk); @@ -1255,6 +1268,7 @@ static int __maybe_unused sun6i_dsi_runtime_suspend(struct device *dev) clk_disable_unprepare(dsi->mod_clk); reset_control_assert(dsi->reset); + regulator_disable(dsi->regulator); return 0; } diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h index 156523859d82..c76b71259d2e 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h @@ -13,6 +13,8 @@ #include #include +#include + struct sun6i_dsi { struct drm_connector connector; struct drm_encoder encoder; @@ -21,6 +23,7 @@ struct sun6i_dsi { struct clk *bus_clk; struct clk *mod_clk; struct regmap *regs; + struct regulator *regulator; struct reset_control *reset; struct phy *dphy; From patchwork Mon May 20 09:03:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 427 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id A1EB43F36B for ; Mon, 20 May 2019 11:08:06 +0200 (CEST) Received: by mail-pf1-f197.google.com with SMTP id k22sf9508259pfg.18 for ; Mon, 20 May 2019 02:08:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343285; cv=pass; d=google.com; s=arc-20160816; b=Tb0bk8Xe5o/ORTmZfQbYTURyQXVDzAUEgcPjhxD5PO8osHEAzl7OlXsBBz7AqAj2dq FFuXRYwBqk02PGEE2MgaCaVy8+oBRLpUEnnvuNVooYZIXIxBae5JRcvjUrVBNvfM3j2r KtbSWSBt12KjHXtZUDK/DWfCsGvfVhE12ifuoUqAVAH5FMWM/v7EqL4hyZVABSv2liKW AQUM7HW8wV38QD/Ie4UYLX+8eXChlB+V9cBFNGGcB6XmLI7pHFQBOVLMcVk0DsinhYYI ipWqQwQTMP9okkzdEgFB53bg5HUhGS/KkmEUuqL+AGGrWiqpkAS2MR0xGKUN04bpPStV WB2w== 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=Y/AZbtLbv/SXXNj7AJ9pYlGEOm2V8PW6vK3zpTMjJ7Q=; b=yQDdPSAiZPtDVjG5zkWoFDPd/8ykaRJjtanK0yN4acyV5aJQ5uzu4yX7DapwzgWSJy Pd1Mvt1rsGPhQL6c9FnKFyy2QCVXy240h0xVWk9ASLwzxsAy0sdVpj5t32kB8ai230k2 fWngzvrnEBUgGs1fiHLCFUhPMpsot13ExzlrOyC1hLsip0NtCwm1a0UdXVNY3EJiZ+og HnIt5GxEX4pOTH6cT8ielHsHtGW9NnSb5iYdF3+XrmXoCZxjEBoqjmO+xMszu6YI8xMr /88AJGXGkp6nzEcUbqiKXHOCEZe0HKTdTztzV3QOaKImUbKgRUfJBDVMjJhCRhkb3IUx sKaw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=EUXAqPD+; 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=Y/AZbtLbv/SXXNj7AJ9pYlGEOm2V8PW6vK3zpTMjJ7Q=; b=ZWxZ19kDfZaCiM6ICliKhD0nZffdXWB5C1Mq4AiUE6fhfseQyu7ZxIeORrNGflnfQ3 tyhUzGBrqgrLzm5llHVE/O7Lm3s97NbnTtq6TbPHB6HcP3DiSWiM1lOVeknTddStt01v TSlmgcZmk9fWuhSlw+cti5xLuQWa9DQjojzOI= 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=Y/AZbtLbv/SXXNj7AJ9pYlGEOm2V8PW6vK3zpTMjJ7Q=; b=d451f7hxQH84CMf7GbejoqifkN5ssddNnFlNcKRsWlttCVQ8n9UHpjs0er4ZbyWgVf i/Ad7tFRfdwnT/boyZA0rbwIBgaBOIkeF8qbF0jDMWGQMG8Diu2f6YMmfpfzZnlm+Ex9 eVYj1umTjt006cBs/wTwoSQX1Z65xb5YNtnqItKsXWEVwjNW/vshzUXDPo2ih7LNo6SV Djo3lB1d43Y1Muh+qagEco/5cb3QOJM5b0DzhVXdaLb2xycyhKDUazWKbwmZTSHP1V4L 5mbvwnteXzlAf2DxMrZfur4mZpvI0Svw/11w2s9+JoJkKq7n3oKyVGaNzqEQ4ERWbNHc +R1A== X-Gm-Message-State: APjAAAWCaCcr1d6BezTYuZIMGNrpNF4FdlScxMo5ljXwtopnbGU27L2r VN+zyErFt3nTixm/fNuHxgS1THb4 X-Google-Smtp-Source: APXvYqyDDgbamxBZXA8LxHS8ISkI9snFs/wbxhcZ3UMlIpUPLFWxGl3GNYUVHr5W74TYXaCJkv/BCQ== X-Received: by 2002:a63:a41:: with SMTP id z1mr73178245pgk.389.1558343285451; Mon, 20 May 2019 02:08:05 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a62:1b8a:: with SMTP id b132ls2185201pfb.9.gmail; Mon, 20 May 2019 02:08:05 -0700 (PDT) X-Received: by 2002:a63:8f09:: with SMTP id n9mr45661617pgd.249.1558343285058; Mon, 20 May 2019 02:08:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343285; cv=none; d=google.com; s=arc-20160816; b=gqPIsUp8d4rBurAuWglThAz+hrkY9sukYM2xU3TqR9t4fQUmIv1pVxfyobPbPWt/bn xei8AFRj4Hk6N1xucfOV8p6O9Sm518heFSm/Ge0yOSbgEsinsgEKsf1cQI6WMKe5u6Vf RLQne93X5vQ5PfwQGfT2/GnzXX6+g+o9W3e4LS4KAt1rbKMnp0Hd6qngBIiWNnjCLVP7 UH8aNT29joYokZ5+IGgUuK8VTtnMTimea/f0SPL9MhUvdMHvSF+L8Q4gGudDAD1TfNN6 queJkFl3CxuuRHn3sBHURVbCuqRRDcCjLhF/omNd1NRkApbKUtNXgcG48+1Woh5iw4kZ GSHg== 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=7sJQDWzqf6+kvBieyTTKW4hSHxAIvKsqSqX7fldZgo8=; b=b2JvVgve9e3pReiwrD+juiKBUaxvb3Yu1U32Bt6HgneqZPbOdSl8zjHf+N6UgZ+73T eWC9agQVJF4lGdzw/qZLygf7XLwHdn6K/zDk2JGqM7fvBWin/9QHW84gtiCTKnGBJBFX DQBoLpm6SUmwjzw4lXhYZkdHh1wHcT3c2s/YJD3pRbH13BysjIQ7DGfjLZxvpayaLNRg ER+OdPSXPvxbDX3yp4NeGjCCBnA0sGsthWwz+pRgUvK14iG/It1Bgsi9oP0IwiK+3y59 FYZwd7Zm85Nq0u/cCTrdBFeAuby39a1dXs97Jvm6Wfm+5NjoVN1A6l04vf9IBmVT8lt8 ejPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=EUXAqPD+; 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 c12sor18566174plo.34.2019.05.20.02.08.05 for (Google Transport Security); Mon, 20 May 2019 02:08:05 -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:a17:902:bd06:: with SMTP id p6mr928736pls.112.1558343284692; Mon, 20 May 2019 02:08:04 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.07.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:08:04 -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: [DO NOT MERGE] [PATCH v10 10/11] drm/panel: Add Bananapi S070WV20-CT16 ICN6211 MIPI-DSI to RGB bridge Date: Mon, 20 May 2019 14:33:17 +0530 Message-Id: <20190520090318.27570-11-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=EUXAqPD+; 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: , Bananapi S070WV20-CT16 ICN6211 is 800x480, 4-lane MIPI-DSI to RGB bridge panel which can be used to connect via DSI port on BPI-M64 board, so add a driver for it. The same panel PCB comes with parallel RBG which is supported via panel-simple driver with "bananapi,s070wv20-ct16" compatible. Signed-off-by: Jagan Teki --- drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + .../panel/panel-bananapi-s070wv20-icn6211.c | 293 ++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-bananapi-s070wv20-icn6211.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index e36dbb4df867..d0cb2fa3e721 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -17,6 +17,15 @@ config DRM_PANEL_ARM_VERSATILE reference designs. The panel is detected using special registers in the Versatile family syscon registers. +config DRM_PANEL_BANANAPI_S070WV20_ICN6211 + tristate "Bananapi S070WV20-CT16 ICN6211 MIPI-DSI to RGB bridge panel driver" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y if you want to enable support for panels based on the + Bananapi S070WV20-CT16 MIPI-DSI controller. + config DRM_PANEL_LVDS tristate "Generic LVDS panel driver" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 78e3dc376bdd..a68e990a4a73 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_DRM_PANEL_ARM_VERSATILE) += panel-arm-versatile.o +obj-$(CONFIG_DRM_PANEL_BANANAPI_S070WV20_ICN6211) += panel-bananapi-s070wv20-icn6211.o obj-$(CONFIG_DRM_PANEL_LVDS) += panel-lvds.o obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += panel-feiyang-fy07024di26a30d.o diff --git a/drivers/gpu/drm/panel/panel-bananapi-s070wv20-icn6211.c b/drivers/gpu/drm/panel/panel-bananapi-s070wv20-icn6211.c new file mode 100644 index 000000000000..52a5b60278af --- /dev/null +++ b/drivers/gpu/drm/panel/panel-bananapi-s070wv20-icn6211.c @@ -0,0 +1,293 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2018 Amarula Solutions + * Author: Jagan Teki + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +struct s070wv20 { + struct drm_panel panel; + struct mipi_dsi_device *dsi; + + struct backlight_device *backlight; + struct regulator *vdd; + struct gpio_desc *enable_gpio; + struct gpio_desc *reset_gpio; +}; + +static inline struct s070wv20 *panel_to_s070wv20(struct drm_panel *panel) +{ + return container_of(panel, struct s070wv20, panel); +} + +struct s070wv20_init_cmd { + size_t len; + const char *data; +}; + +#define S070WV20_INIT_CMD(...) { \ + .len = sizeof((char[]){__VA_ARGS__}), \ + .data = (char[]){__VA_ARGS__} } + +static const struct s070wv20_init_cmd s070wv20_init_cmds[] = { + S070WV20_INIT_CMD(0x7A, 0xC1), + S070WV20_INIT_CMD(0x20, 0x20), + S070WV20_INIT_CMD(0x21, 0xE0), + S070WV20_INIT_CMD(0x22, 0x13), + S070WV20_INIT_CMD(0x23, 0x28), + S070WV20_INIT_CMD(0x24, 0x30), + S070WV20_INIT_CMD(0x25, 0x28), + S070WV20_INIT_CMD(0x26, 0x00), + S070WV20_INIT_CMD(0x27, 0x0D), + S070WV20_INIT_CMD(0x28, 0x03), + S070WV20_INIT_CMD(0x29, 0x1D), + S070WV20_INIT_CMD(0x34, 0x80), + S070WV20_INIT_CMD(0x36, 0x28), + S070WV20_INIT_CMD(0xB5, 0xA0), + S070WV20_INIT_CMD(0x5C, 0xFF), + S070WV20_INIT_CMD(0x2A, 0x01), + S070WV20_INIT_CMD(0x56, 0x92), + S070WV20_INIT_CMD(0x6B, 0x71), + S070WV20_INIT_CMD(0x69, 0x2B), + S070WV20_INIT_CMD(0x10, 0x40), + S070WV20_INIT_CMD(0x11, 0x98), + S070WV20_INIT_CMD(0xB6, 0x20), + S070WV20_INIT_CMD(0x51, 0x20), + S070WV20_INIT_CMD(0x09, 0x10), +}; + +static int s070wv20_prepare(struct drm_panel *panel) +{ + struct s070wv20 *ctx = panel_to_s070wv20(panel); + struct mipi_dsi_device *dsi = ctx->dsi; + unsigned int i; + int ret; + + ret = regulator_enable(ctx->vdd); + if (ret) + return ret; + + msleep(50); + + gpiod_set_value(ctx->reset_gpio, 1); + msleep(50); + + gpiod_set_value(ctx->enable_gpio, 1); + msleep(50); + + gpiod_set_value(ctx->reset_gpio, 0); + msleep(50); + + gpiod_set_value(ctx->reset_gpio, 1); + msleep(20); + + for (i = 0; i < ARRAY_SIZE(s070wv20_init_cmds); i++) { + const struct s070wv20_init_cmd *cmd = &s070wv20_init_cmds[i]; + + ret = mipi_dsi_generic_write(dsi, cmd->data, cmd->len); + if (ret < 0) + return ret; + + msleep(10); + } + + return 0; +} + +static int s070wv20_enable(struct drm_panel *panel) +{ + struct s070wv20 *ctx = panel_to_s070wv20(panel); + + msleep(120); + + mipi_dsi_dcs_set_display_on(ctx->dsi); + backlight_enable(ctx->backlight); + + return 0; +} + +static int s070wv20_disable(struct drm_panel *panel) +{ + struct s070wv20 *ctx = panel_to_s070wv20(panel); + + backlight_disable(ctx->backlight); + return mipi_dsi_dcs_set_display_on(ctx->dsi); +} + +static int s070wv20_unprepare(struct drm_panel *panel) +{ + struct s070wv20 *ctx = panel_to_s070wv20(panel); + int ret; + + ret = mipi_dsi_dcs_set_display_off(ctx->dsi); + if (ret < 0) + dev_err(panel->dev, "failed to set display off: %d\n", ret); + + ret = mipi_dsi_dcs_enter_sleep_mode(ctx->dsi); + if (ret < 0) + dev_err(panel->dev, "failed to enter sleep mode: %d\n", ret); + + msleep(100); + + gpiod_set_value(ctx->reset_gpio, 0); + + gpiod_set_value(ctx->reset_gpio, 1); + + gpiod_set_value(ctx->enable_gpio, 0); + + gpiod_set_value(ctx->reset_gpio, 0); + + regulator_disable(ctx->vdd); + + return 0; +} + +static const struct drm_display_mode s070wv20_default_mode = { + .clock = 30000, + .vrefresh = 60, + + .hdisplay = 800, + .hsync_start = 800 + 40, + .hsync_end = 800 + 40 + 48, + .htotal = 800 + 40 + 48 + 40, + + .vdisplay = 480, + .vsync_start = 480 + 13, + .vsync_end = 480 + 13 + 3, + .vtotal = 480 + 13 + 3 + 29, + + .width_mm = 86, + .height_mm = 154, +}; + +static int s070wv20_get_modes(struct drm_panel *panel) +{ + struct drm_connector *connector = panel->connector; + struct s070wv20 *ctx = panel_to_s070wv20(panel); + struct drm_display_mode *mode; + + mode = drm_mode_duplicate(panel->drm, &s070wv20_default_mode); + if (!mode) { + dev_err(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n", + s070wv20_default_mode.hdisplay, + s070wv20_default_mode.vdisplay, + s070wv20_default_mode.vrefresh); + return -ENOMEM; + } + + drm_mode_set_name(mode); + + mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; + drm_mode_probed_add(connector, mode); + + panel->connector->display_info.width_mm = mode->width_mm; + panel->connector->display_info.height_mm = mode->height_mm; + + return 1; +} + +static const struct drm_panel_funcs s070wv20_funcs = { + .disable = s070wv20_disable, + .unprepare = s070wv20_unprepare, + .prepare = s070wv20_prepare, + .enable = s070wv20_enable, + .get_modes = s070wv20_get_modes, +}; + +static int s070wv20_dsi_probe(struct mipi_dsi_device *dsi) +{ + struct device_node *np; + struct s070wv20 *ctx; + int ret; + + ctx = devm_kzalloc(&dsi->dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + mipi_dsi_set_drvdata(dsi, ctx); + ctx->dsi = dsi; + + drm_panel_init(&ctx->panel); + ctx->panel.dev = &dsi->dev; + ctx->panel.funcs = &s070wv20_funcs; + + ctx->vdd = devm_regulator_get(&dsi->dev, "vdd"); + if (IS_ERR(ctx->vdd)) { + dev_err(&dsi->dev, "Couldn't get vdd regulator\n"); + return PTR_ERR(ctx->vdd); + } + + ctx->enable_gpio = devm_gpiod_get(&dsi->dev, "enable", GPIOD_OUT_LOW); + if (IS_ERR(ctx->enable_gpio)) { + dev_err(&dsi->dev, "Couldn't get our enable GPIO\n"); + return PTR_ERR(ctx->enable_gpio); + } + + ctx->reset_gpio = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(ctx->reset_gpio)) { + dev_err(&dsi->dev, "Couldn't get our reset GPIO\n"); + return PTR_ERR(ctx->reset_gpio); + } + + np = of_parse_phandle(dsi->dev.of_node, "backlight", 0); + if (np) { + ctx->backlight = of_find_backlight_by_node(np); + of_node_put(np); + + if (!ctx->backlight) + return -EPROBE_DEFER; + } + + ret = drm_panel_add(&ctx->panel); + if (ret < 0) + return ret; + + dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE; + dsi->format = MIPI_DSI_FMT_RGB888; + dsi->lanes = 4; + + return mipi_dsi_attach(dsi); +} + +static int s070wv20_dsi_remove(struct mipi_dsi_device *dsi) +{ + struct s070wv20 *ctx = mipi_dsi_get_drvdata(dsi); + + mipi_dsi_detach(dsi); + drm_panel_remove(&ctx->panel); + + if (ctx->backlight) + put_device(&ctx->backlight->dev); + + return 0; +} + +static const struct of_device_id s070wv20_of_match[] = { + { .compatible = "bananapi,s070wv20-ct16-icn6211", }, + { } +}; +MODULE_DEVICE_TABLE(of, s070wv20_of_match); + +static struct mipi_dsi_driver s070wv20_driver = { + .probe = s070wv20_dsi_probe, + .remove = s070wv20_dsi_remove, + .driver = { + .name = "bananapi-s070wv20-ct16-icn6211", + .of_match_table = s070wv20_of_match, + }, +}; +module_mipi_dsi_driver(s070wv20_driver); + +MODULE_AUTHOR("Jagan Teki "); +MODULE_DESCRIPTION("Bananapi S070WV20-CT16 ICN6211 MIPI-DSI to RGB"); +MODULE_LICENSE("GPL v2"); From patchwork Mon May 20 09:03:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 428 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id DD86E3F36B for ; Mon, 20 May 2019 11:08:11 +0200 (CEST) Received: by mail-pf1-f199.google.com with SMTP id 5sf9523627pff.11 for ; Mon, 20 May 2019 02:08:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1558343290; cv=pass; d=google.com; s=arc-20160816; b=LSE9gKgPrwzQMWjLTF3aF+JTQMrevDe7Mk7DGyfRSduLZMxtFMVIJaWNeSaIl27j8q PwU2EXDmAK4n3Cr3z6zgiWsaIRFiJC+vYNMU1z4MqL3YuYlLiLJfgcsnLoB13JOPWdXD LgxQ2PkYHsSu515ZVnRKmg33V2Vix4AOX4b4wUiKbq+tHG72RG93csirZLjFS+SD+nhC Qq1rE3rLQ2kkaUIOCh58sbiirubBtTJS+RT/aq0Z3Sx2sLHjfBJtmdtDa5VbsVczov67 T6Gdal1BByvpWFxNRtDzUCe927dHnT1XcttcU9/wQMqDkZT09U63v4pjaXm1u/RQED7U /dVg== 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=sxhx6sY7g9yt/cSYsHXgHqwqcan32ZXDIv696s3Lrus=; b=SCQDunK2Z2q5r7dSyKc/cPOow+HZ8BrTdf13hOU+dBLWIQy66mJ16h/BgjY0seGcd7 UE9dwn9AEAp58d6DONFnxOPLpIcQ4s/J+biqT8beUtIHLDL36lcpLAUYYfw8lM5UrpQV uV0wfe+SJeQYfYF/HRW6AMhUTEjMTvISgU6wg6oi4zaUgJQi2JVJQ/sq3a6k2w7vonqv IqCa4lLih1O3346nnVlnERQWQCv32MjJwg3FFxw4K1ekk8ZYdJYis9eukW4/o2PwMhWR HcychGW4BaQiYxgkvIIno0v1ViEF1TFd5/WqgS+HqoCNfEn8QYhK62mhh/fsAQiqH+ez H++w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=YGMFMvzm; 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=sxhx6sY7g9yt/cSYsHXgHqwqcan32ZXDIv696s3Lrus=; b=f28quE6x+wvPj09D9/Ngbst7V7rV6CgfRvScepEzxMOdzjGynscyuQMgi6K+wGZpkn PQSYOZvajCsKk6xU/17W2dgBlCQQe63+5QDD4CWfKJv3/DCu87yOOz0wpnh2XK7KjII4 YeTMqleXw0bCwaOQbD2OaOGDHulXlVQKDiemo= 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=sxhx6sY7g9yt/cSYsHXgHqwqcan32ZXDIv696s3Lrus=; b=jY8XiQTwcmoWfKNee/qF2nSmyJFxndNykl2y3LBSKdr2sTov+h0GLGVsckQVkw+lGH jILDEl/LdoDY1YYdHtsg8r/SU+K6cI6faqDZ3zCYsAdcguH/ko216GBivCU9SBzQ9GC5 giCZrQHaP8yWoiag/xsu3vLWns4yODjADI5RJTdWkmLMtc3w+s1LQvgQrJlqVZcFiDsD UckkupOtHw7fqhkNAo3l9+hJZ31+ldIsWUlRztSnv8SAc6KWfsnhglANkRihC8IhtfQH pxSARILnEkS0ZTbA3bQkF9LFDrN7IpGZOecLmlk7kHgKkY/wR4S86KwXcNh6jSbwTxAc KzSw== X-Gm-Message-State: APjAAAUTQyBDfpz/+SaCGwZYp2Up/e8cThT51PJ6A5rgdSY68N8fdG25 VS/3mk9r/kH9vRdqrGAFmnenoV36 X-Google-Smtp-Source: APXvYqxPt+wAUOMjGOV/E94NaEPJOV3UaEtz4L7hWdHQ+TfDWOGyxFkhB7hmvuN69wRgunjuwCeZaA== X-Received: by 2002:a63:2b96:: with SMTP id r144mr59808543pgr.314.1558343290697; Mon, 20 May 2019 02:08:10 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a62:3841:: with SMTP id f62ls5087632pfa.2.gmail; Mon, 20 May 2019 02:08:10 -0700 (PDT) X-Received: by 2002:a62:7689:: with SMTP id r131mr80245503pfc.181.1558343290361; Mon, 20 May 2019 02:08:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558343290; cv=none; d=google.com; s=arc-20160816; b=AqEfxXQ6llV4XQ6JLiT2ZoDvodMhLtjLwCDUshM0mSi8d6mftyR0eBN1wjdH7rL5LE EQwWs99Cxxma6OE1iEEN4Ccxc+CIvMvGFRRe6DlA3hICh+svytl24252jJdSEL2EVzoL KTEzyqYE3bW4lDeDZTflBIFxTz6B/f2FmfSgX/iDS5Fqgz2Pwckp/Yn7IaL7D/eLnFlY hLtNoeYE1gu8soGKrj5MKzGCuE9F/+cdd9hDrUALYCxXbfsJg3w6ENmTY//LG5xuPwW1 iIzFAYNhmaxU7y9HdtUaLL2LLAz2finy0/U0A3XRu8ZiOPKbVejTnxJolOttjOh7U11S sOsA== 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=iobrvkxDT6nYXsPnTycSKoAi+/ZUGwRhXcWR3t2hhKA=; b=L2IIuhNNSffejRw2WnuLE1ISjtESk/pEAWw6WBoz80JHu60o+Q7lJVQtX5qZF4RctA AGnlwhiRmameBA2CPyIQXe2YTwNtTcof7WbPfiepzZfKN12NvoYPuV8Ic1zG9ElVK9BJ lh+0WoXkd9IddODuimd8rAHQbTR+womYAFiOEDllcEhV49PyBt1+fSRDSk3FxVBu8p9j fPtsYCG3JMpYuJjPOKWbS7nzW1mms1/ZauWfTk8hZTXyp6LBDyzVgSM+pHdxz7060OI/ qppLWLDGDyIJhjECEvPlEibXXtTGdjUXe7gVZeUDAPbmHvJhoExx5HGUR4ebz1c0LHnD jO7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=YGMFMvzm; 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 o22sor17018304pgv.49.2019.05.20.02.08.10 for (Google Transport Security); Mon, 20 May 2019 02:08:10 -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:a65:42cd:: with SMTP id l13mr21087709pgp.72.1558343289969; Mon, 20 May 2019 02:08:09 -0700 (PDT) Received: from localhost.localdomain ([183.82.227.193]) by smtp.gmail.com with ESMTPSA id d15sm51671614pfm.186.2019.05.20.02.08.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 02:08:09 -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: [DO NOT MERGE] [PATCH v10 11/11] ARM: dts: sun8i: bananapi-m2m: Enable Bananapi S070WV20-CT16 DSI panel Date: Mon, 20 May 2019 14:33:18 +0530 Message-Id: <20190520090318.27570-12-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=YGMFMvzm; 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: , This patch add support for Bananapi S070WV20-CT16 DSI panel to BPI-M2M board. DSI panel connected via board DSI port with, - DCDC1 as VCC-DSI supply - DLDO1 as VDD supply - PL5 gpio for lcd reset gpio pin - PB7 gpio for lcd enable gpio pin - PL4 gpio for backlight enable pin Signed-off-by: Jagan Teki --- arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts | 40 ++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts b/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts index e1c75f7fa3ca..4e71e81d2bad 100644 --- a/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts +++ b/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts @@ -44,6 +44,7 @@ #include "sun8i-a33.dtsi" #include +#include / { model = "BananaPi M2 Magic"; @@ -61,6 +62,14 @@ stdout-path = "serial0:115200n8"; }; + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; + brightness-levels = <1 2 4 8 16 32 64 128 255>; + default-brightness-level = <8>; + enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* LCD-BL-EN: PL4 */ + }; + leds { compatible = "gpio-leds"; @@ -122,6 +131,27 @@ status = "okay"; }; +&de { + status = "okay"; +}; + +&dphy { + status = "okay"; +}; + +&dsi { + vcc-dsi-supply = <®_dcdc1>; /* VCC3V3-DSI */ + status = "okay"; + + panel@0 { + compatible = "bananapi,s070wv20-ct16-icn6211"; + reg = <0>; + enable-gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; /* LCD-PWR-EN: PB7 */ + reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* LCD-RST: PL5 */ + backlight = <&backlight>; + }; +}; + &ehci0 { status = "okay"; }; @@ -157,6 +187,12 @@ status = "okay"; }; +&pwm { + pinctrl-names = "default"; + pinctrl-0 = <&pwm0_pin>; + status = "okay"; +}; + &r_rsb { status = "okay"; @@ -269,6 +305,10 @@ status = "okay"; }; +&tcon0 { + status = "okay"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>;