From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6EA5CC43381 for ; Thu, 14 Feb 2019 19:27:36 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 24807222D4 for ; Thu, 14 Feb 2019 19:27:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RbrnN6ha"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="dbkFqMfi" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 24807222D4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=brAHeyCt0q0uK+QnL3fYWqh6S48hyJy3u2cAoWAvEVQ=; b=RbrnN6haU7752k yasp9rqDSX8iorimQoN9uHZKCgn/K04vIuSXHpsiw/sxrcwmfHfDwf6IGAmZiCHMgIH0F9NVqizxI pZYHb7dSRwj7GXE+lZu/hSGHZPt51WASDhQRLFasDDmlnEkAss5nWyMvJDdbcikhOGB4Na2l1UakA RIuxeMkg99pGrp99FEdda8FXMhjRccHvLS8++KEsL/TyBfGo9xkhCC3AuwFb6l1b37XgKAxwP+3+D WAd5uH2WBMk7XfVUilAb2eStVWOnGmgxKof2Ugsa4fGZqcD4uv+aqdmWsOH1JDbpx23bPN2lRPyux NK+SmF49rtcf6NDcD6HA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1guMfU-0002nj-6M; Thu, 14 Feb 2019 19:27:32 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1guMeR-0001Yn-9A for linux-arm-kernel@lists.infradead.org; Thu, 14 Feb 2019 19:26:33 +0000 Received: by mail-pf1-x441.google.com with SMTP id j18so3593737pfe.1 for ; Thu, 14 Feb 2019 11:26:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l45/w0iXjOS/5kE7BbpDMgm34gyLbKfVsq3DBo0xqe0=; b=dbkFqMfikgxyGeQmRCQmyLfUMr1v9qGRB/1u1KREh4PmaL3FKvldPTGzwqHsTAZriR qTNMVBshoZFnhTqq62vjZdUezp6D3LV4DXsQxSoXWlE7w1p5/nz8K9dHVjUI0uewmm/3 Tx6ZYGS+edH/xG+wyuR+MLY2LA5OsTE2FbXxo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l45/w0iXjOS/5kE7BbpDMgm34gyLbKfVsq3DBo0xqe0=; b=mtiSU9CsTesbqTmNRAIjM65t5gIhd0vEP3WeMfD4i+xSG3Jo2c51zfAuaNufikJRs9 2U8xEMKAlDsLUvN6wslWIwVw/tC4dQDBtEbf5dD5wM5rUuCRzA6mvva1CAOUlLv3LnKg 9KxStKVzmXOP6cRRjZ2h1Uo+BSGvbGltMI55czWKFIVstg4muG9TnrAnPjJsgZOxmnVb rSi3iwMZWpqVL6mFlM6XkwTk4oftvuS9cGzfSci7gjg/XKSDc/2uZ3rhi2Bnz4Lqz5m+ +nWVmmWs+CNnyq5J2FehdYblcH/EDTTofhooJISwwGIX1HgSAxz29Sv5jFasOvtQN+Yk Kc7A== X-Gm-Message-State: AHQUAuYES0uuRUHWJUGpWOjcdbv3E7XJW6I0z6YZFP+7/G15ehNibftu iZvrCT3vJEkHZZdThICJEYIoKg== X-Google-Smtp-Source: AHgI3Ia7Twnq5r7dgW0TFcIF1mUc1g5B8v31Ffn2m2aFBQM1Cv15c3uxxsag0SXtBDHRvwgLsyoMtA== X-Received: by 2002:a62:a1a:: with SMTP id s26mr5742054pfi.31.1550172386534; Thu, 14 Feb 2019 11:26:26 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id k71sm8390100pga.44.2019.02.14.11.26.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Feb 2019 11:26:25 -0800 (PST) From: Jagan Teki To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai Subject: [PATCH v8 6/8] drm/sun4i: sun6i_mipi_dsi: Set proper vblk timing calculation Date: Fri, 15 Feb 2019 00:55:42 +0530 Message-Id: <20190214192544.7314-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190214192544.7314-1-jagan@amarulasolutions.com> References: <20190214192544.7314-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190214_112627_759593_955253AB X-CRM114-Status: GOOD ( 15.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Like other dsi setup timings, or hblk for that matter vblk would also require compute the timings based payload equation along with packet overhead. But, on the other hand vblk computation is also depends on device lane number. - for 4 lane devices, it is computed based on vtotal, packet overhead along with hblk value. - for others devices, it is simply 0 BSP code from BPI-M64-bsp is computing vblk as for 4-lane devices (from linux-sunxi drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/de_dsi.c) tmp = (ht*dsi_pixel_bits[format]/8)*vt-(4+dsi_hblk+2); dsi_vblk = (lane-tmp%lane); So, update the vblk timing calculation accordingly. Tested on 2-lane, 4-lane MIPI-DSI LCD panels. Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 29 +++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index a64e6ec00f22..a08dfdcbe9e8 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -446,6 +446,27 @@ static void sun6i_dsi_setup_format(struct sun6i_dsi *dsi, SUN6I_DSI_PIXEL_CTL0_FORMAT(fmt)); } +static u16 sun6i_dsi_get_timings_vblk(struct sun6i_dsi *dsi, + struct drm_display_mode *mode, u16 hblk) +{ + struct mipi_dsi_device *device = dsi->device; + unsigned int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; + int tmp; + + if (device->lanes != 4) + return 0; + + /* + * The vertical blank is set using a blanking packet (4 bytes + + * payload + 2 bytes). Its minimal size is therefore 6 bytes + */ +#define VBLK_PACKET_OVERHEAD 6 + tmp = (mode->htotal * Bpp) * mode->vtotal - + (hblk + VBLK_PACKET_OVERHEAD); + + return (device->lanes - tmp % device->lanes); +} + static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, struct drm_display_mode *mode) { @@ -493,13 +514,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - HBLK_PACKET_OVERHEAD); - /* - * And I'm not entirely sure what vblk is about. The driver in - * Allwinner BSP is using a rather convoluted calculation - * there only for 4 lanes. However, using 0 (the !4 lanes - * case) even with a 4 lanes screen seems to work... - */ - vblk = 0; + vblk = sun6i_dsi_get_timings_vblk(dsi, mode, hblk); /* How many bytes do we need to send all payloads? */ bytes = max_t(size_t, max(max(hfp, hblk), max(hsa, hbp)), vblk); -- 2.18.0.321.gffc6fa0e3 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jagan Teki Subject: [PATCH v8 6/8] drm/sun4i: sun6i_mipi_dsi: Set proper vblk timing calculation Date: Fri, 15 Feb 2019 00:55:42 +0530 Message-ID: <20190214192544.7314-7-jagan@amarulasolutions.com> References: <20190214192544.7314-1-jagan@amarulasolutions.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 360C26EAAC for ; Thu, 14 Feb 2019 19:26:27 +0000 (UTC) Received: by mail-pf1-x441.google.com with SMTP id n22so3590335pfa.3 for ; Thu, 14 Feb 2019 11:26:27 -0800 (PST) In-Reply-To: <20190214192544.7314-1-jagan@amarulasolutions.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Jagan Teki , Michael Trimarchi , linux-amarula@amarulasolutions.com, linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org TGlrZSBvdGhlciBkc2kgc2V0dXAgdGltaW5ncywgb3IgaGJsayBmb3IgdGhhdCBtYXR0ZXIgdmJs ayB3b3VsZAphbHNvIHJlcXVpcmUgY29tcHV0ZSB0aGUgdGltaW5ncyBiYXNlZCBwYXlsb2FkIGVx dWF0aW9uIGFsb25nIHdpdGgKcGFja2V0IG92ZXJoZWFkLgoKQnV0LCBvbiB0aGUgb3RoZXIgaGFu ZCB2YmxrIGNvbXB1dGF0aW9uIGlzIGFsc28gZGVwZW5kcyBvbiBkZXZpY2UKbGFuZSBudW1iZXIu Ci0gZm9yIDQgbGFuZSBkZXZpY2VzLCBpdCBpcyBjb21wdXRlZCBiYXNlZCBvbiB2dG90YWwsIHBh Y2tldCBvdmVyaGVhZAogIGFsb25nIHdpdGggaGJsayB2YWx1ZS4KLSBmb3Igb3RoZXJzIGRldmlj ZXMsIGl0IGlzIHNpbXBseSAwCgpCU1AgY29kZSBmcm9tIEJQSS1NNjQtYnNwIGlzIGNvbXB1dGlu ZyB2YmxrIGFzIGZvciA0LWxhbmUgZGV2aWNlcwooZnJvbSBsaW51eC1zdW54aQpkcml2ZXJzL3Zp ZGVvL3N1bnhpL2Rpc3AyL2Rpc3AvZGUvbG93bGV2ZWxfc3VuNTBpdzEvZGVfZHNpLmMpCgp0bXAg PSAoaHQqZHNpX3BpeGVsX2JpdHNbZm9ybWF0XS84KSp2dC0oNCtkc2lfaGJsaysyKTsKZHNpX3Zi bGsgPSAobGFuZS10bXAlbGFuZSk7CgpTbywgdXBkYXRlIHRoZSB2YmxrIHRpbWluZyBjYWxjdWxh dGlvbiBhY2NvcmRpbmdseS4KClRlc3RlZCBvbiAyLWxhbmUsIDQtbGFuZSBNSVBJLURTSSBMQ0Qg cGFuZWxzLgoKU2lnbmVkLW9mZi1ieTogSmFnYW4gVGVraSA8amFnYW5AYW1hcnVsYXNvbHV0aW9u cy5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMgfCAyOSAr KysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjZpX21pcGlfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNmlfbWlwaV9kc2kuYwpp bmRleCBhNjRlNmVjMDBmMjIuLmEwOGRmZGNiZTllOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3N1bjRpL3N1bjZpX21pcGlfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjZpX21pcGlfZHNpLmMKQEAgLTQ0Niw2ICs0NDYsMjcgQEAgc3RhdGljIHZvaWQgc3VuNmlfZHNp X3NldHVwX2Zvcm1hdChzdHJ1Y3Qgc3VuNmlfZHNpICpkc2ksCiAJCSAgICAgU1VONklfRFNJX1BJ WEVMX0NUTDBfRk9STUFUKGZtdCkpOwogfQogCitzdGF0aWMgdTE2IHN1bjZpX2RzaV9nZXRfdGlt aW5nc192YmxrKHN0cnVjdCBzdW42aV9kc2kgKmRzaSwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwgdTE2IGhibGspCit7CisJc3RydWN0IG1pcGlfZHNpX2RldmljZSAq ZGV2aWNlID0gZHNpLT5kZXZpY2U7CisJdW5zaWduZWQgaW50IEJwcCA9IG1pcGlfZHNpX3BpeGVs X2Zvcm1hdF90b19icHAoZGV2aWNlLT5mb3JtYXQpIC8gODsKKwlpbnQgdG1wOworCisJaWYgKGRl dmljZS0+bGFuZXMgIT0gNCkKKwkJcmV0dXJuIDA7CisKKwkvKgorCSAqIFRoZSB2ZXJ0aWNhbCBi bGFuayBpcyBzZXQgdXNpbmcgYSBibGFua2luZyBwYWNrZXQgKDQgYnl0ZXMgKworCSAqIHBheWxv YWQgKyAyIGJ5dGVzKS4gSXRzIG1pbmltYWwgc2l6ZSBpcyB0aGVyZWZvcmUgNiBieXRlcworCSAq LworI2RlZmluZSBWQkxLX1BBQ0tFVF9PVkVSSEVBRAk2CisJdG1wID0gKG1vZGUtPmh0b3RhbCAq IEJwcCkgKiBtb2RlLT52dG90YWwgLQorCSAgICAgIChoYmxrICsgVkJMS19QQUNLRVRfT1ZFUkhF QUQpOworCisJcmV0dXJuIChkZXZpY2UtPmxhbmVzIC0gdG1wICUgZGV2aWNlLT5sYW5lcyk7Cit9 CisKIHN0YXRpYyB2b2lkIHN1bjZpX2RzaV9zZXR1cF90aW1pbmdzKHN0cnVjdCBzdW42aV9kc2kg KmRzaSwKIAkJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7CkBAIC00OTMs MTMgKzUxNCw3IEBAIHN0YXRpYyB2b2lkIHN1bjZpX2RzaV9zZXR1cF90aW1pbmdzKHN0cnVjdCBz dW42aV9kc2kgKmRzaSwKIAkJICAgKG1vZGUtPmh0b3RhbCAtIChtb2RlLT5oc3luY19lbmQgLSBt b2RlLT5oc3luY19zdGFydCkpICoKIAkJICAgQnBwIC0gSEJMS19QQUNLRVRfT1ZFUkhFQUQpOwog Ci0JLyoKLQkgKiBBbmQgSSdtIG5vdCBlbnRpcmVseSBzdXJlIHdoYXQgdmJsayBpcyBhYm91dC4g VGhlIGRyaXZlciBpbgotCSAqIEFsbHdpbm5lciBCU1AgaXMgdXNpbmcgYSByYXRoZXIgY29udm9s dXRlZCBjYWxjdWxhdGlvbgotCSAqIHRoZXJlIG9ubHkgZm9yIDQgbGFuZXMuIEhvd2V2ZXIsIHVz aW5nIDAgKHRoZSAhNCBsYW5lcwotCSAqIGNhc2UpIGV2ZW4gd2l0aCBhIDQgbGFuZXMgc2NyZWVu IHNlZW1zIHRvIHdvcmsuLi4KLQkgKi8KLQl2YmxrID0gMDsKKwl2YmxrID0gc3VuNmlfZHNpX2dl dF90aW1pbmdzX3ZibGsoZHNpLCBtb2RlLCBoYmxrKTsKIAogCS8qIEhvdyBtYW55IGJ5dGVzIGRv IHdlIG5lZWQgdG8gc2VuZCBhbGwgcGF5bG9hZHM/ICovCiAJYnl0ZXMgPSBtYXhfdChzaXplX3Qs IG1heChtYXgoaGZwLCBoYmxrKSwgbWF4KGhzYSwgaGJwKSksIHZibGspOwotLSAKMi4xOC4wLjMy MS5nZmZjNmZhMGUzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 974E7C43381 for ; Thu, 14 Feb 2019 19:26:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 647F721B68 for ; Thu, 14 Feb 2019 19:26:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="dbkFqMfi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2439759AbfBNT0r (ORCPT ); Thu, 14 Feb 2019 14:26:47 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:38202 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2439725AbfBNT01 (ORCPT ); Thu, 14 Feb 2019 14:26:27 -0500 Received: by mail-pf1-f196.google.com with SMTP id q1so3581781pfi.5 for ; Thu, 14 Feb 2019 11:26:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l45/w0iXjOS/5kE7BbpDMgm34gyLbKfVsq3DBo0xqe0=; b=dbkFqMfikgxyGeQmRCQmyLfUMr1v9qGRB/1u1KREh4PmaL3FKvldPTGzwqHsTAZriR qTNMVBshoZFnhTqq62vjZdUezp6D3LV4DXsQxSoXWlE7w1p5/nz8K9dHVjUI0uewmm/3 Tx6ZYGS+edH/xG+wyuR+MLY2LA5OsTE2FbXxo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l45/w0iXjOS/5kE7BbpDMgm34gyLbKfVsq3DBo0xqe0=; b=R/t38+EZl6GF6+MiQgpVhPBsU5aHXMuhGrtokrvgtK1qAEaEQar4XbeP0PfnoiIzcg 3eFdmiVWkn1MifAVvAH2vKRQZK8uwoNaOXbiwLbxVqyI/Qk5ZseDahGeH2JfihW7UF0O qrSnXGEI5Z+alHLTA+F0Ka1YHDLE3gCChPBGH39iINE4m8KT2YIm81ffONcwiTzcaTBF d/ADeIW7P+DRoIUSpMF7vWrBOTi+QVFpKpWI4NEMvIX6kxv1Cr8N7e729dEX7Noez98R y4lHqzSWiLlAtpOLfkCZfhqWI8V3VMXz2+psyJT+L/jQDHbvV7e5igRoo/3zBwzK3gNC pJxA== X-Gm-Message-State: AHQUAuZnyYrV7L/n9RiZXuzE8JfBj1FzLGazxe2s9b8h7UYvHTs/gLup Izo9kYh6c2M4tpszgNL5kLrJsg== X-Google-Smtp-Source: AHgI3Ia7Twnq5r7dgW0TFcIF1mUc1g5B8v31Ffn2m2aFBQM1Cv15c3uxxsag0SXtBDHRvwgLsyoMtA== X-Received: by 2002:a62:a1a:: with SMTP id s26mr5742054pfi.31.1550172386534; Thu, 14 Feb 2019 11:26:26 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id k71sm8390100pga.44.2019.02.14.11.26.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 14 Feb 2019 11:26:25 -0800 (PST) From: Jagan Teki To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-amarula@amarulasolutions.com, Michael Trimarchi , Jagan Teki Subject: [PATCH v8 6/8] drm/sun4i: sun6i_mipi_dsi: Set proper vblk timing calculation Date: Fri, 15 Feb 2019 00:55:42 +0530 Message-Id: <20190214192544.7314-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190214192544.7314-1-jagan@amarulasolutions.com> References: <20190214192544.7314-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Like other dsi setup timings, or hblk for that matter vblk would also require compute the timings based payload equation along with packet overhead. But, on the other hand vblk computation is also depends on device lane number. - for 4 lane devices, it is computed based on vtotal, packet overhead along with hblk value. - for others devices, it is simply 0 BSP code from BPI-M64-bsp is computing vblk as for 4-lane devices (from linux-sunxi drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/de_dsi.c) tmp = (ht*dsi_pixel_bits[format]/8)*vt-(4+dsi_hblk+2); dsi_vblk = (lane-tmp%lane); So, update the vblk timing calculation accordingly. Tested on 2-lane, 4-lane MIPI-DSI LCD panels. Signed-off-by: Jagan Teki --- drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 29 +++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index a64e6ec00f22..a08dfdcbe9e8 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -446,6 +446,27 @@ static void sun6i_dsi_setup_format(struct sun6i_dsi *dsi, SUN6I_DSI_PIXEL_CTL0_FORMAT(fmt)); } +static u16 sun6i_dsi_get_timings_vblk(struct sun6i_dsi *dsi, + struct drm_display_mode *mode, u16 hblk) +{ + struct mipi_dsi_device *device = dsi->device; + unsigned int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; + int tmp; + + if (device->lanes != 4) + return 0; + + /* + * The vertical blank is set using a blanking packet (4 bytes + + * payload + 2 bytes). Its minimal size is therefore 6 bytes + */ +#define VBLK_PACKET_OVERHEAD 6 + tmp = (mode->htotal * Bpp) * mode->vtotal - + (hblk + VBLK_PACKET_OVERHEAD); + + return (device->lanes - tmp % device->lanes); +} + static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, struct drm_display_mode *mode) { @@ -493,13 +514,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - HBLK_PACKET_OVERHEAD); - /* - * And I'm not entirely sure what vblk is about. The driver in - * Allwinner BSP is using a rather convoluted calculation - * there only for 4 lanes. However, using 0 (the !4 lanes - * case) even with a 4 lanes screen seems to work... - */ - vblk = 0; + vblk = sun6i_dsi_get_timings_vblk(dsi, mode, hblk); /* How many bytes do we need to send all payloads? */ bytes = max_t(size_t, max(max(hfp, hblk), max(hsa, hbp)), vblk); -- 2.18.0.321.gffc6fa0e3