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=-13.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 B7FE7C43387 for ; Tue, 8 Jan 2019 16:32:54 +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 849BD2070B for ; Tue, 8 Jan 2019 16:32:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="L26RuEV5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 849BD2070B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.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=2cIXddN0hvbmL/0vvcjTRi176aCFg8YlUky8QM+tnGk=; b=L26RuEV5TFbw+V NkUAk7GiRcOfEv3GXZmM4NfM6h6Cwn6XOCB/Z04LccF5VJwfymjU6YPbK84z4apOZ2SwwcaLo5ao7 N/mQ+a+/2JYfDxZTIhMvkLkcTl38kP+H4a++lYGHSxRkSpG0jir1oUrUSmHBPstsEs8D2KgFqKPiY ySlsbSppdKny/suLHWz8UAbILAwB52guaSENb6it9wDNUh2ycjuitCtAeKD7Bs6vZ3D4qMILi2DK1 V20eUCp01SssTl9a4a7r3ivY/ZAYIba366jvEBsa9RvIRC3SEVHuYfVkUttWauIiUmTB6zCybRUya u7XDHZ9wwZ06gle3X/OA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gguJ6-00009k-GS; Tue, 08 Jan 2019 16:32:48 +0000 Received: from mail.bootlin.com ([62.4.15.54]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gguI1-0007YD-S4 for linux-arm-kernel@lists.infradead.org; Tue, 08 Jan 2019 16:31:57 +0000 Received: by mail.bootlin.com (Postfix, from userid 110) id D180F209D7; Tue, 8 Jan 2019 17:31:40 +0100 (CET) Received: from localhost.localdomain (aaubervilliers-681-1-45-241.w90-88.abo.wanadoo.fr [90.88.163.241]) by mail.bootlin.com (Postfix) with ESMTPSA id 0864620A0D; Tue, 8 Jan 2019 17:31:27 +0100 (CET) From: Miquel Raynal To: Gregory Clement , Jason Cooper , Andrew Lunn , Sebastian Hesselbarth , Kishon Vijay Abraham I Subject: [PATCH v5 3/7] phy: add A3700 COMPHY support Date: Tue, 8 Jan 2019 17:31:20 +0100 Message-Id: <20190108163124.6409-4-miquel.raynal@bootlin.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190108163124.6409-1-miquel.raynal@bootlin.com> References: <20190108163124.6409-1-miquel.raynal@bootlin.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190108_083142_321808_0F4D77B1 X-CRM114-Status: GOOD ( 24.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Antoine Tenart , Grzegorz Jaszczyk , linux-kernel@vger.kernel.org, Evan Wang , Maxime Chevallier , Nadav Haklai , Rob Herring , Thomas Petazzoni , Miquel Raynal , Marcin Wojtas , 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 QWRkIGEgZHJpdmVyIHRvIHN1cHBvcnQgQ09NUEhZLCBhIGhhcmR3YXJlIGJsb2NrIHByb3ZpZGlu ZyBzaGFyZWQKc2VyZGVzIFBIWXMgb24gTWFydmVsbCBBcm1hZGEgMzcwMC4gVGhpcyBkcml2ZXIg dXNlcyBTTUMgY2FsbHMgYW5kCnJlbHkgb24gaGF2aW5nIGFuIHVwLXRvLWRhdGUgZmlybXdhcmUu CgpTQVRBLCBQQ2llIGFuZCBVU0IzIGhvc3QgbW9kZSBoYXZlIGJlZW4gdGVzdGVkIHN1Y2Nlc3Nm dWxseSB3aXRoIGFuCkVTUFJFU1NPYmluLiAoSFMpU0dNSUkgbW9kZSBjYW5ub3QgYmUgdGVzdGVk IHdpdGggdGhpcyBwbGF0Zm9ybS4KCkV2YW4gd29ya2VkIG9uIHRoZSBvcmlnaW5hbCBkcml2ZXIg c3RydWN0dXJlIGFuZCBHcnplZ29yeiBvbiB0aGUgU01DCmNhbGxzIHJld29yay4gVGhlIHN0cnVj dHVyZSBvZiB0aGlzIGRyaXZlciBoYXMgYmVlbiBjb3BpZWQgZnJvbQpBbnRvaW5lIFRlbmFydCB3 b3JrIG9uIENQMTEwIENPTVBIWSBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBNaXF1ZWwgUmF5bmFs IDxtaXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tPgpDby1kZXZlbG9wZWQtYnk6IEV2YW4gV2FuZyA8 eHN3YW5nQG1hcnZlbGwuY29tPgpTaWduZWQtb2ZmLWJ5OiBFdmFuIFdhbmcgPHhzd2FuZ0BtYXJ2 ZWxsLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBHcnplZ29yeiBKYXN6Y3p5ayA8amF6QHNlbWloYWxm LmNvbT4KU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogSmFzemN6eWsgPGphekBzZW1paGFsZi5jb20+ Ci0tLQogZHJpdmVycy9waHkvbWFydmVsbC9LY29uZmlnICAgICAgICAgICAgICAgICAgfCAgMTIg KwogZHJpdmVycy9waHkvbWFydmVsbC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9waHkvbWFydmVsbC9waHktbXZlYnUtYTM3MDAtY29tcGh5LmMgfCAzMTggKysrKysr KysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMzEgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1LWEzNzAwLWNvbXBoeS5j CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvbWFydmVsbC9LY29uZmlnIGIvZHJpdmVycy9waHkv bWFydmVsbC9LY29uZmlnCmluZGV4IDZmYjRiNTZlNGMxNC4uOWM5MGMwNDA4ZWEzIDEwMDY0NAot LS0gYS9kcml2ZXJzL3BoeS9tYXJ2ZWxsL0tjb25maWcKKysrIGIvZHJpdmVycy9waHkvbWFydmVs bC9LY29uZmlnCkBAIC0yMSw2ICsyMSwxOCBAQCBjb25maWcgUEhZX0JFUkxJTl9VU0IKIAloZWxw CiAJICBFbmFibGUgdGhpcyB0byBzdXBwb3J0IHRoZSBVU0IgUEhZIG9uIE1hcnZlbGwgQmVybGlu IFNvQ3MuCiAKK2NvbmZpZyBQSFlfTVZFQlVfQTM3MDBfQ09NUEhZCisJdHJpc3RhdGUgIk1hcnZl bGwgQTM3MDAgY29tcGh5IGRyaXZlciIKKwlkZXBlbmRzIG9uIEFSQ0hfTVZFQlUgfHwgQ09NUElM RV9URVNUCisJZGVwZW5kcyBvbiBPRgorCWRlcGVuZHMgb24gSEFWRV9BUk1fU01DQ0MKKwlkZWZh dWx0IHkKKwlzZWxlY3QgR0VORVJJQ19QSFkKKwloZWxwCisJICBUaGlzIGRyaXZlciBhbGxvd3Mg dG8gY29udHJvbCB0aGUgY29tcGh5LCBhIGhhcmR3YXJlIGJsb2NrIHByb3ZpZGluZworCSAgc2hh cmVkIHNlcmRlcyBQSFlzIG9uIE1hcnZlbGwgQXJtYWRhIDM3MDAuIEl0cyBzZXJkZXMgbGFuZXMg Y2FuIGJlCisJICB1c2VkIGJ5IHZhcmlvdXMgY29udHJvbGxlcnM6IEV0aGVybmV0LCBTQVRBLCBV U0IzLCBQQ0llLgorCiBjb25maWcgUEhZX01WRUJVX0NQMTEwX0NPTVBIWQogCXRyaXN0YXRlICJN YXJ2ZWxsIENQMTEwIGNvbXBoeSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBBUkNIX01WRUJVIHx8IENP TVBJTEVfVEVTVApkaWZmIC0tZ2l0IGEvZHJpdmVycy9waHkvbWFydmVsbC9NYWtlZmlsZSBiL2Ry aXZlcnMvcGh5L21hcnZlbGwvTWFrZWZpbGUKaW5kZXggMzk3NWIxNDRmOGVjLi5jMTNhMGM4YWI2 ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGh5L21hcnZlbGwvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9waHkvbWFydmVsbC9NYWtlZmlsZQpAQCAtMiw2ICsyLDcgQEAKIG9iai0kKENPTkZJR19BUk1B REEzNzVfVVNCQ0xVU1RFUl9QSFkpCSs9IHBoeS1hcm1hZGEzNzUtdXNiMi5vCiBvYmotJChDT05G SUdfUEhZX0JFUkxJTl9TQVRBKQkJKz0gcGh5LWJlcmxpbi1zYXRhLm8KIG9iai0kKENPTkZJR19Q SFlfQkVSTElOX1VTQikJCSs9IHBoeS1iZXJsaW4tdXNiLm8KK29iai0kKENPTkZJR19QSFlfTVZF QlVfQTM3MDBfQ09NUEhZKQkrPSBwaHktbXZlYnUtYTM3MDAtY29tcGh5Lm8KIG9iai0kKENPTkZJ R19QSFlfTVZFQlVfQ1AxMTBfQ09NUEhZKQkrPSBwaHktbXZlYnUtY3AxMTAtY29tcGh5Lm8KIG9i ai0kKENPTkZJR19QSFlfTVZFQlVfU0FUQSkJCSs9IHBoeS1tdmVidS1zYXRhLm8KIG9iai0kKENP TkZJR19QSFlfUFhBXzI4Tk1fSFNJQykJCSs9IHBoeS1weGEtMjhubS1oc2ljLm8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGh5L21hcnZlbGwvcGh5LW12ZWJ1LWEzNzAwLWNvbXBoeS5jIGIvZHJpdmVy cy9waHkvbWFydmVsbC9waHktbXZlYnUtYTM3MDAtY29tcGh5LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ODEyYTEwNGMyMzMKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL3BoeS9tYXJ2ZWxsL3BoeS1tdmVidS1hMzcwMC1jb21waHkuYwpAQCAtMCwwICsxLDMx OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBDb3B5cmln aHQgKEMpIDIwMTggTWFydmVsbAorICoKKyAqIEF1dGhvcnM6CisgKiAgIEV2YW4gV2FuZyA8eHN3 YW5nQG1hcnZlbGwuY29tPgorICogICBNaXF1w6hsIFJheW5hbCA8bWlxdWVsLnJheW5hbEBib290 bGluLmNvbT4KKyAqCisgKiBTdHJ1Y3R1cmUgaW5zcGlyZWQgZnJvbSBwaHktbXZlYnUtY3AxMTAt Y29tcGh5LmMgd3JpdHRlbiBieSBBbnRvaW5lIFRlbmFydC4KKyAqIFNNQyBjYWxsIGluaXRpYWwg c3VwcG9ydCBkb25lIGJ5IEdyemVnb3J6IEphc3pjenlrLgorICovCisKKyNpbmNsdWRlIDxsaW51 eC9hcm0tc21jY2MuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2lv cG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9waHkvcGh5 Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNkZWZpbmUgTVZFQlVf QTM3MDBfQ09NUEhZX0xBTkVTCQkzCisjZGVmaW5lIE1WRUJVX0EzNzAwX0NPTVBIWV9QT1JUUwkJ MgorCisvKiBDT01QSFkgRmFzdCBTTUMgZnVuY3Rpb24gaWRlbnRpZmllcnMgKi8KKyNkZWZpbmUg Q09NUEhZX1NJUF9QT1dFUl9PTgkJCTB4ODIwMDAwMDEKKyNkZWZpbmUgQ09NUEhZX1NJUF9QT1dF Ul9PRkYJCQkweDgyMDAwMDAyCisjZGVmaW5lIENPTVBIWV9TSVBfUExMX0xPQ0sJCQkweDgyMDAw MDAzCisKKyNkZWZpbmUgQ09NUEhZX0ZXX01PREVfU0FUQQkJCTB4MQorI2RlZmluZSBDT01QSFlf RldfTU9ERV9TR01JSQkJCTB4MgorI2RlZmluZSBDT01QSFlfRldfTU9ERV9IU19TR01JSQkJCTB4 MworI2RlZmluZSBDT01QSFlfRldfTU9ERV9VU0IzSAkJCTB4NAorI2RlZmluZSBDT01QSFlfRldf TU9ERV9VU0IzRAkJCTB4NQorI2RlZmluZSBDT01QSFlfRldfTU9ERV9QQ0lFCQkJMHg2CisjZGVm aW5lIENPTVBIWV9GV19NT0RFX1JYQVVJCQkJMHg3CisjZGVmaW5lIENPTVBIWV9GV19NT0RFX1hG SQkJCTB4OAorI2RlZmluZSBDT01QSFlfRldfTU9ERV9TRkkJCQkweDkKKyNkZWZpbmUgQ09NUEhZ X0ZXX01PREVfVVNCMwkJCTB4YQorCisjZGVmaW5lIENPTVBIWV9GV19TUEVFRF8xXzI1RwkJCTAg LyogU0dNSUkgMUcgKi8KKyNkZWZpbmUgQ09NUEhZX0ZXX1NQRUVEXzJfNUcJCQkxCisjZGVmaW5l IENPTVBIWV9GV19TUEVFRF8zXzEyNUcJCQkyIC8qIFNHTUlJIDIuNUcgKi8KKyNkZWZpbmUgQ09N UEhZX0ZXX1NQRUVEXzVHCQkJMworI2RlZmluZSBDT01QSFlfRldfU1BFRURfNV8xNTYyNUcJCTQg LyogWEZJIDVHICovCisjZGVmaW5lIENPTVBIWV9GV19TUEVFRF82RwkJCTUKKyNkZWZpbmUgQ09N UEhZX0ZXX1NQRUVEXzEwXzMxMjVHCQk2IC8qIFhGSSAxMEcgKi8KKyNkZWZpbmUgQ09NUEhZX0ZX X1NQRUVEX01BWAkJCTB4M0YKKworI2RlZmluZSBDT01QSFlfRldfTU9ERShtb2RlKQkJCSgobW9k ZSkgPDwgMTIpCisjZGVmaW5lIENPTVBIWV9GV19ORVQobW9kZSwgaWR4LCBzcGVlZCkJCShDT01Q SFlfRldfTU9ERShtb2RlKSB8IFwKKwkJCQkJCSAoKGlkeCkgPDwgOCkgfAlcCisJCQkJCQkgKChz cGVlZCkgPDwgMikpCisjZGVmaW5lIENPTVBIWV9GV19QQ0lFKG1vZGUsIGlkeCwgc3BlZWQsIHdp ZHRoKQkoQ09NUEhZX0ZXX05FVChtb2RlLCBpZHgsIHNwZWVkKSB8IFwKKwkJCQkJCSAoKHdpZHRo KSA8PCAxOCkpCisKK3N0cnVjdCBtdmVidV9hMzcwMF9jb21waHlfY29uZiB7CisJdW5zaWduZWQg aW50IGxhbmU7CisJZW51bSBwaHlfbW9kZSBtb2RlOworCWludCBzdWJtb2RlOworCXVuc2lnbmVk IGludCBwb3J0OworCXUzMiBmd19tb2RlOworfTsKKworI2RlZmluZSBNVkVCVV9BMzcwMF9DT01Q SFlfQ09ORihfbGFuZSwgX21vZGUsIF9zbW9kZSwgX3BvcnQsIF9mdykJXAorCXsJCQkJCQkJCVwK KwkJLmxhbmUgPSBfbGFuZSwJCQkJCQlcCisJCS5tb2RlID0gX21vZGUsCQkJCQkJXAorCQkuc3Vi bW9kZSA9IF9zbW9kZSwJCQkJCVwKKwkJLnBvcnQgPSBfcG9ydCwJCQkJCQlcCisJCS5md19tb2Rl ID0gX2Z3LAkJCQkJCVwKKwl9CisKKyNkZWZpbmUgTVZFQlVfQTM3MDBfQ09NUEhZX0NPTkZfR0VO KF9sYW5lLCBfbW9kZSwgX3BvcnQsIF9mdykgXAorCU1WRUJVX0EzNzAwX0NPTVBIWV9DT05GKF9s YW5lLCBfbW9kZSwgUEhZX0lOVEVSRkFDRV9NT0RFX05BLCBfcG9ydCwgX2Z3KQorCisjZGVmaW5l IE1WRUJVX0EzNzAwX0NPTVBIWV9DT05GX0VUSChfbGFuZSwgX3Ntb2RlLCBfcG9ydCwgX2Z3KSBc CisJTVZFQlVfQTM3MDBfQ09NUEhZX0NPTkYoX2xhbmUsIFBIWV9NT0RFX0VUSEVSTkVULCBfc21v ZGUsIF9wb3J0LCBfZncpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXZlYnVfYTM3MDBfY29tcGh5 X2NvbmYgbXZlYnVfYTM3MDBfY29tcGh5X21vZGVzW10gPSB7CisJLyogbGFuZSAwICovCisJTVZF QlVfQTM3MDBfQ09NUEhZX0NPTkZfR0VOKDAsIFBIWV9NT0RFX1VTQl9IT1NUX1NTLCAwLAorCQkJ CSAgICBDT01QSFlfRldfTU9ERV9VU0IzSCksCisJTVZFQlVfQTM3MDBfQ09NUEhZX0NPTkZfRVRI KDAsIFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSSwgMSwKKwkJCQkgICAgQ09NUEhZX0ZXX01PREVf U0dNSUkpLAorCU1WRUJVX0EzNzAwX0NPTVBIWV9DT05GX0VUSCgwLCBQSFlfSU5URVJGQUNFX01P REVfMjUwMEJBU0VYLCAxLAorCQkJCSAgICBDT01QSFlfRldfTU9ERV9IU19TR01JSSksCisJLyog bGFuZSAxICovCisJTVZFQlVfQTM3MDBfQ09NUEhZX0NPTkZfR0VOKDEsIFBIWV9NT0RFX1BDSUUs IDAsCisJCQkJICAgIENPTVBIWV9GV19NT0RFX1BDSUUpLAorCU1WRUJVX0EzNzAwX0NPTVBIWV9D T05GX0VUSCgxLCBQSFlfSU5URVJGQUNFX01PREVfU0dNSUksIDAsCisJCQkJICAgIENPTVBIWV9G V19NT0RFX1NHTUlJKSwKKwlNVkVCVV9BMzcwMF9DT01QSFlfQ09ORl9FVEgoMSwgUEhZX0lOVEVS RkFDRV9NT0RFXzI1MDBCQVNFWCwgMCwKKwkJCQkgICAgQ09NUEhZX0ZXX01PREVfSFNfU0dNSUkp LAorCS8qIGxhbmUgMiAqLworCU1WRUJVX0EzNzAwX0NPTVBIWV9DT05GX0dFTigyLCBQSFlfTU9E RV9TQVRBLCAwLAorCQkJCSAgICBDT01QSFlfRldfTU9ERV9TQVRBKSwKKwlNVkVCVV9BMzcwMF9D T01QSFlfQ09ORl9HRU4oMiwgUEhZX01PREVfVVNCX0hPU1RfU1MsIDAsCisJCQkJICAgIENPTVBI WV9GV19NT0RFX1VTQjNIKSwKK307CisKK3N0cnVjdCBtdmVidV9hMzcwMF9jb21waHlfbGFuZSB7 CisJc3RydWN0IGRldmljZSAqZGV2OworCXVuc2lnbmVkIGludCBpZDsKKwllbnVtIHBoeV9tb2Rl IG1vZGU7CisJaW50IHN1Ym1vZGU7CisJaW50IHBvcnQ7Cit9OworCitzdGF0aWMgaW50IG12ZWJ1 X2EzNzAwX2NvbXBoeV9zbWModW5zaWduZWQgbG9uZyBmdW5jdGlvbiwgdW5zaWduZWQgbG9uZyBs YW5lLAorCQkJCSAgdW5zaWduZWQgbG9uZyBtb2RlKQoreworCXN0cnVjdCBhcm1fc21jY2NfcmVz IHJlczsKKworCWFybV9zbWNjY19zbWMoZnVuY3Rpb24sIGxhbmUsIG1vZGUsIDAsIDAsIDAsIDAs IDAsICZyZXMpOworCisJcmV0dXJuIHJlcy5hMDsKK30KKworc3RhdGljIGludCBtdmVidV9hMzcw MF9jb21waHlfZ2V0X2Z3X21vZGUoaW50IGxhbmUsIGludCBwb3J0LAorCQkJCQkgIGVudW0gcGh5 X21vZGUgbW9kZSwKKwkJCQkJICBpbnQgc3VibW9kZSkKK3sKKwlpbnQgaSwgbiA9IEFSUkFZX1NJ WkUobXZlYnVfYTM3MDBfY29tcGh5X21vZGVzKTsKKworCS8qIFVudXNlZCBQSFkgbXV4IHZhbHVl IGlzIDB4MCAqLworCWlmIChtb2RlID09IFBIWV9NT0RFX0lOVkFMSUQpCisJCXJldHVybiAtRUlO VkFMOworCisJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQlpZiAobXZlYnVfYTM3MDBfY29t cGh5X21vZGVzW2ldLmxhbmUgPT0gbGFuZSAmJgorCQkgICAgbXZlYnVfYTM3MDBfY29tcGh5X21v ZGVzW2ldLnBvcnQgPT0gcG9ydCAmJgorCQkgICAgbXZlYnVfYTM3MDBfY29tcGh5X21vZGVzW2ld Lm1vZGUgPT0gbW9kZSAmJgorCQkgICAgbXZlYnVfYTM3MDBfY29tcGh5X21vZGVzW2ldLnN1Ym1v ZGUgPT0gc3VibW9kZSkKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IG4pCisJCXJldHVybiAt RUlOVkFMOworCisJcmV0dXJuIG12ZWJ1X2EzNzAwX2NvbXBoeV9tb2Rlc1tpXS5md19tb2RlOwor fQorCitzdGF0aWMgaW50IG12ZWJ1X2EzNzAwX2NvbXBoeV9zZXRfbW9kZShzdHJ1Y3QgcGh5ICpw aHksIGVudW0gcGh5X21vZGUgbW9kZSwKKwkJCQkgICAgICAgaW50IHN1Ym1vZGUpCit7CisJc3Ry dWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9sYW5lICpsYW5lID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7 CisJaW50IGZ3X21vZGU7CisKKwlpZiAoc3VibW9kZSA9PSBQSFlfSU5URVJGQUNFX01PREVfMTAw MEJBU0VYKQorCQlzdWJtb2RlID0gUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJOworCisJZndfbW9k ZSA9IG12ZWJ1X2EzNzAwX2NvbXBoeV9nZXRfZndfbW9kZShsYW5lLT5pZCwgbGFuZS0+cG9ydCwg bW9kZSwKKwkJCQkJCSBzdWJtb2RlKTsKKwlpZiAoZndfbW9kZSA8IDApIHsKKwkJZGV2X2Vycihs YW5lLT5kZXYsICJpbnZhbGlkIENPTVBIWSBtb2RlXG4iKTsKKwkJcmV0dXJuIGZ3X21vZGU7CisJ fQorCisJLyogSnVzdCByZW1lbWJlciB0aGUgbW9kZSwgLT5wb3dlcl9vbigpIHdpbGwgZG8gdGhl IHJlYWwgc2V0dXAgKi8KKwlsYW5lLT5tb2RlID0gbW9kZTsKKwlsYW5lLT5zdWJtb2RlID0gc3Vi bW9kZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG12ZWJ1X2EzNzAwX2NvbXBoeV9w b3dlcl9vbihzdHJ1Y3QgcGh5ICpwaHkpCit7CisJc3RydWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9s YW5lICpsYW5lID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7CisJdTMyIGZ3X3BhcmFtOworCWludCBm d19tb2RlOworCisJZndfbW9kZSA9IG12ZWJ1X2EzNzAwX2NvbXBoeV9nZXRfZndfbW9kZShsYW5l LT5pZCwgbGFuZS0+cG9ydCwKKwkJCQkJCSBsYW5lLT5tb2RlLCBsYW5lLT5zdWJtb2RlKTsKKwlp ZiAoZndfbW9kZSA8IDApIHsKKwkJZGV2X2VycihsYW5lLT5kZXYsICJpbnZhbGlkIENPTVBIWSBt b2RlXG4iKTsKKwkJcmV0dXJuIGZ3X21vZGU7CisJfQorCisJc3dpdGNoIChsYW5lLT5tb2RlKSB7 CisJY2FzZSBQSFlfTU9ERV9VU0JfSE9TVF9TUzoKKwkJZGV2X2RiZyhsYW5lLT5kZXYsICJzZXQg bGFuZSAlZCB0byBVU0IzIGhvc3QgbW9kZVxuIiwgbGFuZS0+aWQpOworCQlmd19wYXJhbSA9IENP TVBIWV9GV19NT0RFKGZ3X21vZGUpOworCQlicmVhazsKKwljYXNlIFBIWV9NT0RFX1NBVEE6CisJ CWRldl9kYmcobGFuZS0+ZGV2LCAic2V0IGxhbmUgJWQgdG8gU0FUQSBtb2RlXG4iLCBsYW5lLT5p ZCk7CisJCWZ3X3BhcmFtID0gQ09NUEhZX0ZXX01PREUoZndfbW9kZSk7CisJCWJyZWFrOworCWNh c2UgUEhZX01PREVfRVRIRVJORVQ6CisJCXN3aXRjaCAobGFuZS0+c3VibW9kZSkgeworCQljYXNl IFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSToKKwkJCWRldl9kYmcobGFuZS0+ZGV2LCAic2V0IGxh bmUgJWQgdG8gU0dNSUkgbW9kZVxuIiwKKwkJCQlsYW5lLT5pZCk7CisJCQlmd19wYXJhbSA9IENP TVBIWV9GV19ORVQoZndfbW9kZSwgbGFuZS0+cG9ydCwKKwkJCQkJCSBDT01QSFlfRldfU1BFRURf MV8yNUcpOworCQkJYnJlYWs7CisJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFXzI1MDBCQVNFWDoK KwkJCWRldl9kYmcobGFuZS0+ZGV2LCAic2V0IGxhbmUgJWQgdG8gSFMgU0dNSUkgbW9kZVxuIiwK KwkJCQlsYW5lLT5pZCk7CisJCQlmd19wYXJhbSA9IENPTVBIWV9GV19ORVQoZndfbW9kZSwgbGFu ZS0+cG9ydCwKKwkJCQkJCSBDT01QSFlfRldfU1BFRURfM18xMjVHKTsKKwkJCWJyZWFrOworCQlk ZWZhdWx0OgorCQkJZGV2X2VycihsYW5lLT5kZXYsICJ1bnN1cHBvcnRlZCBQSFkgc3VibW9kZSAo JWQpXG4iLAorCQkJCWxhbmUtPnN1Ym1vZGUpOworCQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJfQor CQlicmVhazsKKwljYXNlIFBIWV9NT0RFX1BDSUU6CisJCWRldl9kYmcobGFuZS0+ZGV2LCAic2V0 IGxhbmUgJWQgdG8gUENJZSBtb2RlXG4iLCBsYW5lLT5pZCk7CisJCWZ3X3BhcmFtID0gQ09NUEhZ X0ZXX1BDSUUoZndfbW9kZSwgbGFuZS0+cG9ydCwKKwkJCQkJICBDT01QSFlfRldfU1BFRURfNUcs CisJCQkJCSAgcGh5LT5hdHRycy5idXNfd2lkdGgpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlk ZXZfZXJyKGxhbmUtPmRldiwgInVuc3VwcG9ydGVkIFBIWSBtb2RlICglZClcbiIsIGxhbmUtPm1v ZGUpOworCQlyZXR1cm4gLUVOT1RTVVBQOworCX0KKworCXJldHVybiBtdmVidV9hMzcwMF9jb21w aHlfc21jKENPTVBIWV9TSVBfUE9XRVJfT04sIGxhbmUtPmlkLCBmd19wYXJhbSk7Cit9CisKK3N0 YXRpYyBpbnQgbXZlYnVfYTM3MDBfY29tcGh5X3Bvd2VyX29mZihzdHJ1Y3QgcGh5ICpwaHkpCit7 CisJc3RydWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9sYW5lICpsYW5lID0gcGh5X2dldF9kcnZkYXRh KHBoeSk7CisKKwlyZXR1cm4gbXZlYnVfYTM3MDBfY29tcGh5X3NtYyhDT01QSFlfU0lQX1BPV0VS X09GRiwgbGFuZS0+aWQsIDApOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgbXZl YnVfYTM3MDBfY29tcGh5X29wcyA9IHsKKwkucG93ZXJfb24JPSBtdmVidV9hMzcwMF9jb21waHlf cG93ZXJfb24sCisJLnBvd2VyX29mZgk9IG12ZWJ1X2EzNzAwX2NvbXBoeV9wb3dlcl9vZmYsCisJ LnNldF9tb2RlCT0gbXZlYnVfYTM3MDBfY29tcGh5X3NldF9tb2RlLAorCS5vd25lcgkJPSBUSElT X01PRFVMRSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5ICptdmVidV9hMzcwMF9jb21waHlfeGxh dGUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCQkgICAgc3RydWN0IG9mX3BoYW5kbGVfYXJncyAq YXJncykKK3sKKwlzdHJ1Y3QgbXZlYnVfYTM3MDBfY29tcGh5X2xhbmUgKmxhbmU7CisJc3RydWN0 IHBoeSAqcGh5OworCisJaWYgKFdBUk5fT04oYXJncy0+YXJnc1swXSA+PSBNVkVCVV9BMzcwMF9D T01QSFlfUE9SVFMpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXBoeSA9IG9mX3Bo eV9zaW1wbGVfeGxhdGUoZGV2LCBhcmdzKTsKKwlpZiAoSVNfRVJSKHBoeSkpCisJCXJldHVybiBw aHk7CisKKwlsYW5lID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7CisJbGFuZS0+cG9ydCA9IGFyZ3Mt PmFyZ3NbMF07CisKKwlyZXR1cm4gcGh5OworfQorCitzdGF0aWMgaW50IG12ZWJ1X2EzNzAwX2Nv bXBoeV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwaHlf cHJvdmlkZXIgKnByb3ZpZGVyOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqY2hpbGQ7CisKKwlmb3Jf ZWFjaF9hdmFpbGFibGVfY2hpbGRfb2Zfbm9kZShwZGV2LT5kZXYub2Zfbm9kZSwgY2hpbGQpIHsK KwkJc3RydWN0IG12ZWJ1X2EzNzAwX2NvbXBoeV9sYW5lICpsYW5lOworCQlzdHJ1Y3QgcGh5ICpw aHk7CisJCWludCByZXQ7CisJCXUzMiBsYW5lX2lkOworCisJCXJldCA9IG9mX3Byb3BlcnR5X3Jl YWRfdTMyKGNoaWxkLCAicmVnIiwgJmxhbmVfaWQpOworCQlpZiAocmV0IDwgMCkgeworCQkJZGV2 X2VycigmcGRldi0+ZGV2LCAibWlzc2luZyAncmVnJyBwcm9wZXJ0eSAoJWQpXG4iLAorCQkJCXJl dCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChsYW5lX2lkID49IE1WRUJVX0EzNzAwX0NP TVBIWV9MQU5FUykgeworCQkJZGV2X2VycigmcGRldi0+ZGV2LCAiaW52YWxpZCAncmVnJyBwcm9w ZXJ0eVxuIik7CisJCQljb250aW51ZTsKKwkJfQorCisJCWxhbmUgPSBkZXZtX2t6YWxsb2MoJnBk ZXYtPmRldiwgc2l6ZW9mKCpsYW5lKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghbGFuZSkKKwkJCXJl dHVybiAtRU5PTUVNOworCisJCXBoeSA9IGRldm1fcGh5X2NyZWF0ZSgmcGRldi0+ZGV2LCBjaGls ZCwKKwkJCQkgICAgICAmbXZlYnVfYTM3MDBfY29tcGh5X29wcyk7CisJCWlmIChJU19FUlIocGh5 KSkKKwkJCXJldHVybiBQVFJfRVJSKHBoeSk7CisKKwkJbGFuZS0+ZGV2ID0gJnBkZXYtPmRldjsK KwkJbGFuZS0+bW9kZSA9IFBIWV9NT0RFX0lOVkFMSUQ7CisJCWxhbmUtPnN1Ym1vZGUgPSBQSFlf SU5URVJGQUNFX01PREVfTkE7CisJCWxhbmUtPmlkID0gbGFuZV9pZDsKKwkJbGFuZS0+cG9ydCA9 IC0xOworCQlwaHlfc2V0X2RydmRhdGEocGh5LCBsYW5lKTsKKwl9CisKKwlwcm92aWRlciA9IGRl dm1fb2ZfcGh5X3Byb3ZpZGVyX3JlZ2lzdGVyKCZwZGV2LT5kZXYsCisJCQkJCQkgbXZlYnVfYTM3 MDBfY29tcGh5X3hsYXRlKTsKKwlyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKHByb3ZpZGVyKTsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXZlYnVfYTM3MDBfY29tcGh5X29m X21hdGNoX3RhYmxlW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJtYXJ2ZWxsLGNvbXBoeS1hMzcw MCIgfSwKKwl7IH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXZlYnVfYTM3MDBfY29t cGh5X29mX21hdGNoX3RhYmxlKTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXZl YnVfYTM3MDBfY29tcGh5X2RyaXZlciA9IHsKKwkucHJvYmUJPSBtdmVidV9hMzcwMF9jb21waHlf cHJvYmUsCisJLmRyaXZlcgk9IHsKKwkJLm5hbWUgPSAibXZlYnUtYTM3MDAtY29tcGh5IiwKKwkJ Lm9mX21hdGNoX3RhYmxlID0gbXZlYnVfYTM3MDBfY29tcGh5X29mX21hdGNoX3RhYmxlLAorCX0s Cit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihtdmVidV9hMzcwMF9jb21waHlfZHJpdmVyKTsK KworTU9EVUxFX0FVVEhPUigiTWlxdcOobCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5j b20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkNvbW1vbiBQSFkgZHJpdmVyIGZvciBBMzcwMCIp OworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotLSAKMi4xOS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=