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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id E03C2D5B84F for ; Mon, 15 Dec 2025 16:27:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jxVRlxo/4YISAB029AFgOWazeKg5AGvYL3JX95uFJhQ=; b=b1M8ZbKYkbP1nj MPR228ZULupmw1NEzEVI4eGI4CbcKnEFoK/KImf3ap0d22028eAmtwWTPh8b0C7qmKxzqxsXbo20c 7rV8gMmSp4iS0gcwFtLG9AakUvqvLdntgjqcE7mp7721KfZmDnfb9cvttgLVVho7pPFUxcjOWExjM vjqWP6lTZZ7zfdINjBJMFr50wrS6wcJLcax5nT87WCepNGKLmahEscI358c3g4noalT4MmOu6/MpT zITScQpQnG+cqCxPIzgj6LQGpF4ZuzLtEfMj9XJ3gRIEpIN5EZAEBnf+yHOPvjQIv6IZIG+Hfz1Ni DOTdZQsNHujYvzbUHFmg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vVBPc-00000003z5e-2mhJ; Mon, 15 Dec 2025 16:27:04 +0000 Received: from smtpout-02.galae.net ([185.246.84.56]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vVBPY-00000003z3a-3MTH for linux-phy@lists.infradead.org; Mon, 15 Dec 2025 16:27:03 +0000 Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 695651A21E8; Mon, 15 Dec 2025 16:26:59 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 38CFF60664; Mon, 15 Dec 2025 16:26:59 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 22F2B119427B8; Mon, 15 Dec 2025 17:26:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1765816017; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=6ReHjdAyVBcuPjF5r2gvsVluwjl4asHqr17I206WTJw=; b=C6pS63rEfH3Xrz/6YP9rQB99Grh3ow6DFtY4lY7/Z/Tgq3m4cSOnGYtf2T88/vpEXy6rNf 8S3OQEUX72T+sq2ZkQ2zC2Ia809ELjPfZtSHo1YZQOAArJD8t+KPuN8VIVHi6xh1hRGAqU 227HJwoMFZzzaI6gI67zQ0/k46su2kgXyRVk9o+IN1uadPwlCiUFqNEPFoviIvZO5TRr1o kXa9zDFHh6j7GHCNAKkRLV2V1zqDHwjSAdua3whK4opSLgNpFwtUvp3C4Z5eXwv7+TUlzo 7DI33PCQyWH1mEEuE7Lepc0wbe+bjLtd6PLEjC/SP5ocJsE0L1w/tWxxvdKkow== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Mon, 15 Dec 2025 17:26:36 +0100 Subject: [PATCH v5 2/7] phy: Add driver for EyeQ5 Ethernet PHY wrapper MIME-Version: 1.0 Message-Id: <20251215-macb-phy-v5-2-a9dfea39da34@bootlin.com> References: <20251215-macb-phy-v5-0-a9dfea39da34@bootlin.com> In-Reply-To: <20251215-macb-phy-v5-0-a9dfea39da34@bootlin.com> To: Vladimir Kondratiev , =?utf-8?q?Gr=C3=A9gory_Clement?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vinod Koul , Kishon Vijay Abraham I , Michael Turquette , Stephen Boyd , Philipp Zabel , Thomas Bogendoerfer , Neil Armstrong Cc: linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-clk@vger.kernel.org, =?utf-8?q?Beno=C3=AEt_Monin?= , Tawfik Bayouk , Thomas Petazzoni , Luca Ceresoli , =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.14.3 X-Last-TLS-Session-Version: TLSv1.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251215_082702_397431_C490D936 X-CRM114-Status: GOOD ( 18.14 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org RXllUTUgZW1iZWRzIGEgc3lzdGVtLWNvbnRyb2xsZXIgY2FsbGVkIE9MQi4gSXQgZmVhdHVyZXMg bWFueSB1bnJlbGF0ZWQKcmVnaXN0ZXJzLCBhbmQgc29tZSBvZiB0aG9zZSBhcmUgcmVnaXN0ZXJz IHVzZWQgdG8gY29uZmlndXJlIHRoZQppbnRlZ3JhdGlvbiBvZiB0aGUgUkdNSUkvU0dNSUkgQ2Fk ZW5jZSBQSFkgdXNlZCBieSBNQUNCL0dFTSBpbnN0YW5jZXMuCgpXcmFwIGluIGEgbmVhdCBnZW5l cmljIFBIWSBwcm92aWRlciwgZXhwb3NpbmcgdHdvIFBIWXMgd2l0aCBzdGFuZGFyZApwaHlfaW5p dCgpIC8gcGh5X3NldF9tb2RlKCkgLyBwaHlfcG93ZXJfb24oKSBvcGVyYXRpb25zLgoKUmV2aWV3 ZWQtYnk6IEx1Y2EgQ2VyZXNvbGkgPGx1Y2EuY2VyZXNvbGlAYm9vdGxpbi5jb20+ClNpZ25lZC1v ZmYtYnk6IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxpbi5jb20+Ci0tLQogTUFJTlRB SU5FUlMgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvcGh5L0tjb25maWcgICAgICAg ICB8ICAxMyArKysKIGRyaXZlcnMvcGh5L01ha2VmaWxlICAgICAgICB8ICAgMSArCiBkcml2ZXJz L3BoeS9waHktZXllcTUtZXRoLmMgfCAyNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjY0IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IDViMTE4MzljYmE5ZC4uMmY2 N2VjOWZhZDU3IDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAt MTc2MDUsNiArMTc2MDUsNyBAQCBGOglhcmNoL21pcHMvYm9vdC9kdHMvbW9iaWxleWUvCiBGOglh cmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWcKIEY6CWFyY2gvbWlwcy9tb2JpbGV5ZS9i b2FyZC1lcG01Lml0cy5TCiBGOglkcml2ZXJzL2Nsay9jbGstZXllcS5jCitGOglkcml2ZXJzL3Bo eS9waHktZXllcTUtZXRoLmMKIEY6CWRyaXZlcnMvcGluY3RybC9waW5jdHJsLWV5ZXE1LmMKIEY6 CWRyaXZlcnMvcmVzZXQvcmVzZXQtZXllcS5jCiBGOglpbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2Nr L21vYmlsZXllLGV5ZXE1LWNsay5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9LY29uZmlnIGIv ZHJpdmVycy9waHkvS2NvbmZpZwppbmRleCA2NzhkZDA0NTJmMGEuLjFhYTZlZmYxMmRiYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9waHkvS2NvbmZpZworKysgYi9kcml2ZXJzL3BoeS9LY29uZmlnCkBA IC0xMDEsNiArMTAxLDE5IEBAIGNvbmZpZyBQSFlfTlhQX1BUTjMyMjIKIAkgIHNjaGVtZXMuIEl0 IHN1cHBvcnRzIGFsbCB0aHJlZSBVU0IgMi4wIGRhdGEgcmF0ZXM6IExvdyBTcGVlZCwgRnVsbAog CSAgU3BlZWQgYW5kIEhpZ2ggU3BlZWQuCiAKK2NvbmZpZyBQSFlfRVlFUTVfRVRICisJdHJpc3Rh dGUgIkV0aGVybmV0IFBIWSBEcml2ZXIgb24gRXllUTUiCisJZGVwZW5kcyBvbiBPRgorCWRlcGVu ZHMgb24gTUFDSF9FWUVRNSB8fCBDT01QSUxFX1RFU1QKKwlzZWxlY3QgQVVYSUxJQVJZX0JVUwor CXNlbGVjdCBHRU5FUklDX1BIWQorCWRlZmF1bHQgTUFDSF9FWUVRNQorCWhlbHAKKwkgIEVuYWJs ZSB0aGlzIHRvIHN1cHBvcnQgdGhlIEV0aGVybmV0IFBIWSBpbnRlZ3JhdGVkIG9uIEV5ZVE1Lgor CSAgSXQgc3VwcG9ydHMgYm90aCBSR01JSSBhbmQgU0dNSUkuIFJlZ2lzdGVycyBhcmUgbG9jYXRl ZCBpbiBhCisJICBzaGFyZWQgcmVnaXN0ZXIgcmVnaW9uIGNhbGxlZCBPTEIuIElmIE0gaXMgc2Vs ZWN0ZWQsIHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHBoeS1leWVxNS1ldGguCisKIHNv dXJjZSAiZHJpdmVycy9waHkvYWxsd2lubmVyL0tjb25maWciCiBzb3VyY2UgImRyaXZlcnMvcGh5 L2FtbG9naWMvS2NvbmZpZyIKIHNvdXJjZSAiZHJpdmVycy9waHkvYnJvYWRjb20vS2NvbmZpZyIK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L01ha2VmaWxlIGIvZHJpdmVycy9waHkvTWFrZWZpbGUK aW5kZXggYmZiMjdmYjVhNDk0Li44Mjg5NDk3ZWNlNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGh5 L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcGh5L01ha2VmaWxlCkBAIC0xMyw2ICsxMyw3IEBAIG9i ai0kKENPTkZJR19QSFlfU05QU19FVVNCMikJCSs9IHBoeS1zbnBzLWV1c2IyLm8KIG9iai0kKENP TkZJR19VU0JfTEdNX1BIWSkJCSs9IHBoeS1sZ20tdXNiLm8KIG9iai0kKENPTkZJR19QSFlfQUlS T0hBX1BDSUUpCQkrPSBwaHktYWlyb2hhLXBjaWUubwogb2JqLSQoQ09ORklHX1BIWV9OWFBfUFRO MzIyMikJCSs9IHBoeS1ueHAtcHRuMzIyMi5vCitvYmotJChDT05GSUdfUEhZX0VZRVE1X0VUSCkJ CSs9IHBoeS1leWVxNS1ldGgubwogb2JqLXkJCQkJCSs9IGFsbHdpbm5lci8JXAogCQkJCQkgICBh bWxvZ2ljLwlcCiAJCQkJCSAgIGJyb2FkY29tLwlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9w aHktZXllcTUtZXRoLmMgYi9kcml2ZXJzL3BoeS9waHktZXllcTUtZXRoLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZTI4ZjdlMjQ4MzUKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL3BoeS9waHktZXllcTUtZXRoLmMKQEAgLTAsMCArMSwyNDkgQEAKKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKworI2luY2x1ZGUgPGxpbnV4L2F1 eGlsaWFyeV9idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgorI2luY2x1ZGUgPGxp bnV4L2JpdHMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+ CisjaW5jbHVkZSA8bGludXgvZ2ZwX3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgor I2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+CisjaW5jbHVk ZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cisj aW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9waHkuaD4KKyNpbmNsdWRlIDxs aW51eC9waHkvcGh5Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+CisKKyNkZWZpbmUgRVE1X1BIWV9DT1VOVAkyCisKKyNkZWZpbmUgRVE1X1BIWTBf R1AJMHgxMjgKKyNkZWZpbmUgRVE1X1BIWTFfR1AJMHgxMmMKKyNkZWZpbmUgRVE1X1BIWTBfU0dN SUkJMHgxMzQKKyNkZWZpbmUgRVE1X1BIWTFfU0dNSUkJMHgxMzgKKworI2RlZmluZSBFUTVfR1Bf VFhfU1dSU1RfRElTCUJJVCgwKQkJLy8gVHggU1cgcmVzZXQKKyNkZWZpbmUgRVE1X0dQX1RYX01f Q0xLRQlCSVQoMSkJCS8vIFR4IE0gY2xvY2sgZW5hYmxlCisjZGVmaW5lIEVRNV9HUF9TWVNfU1dS U1RfRElTCUJJVCgyKQkJLy8gU3lzIFNXIHJlc2V0CisjZGVmaW5lIEVRNV9HUF9TWVNfTV9DTEtF CUJJVCgzKQkJLy8gU3lzIGNsb2NrIGVuYWJsZQorI2RlZmluZSBFUTVfR1BfU0dNSUlfTU9ERQlC SVQoNCkJCS8vIFNHTUlJIG1vZGUKKyNkZWZpbmUgRVE1X0dQX1JHTUlJX0RSVglHRU5NQVNLKDgs IDUpCS8vIFJHTUlJIGRyaXZlIHN0cmVuZ3RoCisKKyNkZWZpbmUgRVE1X1NHTUlJX1BXUl9FTglC SVQoMCkKKyNkZWZpbmUgRVE1X1NHTUlJX1JTVF9ESVMJQklUKDEpCisjZGVmaW5lIEVRNV9TR01J SV9QTExfRU4JQklUKDIpCisjZGVmaW5lIEVRNV9TR01JSV9TSUdfREVUX1NXCUJJVCgzKQorI2Rl ZmluZSBFUTVfU0dNSUlfUFdSX1NUQVRFCUJJVCg0KQorI2RlZmluZSBFUTVfU0dNSUlfUExMX0FD SwlCSVQoMTgpCisjZGVmaW5lIEVRNV9TR01JSV9QV1JfU1RBVEVfQUNLCUdFTk1BU0soMjQsIDIw KQorCitzdHJ1Y3QgZXE1X3BoeV9pbnN0IHsKKwlzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlCSpwcml2 OworCXN0cnVjdCBwaHkJCSpwaHk7CisJdm9pZCBfX2lvbWVtCQkqZ3AsICpzZ21paTsKKwlwaHlf aW50ZXJmYWNlX3QJCXBoeV9pbnRlcmZhY2U7Cit9OworCitzdHJ1Y3QgZXE1X3BoeV9wcml2YXRl IHsKKwlzdHJ1Y3QgZGV2aWNlCQkqZGV2OworCXN0cnVjdCBlcTVfcGh5X2luc3QJcGh5c1tFUTVf UEhZX0NPVU5UXTsKK307CisKK3N0YXRpYyBpbnQgZXE1X3BoeV9pbml0KHN0cnVjdCBwaHkgKnBo eSkKK3sKKwlzdHJ1Y3QgZXE1X3BoeV9pbnN0ICppbnN0ID0gcGh5X2dldF9kcnZkYXRhKHBoeSk7 CisJc3RydWN0IGVxNV9waHlfcHJpdmF0ZSAqcHJpdiA9IGluc3QtPnByaXY7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gcHJpdi0+ZGV2OworCXUzMiByZWc7CisKKwlkZXZfZGJnKGRldiwgInBoeV9p bml0KGluc3Q9JXRkKVxuIiwgaW5zdCAtIHByaXYtPnBoeXMpOworCisJd3JpdGVsKDAsIGluc3Qt PmdwKTsKKwl3cml0ZWwoMCwgaW5zdC0+c2dtaWkpOworCisJdWRlbGF5KDUpOworCisJcmVnID0g cmVhZGwoaW5zdC0+Z3ApIHwgRVE1X0dQX1RYX1NXUlNUX0RJUyB8IEVRNV9HUF9UWF9NX0NMS0Ug fAorCSAgICAgIEVRNV9HUF9TWVNfU1dSU1RfRElTIHwgRVE1X0dQX1NZU19NX0NMS0UgfAorCSAg ICAgIEZJRUxEX1BSRVAoRVE1X0dQX1JHTUlJX0RSViwgMHg5KTsKKwl3cml0ZWwocmVnLCBpbnN0 LT5ncCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBlcTVfcGh5X2V4aXQoc3RydWN0 IHBoeSAqcGh5KQoreworCXN0cnVjdCBlcTVfcGh5X2luc3QgKmluc3QgPSBwaHlfZ2V0X2RydmRh dGEocGh5KTsKKwlzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlICpwcml2ID0gaW5zdC0+cHJpdjsKKwlz dHJ1Y3QgZGV2aWNlICpkZXYgPSBwcml2LT5kZXY7CisKKwlkZXZfZGJnKGRldiwgInBoeV9leGl0 KGluc3Q9JXRkKVxuIiwgaW5zdCAtIHByaXYtPnBoeXMpOworCisJd3JpdGVsKDAsIGluc3QtPmdw KTsKKwl3cml0ZWwoMCwgaW5zdC0+c2dtaWkpOworCXVkZWxheSg1KTsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGVxNV9waHlfc2V0X21vZGUoc3RydWN0IHBoeSAqcGh5LCBlbnVtIHBo eV9tb2RlIG1vZGUsIGludCBzdWJtb2RlKQoreworCXN0cnVjdCBlcTVfcGh5X2luc3QgKmluc3Qg PSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKKwlzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlICpwcml2ID0g aW5zdC0+cHJpdjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwcml2LT5kZXY7CisKKwlkZXZfZGJn KGRldiwgInBoeV9zZXRfbW9kZShpbnN0PSV0ZCwgbW9kZT0lZCwgc3VibW9kZT0lZClcbiIsCisJ CWluc3QgLSBwcml2LT5waHlzLCBtb2RlLCBzdWJtb2RlKTsKKworCWlmIChtb2RlICE9IFBIWV9N T0RFX0VUSEVSTkVUKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKKwlpZiAoIXBoeV9pbnRlcmZh Y2VfbW9kZV9pc19yZ21paShzdWJtb2RlKSAmJgorCSAgICBzdWJtb2RlICE9IFBIWV9JTlRFUkZB Q0VfTU9ERV9TR01JSSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCisJaW5zdC0+cGh5X2ludGVy ZmFjZSA9IHN1Ym1vZGU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZXE1X3BoeV9wb3dl cl9vbihzdHJ1Y3QgcGh5ICpwaHkpCit7CisJc3RydWN0IGVxNV9waHlfaW5zdCAqaW5zdCA9IHBo eV9nZXRfZHJ2ZGF0YShwaHkpOworCXN0cnVjdCBlcTVfcGh5X3ByaXZhdGUgKnByaXYgPSBpbnN0 LT5wcml2OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHByaXYtPmRldjsKKwl1MzIgcmVnOworCisJ ZGV2X2RiZyhkZXYsICJwaHlfcG93ZXJfb24oaW5zdD0ldGQpXG4iLCBpbnN0IC0gcHJpdi0+cGh5 cyk7CisKKwlpZiAoaW5zdC0+cGh5X2ludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfU0dN SUkpIHsKKwkJd3JpdGVsKHJlYWRsKGluc3QtPmdwKSB8IEVRNV9HUF9TR01JSV9NT0RFLCBpbnN0 LT5ncCk7CisKKwkJcmVnID0gRVE1X1NHTUlJX1BXUl9FTiB8IEVRNV9TR01JSV9SU1RfRElTIHwg RVE1X1NHTUlJX1BMTF9FTjsKKwkJd3JpdGVsKHJlZywgaW5zdC0+c2dtaWkpOworCisJCWlmIChy ZWFkbF9wb2xsX3RpbWVvdXQoaW5zdC0+c2dtaWksIHJlZywKKwkJCQkgICAgICAgcmVnICYgRVE1 X1NHTUlJX1BMTF9BQ0ssIDEsIDEwMCkpIHsKKwkJCWRldl9lcnIoZGV2LCAiUExMIHRpbWVvdXRc biIpOworCQkJcmV0dXJuIC1FVElNRURPVVQ7CisJCX0KKworCQlyZWcgPSByZWFkbChpbnN0LT5z Z21paSk7CisJCXJlZyB8PSBFUTVfU0dNSUlfUFdSX1NUQVRFIHwgRVE1X1NHTUlJX1NJR19ERVRf U1c7CisJCXdyaXRlbChyZWcsIGluc3QtPnNnbWlpKTsKKwl9IGVsc2UgeworCQl3cml0ZWwocmVh ZGwoaW5zdC0+Z3ApICYgfkVRNV9HUF9TR01JSV9NT0RFLCBpbnN0LT5ncCk7CisJCXdyaXRlbCgw LCBpbnN0LT5zZ21paSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZXE1X3Bo eV9wb3dlcl9vZmYoc3RydWN0IHBoeSAqcGh5KQoreworCXN0cnVjdCBlcTVfcGh5X2luc3QgKmlu c3QgPSBwaHlfZ2V0X2RydmRhdGEocGh5KTsKKwlzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlICpwcml2 ID0gaW5zdC0+cHJpdjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwcml2LT5kZXY7CisKKwlkZXZf ZGJnKGRldiwgInBoeV9wb3dlcl9vZmYoaW5zdD0ldGQpXG4iLCBpbnN0IC0gcHJpdi0+cGh5cyk7 CisKKwl3cml0ZWwocmVhZGwoaW5zdC0+Z3ApICYgfkVRNV9HUF9TR01JSV9NT0RFLCBpbnN0LT5n cCk7CisJd3JpdGVsKDAsIGluc3QtPnNnbWlpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg Y29uc3Qgc3RydWN0IHBoeV9vcHMgZXE1X3BoeV9vcHMgPSB7CisJLmluaXQJCT0gZXE1X3BoeV9p bml0LAorCS5leGl0CQk9IGVxNV9waHlfZXhpdCwKKwkuc2V0X21vZGUJPSBlcTVfcGh5X3NldF9t b2RlLAorCS5wb3dlcl9vbgk9IGVxNV9waHlfcG93ZXJfb24sCisJLnBvd2VyX29mZgk9IGVxNV9w aHlfcG93ZXJfb2ZmLAorfTsKKworc3RhdGljIHN0cnVjdCBwaHkgKmVxNV9waHlfeGxhdGUoc3Ry dWN0IGRldmljZSAqZGV2LAorCQkJCSBjb25zdCBzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzICphcmdz KQoreworCXN0cnVjdCBlcTVfcGh5X3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKKworCWlmIChhcmdzLT5hcmdzX2NvdW50ICE9IDEgfHwgYXJncy0+YXJnc1swXSA+PSBFUTVf UEhZX0NPVU5UKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXJldHVybiBwcml2LT5w aHlzW2FyZ3MtPmFyZ3NbMF1dLnBoeTsKK30KKworc3RhdGljIGludCBlcTVfcGh5X3Byb2JlX3Bo eShzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlICpwcml2LCB1bnNpZ25lZCBpbnQgaW5kZXgsCisJCQkg ICAgIHZvaWQgX19pb21lbSAqYmFzZSwgdW5zaWduZWQgaW50IGdwLAorCQkJICAgICB1bnNpZ25l ZCBpbnQgc2dtaWkpCit7CisJc3RydWN0IGVxNV9waHlfaW5zdCAqaW5zdCA9ICZwcml2LT5waHlz W2luZGV4XTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwcml2LT5kZXY7CisJc3RydWN0IHBoeSAq cGh5OworCisJcGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgZGV2LT5vZl9ub2RlLCAmZXE1X3Bo eV9vcHMpOworCWlmIChJU19FUlIocGh5KSkKKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQ VFJfRVJSKHBoeSksCisJCQkJICAgICAiZmFpbGVkIHRvIGNyZWF0ZSBQSFkgJXVcbiIsIGluZGV4 KTsKKworCWluc3QtPnByaXYgPSBwcml2OworCWluc3QtPnBoeSA9IHBoeTsKKwlpbnN0LT5ncCA9 IGJhc2UgKyBncDsKKwlpbnN0LT5zZ21paSA9IGJhc2UgKyBzZ21paTsKKwlpbnN0LT5waHlfaW50 ZXJmYWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX05BOworCXBoeV9zZXRfZHJ2ZGF0YShwaHksIGlu c3QpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZXE1X3BoeV9wcm9iZShzdHJ1Y3Qg YXV4aWxpYXJ5X2RldmljZSAqYWRldiwKKwkJCSBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2Rldmlj ZV9pZCAqaWQpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJmFkZXYtPmRldjsKKwlzdHJ1Y3Qg cGh5X3Byb3ZpZGVyICpwcm92aWRlcjsKKwlzdHJ1Y3QgZXE1X3BoeV9wcml2YXRlICpwcml2Owor CXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgcmV0OworCisJcHJpdiA9IGRldm1fa3phbGxvYyhk ZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlwcml2LT5kZXYgPSBkZXY7CisJZGV2X3NldF9kcnZkYXRhKGRldiwgcHJpdik7 CisKKwliYXNlID0gKHZvaWQgX19pb21lbSAqKWRldl9nZXRfcGxhdGRhdGEoZGV2KTsKKworCXJl dCA9IGVxNV9waHlfcHJvYmVfcGh5KHByaXYsIDAsIGJhc2UsIEVRNV9QSFkwX0dQLCBFUTVfUEhZ MF9TR01JSSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGVxNV9waHlfcHJv YmVfcGh5KHByaXYsIDEsIGJhc2UsIEVRNV9QSFkxX0dQLCBFUTVfUEhZMV9TR01JSSk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCXByb3ZpZGVyID0gZGV2bV9vZl9waHlfcHJvdmlkZXJf cmVnaXN0ZXIoZGV2LCBlcTVfcGh5X3hsYXRlKTsKKwlpZiAoSVNfRVJSKHByb3ZpZGVyKSkKKwkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHByb3ZpZGVyKSwKKwkJCQkgICAgICJy ZWdpc3RlcmluZyBwcm92aWRlciBmYWlsZWRcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCBlcTVfcGh5X2lkX3RhYmxlW10gPSB7 CisJeyAubmFtZSA9ICJjbGtfZXllcS5waHkiIH0sCisJe30KK307CitNT0RVTEVfREVWSUNFX1RB QkxFKGF1eGlsaWFyeSwgZXE1X3BoeV9pZF90YWJsZSk7CisKK3N0YXRpYyBzdHJ1Y3QgYXV4aWxp YXJ5X2RyaXZlciBlcTVfcGh5X2RyaXZlciA9IHsKKwkucHJvYmUgPSBlcTVfcGh5X3Byb2JlLAor CS5pZF90YWJsZSA9IGVxNV9waHlfaWRfdGFibGUsCit9OworbW9kdWxlX2F1eGlsaWFyeV9kcml2 ZXIoZXE1X3BoeV9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkV5ZVE1IEV0aGVybmV0 IFBIWSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIlRow6lvIExlYnJ1biA8dGhlby5sZWJydW5A Ym9vdGxpbi5jb20+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CgotLSAKMi41Mi4wCgoKLS0g CmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGludXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg==