From patchwork Wed Feb 1 07:47:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9549037 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 83B5E60425 for ; Wed, 1 Feb 2017 07:49:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7423B28338 for ; Wed, 1 Feb 2017 07:49:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 68F5B28375; Wed, 1 Feb 2017 07:49:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 2232F28338 for ; Wed, 1 Feb 2017 07:49:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F4F86E78A; Wed, 1 Feb 2017 07:48:03 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id B66F16E528 for ; Wed, 1 Feb 2017 07:47:58 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OKO00B0LQZY7C60@mailout1.w1.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 01 Feb 2017 07:47:58 +0000 (GMT) Received: from eusmges4.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170201074757eucas1p1f7a43a16a7b08506febca81737d89140~fGkMie5Vg2864228642eucas1p1p; Wed, 1 Feb 2017 07:47:57 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges4.samsung.com (EUCPMTA) with SMTP id E3.5A.28517.DA291985; Wed, 1 Feb 2017 07:47:57 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170201074756eucas1p1560a8480841d998230d2bcaf95acc811~fGkLylRuL1435114351eucas1p1S; Wed, 1 Feb 2017 07:47:56 +0000 (GMT) X-AuditID: cbfec7f4-f79716d000006f65-b4-589192ad9fd0 Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 34.95.06687.1F291985; Wed, 1 Feb 2017 07:49:05 +0000 (GMT) Received: from AMDC2768.DIGITAL.local ([106.120.43.17]) by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OKO00GROQZTN370@eusync1.samsung.com>; Wed, 01 Feb 2017 07:47:56 +0000 (GMT) From: Andrzej Hajda To: Archit Taneja , dri-devel@lists.freedesktop.org Subject: [PATCH v3 14/25] drm/bridge/sii8620: set gen2 write burst before sending MSC command Date: Wed, 01 Feb 2017 08:47:41 +0100 Message-id: <1485935272-17337-15-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1485935272-17337-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprEIsWRmVeSWpSXmKPExsWy7djPc7prJ02MMJg/R9qiqeMtq8WVr+/Z HJg8Lvf1Mnnc7z7OFMAUxWWTkpqTWZZapG+XwJXx4MhX5oJPkhUTtl1kaWC8I9rFyMEhIWAi cfSFeRcjJ5ApJnHh3nq2LkYuDiGBpYwSN27eZ4VwPjNKLL+1mhWm4cRBLZAGIYFljBLTdytD 2P8ZJf63V4DYbAKaEn8332QDsUUEvCXmrO5jBLGFBeIlftxYBxZnEVCVmNLTxAJi8wq4SPTt fMICcYScxM1zncwgNidQ/PnCOSwgN0gIrGGTeLPjBtQNshKbDjBD1LtI7F48kw3CFpZ4dXwL O4QtI9HZcZAJorebUeJT/wl2CGcKo8S/DzOguq0lDh+/yApiMwvwSUzaNp0ZYgGvREebEITp IfF+LdRtjhKXOg6wQfw7nVHi9V2VCYzSCxgZVjGKpJYW56anFpvoFSfmFpfmpesl5+duYgTG 1Ol/x7/sYFx8zOoQowAHoxIP74yTEyKEWBPLiitzDzFKcDArifDO6J8YIcSbklhZlVqUH19U mpNafIhRmoNFSZx3z4Ir4UIC6YklqdmpqQWpRTBZJg5OqQZG8yphE9OPud4Pcuf0dJTZvrhy ZtsZT72P4v1Hn14Pjprj5SxxKivwzrmHStnOPDrhzlkyrTzP5m5hTrfK9Ji97+NumXyd2vdP dtXHykysWl3Wk6Coe8BvVlqoR3PHxQWvk87vCF/NOL/du87u2sUy1xtP4gU6T8iZqnUH970V r3MN8fptoK/EUpyRaKjFXFScCABDvJpvpQIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKLMWRmVeSWpSXmKPExsVy+t/xy7ofJ02MMLg9UdWiqeMtq8WVr+/Z HJg8Lvf1Mnnc7z7OFMAU5WaTkZqYklqkkJqXnJ+SmZduqxQa4qZroaSQl5ibaqsUoesbEqSk UJaYUwrkGRmgAQfnAPdgJX27BLeMB0e+Mhd8kqyYsO0iSwPjHdEuRg4OCQETiRMHtboYOYFM MYkL99azdTFycQgJLGGU2P9/AZTTyCTRcugVO0gVm4CmxN/NN9lAbBEBb4k5q/sYQWxhgXiJ HzfWgcVZBFQlpvQ0sYDYvAIuEn07n7BAbJCTuHmukxnE5gSKP184BywuJOAs8e3uLPYJjDwL GBlWMYqklhbnpucWG+oVJ+YWl+al6yXn525iBAbZtmM/N+9gvLQx+BCjAAejEg/vh9MTIoRY E8uKK3MPMUpwMCuJ8M7onxghxJuSWFmVWpQfX1Sak1p8iNEU6KiJzFKiyfnACMgriTc0MTS3 NDQytrAwNzJSEuct+XAlXEggPbEkNTs1tSC1CKaPiYNTqoFx2rrXLkH/7uf5ad4892+l1h31 q2/8/KY8e6tsnHZgXuPldtmFpRW/575mjHL9/2J2quPn6Nylzeaf/nX5G4gIPY0+sIo5M3TL 6XrRWxwOwTyHf7VYy/3dPfHapedfeZ7xZPSYqq/96nI/+Fyjzs6GoweP7Tl9QjAz+KpWofPP mK0BRpZuf2QSlViKMxINtZiLihMBW3XbjEgCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170201074756eucas1p1560a8480841d998230d2bcaf95acc811 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170201074756eucas1p1560a8480841d998230d2bcaf95acc811 X-RootMTR: 20170201074756eucas1p1560a8480841d998230d2bcaf95acc811 References: <1485935272-17337-1-git-send-email-a.hajda@samsung.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Write burst should be enabled for MHL_INT_RC_FEAT_REQ and disabled for other commands. The patch moves functions up and adds delay setting for MHL3 burst mode. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/sil-sii8620.c | 88 ++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index 5b879ff..653187c 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -289,9 +289,59 @@ static void sii8620_mt_work(struct sii8620 *ctx) msg->send(ctx, msg); } +static void sii8620_enable_gen2_write_burst(struct sii8620 *ctx) +{ + u8 ctrl = BIT_MDT_RCV_CTRL_MDT_RCV_EN; + + if (ctx->gen2_write_burst) + return; + + if (ctx->mode >= CM_MHL1) + ctrl |= BIT_MDT_RCV_CTRL_MDT_DELAY_RCV_EN; + + sii8620_write_seq(ctx, + REG_MDT_RCV_TIMEOUT, 100, + REG_MDT_RCV_CTRL, ctrl + ); + ctx->gen2_write_burst = 1; +} + +static void sii8620_disable_gen2_write_burst(struct sii8620 *ctx) +{ + if (!ctx->gen2_write_burst) + return; + + sii8620_write_seq_static(ctx, + REG_MDT_XMIT_CTRL, 0, + REG_MDT_RCV_CTRL, 0 + ); + ctx->gen2_write_burst = 0; +} + +static void sii8620_start_gen2_write_burst(struct sii8620 *ctx) +{ + sii8620_write_seq_static(ctx, + REG_MDT_INT_1_MASK, BIT_MDT_RCV_TIMEOUT + | BIT_MDT_RCV_SM_ABORT_PKT_RCVD | BIT_MDT_RCV_SM_ERROR + | BIT_MDT_XMIT_TIMEOUT | BIT_MDT_XMIT_SM_ABORT_PKT_RCVD + | BIT_MDT_XMIT_SM_ERROR, + REG_MDT_INT_0_MASK, BIT_MDT_XFIFO_EMPTY + | BIT_MDT_IDLE_AFTER_HAWB_DISABLE + | BIT_MDT_RFIFO_DATA_RDY + ); + sii8620_enable_gen2_write_burst(ctx); +} + static void sii8620_mt_msc_cmd_send(struct sii8620 *ctx, struct sii8620_mt_msg *msg) { + if (msg->reg[0] == MHL_SET_INT && + msg->reg[1] == MHL_INT_REG(RCHANGE) && + msg->reg[2] == MHL_INT_RC_FEAT_REQ) + sii8620_enable_gen2_write_burst(ctx); + else + sii8620_disable_gen2_write_burst(ctx); + switch (msg->reg[0]) { case MHL_WRITE_STAT: case MHL_SET_INT: @@ -956,44 +1006,6 @@ static void sii8620_enable_hpd(struct sii8620 *ctx) ); } -static void sii8620_enable_gen2_write_burst(struct sii8620 *ctx) -{ - if (ctx->gen2_write_burst) - return; - - sii8620_write_seq_static(ctx, - REG_MDT_RCV_TIMEOUT, 100, - REG_MDT_RCV_CTRL, BIT_MDT_RCV_CTRL_MDT_RCV_EN - ); - ctx->gen2_write_burst = 1; -} - -static void sii8620_disable_gen2_write_burst(struct sii8620 *ctx) -{ - if (!ctx->gen2_write_burst) - return; - - sii8620_write_seq_static(ctx, - REG_MDT_XMIT_CTRL, 0, - REG_MDT_RCV_CTRL, 0 - ); - ctx->gen2_write_burst = 0; -} - -static void sii8620_start_gen2_write_burst(struct sii8620 *ctx) -{ - sii8620_write_seq_static(ctx, - REG_MDT_INT_1_MASK, BIT_MDT_RCV_TIMEOUT - | BIT_MDT_RCV_SM_ABORT_PKT_RCVD | BIT_MDT_RCV_SM_ERROR - | BIT_MDT_XMIT_TIMEOUT | BIT_MDT_XMIT_SM_ABORT_PKT_RCVD - | BIT_MDT_XMIT_SM_ERROR, - REG_MDT_INT_0_MASK, BIT_MDT_XFIFO_EMPTY - | BIT_MDT_IDLE_AFTER_HAWB_DISABLE - | BIT_MDT_RFIFO_DATA_RDY - ); - sii8620_enable_gen2_write_burst(ctx); -} - static void sii8620_mhl_discover(struct sii8620 *ctx) { sii8620_write_seq_static(ctx,