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 4796BC3A59E for ; Mon, 2 Sep 2019 13:03:30 +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 123D32168B for ; Mon, 2 Sep 2019 13:03:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="UntafgxK"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="az5UkfxB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 123D32168B Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=vdorst.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=G7bZ2I2Xgs13bQSzQSnkw0OYeqTYHTqLRnq7UWQ5qr8=; b=UntafgxKraOa4m kwcBo7f+3afKQYBAIVeD72uR1j1pmUSOum2/D1IQOtQBn1ANyqhBBDfMG1QYlKv3QEstVg+mt44ab P8TES6uB5lTowJBvB7tmm866AbW7mFcRVUUSajhVvE8smqtI2PQnhW8sp3+BfVsBnzIU3BNfA3xD/ rtfxF/HIfBewqgyiXEfhsFpBYD0+z9O50P/ik8iYgM7pDooKo5FgRe7nX3BeKNrqkkmKkN/YpWuKR B7MMGySx9XEKzw1XkmcP1H2tuxqQCDYBuv9mREHNK0fhqh0pgHODwBUqsMsUP92V+IHBX43b2V1pj GugmpculHBpUlewaSAng==; 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 1i4lzN-0000l4-Qh; Mon, 02 Sep 2019 13:03:22 +0000 Received: from mx.0dd.nl ([5.2.79.48]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i4lyk-00005M-Gy; Mon, 02 Sep 2019 13:02:45 +0000 Received: from mail.vdorst.com (mail.vdorst.com [IPv6:fd01::250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.0dd.nl (Postfix) with ESMTPS id 88FF95FBAB; Mon, 2 Sep 2019 15:02:35 +0200 (CEST) Authentication-Results: mx.0dd.nl; dkim=pass (2048-bit key) header.d=vdorst.com header.i=@vdorst.com header.b="az5UkfxB"; dkim-atps=neutral Received: from pc-rene.vdorst.com (pc-rene.vdorst.com [192.168.2.232]) by mail.vdorst.com (Postfix) with ESMTPA id 466261DB401A; Mon, 2 Sep 2019 15:02:35 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.vdorst.com 466261DB401A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vdorst.com; s=default; t=1567429355; bh=f9WqKZUCC1IscPa4l+rg5ZDVraoOS3GhoWyxkIj1AVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=az5UkfxBuHD+yYDkVg2J5E3rnSrDl99dhx+QZ/Svsm2KMG2bzxBUCrXBmM6QzkQfH DVU3LsP6CFL3smaluN1R6NhnRauOGBlvMuXXE+uYoB22YckL2bTpXOh4RuFboeIdEZ 4wq9TJKTn2SCoL18pNvwf6I/FdCv7QCRb0TCd+FKQDah9uZiQ8YHWEjpJt3vSZHXIi b7EjfqV2L5UasbP62UqhmpkBN1etwJ5zxehF22DJF//bGzAO4BLkU3QUuv5VP+Ci8/ U4EsUjj5QDKO49xGkEd2s3dGbeYNHXYrHfGYdBYa/IGBw15LbNi6FVnaMxycfz8Jq7 IT6tJ/hltM/JQ== From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= To: Sean Wang , Andrew Lunn , Vivien Didelot , Florian Fainelli , "David S . Miller" , Matthias Brugger Subject: [PATCH net-next v3 1/3] net: dsa: mt7530: Convert to PHYLINK API Date: Mon, 2 Sep 2019 15:02:24 +0200 Message-Id: <20190902130226.26845-2-opensource@vdorst.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190902130226.26845-1-opensource@vdorst.com> References: <20190902130226.26845-1-opensource@vdorst.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190902_060242_850981_8F72861F X-CRM114-Status: GOOD ( 19.87 ) 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: Frank Wunderlich , netdev@vger.kernel.org, linux-mips@vger.kernel.org, Russell King , =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= , Russell King , linux-mediatek@lists.infradead.org, John Crispin , 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 Q29udmVydCBtdDc1MzAgdG8gUEhZTElOSyBBUEkKClNpZ25lZC1vZmYtYnk6IFJlbsOpIHZhbiBE b3JzdCA8b3BlbnNvdXJjZUB2ZG9yc3QuY29tPgpUZXN0ZWQtYnk6IEZyYW5rIFd1bmRlcmxpY2gg PGZyYW5rLXdAcHVibGljLWZpbGVzLmRlPgpBY2tlZC1ieTogUnVzc2VsbCBLaW5nIDxybWsra2Vy bmVsQGFybWxpbnV4Lm9yZy51az4KLS0tCnYyLT52MzoKKiBObyBjaGFuZ2UKKiBBZGQgdGFncyBh Y2tlZC1ieSBhbmQgdGVzdGVkLWJ5CnYxLT52MjoKKiBSZWZhY3RvciAidW5zdXBwb3J0ZWQiIHBo eV9pbnRlcmZhY2UgcGFydCBpbgogIG10NzUzMF9waHlsaW5rX21hY192YWxpZGF0ZSgpIHN1Z2dl c3RlZCBieSBSdXNzZWxsIEtpbmcKKiBSZXBvcnQgYW5kIHJldHVybiB3aGVuIHBoeWxpbmsgdHJp ZXMgdG8gdXNlIGF1dG9uZWdfaW5iYW5kIGluCiAgbXQ3NTMwX3BoeWxpbmtfbWFjX2NvbmZpZygp IHN1Z2dlc3RlZCBieSBSdXNzZWxsIEtpbmcKKiBSZWZhY3RvciBwb3J0IDYgc2V0dXAgaW4gbXQ3 NTMwX3BoeWxpbmtfbWFjX2NvbmZpZygpCnJmYy0+djE6CiogUmVuYW1lZCBQNV9NT0RFXyogdG8g UDVfSU5URl9TRUxfKi4gZml0cyB0aGUgZnVuY3Rpb24gbW9yZQoqIENvbnZlcnQgaWYtc3RhdGVt ZW50IGZvciBzcGVlZCBiaXRzIHRvIGEgc3dpdGNoIHN1Z2dlc3RlZCBieQogIERhbmllbCBTYW50 b3MKKiBSZWZhY3RvciBmbG93X2NvbnRyb2wgcGF1c2UgYml0cyBhbmQgZG9uJ3QgdXNlIHN0YXRl LT5saW5rIGluCiAgbXQ3NTMwX3BoeWxpbmtfbWFjX2NvbmZpZygpIHN1Z2dlc3RlZCBieSBSdXNz ZWxsIEtpbmcKKiBNb3ZlIE1BQyB0eC9yeCBlbi9kaXNhYmxlIHRvIG10NzUzMF9waHlsaW5rX21h Y19saW5rX3VwL2Rvd24oKQogIHN1Z2dlc3RlZCBieSBSdXNzZWxsIEtpbmcKKiBBbHdheXMgc3Vw cG9ydCBQSFlfSU5URVJGQUNFX01PREVfTkEgaW4gbXQ3NTMwX3BoeWxpbmtfdmFsaWRhdGUoKQog IHN1Z2dlc3RlZCBieSBSdXNzZWxsIEtpbmcKKiBBZGRlZCBwaHlsaW5rX3NldF9wb3J0X21vZGVz KCkgaW4gbXQ3NTMwX3BoeWxpbmtfdmFsaWRhdGUoKSBzdWdnZXN0ZWQKICBieSBSdXNzZWxsIEtp bmcKKiBSZW1vdmUgZGV2X2VyciBvbiB0aGUgZW5kIG9mIG10NzUzMF9waHlsaW5rX21hY19jb25m aWcoKSBzdWdnZXN0ZWQgYnkKICBSdXNzZWxsIEtpbmcKCiBkcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmMgfCAyNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJz L25ldC9kc2EvbXQ3NTMwLmggfCAgMzIgKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjExIGluc2Vy dGlvbnMoKyksIDg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9t dDc1MzAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYwppbmRleCBjNDhlMjk0ODZiMTAuLmVj YzEzYjU3ZTYxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCisrKyBiL2Ry aXZlcnMvbmV0L2RzYS9tdDc1MzAuYwpAQCAtMTMsNyArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L29mX21kaW8uaD4KICNpbmNsdWRlIDxsaW51eC9vZl9uZXQuaD4KICNpbmNsdWRlIDxsaW51eC9v Zl9wbGF0Zm9ybS5oPgotI2luY2x1ZGUgPGxpbnV4L3BoeS5oPgorI2luY2x1ZGUgPGxpbnV4L3Bo eWxpbmsuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRlIDxsaW51eC9yZWd1 bGF0b3IvY29uc3VtZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgpAQCAtNjMzLDYzICs2 MzMsNiBAQCBtdDc1MzBfZ2V0X3NzZXRfY291bnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQg cG9ydCwgaW50IHNzZXQpCiAJcmV0dXJuIEFSUkFZX1NJWkUobXQ3NTMwX21pYik7CiB9CiAKLXN0 YXRpYyB2b2lkIG10NzUzMF9hZGp1c3RfbGluayhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LAotCQkJICAgICAgIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCi17Ci0Jc3RydWN0IG10 NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7Ci0KLQlpZiAocGh5X2lzX3BzZXVkb19maXhlZF9s aW5rKHBoeWRldikpIHsKLQkJZGV2X2RiZyhwcml2LT5kZXYsICJwaHktbW9kZSBmb3IgbWFzdGVy IGRldmljZSA9ICV4XG4iLAotCQkJcGh5ZGV2LT5pbnRlcmZhY2UpOwotCi0JCS8qIFNldHVwIFRY IGNpcmN1aXQgaW5jbHVpbmcgcmVsZXZhbnQgUEFEIGFuZCBkcml2aW5nICovCi0JCW10NzUzMF9w YWRfY2xrX3NldHVwKGRzLCBwaHlkZXYtPmludGVyZmFjZSk7Ci0KLQkJaWYgKHByaXYtPmlkID09 IElEX01UNzUzMCkgewotCQkJLyogU2V0dXAgUlggY2lyY3VpdCwgcmVsZXZhbnQgUEFEIGFuZCBk cml2aW5nIG9uIHRoZQotCQkJICogaG9zdCB3aGljaCBtdXN0IGJlIHBsYWNlZCBhZnRlciB0aGUg c2V0dXAgb24gdGhlCi0JCQkgKiBkZXZpY2Ugc2lkZSBpcyBhbGwgZmluaXNoZWQuCi0JCQkgKi8K LQkJCW10NzYyM19wYWRfY2xrX3NldHVwKGRzKTsKLQkJfQotCX0gZWxzZSB7Ci0JCXUxNiBsY2xf YWR2ID0gMCwgcm10X2FkdiA9IDA7Ci0JCXU4IGZsb3djdHJsOwotCQl1MzIgbWNyID0gUE1DUl9V U0VSUF9MSU5LIHwgUE1DUl9GT1JDRV9NT0RFOwotCi0JCXN3aXRjaCAocGh5ZGV2LT5zcGVlZCkg ewotCQljYXNlIFNQRUVEXzEwMDA6Ci0JCQltY3IgfD0gUE1DUl9GT1JDRV9TUEVFRF8xMDAwOwot CQkJYnJlYWs7Ci0JCWNhc2UgU1BFRURfMTAwOgotCQkJbWNyIHw9IFBNQ1JfRk9SQ0VfU1BFRURf MTAwOwotCQkJYnJlYWs7Ci0JCX0KLQotCQlpZiAocGh5ZGV2LT5saW5rKQotCQkJbWNyIHw9IFBN Q1JfRk9SQ0VfTE5LOwotCi0JCWlmIChwaHlkZXYtPmR1cGxleCkgewotCQkJbWNyIHw9IFBNQ1Jf Rk9SQ0VfRkRYOwotCi0JCQlpZiAocGh5ZGV2LT5wYXVzZSkKLQkJCQlybXRfYWR2ID0gTFBBX1BB VVNFX0NBUDsKLQkJCWlmIChwaHlkZXYtPmFzeW1fcGF1c2UpCi0JCQkJcm10X2FkdiB8PSBMUEFf UEFVU0VfQVNZTTsKLQotCQkJbGNsX2FkdiA9IGxpbmttb2RlX2Fkdl90b19sY2xfYWR2X3QoCi0J CQkJcGh5ZGV2LT5hZHZlcnRpc2luZyk7Ci0JCQlmbG93Y3RybCA9IG1paV9yZXNvbHZlX2Zsb3dj dHJsX2ZkeChsY2xfYWR2LCBybXRfYWR2KTsKLQotCQkJaWYgKGZsb3djdHJsICYgRkxPV19DVFJM X1RYKQotCQkJCW1jciB8PSBQTUNSX1RYX0ZDX0VOOwotCQkJaWYgKGZsb3djdHJsICYgRkxPV19D VFJMX1JYKQotCQkJCW1jciB8PSBQTUNSX1JYX0ZDX0VOOwotCQl9Ci0JCW10NzUzMF93cml0ZShw cml2LCBNVDc1MzBfUE1DUl9QKHBvcnQpLCBtY3IpOwotCX0KLX0KLQogc3RhdGljIGludAogbXQ3 NTMwX2NwdV9wb3J0X2VuYWJsZShzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYsCiAJCSAgICAgICBp bnQgcG9ydCkKQEAgLTY5OCw5ICs2NDEsNiBAQCBtdDc1MzBfY3B1X3BvcnRfZW5hYmxlKHN0cnVj dCBtdDc1MzBfcHJpdiAqcHJpdiwKIAltdDc1MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BWQ19QKHBv cnQpLAogCQkgICAgIFBPUlRfU1BFQ19UQUcpOwogCi0JLyogU2V0dXAgdGhlIE1BQyBieSBkZWZh dWx0IGZvciB0aGUgY3B1IHBvcnQgKi8KLQltdDc1MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BNQ1Jf UChwb3J0KSwgUE1DUl9DUFVQX0xJTkspOwotCiAJLyogRGlzYWJsZSBhdXRvIGxlYXJuaW5nIG9u IHRoZSBjcHUgcG9ydCAqLwogCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX1BTQ19QKHBvcnQpLCBT QV9ESVMpOwogCkBAIC03MzEsOSArNjcxLDYgQEAgbXQ3NTMwX3BvcnRfZW5hYmxlKHN0cnVjdCBk c2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAKIAltdXRleF9sb2NrKCZwcml2LT5yZWdfbXV0ZXgp OwogCi0JLyogU2V0dXAgdGhlIE1BQyBmb3IgdGhlIHVzZXIgcG9ydCAqLwotCW10NzUzMF93cml0 ZShwcml2LCBNVDc1MzBfUE1DUl9QKHBvcnQpLCBQTUNSX1VTRVJQX0xJTkspOwotCiAJLyogQWxs b3cgdGhlIHVzZXIgcG9ydCBnZXRzIGNvbm5lY3RlZCB0byB0aGUgY3B1IHBvcnQgYW5kIGFsc28K IAkgKiByZXN0b3JlIHRoZSBwb3J0IG1hdHJpeCBpZiB0aGUgcG9ydCBpcyB0aGUgbWVtYmVyIG9m IGEgY2VydGFpbgogCSAqIGJyaWRnZS4KQEAgLTc0Miw3ICs2NzksNyBAQCBtdDc1MzBfcG9ydF9l bmFibGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAlwcml2LT5wb3J0c1twb3J0 XS5lbmFibGUgPSB0cnVlOwogCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX1BDUl9QKHBvcnQpLCBQ Q1JfTUFUUklYX01BU0ssCiAJCSAgIHByaXYtPnBvcnRzW3BvcnRdLnBtKTsKLQltdDc1MzBfcG9y dF9zZXRfc3RhdHVzKHByaXYsIHBvcnQsIDEpOworCW10NzUzMF9wb3J0X3NldF9zdGF0dXMocHJp diwgcG9ydCwgMCk7CiAKIAltdXRleF91bmxvY2soJnByaXYtPnJlZ19tdXRleCk7CiAKQEAgLTEy MzIsMTAgKzExNjksMTAgQEAgc3RhdGljIGludAogbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dp dGNoICpkcykKIHsKIAlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKLQlpbnQg cmV0LCBpOwotCXUzMiBpZCwgdmFsOwotCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZG47CiAJc3RydWN0 IG10NzUzMF9kdW1teV9wb2xsIHA7CisJc3RydWN0IGRldmljZV9ub2RlICpkbjsKKwl1MzIgaWQs IHZhbDsKKwlpbnQgcmV0LCBpOwogCiAJLyogVGhlIHBhcmVudCBub2RlIG9mIG1hc3RlciBuZXRk ZXYgd2hpY2ggaG9sZHMgdGhlIGNvbW1vbiBzeXN0ZW0KIAkgKiBjb250cm9sbGVyIGFsc28gaXMg dGhlIGNvbnRhaW5lciBmb3IgdHdvIEdNQUNzIG5vZGVzIHJlcHJlc2VudGluZwpAQCAtMTMwNSw2 ICsxMjQyLDggQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAl2YWwgfD0g TUhXVFJBUF9NQU5VQUw7CiAJbXQ3NTMwX3dyaXRlKHByaXYsIE1UNzUzMF9NSFdUUkFQLCB2YWwp OwogCisJcHJpdi0+cDZfaW50ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX05BOworCiAJLyog RW5hYmxlIGFuZCByZXNldCBNSUIgY291bnRlcnMgKi8KIAltdDc1MzBfbWliX3Jlc2V0KGRzKTsK IApAQCAtMTMyOSw2ICsxMjY4LDE5MSBAQCBtdDc1MzBfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2gg KmRzKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfY29u ZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCisJCQkJICAgICAgdW5zaWduZWQg aW50IG1vZGUsCisJCQkJICAgICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3Rh dGUpCit7CisJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7CisJdTMyIG1jcl9j dXIsIG1jcl9uZXc7CisKKwlzd2l0Y2ggKHBvcnQpIHsKKwljYXNlIDA6IC8qIEludGVybmFsIHBo eSAqLworCWNhc2UgMToKKwljYXNlIDI6CisJY2FzZSAzOgorCWNhc2UgNDoKKwkJaWYgKHN0YXRl LT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpCisJCQlyZXR1cm47CisJCWJy ZWFrOworCS8qIGNhc2UgNTogUG9ydCA1IGlzIG5vdCBzdXBwb3J0ZWQhICovCisJY2FzZSA2OiAv KiAxc3QgY3B1IHBvcnQgKi8KKwkJaWYgKHByaXYtPnA2X2ludGVyZmFjZSA9PSBzdGF0ZS0+aW50 ZXJmYWNlKQorCQkJYnJlYWs7CisKKwkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJICYmCisJCSAgICBzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZB Q0VfTU9ERV9UUkdNSUkpCisJCQlyZXR1cm47CisKKwkJLyogU2V0dXAgVFggY2lyY3VpdCBpbmNs dWluZyByZWxldmFudCBQQUQgYW5kIGRyaXZpbmcgKi8KKwkJbXQ3NTMwX3BhZF9jbGtfc2V0dXAo ZHMsIHN0YXRlLT5pbnRlcmZhY2UpOworCisJCWlmIChwcml2LT5pZCA9PSBJRF9NVDc1MzApIHsK KwkJCS8qIFNldHVwIFJYIGNpcmN1aXQsIHJlbGV2YW50IFBBRCBhbmQgZHJpdmluZyBvbiB0aGUK KwkJCSAqIGhvc3Qgd2hpY2ggbXVzdCBiZSBwbGFjZWQgYWZ0ZXIgdGhlIHNldHVwIG9uIHRoZQor CQkJICogZGV2aWNlIHNpZGUgaXMgYWxsIGZpbmlzaGVkLgorCQkJICovCisJCQltdDc2MjNfcGFk X2Nsa19zZXR1cChkcyk7CisJCX0KKworCQlwcml2LT5wNl9pbnRlcmZhY2UgPSBzdGF0ZS0+aW50 ZXJmYWNlOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKGRzLT5kZXYsICIlczogdW5z dXBwb3J0ZWQgcG9ydDogJWlcbiIsIF9fZnVuY19fLCBwb3J0KTsKKwkJcmV0dXJuOworCX0KKwor CWlmIChwaHlsaW5rX2F1dG9uZWdfaW5iYW5kKG1vZGUpKSB7CisJCWRldl9lcnIoZHMtPmRldiwg IiVzOiBpbi1iYW5kIG5lZ290aWF0aW9uIHVuc3VwcG9ydGVkXG4iLAorCQkJX19mdW5jX18pOwor CQlyZXR1cm47CisJfQorCisJbWNyX2N1ciA9IG10NzUzMF9yZWFkKHByaXYsIE1UNzUzMF9QTUNS X1AocG9ydCkpOworCW1jcl9uZXcgPSBtY3JfY3VyOworCW1jcl9uZXcgJj0gfihQTUNSX0ZPUkNF X1NQRUVEXzEwMDAgfCBQTUNSX0ZPUkNFX1NQRUVEXzEwMCB8CisJCSAgICAgUE1DUl9GT1JDRV9G RFggfCBQTUNSX1RYX0ZDX0VOIHwgUE1DUl9SWF9GQ19FTik7CisJbWNyX25ldyB8PSBQTUNSX0lG R19YTUlUKDEpIHwgUE1DUl9NQUNfTU9ERSB8IFBNQ1JfQkFDS09GRl9FTiB8CisJCSAgIFBNQ1Jf QkFDS1BSX0VOIHwgUE1DUl9GT1JDRV9NT0RFIHwgUE1DUl9GT1JDRV9MTks7CisKKwlzd2l0Y2gg KHN0YXRlLT5zcGVlZCkgeworCWNhc2UgU1BFRURfMTAwMDoKKwkJbWNyX25ldyB8PSBQTUNSX0ZP UkNFX1NQRUVEXzEwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwOgorCQltY3JfbmV3IHw9 IFBNQ1JfRk9SQ0VfU1BFRURfMTAwOworCQlicmVhazsKKwl9CisJaWYgKHN0YXRlLT5kdXBsZXgg PT0gRFVQTEVYX0ZVTEwpIHsKKwkJbWNyX25ldyB8PSBQTUNSX0ZPUkNFX0ZEWDsKKwkJaWYgKHN0 YXRlLT5wYXVzZSAmIE1MT19QQVVTRV9UWCkKKwkJCW1jcl9uZXcgfD0gUE1DUl9UWF9GQ19FTjsK KwkJaWYgKHN0YXRlLT5wYXVzZSAmIE1MT19QQVVTRV9SWCkKKwkJCW1jcl9uZXcgfD0gUE1DUl9S WF9GQ19FTjsKKwl9CisKKwlpZiAobWNyX25ldyAhPSBtY3JfY3VyKQorCQltdDc1MzBfd3JpdGUo cHJpdiwgTVQ3NTMwX1BNQ1JfUChwb3J0KSwgbWNyX25ldyk7Cit9CisKK3N0YXRpYyB2b2lkIG10 NzUzMF9waHlsaW5rX21hY19saW5rX2Rvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9y dCwKKwkJCQkJIHVuc2lnbmVkIGludCBtb2RlLAorCQkJCQkgcGh5X2ludGVyZmFjZV90IGludGVy ZmFjZSkKK3sKKwlzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsKKworCW10NzUz MF9wb3J0X3NldF9zdGF0dXMocHJpdiwgcG9ydCwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIG10NzUz MF9waHlsaW5rX21hY19saW5rX3VwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCisJ CQkJICAgICAgIHVuc2lnbmVkIGludCBtb2RlLAorCQkJCSAgICAgICBwaHlfaW50ZXJmYWNlX3Qg aW50ZXJmYWNlLAorCQkJCSAgICAgICBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCXN0 cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2OworCisJbXQ3NTMwX3BvcnRfc2V0X3N0 YXR1cyhwcml2LCBwb3J0LCAxKTsKK30KKworc3RhdGljIHZvaWQgbXQ3NTMwX3BoeWxpbmtfdmFs aWRhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKKwkJCQkgICAgdW5zaWduZWQg bG9uZyAqc3VwcG9ydGVkLAorCQkJCSAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0 ZSkKK3sKKwlfX0VUSFRPT0xfREVDTEFSRV9MSU5LX01PREVfTUFTSyhtYXNrKSA9IHsgMCwgfTsK KworCXN3aXRjaCAocG9ydCkgeworCWNhc2UgMDogLyogSW50ZXJuYWwgcGh5ICovCisJY2FzZSAx OgorCWNhc2UgMjoKKwljYXNlIDM6CisJY2FzZSA0OgorCQlpZiAoc3RhdGUtPmludGVyZmFjZSAh PSBQSFlfSU5URVJGQUNFX01PREVfTkEgJiYKKwkJICAgIHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZ X0lOVEVSRkFDRV9NT0RFX0dNSUkpCisJCQlnb3RvIHVuc3VwcG9ydGVkOworCQlicmVhazsKKwkv KiBjYXNlIDU6IFBvcnQgNSBub3Qgc3VwcG9ydGVkISAqLworCWNhc2UgNjogLyogMXN0IGNwdSBw b3J0ICovCisJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAm JgorCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUkgJiYK KwkJICAgIHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX1RSR01JSSkKKwkJ CWdvdG8gdW5zdXBwb3J0ZWQ7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoZHMtPmRl diwgIiVzOiB1bnN1cHBvcnRlZCBwb3J0OiAlaVxuIiwgX19mdW5jX18sIHBvcnQpOwordW5zdXBw b3J0ZWQ6CisJCWxpbmttb2RlX3plcm8oc3VwcG9ydGVkKTsKKwkJcmV0dXJuOworCX0KKworCXBo eWxpbmtfc2V0X3BvcnRfbW9kZXMobWFzayk7CisJcGh5bGlua19zZXQobWFzaywgQXV0b25lZyk7 CisKKwlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7 CisJCXBoeWxpbmtfc2V0KG1hc2ssIDEwYmFzZVRfSGFsZik7CisJCXBoeWxpbmtfc2V0KG1hc2ss IDEwYmFzZVRfRnVsbCk7CisJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMGJhc2VUX0hhbGYpOworCQlw aHlsaW5rX3NldChtYXNrLCAxMDBiYXNlVF9GdWxsKTsKKwkJcGh5bGlua19zZXQobWFzaywgMTAw MGJhc2VUX0hhbGYpOworCX0KKworCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9GdWxsKTsK KworCXBoeWxpbmtfc2V0KG1hc2ssIFBhdXNlKTsKKwlwaHlsaW5rX3NldChtYXNrLCBBc3ltX1Bh dXNlKTsKKworCWxpbmttb2RlX2FuZChzdXBwb3J0ZWQsIHN1cHBvcnRlZCwgbWFzayk7CisJbGlu a21vZGVfYW5kKHN0YXRlLT5hZHZlcnRpc2luZywgc3RhdGUtPmFkdmVydGlzaW5nLCBtYXNrKTsK K30KKworc3RhdGljIGludAorbXQ3NTMwX3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUoc3RydWN0IGRz YV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKKwkJCSAgICAgIHN0cnVjdCBwaHlsaW5rX2xpbmtfc3Rh dGUgKnN0YXRlKQoreworCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2OworCXUz MiBwbXNyOworCisJaWYgKHBvcnQgPCAwIHx8IHBvcnQgPj0gTVQ3NTMwX05VTV9QT1JUUykKKwkJ cmV0dXJuIC1FSU5WQUw7CisKKwlwbXNyID0gbXQ3NTMwX3JlYWQocHJpdiwgTVQ3NTMwX1BNU1Jf UChwb3J0KSk7CisKKwlzdGF0ZS0+bGluayA9IChwbXNyICYgUE1TUl9MSU5LKTsKKwlzdGF0ZS0+ YW5fY29tcGxldGUgPSBzdGF0ZS0+bGluazsKKwlzdGF0ZS0+ZHVwbGV4ID0gISEocG1zciAmIFBN U1JfRFBYKTsKKworCXN3aXRjaCAocG1zciAmIFBNU1JfU1BFRURfTUFTSykgeworCWNhc2UgUE1T Ul9TUEVFRF8xMDoKKwkJc3RhdGUtPnNwZWVkID0gU1BFRURfMTA7CisJCWJyZWFrOworCWNhc2Ug UE1TUl9TUEVFRF8xMDA6CisJCXN0YXRlLT5zcGVlZCA9IFNQRUVEXzEwMDsKKwkJYnJlYWs7CisJ Y2FzZSBQTVNSX1NQRUVEXzEwMDA6CisJCXN0YXRlLT5zcGVlZCA9IFNQRUVEXzEwMDA7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXN0YXRlLT5zcGVlZCA9IFNQRUVEX1VOS05PV047CisJCWJyZWFr OworCX0KKworCXN0YXRlLT5wYXVzZSAmPSB+KE1MT19QQVVTRV9SWCB8IE1MT19QQVVTRV9UWCk7 CisJaWYgKHBtc3IgJiBQTVNSX1JYX0ZDKQorCQlzdGF0ZS0+cGF1c2UgfD0gTUxPX1BBVVNFX1JY OworCWlmIChwbXNyICYgUE1TUl9UWF9GQykKKwkJc3RhdGUtPnBhdXNlIHw9IE1MT19QQVVTRV9U WDsKKworCXJldHVybiAxOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3Bz IG10NzUzMF9zd2l0Y2hfb3BzID0gewogCS5nZXRfdGFnX3Byb3RvY29sCT0gbXRrX2dldF90YWdf cHJvdG9jb2wsCiAJLnNldHVwCQkJPSBtdDc1MzBfc2V0dXAsCkBAIC0xMzM3LDcgKzE0NjEsNiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIG10NzUzMF9zd2l0Y2hfb3BzID0g ewogCS5waHlfd3JpdGUJCT0gbXQ3NTMwX3BoeV93cml0ZSwKIAkuZ2V0X2V0aHRvb2xfc3RhdHMJ PSBtdDc1MzBfZ2V0X2V0aHRvb2xfc3RhdHMsCiAJLmdldF9zc2V0X2NvdW50CQk9IG10NzUzMF9n ZXRfc3NldF9jb3VudCwKLQkuYWRqdXN0X2xpbmsJCT0gbXQ3NTMwX2FkanVzdF9saW5rLAogCS5w b3J0X2VuYWJsZQkJPSBtdDc1MzBfcG9ydF9lbmFibGUsCiAJLnBvcnRfZGlzYWJsZQkJPSBtdDc1 MzBfcG9ydF9kaXNhYmxlLAogCS5wb3J0X3N0cF9zdGF0ZV9zZXQJPSBtdDc1MzBfc3RwX3N0YXRl X3NldCwKQEAgLTEzNTAsNiArMTQ3MywxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0 Y2hfb3BzIG10NzUzMF9zd2l0Y2hfb3BzID0gewogCS5wb3J0X3ZsYW5fcHJlcGFyZQk9IG10NzUz MF9wb3J0X3ZsYW5fcHJlcGFyZSwKIAkucG9ydF92bGFuX2FkZAkJPSBtdDc1MzBfcG9ydF92bGFu X2FkZCwKIAkucG9ydF92bGFuX2RlbAkJPSBtdDc1MzBfcG9ydF92bGFuX2RlbCwKKwkucGh5bGlu a192YWxpZGF0ZQk9IG10NzUzMF9waHlsaW5rX3ZhbGlkYXRlLAorCS5waHlsaW5rX21hY19saW5r X3N0YXRlID0gbXQ3NTMwX3BoeWxpbmtfbWFjX2xpbmtfc3RhdGUsCisJLnBoeWxpbmtfbWFjX2Nv bmZpZwk9IG10NzUzMF9waHlsaW5rX21hY19jb25maWcsCisJLnBoeWxpbmtfbWFjX2xpbmtfZG93 bgk9IG10NzUzMF9waHlsaW5rX21hY19saW5rX2Rvd24sCisJLnBoeWxpbmtfbWFjX2xpbmtfdXAJ PSBtdDc1MzBfcGh5bGlua19tYWNfbGlua191cCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkIG10NzUzMF9vZl9tYXRjaFtdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oCmluZGV4IGJmYWM5MGY0 ODEwMi4uMTA3ZGQwNGFjZWRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgK KysrIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oCkBAIC0xOTgsMjYgKzE5OCwyMCBAQCBlbnVt IG10NzUzMF92bGFuX3BvcnRfYXR0ciB7CiAjZGVmaW5lICBQTUNSX0ZPUkNFX1NQRUVEXzEwMAkJ QklUKDIpCiAjZGVmaW5lICBQTUNSX0ZPUkNFX0ZEWAkJCUJJVCgxKQogI2RlZmluZSAgUE1DUl9G T1JDRV9MTksJCQlCSVQoMCkKLSNkZWZpbmUgIFBNQ1JfQ09NTU9OX0xJTksJCShQTUNSX0lGR19Y TUlUKDEpIHwgUE1DUl9NQUNfTU9ERSB8IFwKLQkJCQkJIFBNQ1JfQkFDS09GRl9FTiB8IFBNQ1Jf QkFDS1BSX0VOIHwgXAotCQkJCQkgUE1DUl9UWF9FTiB8IFBNQ1JfUlhfRU4gfCBcCi0JCQkJCSBQ TUNSX1RYX0ZDX0VOIHwgUE1DUl9SWF9GQ19FTikKLSNkZWZpbmUgIFBNQ1JfQ1BVUF9MSU5LCQkJ KFBNQ1JfQ09NTU9OX0xJTksgfCBQTUNSX0ZPUkNFX01PREUgfCBcCi0JCQkJCSBQTUNSX0ZPUkNF X1NQRUVEXzEwMDAgfCBcCi0JCQkJCSBQTUNSX0ZPUkNFX0ZEWCB8IFwKLQkJCQkJIFBNQ1JfRk9S Q0VfTE5LKQotI2RlZmluZSAgUE1DUl9VU0VSUF9MSU5LCQlQTUNSX0NPTU1PTl9MSU5LCi0jZGVm aW5lICBQTUNSX0ZJWEVEX0xJTksJCShQTUNSX0lGR19YTUlUKDEpIHwgUE1DUl9NQUNfTU9ERSB8 IFwKLQkJCQkJIFBNQ1JfRk9SQ0VfTU9ERSB8IFBNQ1JfVFhfRU4gfCBcCi0JCQkJCSBQTUNSX1JY X0VOIHwgUE1DUl9CQUNLUFJfRU4gfCBcCi0JCQkJCSBQTUNSX0JBQ0tPRkZfRU4gfCBcCi0JCQkJ CSBQTUNSX0ZPUkNFX1NQRUVEXzEwMDAgfCBcCi0JCQkJCSBQTUNSX0ZPUkNFX0ZEWCB8IFwKLQkJ CQkJIFBNQ1JfRk9SQ0VfTE5LKQotI2RlZmluZSBQTUNSX0ZJWEVEX0xJTktfRkMJCShQTUNSX0ZJ WEVEX0xJTksgfCBcCi0JCQkJCSBQTUNSX1RYX0ZDX0VOIHwgUE1DUl9SWF9GQ19FTikKKyNkZWZp bmUgIFBNQ1JfU1BFRURfTUFTSwkJKFBNQ1JfRk9SQ0VfU1BFRURfMTAwIHwgXAorCQkJCQkgUE1D Ul9GT1JDRV9TUEVFRF8xMDAwKQogCiAjZGVmaW5lIE1UNzUzMF9QTVNSX1AoeCkJCSgweDMwMDgg KyAoeCkgKiAweDEwMCkKKyNkZWZpbmUgIFBNU1JfRUVFMUcJCQlCSVQoNykKKyNkZWZpbmUgIFBN U1JfRUVFMTAwTQkJCUJJVCg2KQorI2RlZmluZSAgUE1TUl9SWF9GQwkJCUJJVCg1KQorI2RlZmlu ZSAgUE1TUl9UWF9GQwkJCUJJVCg0KQorI2RlZmluZSAgUE1TUl9TUEVFRF8xMDAwCQlCSVQoMykK KyNkZWZpbmUgIFBNU1JfU1BFRURfMTAwCQkJQklUKDIpCisjZGVmaW5lICBQTVNSX1NQRUVEXzEw CQkJMHgwMAorI2RlZmluZSAgUE1TUl9TUEVFRF9NQVNLCQkoUE1TUl9TUEVFRF8xMDAgfCBQTVNS X1NQRUVEXzEwMDApCisjZGVmaW5lICBQTVNSX0RQWAkJCUJJVCgxKQorI2RlZmluZSAgUE1TUl9M SU5LCQkJQklUKDApCiAKIC8qIFJlZ2lzdGVyIGZvciBNSUIgKi8KICNkZWZpbmUgTVQ3NTMwX1BP UlRfTUlCX0NPVU5URVIoeCkJKDB4NDAwMCArICh4KSAqIDB4MTAwKQpAQCAtNDIzLDYgKzQxNyw3 IEBAIHN0cnVjdCBtdDc1MzBfcG9ydCB7CiAgKiBAcG9ydHM6CQlIb2xkaW5nIHRoZSBzdGF0ZSBh bW9uZyBwb3J0cwogICogQHJlZ19tdXRleDoJCVRoZSBsb2NrIGZvciBwcm90ZWN0aW5nIGFtb25n IHByb2Nlc3MgYWNjZXNzaW5nCiAgKgkJCXJlZ2lzdGVycworICogQHA2X2ludGVyZmFjZQlIb2xk aW5nIHRoZSBjdXJyZW50IHBvcnQgNiBpbnRlcmZhY2UKICAqLwogc3RydWN0IG10NzUzMF9wcml2 IHsKIAlzdHJ1Y3QgZGV2aWNlCQkqZGV2OwpAQCAtNDM1LDYgKzQzMCw3IEBAIHN0cnVjdCBtdDc1 MzBfcHJpdiB7CiAJc3RydWN0IGdwaW9fZGVzYwkqcmVzZXQ7CiAJdW5zaWduZWQgaW50CQlpZDsK IAlib29sCQkJbWNtOworCXBoeV9pbnRlcmZhY2VfdAkJcDZfaW50ZXJmYWNlOwogCiAJc3RydWN0 IG10NzUzMF9wb3J0CXBvcnRzW01UNzUzMF9OVU1fUE9SVFNdOwogCS8qIHByb3RlY3QgYW1vbmcg cHJvY2Vzc2VzIGZvciByZWdpc3RlcnMgYWNjZXNzKi8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK