From patchwork Fri Jan 20 07:38:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrzej Hajda X-Patchwork-Id: 9527627 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 B2B7E60434 for ; Fri, 20 Jan 2017 07:39:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A238C28452 for ; Fri, 20 Jan 2017 07:39:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9556928620; Fri, 20 Jan 2017 07:39:02 +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 BD26F28452 for ; Fri, 20 Jan 2017 07:39:01 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D27EC6EB27; Fri, 20 Jan 2017 07:38:59 +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 2259F6EB21 for ; Fri, 20 Jan 2017 07:38: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 <0OK200F6BIKWOD50@mailout1.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 20 Jan 2017 07:38:56 +0000 (GMT) Received: from eusmges1.samsung.com (unknown [203.254.199.239]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170120073856eucas1p2d9bbb39f3ceb2d780a98117b8d902116~bas5MO7Tb3251532515eucas1p2O; Fri, 20 Jan 2017 07:38:56 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1.samsung.com (EUCPMTA) with SMTP id 22.B0.16908.29EB1885; Fri, 20 Jan 2017 07:38:58 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170120073855eucas1p1568d429ab0bfc41451183cca9f1c183a~bas4lS-v40080600806eucas1p1_; Fri, 20 Jan 2017 07:38:55 +0000 (GMT) X-AuditID: cbfec7ef-f79d26d00000420c-fb-5881be92668b Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E4.08.06687.ACEB1885; Fri, 20 Jan 2017 07:39:54 +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 <0OK200LE1IKT7D70@eusync1.samsung.com>; Fri, 20 Jan 2017 07:38:55 +0000 (GMT) From: Andrzej Hajda To: Archit Taneja , dri-devel@lists.freedesktop.org Subject: [PATCH 04/24] drm/bridge/sii8620: add continuations to messages Date: Fri, 20 Jan 2017 08:38:30 +0100 Message-id: <1484897930-1275-5-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1484897930-1275-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBIsWRmVeSWpSXmKPExsWy7djPc7qT9jVGGLRs07O4te4cq0VTx1tW i40z1rNaXPn6ns1i0v0JLBZrj9xld2DzuNzXy+Rxv/s4k0ffllWMAcxRXDYpqTmZZalF+nYJ XBlNx2cwFazjr9ixeS57A+Mxni5GDg4JAROJJxdluxg5gUwxiQv31rN1MXJxCAksY5TYeOAG K4TzmVGi+/BfdpiGo1MCQBrAip6uMYKo+c8o8fJOJxtIgk1AU+Lv5ptgtoiAt8Sc1X2MIDaz wHpGiWun4kBsYQEPidPX7rCCzGQRUJU4fKMQJMwr4CSx5NteVoiD5CRunutkBrE5BZwlzt/4 wgSyS0LgMZvErlurGSHukZXYdIAZot5F4tPPX2wQtrDEq+Nb2CFsGYnOjoNQvd2MEp/6T7BD OFMYJf59mAHVbS1x+PhFVohD+SQmbZvODLGAV6KjTQiixEPi1qsv0HBwlGg8mQTx+zRGiUsP bjFOYJRZwMiwilEktbQ4Nz212FCvODG3uDQvXS85P3cTIzA+T/87/n4H49PmkEOMAhyMSjy8 O040RAixJpYVV+YeYpTgYFYS4e1Z3xghxJuSWFmVWpQfX1Sak1p8iFGag0VJnHfvgivhQgLp iSWp2ampBalFMFkmDk6pBkbmBKHjKrdWzp7l9Nh80rM5rEIWbYKmz9/+OfFpnzP7JJlnb7x4 RF9+PbDjmNXapfblPFKnrv1XnPym2qpyv91rtoWF85zO+fXe2zsrZbF18IGPQb3LVN9eP539 d/eko3uSLbx2djl1RXo3ZB52X3iC43+7rENNYa5s6EW+07v+pnzm8NT2N9qmxFKckWioxVxU nAgAjFLSlcsCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJLMWRmVeSWpSXmKPExsVy+t/xy7qn9jVGGGz4Z2Rxa905Voumjres FhtnrGe1uPL1PZvFpPsTWCzWHrnL7sDmcbmvl8njfvdxJo++LasYA5ij3GwyUhNTUosUUvOS 81My89JtlUJD3HQtlBTyEnNTbZUidH1DgpQUyhJzSoE8IwM04OAc4B6spG+X4JbRdHwGU8E6 /oodm+eyNzAe4+li5OCQEDCRODoloIuRE8gUk7hwbz1bFyMXh5DAEkaJ361rmSCcRiaJdQ+/ sYJUsQloSvzdfJMNxBYR8JaYs7qPEaSIWWA9o8TUx3/ZQRLCAh4Sp6/dYQXZwCKgKnH4RiFI mFfASWLJt72sENvkJG6e62QGsTkFnCXO3/jCBFIuBFRzbZbsBEbeBYwMqxhFUkuLc9Nziw31 ihNzi0vz0vWS83M3MQKDdduxn5t3MF7aGHyIUYCDUYmHN+FYQ4QQa2JZcWXuIUYJDmYlEd6e 9Y0RQrwpiZVVqUX58UWlOanFhxhNgU6ayCwlmpwPjKS8knhDE0NzS0MjYwsLcyMjJXHekg9X woUE0hNLUrNTUwtSi2D6mDg4pRoY/a/q3U1au+/s2XbJ/xG6Dxctvb5DI7Pl9btJIVPlz1T5 OcxlZNj6JznyAZP27yx9sb4Z2o6vv3iv9M9ZMfHUa3HbypOG3naM80seqwvE/WP7bZ0wt+ry Y4FL06Sd7+V8llRZd192utxEZa/kTamXV/X9nWx9OI7j+pdYqzsHYpgfPJuY8437oRJLcUai oRZzUXEiAD4LWj5sAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170120073855eucas1p1568d429ab0bfc41451183cca9f1c183a 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: 20170120073855eucas1p1568d429ab0bfc41451183cca9f1c183a X-RootMTR: 20170120073855eucas1p1568d429ab0bfc41451183cca9f1c183a References: <1484897930-1275-1-git-send-email-a.hajda@samsung.com> 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);