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.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 1465FC433FF for ; Wed, 14 Aug 2019 10:49:13 +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 D55F62063F for ; Wed, 14 Aug 2019 10:49:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="pLx1+abM" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D55F62063F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.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=IjrWSyAdkRMX174U5B0o9NQHYEUOco3viIqTvIFciYo=; b=pLx1+abMS1zARj sRC4O14P1FTS+MFTRHNTERPI5n0jYm8SvDQoKlaIz3EyOqq6YzURC17996RFw5nu7CvyIPiTbbNEo JQH+ogRMin87e+4VlHCph7iUafcsz0HsBsEPEcMeW61/YfKYvGEfaqmM5c1j+3nxr+CtsEdY+KvDX RxlW9iguMwiLi7iVgfRXf8UUxg8liimHG3oVemy/LnKkeC1F+wBe6Z1k9yLsSSeexq9RferOH0JTJ 5zgi+IS0PYleawrDm4K+xH9JtfvWD8Qtx429MVWstCgVjezNlZ1+ystEVCKVlMDtAkMqpS7cWtQtQ 4TJdvcew9EXQNPTaxDKg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hxqq1-0003nB-9N; Wed, 14 Aug 2019 10:49:05 +0000 Received: from inva021.nxp.com ([92.121.34.21]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hxqpx-0003jG-OX for linux-arm-kernel@lists.infradead.org; Wed, 14 Aug 2019 10:49:03 +0000 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 31A1F2001B8; Wed, 14 Aug 2019 12:48:57 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 207CB200184; Wed, 14 Aug 2019 12:48:57 +0200 (CEST) Received: from fsr-ub1664-120.ea.freescale.net (fsr-ub1664-120.ea.freescale.net [10.171.82.81]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id 283722060E; Wed, 14 Aug 2019 12:48:56 +0200 (CEST) From: Robert Chiras To: =?UTF-8?q?Guido=20G=C3=BCnther?= , Marek Vasut , Stefan Agner , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Fabio Estevam Subject: [PATCH v2 01/15] drm/mxsfb: Update mxsfb to support a bridge Date: Wed, 14 Aug 2019 13:48:37 +0300 Message-Id: <1565779731-1300-2-git-send-email-robert.chiras@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1565779731-1300-1-git-send-email-robert.chiras@nxp.com> References: <1565779731-1300-1-git-send-email-robert.chiras@nxp.com> MIME-Version: 1.0 X-Virus-Scanned: ClamAV using ClamSMTP X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190814_034902_073721_BDFBC269 X-CRM114-Status: GOOD ( 19.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, NXP Linux Team , Pengutronix Kernel Team , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Q3VycmVudGx5LCB0aGUgTVhTRkIgRFJNIGRyaXZlciBvbmx5IHN1cHBvcnRzIGEgcGFuZWwuIEJ1 dCwgaXRzIG91dHB1dApkaXNwbGF5IHNpZ25hbCBjYW4gYWxzbyBiZSByZWRpcmVjdGVkIHRvIGFu b3RoZXIgZW5jb2RlciwgbGlrZSBhIERTSQpjb250cm9sbGVyLiBJbiB0aGlzIGNhc2UsIHRoYXQg RFNJIGNvbnRyb2xsZXIgbWF5IGFjdCBsaWtlIGEgZHJtX2JyaWRnZS4KSW4gb3JkZXIgc3VwcG9y dCB0aGlzIHVzZS1jYXNlIHRvbywgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGRybV9icmlk Z2UKaW4gbXhzZmIuCgpTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgQ2hpcmFzIDxyb2JlcnQuY2hpcmFz QG54cC5jb20+ClRlc3RlZC1ieTogR3VpZG8gR8O8bnRoZXIgPGFneEBzaWd4Y3B1Lm9yZz4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jIHwgMTcgKysrKysrKysrKystLS0K IGRyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYyAgfCA0NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5o ICB8ICA0ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYyAgfCAyNiArKysr KysrKysrKy0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygrKSwgMjEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Ny dGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKaW5kZXggMTI0MjE1Ni4u ZGUwOWI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2NydGMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jCkBAIC05NSw4ICs5NSwxMSBA QCBzdGF0aWMgdm9pZCBteHNmYl9zZXRfYnVzX2ZtdChzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZhdGUg Km14c2ZiKQogCiAJcmVnID0gcmVhZGwobXhzZmItPmJhc2UgKyBMQ0RDX0NUUkwpOwogCi0JaWYg KG14c2ZiLT5jb25uZWN0b3IuZGlzcGxheV9pbmZvLm51bV9idXNfZm9ybWF0cykKLQkJYnVzX2Zv cm1hdCA9IG14c2ZiLT5jb25uZWN0b3IuZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdOworCWlm IChteHNmYi0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKQorCQlidXNf Zm9ybWF0ID0gbXhzZmItPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJ1c19mb3JtYXRzWzBdOwor CisJRFJNX0RFVl9ERUJVR19EUklWRVIoZHJtLT5kZXYsICJVc2luZyBidXNfZm9ybWF0OiAweCUw OFhcbiIsCisJCQkgICAgIGJ1c19mb3JtYXQpOwogCiAJcmVnICY9IH5DVFJMX0JVU19XSURUSF9N QVNLOwogCXN3aXRjaCAoYnVzX2Zvcm1hdCkgewpAQCAtMjA0LDggKzIwNyw5IEBAIHN0YXRpYyBk bWFfYWRkcl90IG14c2ZiX2dldF9mYl9wYWRkcihzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZhdGUgKm14 c2ZiKQogCiBzdGF0aWMgdm9pZCBteHNmYl9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IG14c2Zi X2RybV9wcml2YXRlICpteHNmYikKIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gbXhzZmIt PnBpcGUuY3J0Yy5kZXY7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAmbXhzZmItPnBp cGUuY3J0Yy5zdGF0ZS0+YWRqdXN0ZWRfbW9kZTsKLQljb25zdCB1MzIgYnVzX2ZsYWdzID0gbXhz ZmItPmNvbm5lY3Rvci5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzOworCWNvbnN0IHUzMiBidXNfZmxh Z3MgPSBteHNmYi0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzOwogCXUzMiB2ZGN0 cmwwLCB2c3luY19wdWxzZV9sZW4sIGhzeW5jX3B1bHNlX2xlbjsKIAlpbnQgZXJyOwogCkBAIC0y MjksNiArMjMzLDEzIEBAIHN0YXRpYyB2b2lkIG14c2ZiX2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1 Y3QgbXhzZmJfZHJtX3ByaXZhdGUgKm14c2ZiKQogCiAJY2xrX3NldF9yYXRlKG14c2ZiLT5jbGss IG0tPmNydGNfY2xvY2sgKiAxMDAwKTsKIAorCURSTV9ERVZfREVCVUdfRFJJVkVSKGRybS0+ZGV2 LCAiUGl4ZWwgY2xvY2s6ICVka0h6IChhY3R1YWw6ICVka0h6KVxuIiwKKwkJCSAgICAgbS0+Y3J0 Y19jbG9jaywKKwkJCSAgICAgKGludCkoY2xrX2dldF9yYXRlKG14c2ZiLT5jbGspIC8gMTAwMCkp OworCURSTV9ERVZfREVCVUdfRFJJVkVSKGRybS0+ZGV2LCAiQ29ubmVjdG9yIGJ1c19mbGFnczog MHglMDhYXG4iLAorCQkJICAgICBidXNfZmxhZ3MpOworCURSTV9ERVZfREVCVUdfRFJJVkVSKGRy bS0+ZGV2LCAiTW9kZSBmbGFnczogMHglMDhYXG4iLCBtLT5mbGFncyk7CisKIAl3cml0ZWwoVFJB TlNGRVJfQ09VTlRfU0VUX1ZDT1VOVChtLT5jcnRjX3ZkaXNwbGF5KSB8CiAJICAgICAgIFRSQU5T RkVSX0NPVU5UX1NFVF9IQ09VTlQobS0+Y3J0Y19oZGlzcGxheSksCiAJICAgICAgIG14c2ZiLT5i YXNlICsgbXhzZmItPmRldmRhdGEtPnRyYW5zZmVyX2NvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNm Yl9kcnYuYwppbmRleCA4NzhlZjY4Li45ZGM2OWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXhzZmIvbXhzZmJfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Ry di5jCkBAIC0xMDEsOSArMTAxLDI1IEBAIHN0YXRpYyB2b2lkIG14c2ZiX3BpcGVfZW5hYmxlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAkJCSAgICAgIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogeworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3Ry dWN0IG14c2ZiX2RybV9wcml2YXRlICpteHNmYiA9IGRybV9waXBlX3RvX214c2ZiX2RybV9wcml2 YXRlKHBpcGUpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwaXBlLT5wbGFuZS5kZXY7CiAK KwlpZiAoIW14c2ZiLT5jb25uZWN0b3IpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0 b3IsCisJCQkJICAgICZkcm0tPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAorCQkJCSAgICBo ZWFkKQorCQkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSAmbXhzZmItPnBpcGUuZW5jb2Rlcikg eworCQkJCW14c2ZiLT5jb25uZWN0b3IgPSBjb25uZWN0b3I7CisJCQkJYnJlYWs7CisJCQl9CisJ fQorCisJaWYgKCFteHNmYi0+Y29ubmVjdG9yKSB7CisJCWRldl93YXJuKGRybS0+ZGV2LCAiTm8g Y29ubmVjdG9yIGF0dGFjaGVkLCB1c2luZyBkZWZhdWx0XG4iKTsKKwkJbXhzZmItPmNvbm5lY3Rv ciA9ICZteHNmYi0+cGFuZWxfY29ubmVjdG9yOworCX0KKwogCXBtX3J1bnRpbWVfZ2V0X3N5bmMo ZHJtLT5kZXYpOwogCWRybV9wYW5lbF9wcmVwYXJlKG14c2ZiLT5wYW5lbCk7CiAJbXhzZmJfY3J0 Y19lbmFibGUobXhzZmIpOwpAQCAtMTI5LDYgKzE0NSw5IEBAIHN0YXRpYyB2b2lkIG14c2ZiX3Bp cGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCiAJCWRybV9j cnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGV2ZW50KTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJx KCZkcm0tPmV2ZW50X2xvY2spOworCisJaWYgKG14c2ZiLT5jb25uZWN0b3IgIT0gJm14c2ZiLT5w YW5lbF9jb25uZWN0b3IpCisJCW14c2ZiLT5jb25uZWN0b3IgPSBOVUxMOwogfQogCiBzdGF0aWMg dm9pZCBteHNmYl9waXBlX3VwZGF0ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUsCkBAIC0yMjYsMTYgKzI0NSwzMyBAQCBzdGF0aWMgaW50IG14c2ZiX2xvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRybSwgdW5zaWduZWQgbG9uZyBmbGFncykKIAogCXJldCA9IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlX2luaXQoZHJtLCAmbXhzZmItPnBpcGUsICZteHNmYl9mdW5jcywKIAkJCW14 c2ZiX2Zvcm1hdHMsIEFSUkFZX1NJWkUobXhzZmJfZm9ybWF0cyksIE5VTEwsCi0JCQkmbXhzZmIt PmNvbm5lY3Rvcik7CisJCQlteHNmYi0+Y29ubmVjdG9yKTsKIAlpZiAocmV0IDwgMCkgewogCQlk ZXZfZXJyKGRybS0+ZGV2LCAiQ2Fubm90IHNldHVwIHNpbXBsZSBkaXNwbGF5IHBpcGVcbiIpOwog CQlnb3RvIGVycl92Ymxhbms7CiAJfQogCi0JcmV0ID0gZHJtX3BhbmVsX2F0dGFjaChteHNmYi0+ cGFuZWwsICZteHNmYi0+Y29ubmVjdG9yKTsKLQlpZiAocmV0KSB7Ci0JCWRldl9lcnIoZHJtLT5k ZXYsICJDYW5ub3QgY29ubmVjdCBwYW5lbFxuIik7Ci0JCWdvdG8gZXJyX3ZibGFuazsKKwkvKgor CSAqIEF0dGFjaCBwYW5lbCBvbmx5IGlmIHRoZXJlIGlzIG9uZS4KKwkgKiBJZiB0aGVyZSBpcyBu byBwYW5lbCBhdHRhY2gsIGl0IG11c3QgYmUgYSBicmlkZ2UuIEluIHRoaXMgY2FzZSwgd2UKKwkg KiBuZWVkIGEgcmVmZXJlbmNlIHRvIGl0cyBjb25uZWN0b3IgZm9yIGEgcHJvcGVyIGluaXRpYWxp emF0aW9uLgorCSAqIFdlIHdpbGwgZG8gdGhpcyBjaGVjayBpbiBwaXBlLT5lbmFibGUoKSwgc2lu Y2UgdGhlIGNvbm5lY3RvciB3b24ndAorCSAqIGJlIGF0dGFjaGVkIHRvIGFuIGVuY29kZXIgdW50 aWwgdGhlbi4KKwkgKi8KKworCWlmIChteHNmYi0+cGFuZWwpIHsKKwkJcmV0ID0gZHJtX3BhbmVs X2F0dGFjaChteHNmYi0+cGFuZWwsIG14c2ZiLT5jb25uZWN0b3IpOworCQlpZiAocmV0KSB7CisJ CQlkZXZfZXJyKGRybS0+ZGV2LCAiQ2Fubm90IGNvbm5lY3QgcGFuZWw6ICVkXG4iLCByZXQpOwor CQkJZ290byBlcnJfdmJsYW5rOworCQl9CisJfSBlbHNlIGlmIChteHNmYi0+YnJpZGdlKSB7CisJ CXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0dGFjaF9icmlkZ2UoJm14c2ZiLT5waXBl LAorCQkJCQkJCSAgICBteHNmYi0+YnJpZGdlKTsKKwkJaWYgKHJldCkgeworCQkJZGV2X2Vycihk cm0tPmRldiwgIkNhbm5vdCBjb25uZWN0IGJyaWRnZTogJWRcbiIsIHJldCk7CisJCQlnb3RvIGVy cl92Ymxhbms7CisJCX0KIAl9CiAKIAlkcm0tPm1vZGVfY29uZmlnLm1pbl93aWR0aAk9IE1YU0ZC X01JTl9YUkVTOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5oCmluZGV4IGQ5NzUzMDAuLjBiNjVi NTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2LmgKQEAgLTI3LDggKzI3LDEwIEBAIHN0cnVj dCBteHNmYl9kcm1fcHJpdmF0ZSB7CiAJc3RydWN0IGNsawkJCSpjbGtfZGlzcF9heGk7CiAKIAlz dHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUJcGlwZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cgkJY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yCQlwYW5lbF9jb25uZWN0b3I7CisJ c3RydWN0IGRybV9jb25uZWN0b3IJCSpjb25uZWN0b3I7CiAJc3RydWN0IGRybV9wYW5lbAkJKnBh bmVsOworCXN0cnVjdCBkcm1fYnJpZGdlCQkqYnJpZGdlOwogfTsKIAogaW50IG14c2ZiX3NldHVw X2NydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXhzZmIvbXhzZmJfb3V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfb3V0LmMK aW5kZXggMjMxZDAxNi4uOTUwNmVlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL214c2Zi L214c2ZiX291dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9vdXQuYwpAQCAt MjEsNyArMjEsOCBAQAogc3RhdGljIHN0cnVjdCBteHNmYl9kcm1fcHJpdmF0ZSAqCiBkcm1fY29u bmVjdG9yX3RvX214c2ZiX2RybV9wcml2YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCiB7Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihjb25uZWN0b3IsIHN0cnVjdCBteHNmYl9kcm1f cHJpdmF0ZSwgY29ubmVjdG9yKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKGNvbm5lY3Rvciwgc3Ry dWN0IG14c2ZiX2RybV9wcml2YXRlLAorCQkJICAgIHBhbmVsX2Nvbm5lY3Rvcik7CiB9CiAKIHN0 YXRpYyBpbnQgbXhzZmJfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCkBAIC03NiwyMiArNzcsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIG14c2ZiX3BhbmVsX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKIGludCBteHNmYl9jcmVh dGVfb3V0cHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiB7CiAJc3RydWN0IG14c2ZiX2RybV9w cml2YXRlICpteHNmYiA9IGRybS0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9wYW5lbCAqcGFu ZWw7CiAJaW50IHJldDsKIAotCXJldCA9IGRybV9vZl9maW5kX3BhbmVsX29yX2JyaWRnZShkcm0t PmRldi0+b2Zfbm9kZSwgMCwgMCwgJnBhbmVsLCBOVUxMKTsKKwlyZXQgPSBkcm1fb2ZfZmluZF9w YW5lbF9vcl9icmlkZ2UoZHJtLT5kZXYtPm9mX25vZGUsIDAsIDAsCisJCQkJCSAgJm14c2ZiLT5w YW5lbCwgJm14c2ZiLT5icmlkZ2UpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlteHNm Yi0+Y29ubmVjdG9yLmRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKLQlteHNmYi0+Y29ubmVjdG9y LnBvbGxlZCA9IDA7Ci0JZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZteHNmYi0+Y29ubmVjdG9y LAotCQkJJm14c2ZiX3BhbmVsX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwotCXJldCA9IGRybV9j b25uZWN0b3JfaW5pdChkcm0sICZteHNmYi0+Y29ubmVjdG9yLAotCQkJCSAmbXhzZmJfcGFuZWxf Y29ubmVjdG9yX2Z1bmNzLAotCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfVW5rbm93bik7Ci0JaWYg KCFyZXQpCi0JCW14c2ZiLT5wYW5lbCA9IHBhbmVsOworCWlmIChteHNmYi0+cGFuZWwpIHsKKwkJ bXhzZmItPmNvbm5lY3RvciA9ICZteHNmYi0+cGFuZWxfY29ubmVjdG9yOworCQlteHNmYi0+Y29u bmVjdG9yLT5kcG1zID0gRFJNX01PREVfRFBNU19PRkY7CisJCW14c2ZiLT5jb25uZWN0b3ItPnBv bGxlZCA9IDA7CisJCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChteHNmYi0+Y29ubmVjdG9yLAor CQkJCQkgJm14c2ZiX3BhbmVsX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOworCQlyZXQgPSBkcm1f Y29ubmVjdG9yX2luaXQoZHJtLCBteHNmYi0+Y29ubmVjdG9yLAorCQkJCQkgJm14c2ZiX3BhbmVs X2Nvbm5lY3Rvcl9mdW5jcywKKwkJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9Vbmtub3duKTsKKwl9 CiAKIAlyZXR1cm4gcmV0OwogfQotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==