From patchwork Thu Jan 26 13:43:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9539277 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 8D5C8601D7 for ; Thu, 26 Jan 2017 13:43:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7CE97280F4 for ; Thu, 26 Jan 2017 13:43:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 719C12818E; Thu, 26 Jan 2017 13:43:25 +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 C7E45280F4 for ; Thu, 26 Jan 2017 13:43:24 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C77146EB84; Thu, 26 Jan 2017 13:43:22 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout3.w1.samsung.com (mailout3.w1.samsung.com [210.118.77.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7746C6EB84 for ; Thu, 26 Jan 2017 13:43:21 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OKE00L7U3G5L040@mailout3.w1.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 26 Jan 2017 13:43:17 +0000 (GMT) Received: from eusmges2.samsung.com (unknown [203.254.199.241]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170126134316eucas1p18444c9982b686d1002b798faa1d87b4a~dVitv-E2w1486114861eucas1p1B; Thu, 26 Jan 2017 13:43:16 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2.samsung.com (EUCPMTA) with SMTP id A7.F9.30614.4FCF9885; Thu, 26 Jan 2017 13:43:16 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170126134315eucas1p1db71a5e2f14fd93283d14a2da4f05611~dVitGbOSj1656116561eucas1p1d; Thu, 26 Jan 2017 13:43:15 +0000 (GMT) X-AuditID: cbfec7f1-f793f6d000007796-a0-5889fcf470da Received: from eusync3.samsung.com ( [203.254.199.213]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 0B.41.10233.1FCF9885; Thu, 26 Jan 2017 13:43:13 +0000 (GMT) Received: from AMDC2768.DIGITAL.local ([106.120.43.17]) by eusync3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OKE00G033G35M80@eusync3.samsung.com>; Thu, 26 Jan 2017 13:43:15 +0000 (GMT) From: Andrzej Hajda To: Archit Taneja , dri-devel@lists.freedesktop.org Subject: [PATCH v2 04/25] drm/bridge/sii8620: add continuations to messages Date: Thu, 26 Jan 2017 14:43:07 +0100 Message-id: <1485438187-7332-1-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <201ac4dc-17c8-60bc-be13-31cc19493b90@codeaurora.org> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDIsWRmVeSWpSXmKPExsWy7djP87pf/nRGGFxfK2lxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ijuGxSUnMyy1KL9O0S uDK+T5nHVrCOv2LH5rnsDYzHeLoYOTkkBEwkuq9tZIawxSQu3FvP1sXIxSEksJRRYs+JPawQ zmdGice7/rHCdPz70ssOkVjGKNF2bRMjhPOfUWLD4Z9gs9gENCX+br7JBmKLCHhLzFndxwhi MwusZ5S4dioOxBYGil/ZvIsJxGYRUJVY1nYdzOYVcJKYM3ciC8Q2OYmb5zrBZnICxRd0HmcG WSYhcJtNYuvrl0BDOYAcWYlNB6B+cJF4ev0OO4QtLPHq+BYoW0bi8uRuFojebkaJT/0n2CGc KYwS/z7MgOq2ljh8/CIrxKV8EpO2TWeGWMAr0dEmBFHiIXFl1RaosKPE9rthEM9PZZRYfvAs 2wRGmQWMDKsYRVJLi3PTU4uN9IoTc4tL89L1kvNzNzEC4/T0v+MfdzC+P2F1iFGAg1GJh/fA jo4IIdbEsuLK3EOMEhzMSiK8n393RgjxpiRWVqUW5ccXleakFh9ilOZgURLn3bPgSriQQHpi SWp2ampBahFMlomDU6qB0aH3z5lTqQethdZ1bup+9eXUxxszNZ+eOftViKPLcvrp/AI3gdMP dG5Kxa1NdtWdFTYlUGcCs57ewxhuUxffRpFD5hc1rulO7UliKtseH+WybcXbivKlEvoiJtd0 997fsmrCg9vMqfOOZ3Nem56we+a8mLSI8zFN+kf+mxQtr/HfzJeRe5tvmxJLcUaioRZzUXEi AHsTd+/PAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDLMWRmVeSWpSXmKPExsVy+t/xq7of/3RGGGz7K2xxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ij3GwyUhNTUosUUvOS 81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM04OAc4B6spG+X4Jbxfco8toJ1 /BU7Ns9lb2A8xtPFyMkhIWAi8e9LLzuELSZx4d56ti5GLg4hgSWMEpv7D7JCOI1MEovPLgOr YhPQlPi7+SYbiC0i4C0xZ3UfI0gRs8B6Rompj/+CFQkDJa5s3sUEYrMIqEosa7sOZvMKOEnM mTuRBWKdnMTNc53MIDYnUHxB53EwW0jAUaJ77iLGCYy8CxgZVjGKpJYW56bnFhvpFSfmFpfm pesl5+duYgSG7LZjP7fsYOx6F3yIUYCDUYmHN2NbR4QQa2JZcWXuIUYJDmYlEd7PvzsjhHhT EiurUovy44tKc1KLDzGaAh01kVlKNDkfGE95JfGGJobmloZGxhYW5kZGSuK8Uz9cCRcSSE8s Sc1OTS1ILYLpY+LglGpg5JosLTbx84PotcyNb5aZfNF25VN23MQSccbpNB9zM6ezaorY83m+ geZ3OwLPnS++WXmLLa3sbppfsMj5crWD7/KtXKPkpt85vHWOrUvu8qNeCVnWH34c8TwezFc2 9b5icE7DgWf9birLRF1sdmw+P9HiiD1Pe2L5x+SHtRGT9RbbNnxO1DJVYinOSDTUYi4qTgQA n/ntfW8CAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170126134315eucas1p1db71a5e2f14fd93283d14a2da4f05611 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 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: 20170126134315eucas1p1db71a5e2f14fd93283d14a2da4f05611 X-RootMTR: 20170126134315eucas1p1db71a5e2f14fd93283d14a2da4f05611 References: <201ac4dc-17c8-60bc-be13-31cc19493b90@codeaurora.org> Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz 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 Due to asynchronous nature of MHL flow of execution is dispersed. Logical continuation of some actions happens after response of peer, i.e in interrupt handler. To simplify coding continuation mechanism has been added - it is now possible to provide continuation callback, which will be called after peer responds to given action. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/bridge/sil-sii8620.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c b/drivers/gpu/drm/bridge/sil-sii8620.c index 75867c0..cde0074 100644 --- a/drivers/gpu/drm/bridge/sil-sii8620.c +++ b/drivers/gpu/drm/bridge/sil-sii8620.c @@ -78,12 +78,15 @@ struct sii8620_mt_msg; typedef void (*sii8620_mt_msg_cb)(struct sii8620 *ctx, struct sii8620_mt_msg *msg); +typedef void (*sii8620_cb)(struct sii8620 *ctx, int ret); + struct sii8620_mt_msg { struct list_head node; u8 reg[4]; u8 ret; sii8620_mt_msg_cb send; sii8620_mt_msg_cb recv; + sii8620_cb continuation; }; static const u8 sii8620_i2c_page[] = { @@ -258,6 +261,8 @@ static void sii8620_mt_work(struct sii8620 *ctx) node); if (msg->recv) msg->recv(ctx, msg); + if (msg->continuation) + msg->continuation(ctx, msg->ret); list_del(&msg->node); kfree(msg); } @@ -310,6 +315,21 @@ static struct sii8620_mt_msg *sii8620_mt_msg_new(struct sii8620 *ctx) return msg; } +static void sii8620_mt_set_cont(struct sii8620 *ctx, sii8620_cb cont) +{ + struct sii8620_mt_msg *msg; + + if (ctx->error) + return; + + if (list_empty(&ctx->mt_queue)) { + ctx->error = -EINVAL; + return; + } + msg = list_last_entry(&ctx->mt_queue, struct sii8620_mt_msg, node); + msg->continuation = cont; +} + static void sii8620_mt_msc_cmd(struct sii8620 *ctx, u8 cmd, u8 arg1, u8 arg2) { struct sii8620_mt_msg *msg = sii8620_mt_msg_new(ctx);