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 40729106FD98 for ; Fri, 13 Mar 2026 07:54:42 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bLj4KXFKQXAZ8KBNwdsVk5ibMLNICd64fdJ5JyL7wW8=; b=J6mPve+6lK58QP okSWtR56iVP9Jl+Et+seX4dnk/iOcQkbyw2l+7DR6TzUPNbeh8iTYmYKbYFD/YGG0Ym9LZ3nEoBSE BKxpkswSWteMyUiBbCk7Rb+ncSra4gQVfQnJXUoXUHRAqo4yqMi2yyQwC2GR1LG0U19EBz/qv4Jlr nz0fpBb8O+Cb+ib8JvlJiup88xNdYhXk65pW/4T0NUSiGS0/BkUbALDv8fA8nkyUiyLhzNN2EoOow N2QDBf452lmvtpj4uPbFA8IUj6TzXrYLzw/chv0Z2Hp3G4ZIg2ndljhA8xEs1PcirL18yFirykt0E 0LpJKHK3XAHtbpHkgyCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w0xLv-0000000H8Bp-0xJ0; Fri, 13 Mar 2026 07:54:35 +0000 Received: from zg8tmtyylji0my4xnjeumjiw.icoremail.net ([162.243.161.220]) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w0xLs-0000000H89l-2ggy; Fri, 13 Mar 2026 07:54:33 +0000 Received: from E0004057DT.eswin.cn (unknown [10.11.96.26]) by app2 (Coremail) with SMTP id TQJkCgDX7J+uwrNpDBYIAA--.10081S2; Fri, 13 Mar 2026 15:54:23 +0800 (CST) From: lizhi2@eswincomputing.com To: devicetree@vger.kernel.org, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, netdev@vger.kernel.org, pabeni@redhat.com, mcoquelin.stm32@gmail.com, alexandre.torgue@foss.st.com, rmk+kernel@armlinux.org.uk, wens@kernel.org, pjw@kernel.org, palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr, linux-riscv@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: ningyu@eswincomputing.com, linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, pritesh.patel@einfochips.com, weishangjuan@eswincomputing.com, Zhi Li Subject: [PATCH net-next v4 2/3] net: stmmac: eic7700: enable clocks before syscon access and correct RX sampling timing Date: Fri, 13 Mar 2026 15:54:13 +0800 Message-ID: <20260313075416.1607-1-lizhi2@eswincomputing.com> X-Mailer: git-send-email 2.52.0.windows.1 In-Reply-To: <20260313075234.1567-1-lizhi2@eswincomputing.com> References: <20260313075234.1567-1-lizhi2@eswincomputing.com> MIME-Version: 1.0 X-CM-TRANSID: TQJkCgDX7J+uwrNpDBYIAA--.10081S2 X-Coremail-Antispam: 1UD129KBjvDXoW8Jry5Wr4xJw1ktr4fZoXrpw1rXFX_uw47Zr yDJrn8JFW0gwsrCw4qvrZ7KF1rArW7WFWkA3ZrZ34DJ34Y9rnFv3s7Z34rXF13JFyjgr1U ZF4fAFn3WjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT9fnU UIcSsGvfJTRUUUbhkFF20E14v26rWj6s0DM7CY07I20VC2zVCF04k26cxKx2IYs7xG6rWj 6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4 x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4U JwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3w AS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IY x2IY67AKxVWUXVWUAwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4 x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kI c2xKxwAKzVCY07xG64k0F24lc7CjxVAaw2AFwI0_GFv_Wrylc2xSY4AK6svPMxAIw28Icx kI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2Iq xVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x0EwIxGrwCI42 IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWxJVW8Jr1lIxAI cVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2js IEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x0pRdWrXUUUUU= X-CM-SenderInfo: xol2xx2s6h245lqf0zpsxwx03jof0z/ X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260313_005432_824236_1B4212E4 X-CRM114-Status: GOOD ( 17.09 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogWmhpIExpIDxsaXpoaTJAZXN3aW5jb21wdXRpbmcuY29tPgoKVGhlIHNlY29uZCBFdGhl cm5ldCBjb250cm9sbGVyIChldGgxKSBvbiB0aGUgRXN3aW4gRUlDNzcwMCBTb0MgbWF5IGZhaWwK dG8gc2FtcGxlIFJYIGRhdGEgY29ycmVjdGx5IGF0IEdpZ2FiaXQgc3BlZWQgZHVlIHRvIEVJQzc3 MDAtc3BlY2lmaWMKcmVjZWl2ZSBjbG9jayB0byBkYXRhIHNrZXcgYXQgdGhlIE1BQyBpbnB1dCBp biB0aGUgc2lsaWNvbi4KClRoZSBleGlzdGluZyBpbnRlcm5hbCBkZWxheSBjb25maWd1cmF0aW9u IGRvZXMgbm90IHByb3ZpZGUgc3VmZmljaWVudAphZGp1c3RtZW50IHJhbmdlIHRvIGNvbXBlbnNh dGUgZm9yIHRoaXMgY29uZGl0aW9uIGF0IDEwMDBNYnBzLgpVcGRhdGUgdGhlIEVJQzc3MDAgRFdN QUMgZ2x1ZSBkcml2ZXIgdG8gYXBwbHkgRUlDNzcwMC1zcGVjaWZpYyBjbG9jawpzYW1wbGluZyBp bnZlcnNpb24gb25seSBkdXJpbmcgR2lnYWJpdCBvcGVyYXRpb24gb24gTUFDIGluc3RhbmNlcwp0 aGF0IHJlcXVpcmUgaXQuCgpUWEQgYW5kIFJYRCBkZWxheSByZWdpc3RlcnMgYXJlIGV4cGxpY2l0 bHkgY2xlYXJlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24KdG8gb3ZlcnJpZGUgYW55IHJlc2lkdWFs IGNvbmZpZ3VyYXRpb24gbGVmdCBieSB0aGUgYm9vdGxvYWRlci4gQWxsIEhTUApDU1IgcmVnaXN0 ZXIgYWNjZXNzZXMgYXJlIHBlcmZvcm1lZCBvbmx5IGFmdGVyIHRoZSByZXF1aXJlZCBjbG9ja3Mg YXJlCmVuYWJsZWQuCgpGaXhlczogZWE3N2RiYmRiYzRlICgibmV0OiBzdG1tYWM6IGFkZCBFc3dp biBFSUM3NzAwIGdsdWUgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogWmhpIExpIDxsaXpoaTJAZXN3 aW5jb21wdXRpbmcuY29tPgotLS0KIC4uLi9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1l aWM3NzAwLmMgICB8IDE4MSArKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzgg aW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jCmluZGV4IGJjYjhlMDAwZTcyMC4u YjIzMGJjNWI5MDJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9kd21hYy1laWM3NzAwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvZHdtYWMtZWljNzcwMC5jCkBAIC0yOCwyMCArMjgsNDAgQEAKIAogLyoKICAqIFRYL1JY IENsb2NrIERlbGF5IEJpdCBNYXNrczoKLSAqIC0gVFggRGVsYXk6IGJpdHMgWzE0OjhdIOKAlCBU WF9DTEsgZGVsYXkgKHVuaXQ6IDAuMW5zIHBlciBiaXQpCi0gKiAtIFJYIERlbGF5OiBiaXRzIFsz MDoyNF0g4oCUIFJYX0NMSyBkZWxheSAodW5pdDogMC4xbnMgcGVyIGJpdCkKKyAqIC0gVFggRGVs YXk6IGJpdHMgWzE0OjhdIOKAlCBUWF9DTEsgZGVsYXkgKHVuaXQ6IDAuMDJucyBwZXIgYml0KQor ICogLSBUWCBJbnZlcnQgOiBiaXQgIFsxNV0KKyAqIC0gUlggRGVsYXk6IGJpdHMgWzMwOjI0XSDi gJQgUlhfQ0xLIGRlbGF5ICh1bml0OiAwLjAybnMgcGVyIGJpdCkKKyAqIC0gUlggSW52ZXJ0IDog Yml0ICBbMzFdCiAgKi8KICNkZWZpbmUgRUlDNzcwMF9FVEhfVFhfQURKX0RFTEFZCUdFTk1BU0so MTQsIDgpCiAjZGVmaW5lIEVJQzc3MDBfRVRIX1JYX0FESl9ERUxBWQlHRU5NQVNLKDMwLCAyNCkK KyNkZWZpbmUgRUlDNzcwMF9FVEhfVFhfSU5WX0RFTEFZCUJJVCgxNSkKKyNkZWZpbmUgRUlDNzcw MF9FVEhfUlhfSU5WX0RFTEFZCUJJVCgzMSkKIAotI2RlZmluZSBFSUM3NzAwX01BWF9ERUxBWV9V TklUIDB4N0YKKyNkZWZpbmUgRUlDNzcwMF9NQVhfREVMQVlfU1RFUFMJCTB4N0YKKyNkZWZpbmUg RUlDNzcwMF9ERUxBWV9TVEVQX1BTCQkyMAorI2RlZmluZSBFSUM3NzAwX01BWF9ERUxBWV9QUwlc CisJKEVJQzc3MDBfTUFYX0RFTEFZX1NURVBTICogRUlDNzcwMF9ERUxBWV9TVEVQX1BTKQogCiBz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVpYzc3MDBfY2xrX25hbWVzW10gPSB7CiAJInR4Iiwg ImF4aSIsICJjZmciLAogfTsKIAorc3RydWN0IGVpYzc3MDBfZHdtYWNfZGF0YSB7CisJYm9vbCBy Z21paV9yeF9jbGtfaW52ZXJ0OworfTsKKwogc3RydWN0IGVpYzc3MDBfcW9zX3ByaXYgeworCXN0 cnVjdCBkZXZpY2UgKmRldjsKIAlzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0 OworCXN0cnVjdCByZWdtYXAgKmVpYzc3MDBfaHNwX3JlZ21hcDsKKwl1MzIgZXRoX2F4aV9scF9j dHJsX29mZnNldDsKKwl1MzIgZXRoX3BoeV9jdHJsX29mZnNldDsKKwl1MzIgZXRoX3R4ZF9vZmZz ZXQ7CisJdTMyIGV0aF9jbGtfb2Zmc2V0OworCXUzMiBldGhfcnhkX29mZnNldDsKKwl1MzIgZXRo X2Nsa19kbHlfcGFyYW07CisJYm9vbCBldGhfcnhfY2xrX2ludjsKIH07CiAKIHN0YXRpYyBpbnQg ZWljNzcwMF9jbGtzX2NvbmZpZyh2b2lkICpwcml2LCBib29sIGVuYWJsZWQpCkBAIC02MSw4ICs4 MSwyNiBAQCBzdGF0aWMgaW50IGVpYzc3MDBfY2xrc19jb25maWcodm9pZCAqcHJpdiwgYm9vbCBl bmFibGVkKQogc3RhdGljIGludCBlaWM3NzAwX2R3bWFjX2luaXQoc3RydWN0IGRldmljZSAqZGV2 LCB2b2lkICpwcml2KQogewogCXN0cnVjdCBlaWM3NzAwX3Fvc19wcml2ICpkd2MgPSBwcml2Owor CWludCByZXQ7CisKKwlyZXQgPSBlaWM3NzAwX2Nsa3NfY29uZmlnKGR3YywgdHJ1ZSk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IHJlZ21hcF9zZXRfYml0cyhkd2MtPmVpYzc3 MDBfaHNwX3JlZ21hcCwKKwkJCSAgICAgIGR3Yy0+ZXRoX3BoeV9jdHJsX29mZnNldCwKKwkJCSAg ICAgIEVJQzc3MDBfRVRIX1RYX0NMS19TRUwgfAorCQkJICAgICAgRUlDNzcwMF9FVEhfUEhZX0lO VEZfU0VMSSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJlZ21hcF93cml0ZShkd2Mt PmVpYzc3MDBfaHNwX3JlZ21hcCwgZHdjLT5ldGhfYXhpX2xwX2N0cmxfb2Zmc2V0LAorCQkgICAg IEVJQzc3MDBfRVRIX0NTWVNSRVFfVkFMKTsKIAotCXJldHVybiBlaWM3NzAwX2Nsa3NfY29uZmln KGR3YywgdHJ1ZSk7CisJcmVnbWFwX3dyaXRlKGR3Yy0+ZWljNzcwMF9oc3BfcmVnbWFwLCBkd2Mt PmV0aF90eGRfb2Zmc2V0LCAwKTsKKwlyZWdtYXBfd3JpdGUoZHdjLT5laWM3NzAwX2hzcF9yZWdt YXAsIGR3Yy0+ZXRoX3J4ZF9vZmZzZXQsIDApOworCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2 b2lkIGVpYzc3MDBfZHdtYWNfZXhpdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKnByaXYpCkBA IC04OCwxOCArMTI2LDM1IEBAIHN0YXRpYyBpbnQgZWljNzcwMF9kd21hY19yZXN1bWUoc3RydWN0 IGRldmljZSAqZGV2LCB2b2lkICpwcml2KQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lk IGVpYzc3MDBfZHdtYWNfZml4X3NwZWVkKHZvaWQgKnByaXYsIHBoeV9pbnRlcmZhY2VfdCBpbnRl cmZhY2UsCisJCQkJICAgIGludCBzcGVlZCwgdW5zaWduZWQgaW50IG1vZGUpCit7CisJc3RydWN0 IGVpYzc3MDBfcW9zX3ByaXYgKmR3YyA9IChzdHJ1Y3QgZWljNzcwMF9xb3NfcHJpdiAqKXByaXY7 CisJdTMyIGRseV9wYXJhbSA9IGR3Yy0+ZXRoX2Nsa19kbHlfcGFyYW07CisKKwlzd2l0Y2ggKHNw ZWVkKSB7CisJY2FzZSBTUEVFRF8xMDAwOgorCQlpZiAoZHdjLT5ldGhfcnhfY2xrX2ludikKKwkJ CWRseV9wYXJhbSB8PSBFSUM3NzAwX0VUSF9SWF9JTlZfREVMQVk7CisJCWJyZWFrOworCWNhc2Ug U1BFRURfMTAwOgorCWNhc2UgU1BFRURfMTA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9l cnIoZHdjLT5kZXYsICJpbnZhbGlkIHNwZWVkICV1XG4iLCBzcGVlZCk7CisJCWJyZWFrOworCX0K KworCXJlZ21hcF93cml0ZShkd2MtPmVpYzc3MDBfaHNwX3JlZ21hcCwgZHdjLT5ldGhfY2xrX29m ZnNldCwgZGx5X3BhcmFtKTsKK30KKwogc3RhdGljIGludCBlaWM3NzAwX2R3bWFjX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7CisJY29uc3Qgc3RydWN0IGVpYzc3MDBfZHdt YWNfZGF0YSAqZGF0YTsKIAlzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0Owog CXN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7CiAJc3RydWN0IGVpYzc3MDBfcW9z X3ByaXYgKmR3Y19wcml2OwotCXN0cnVjdCByZWdtYXAgKmVpYzc3MDBfaHNwX3JlZ21hcDsKLQl1 MzIgZXRoX2F4aV9scF9jdHJsX29mZnNldDsKLQl1MzIgZXRoX3BoeV9jdHJsX29mZnNldDsKLQl1 MzIgZXRoX3BoeV9jdHJsX3JlZ3NldDsKLQl1MzIgZXRoX3J4ZF9kbHlfb2Zmc2V0OwotCXUzMiBl dGhfZGx5X3BhcmFtID0gMDsKLQl1MzIgZGVsYXlfcHM7CisJdTMyIGRlbGF5X3BzLCB2YWw7CiAJ aW50IGksIHJldDsKIAogCXJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYs ICZzdG1tYWNfcmVzKTsKQEAgLTExNiw3MCArMTcxLDk1IEBAIHN0YXRpYyBpbnQgZWljNzcwMF9k d21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghZHdjX3ByaXYp CiAJCXJldHVybiAtRU5PTUVNOwogCisJZHdjX3ByaXYtPmRldiA9ICZwZGV2LT5kZXY7CisKKwlk YXRhID0gZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOworCWlmICghZGF0YSkKKwkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwKKwkJCQkgICAgIC1FSU5WQUwsICJubyBt YXRjaCBkYXRhIGZvdW5kXG4iKTsKKworCWR3Y19wcml2LT5ldGhfcnhfY2xrX2ludiA9IGRhdGEt PnJnbWlpX3J4X2Nsa19pbnZlcnQ7CisKIAkvKiBSZWFkIHJ4LWludGVybmFsLWRlbGF5LXBzIGFu ZCB1cGRhdGUgcnhfY2xrIGRlbGF5ICovCiAJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihwZGV2 LT5kZXYub2Zfbm9kZSwKIAkJCQkgICJyeC1pbnRlcm5hbC1kZWxheS1wcyIsICZkZWxheV9wcykp IHsKLQkJdTMyIHZhbCA9IG1pbihkZWxheV9wcyAvIDEwMCwgRUlDNzcwMF9NQVhfREVMQVlfVU5J VCk7CisJCWlmIChkZWxheV9wcyAlIEVJQzc3MDBfREVMQVlfU1RFUF9QUykKKwkJCXJldHVybiBk ZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIC1FSU5WQUwsCisJCQkJInJ4IGRlbGF5IG11c3QgYmUg bXVsdGlwbGUgb2YgJWRwc1xuIiwKKwkJCQlFSUM3NzAwX0RFTEFZX1NURVBfUFMpOwogCi0JCWV0 aF9kbHlfcGFyYW0gJj0gfkVJQzc3MDBfRVRIX1JYX0FESl9ERUxBWTsKLQkJZXRoX2RseV9wYXJh bSB8PSBGSUVMRF9QUkVQKEVJQzc3MDBfRVRIX1JYX0FESl9ERUxBWSwgdmFsKTsKLQl9IGVsc2Ug ewotCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCAtRUlOVkFMLAotCQkJIm1pc3Np bmcgcmVxdWlyZWQgcHJvcGVydHkgcngtaW50ZXJuYWwtZGVsYXktcHNcbiIpOworCQlpZiAoZGVs YXlfcHMgPiBFSUM3NzAwX01BWF9ERUxBWV9QUykKKwkJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZw ZGV2LT5kZXYsIC1FSU5WQUwsCisJCQkJInJ4IGRlbGF5IG91dCBvZiByYW5nZVxuIik7CisKKwkJ dmFsID0gZGVsYXlfcHMgLyBFSUM3NzAwX0RFTEFZX1NURVBfUFM7CisKKwkJZHdjX3ByaXYtPmV0 aF9jbGtfZGx5X3BhcmFtICY9IH5FSUM3NzAwX0VUSF9SWF9BREpfREVMQVk7CisJCWR3Y19wcml2 LT5ldGhfY2xrX2RseV9wYXJhbSB8PQorCQkJCSBGSUVMRF9QUkVQKEVJQzc3MDBfRVRIX1JYX0FE Sl9ERUxBWSwgdmFsKTsKIAl9CiAKIAkvKiBSZWFkIHR4LWludGVybmFsLWRlbGF5LXBzIGFuZCB1 cGRhdGUgdHhfY2xrIGRlbGF5ICovCiAJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihwZGV2LT5k ZXYub2Zfbm9kZSwKIAkJCQkgICJ0eC1pbnRlcm5hbC1kZWxheS1wcyIsICZkZWxheV9wcykpIHsK LQkJdTMyIHZhbCA9IG1pbihkZWxheV9wcyAvIDEwMCwgRUlDNzcwMF9NQVhfREVMQVlfVU5JVCk7 CisJCWlmIChkZWxheV9wcyAlIEVJQzc3MDBfREVMQVlfU1RFUF9QUykKKwkJCXJldHVybiBkZXZf ZXJyX3Byb2JlKCZwZGV2LT5kZXYsIC1FSU5WQUwsCisJCQkJInR4IGRlbGF5IG11c3QgYmUgbXVs dGlwbGUgb2YgJWRwc1xuIiwKKwkJCQlFSUM3NzAwX0RFTEFZX1NURVBfUFMpOworCisJCWlmIChk ZWxheV9wcyA+IEVJQzc3MDBfTUFYX0RFTEFZX1BTKQorCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUo JnBkZXYtPmRldiwgLUVJTlZBTCwKKwkJCQkidHggZGVsYXkgb3V0IG9mIHJhbmdlXG4iKTsKIAot CQlldGhfZGx5X3BhcmFtICY9IH5FSUM3NzAwX0VUSF9UWF9BREpfREVMQVk7Ci0JCWV0aF9kbHlf cGFyYW0gfD0gRklFTERfUFJFUChFSUM3NzAwX0VUSF9UWF9BREpfREVMQVksIHZhbCk7Ci0JfSBl bHNlIHsKLQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwgLUVJTlZBTCwKLQkJCSJt aXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5IHR4LWludGVybmFsLWRlbGF5LXBzXG4iKTsKKwkJdmFs ID0gZGVsYXlfcHMgLyBFSUM3NzAwX0RFTEFZX1NURVBfUFM7CisKKwkJZHdjX3ByaXYtPmV0aF9j bGtfZGx5X3BhcmFtICY9IH5FSUM3NzAwX0VUSF9UWF9BREpfREVMQVk7CisJCWR3Y19wcml2LT5l dGhfY2xrX2RseV9wYXJhbSB8PQorCQkJCSBGSUVMRF9QUkVQKEVJQzc3MDBfRVRIX1RYX0FESl9E RUxBWSwgdmFsKTsKIAl9CiAKLQllaWM3NzAwX2hzcF9yZWdtYXAgPSBzeXNjb25fcmVnbWFwX2xv b2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2RlLAotCQkJCQkJCSAgICAgImVzd2luLGhz cC1zcC1jc3IiKTsKLQlpZiAoSVNfRVJSKGVpYzc3MDBfaHNwX3JlZ21hcCkpCisJZHdjX3ByaXYt PmVpYzc3MDBfaHNwX3JlZ21hcCA9CisJCQlzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxl KHBkZXYtPmRldi5vZl9ub2RlLAorCQkJCQkJCSJlc3dpbixoc3Atc3AtY3NyIik7CisJaWYgKElT X0VSUihkd2NfcHJpdi0+ZWljNzcwMF9oc3BfcmVnbWFwKSkKIAkJcmV0dXJuIGRldl9lcnJfcHJv YmUoJnBkZXYtPmRldiwKLQkJCQlQVFJfRVJSKGVpYzc3MDBfaHNwX3JlZ21hcCksCisJCQkJUFRS X0VSUihkd2NfcHJpdi0+ZWljNzcwMF9oc3BfcmVnbWFwKSwKIAkJCQkiRmFpbGVkIHRvIGdldCBo c3Atc3AtY3NyIHJlZ21hcFxuIik7CiAKIAlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9pbmRl eChwZGV2LT5kZXYub2Zfbm9kZSwKIAkJCQkJICJlc3dpbixoc3Atc3AtY3NyIiwKLQkJCQkJIDEs ICZldGhfcGh5X2N0cmxfb2Zmc2V0KTsKKwkJCQkJIDEsICZkd2NfcHJpdi0+ZXRoX3BoeV9jdHJs X29mZnNldCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJnBkZXYtPmRldiwg cmV0LAogCQkJCSAgICAgImNhbid0IGdldCBldGhfcGh5X2N0cmxfb2Zmc2V0XG4iKTsKIAotCXJl Z21hcF9yZWFkKGVpYzc3MDBfaHNwX3JlZ21hcCwgZXRoX3BoeV9jdHJsX29mZnNldCwKLQkJICAg ICZldGhfcGh5X2N0cmxfcmVnc2V0KTsKLQlldGhfcGh5X2N0cmxfcmVnc2V0IHw9Ci0JCShFSUM3 NzAwX0VUSF9UWF9DTEtfU0VMIHwgRUlDNzcwMF9FVEhfUEhZX0lOVEZfU0VMSSk7Ci0JcmVnbWFw X3dyaXRlKGVpYzc3MDBfaHNwX3JlZ21hcCwgZXRoX3BoeV9jdHJsX29mZnNldCwKLQkJICAgICBl dGhfcGh5X2N0cmxfcmVnc2V0KTsKLQogCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2luZGV4 KHBkZXYtPmRldi5vZl9ub2RlLAogCQkJCQkgImVzd2luLGhzcC1zcC1jc3IiLAotCQkJCQkgMiwg JmV0aF9heGlfbHBfY3RybF9vZmZzZXQpOworCQkJCQkgMiwgJmR3Y19wcml2LT5ldGhfYXhpX2xw X2N0cmxfb2Zmc2V0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ ZGV2LCByZXQsCiAJCQkJICAgICAiY2FuJ3QgZ2V0IGV0aF9heGlfbHBfY3RybF9vZmZzZXRcbiIp OwogCi0JcmVnbWFwX3dyaXRlKGVpYzc3MDBfaHNwX3JlZ21hcCwgZXRoX2F4aV9scF9jdHJsX29m ZnNldCwKLQkJICAgICBFSUM3NzAwX0VUSF9DU1lTUkVRX1ZBTCk7CisJcmV0ID0gb2ZfcHJvcGVy dHlfcmVhZF91MzJfaW5kZXgocGRldi0+ZGV2Lm9mX25vZGUsCisJCQkJCSAiZXN3aW4saHNwLXNw LWNzciIsCisJCQkJCSAzLCAmZHdjX3ByaXYtPmV0aF9jbGtfb2Zmc2V0KTsKKwlpZiAocmV0KQor CQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCByZXQsCisJCQkJICAgICAiY2FuJ3Qg Z2V0IGV0aF9jbGtfb2Zmc2V0XG4iKTsKIAogCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2lu ZGV4KHBkZXYtPmRldi5vZl9ub2RlLAogCQkJCQkgImVzd2luLGhzcC1zcC1jc3IiLAotCQkJCQkg MywgJmV0aF9yeGRfZGx5X29mZnNldCk7CisJCQkJCSA0LCAmZHdjX3ByaXYtPmV0aF90eGRfb2Zm c2V0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCByZXQs Ci0JCQkJICAgICAiY2FuJ3QgZ2V0IGV0aF9yeGRfZGx5X29mZnNldFxuIik7CisJCQkJICAgICAi Y2FuJ3QgZ2V0IGV0aF90eGRfb2Zmc2V0XG4iKTsKIAotCXJlZ21hcF93cml0ZShlaWM3NzAwX2hz cF9yZWdtYXAsIGV0aF9yeGRfZGx5X29mZnNldCwKLQkJICAgICBldGhfZGx5X3BhcmFtKTsKKwly ZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9pbmRleChwZGV2LT5kZXYub2Zfbm9kZSwKKwkJCQkJ ICJlc3dpbixoc3Atc3AtY3NyIiwKKwkJCQkJIDUsICZkd2NfcHJpdi0+ZXRoX3J4ZF9vZmZzZXQp OworCWlmIChyZXQpCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIHJldCwKKwkJ CQkgICAgICJjYW4ndCBnZXQgZXRoX3J4ZF9vZmZzZXRcbiIpOwogCiAJcGxhdF9kYXQtPm51bV9j bGtzID0gQVJSQVlfU0laRShlaWM3NzAwX2Nsa19uYW1lcyk7CiAJcGxhdF9kYXQtPmNsa3MgPSBk ZXZtX2tjYWxsb2MoJnBkZXYtPmRldiwKQEAgLTIwOCwxMiArMjg4LDI3IEBAIHN0YXRpYyBpbnQg ZWljNzcwMF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBsYXRf ZGF0LT5leGl0ID0gZWljNzcwMF9kd21hY19leGl0OwogCXBsYXRfZGF0LT5zdXNwZW5kID0gZWlj NzcwMF9kd21hY19zdXNwZW5kOwogCXBsYXRfZGF0LT5yZXN1bWUgPSBlaWM3NzAwX2R3bWFjX3Jl c3VtZTsKKwlwbGF0X2RhdC0+Zml4X21hY19zcGVlZCA9IGVpYzc3MDBfZHdtYWNfZml4X3NwZWVk OwogCiAJcmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCAmc3Rt bWFjX3Jlcyk7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZWljNzcwMF9kd21hY19kYXRhIGVp Yzc3MDBfZHdtYWNfZGF0YSA9IHsKKwkucmdtaWlfcnhfY2xrX2ludmVydCA9IGZhbHNlLAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBlaWM3NzAwX2R3bWFjX2RhdGEgZWljNzcwMF9kd21hY19k YXRhX2Nsa19pbnZlcnNpb24gPSB7CisJLnJnbWlpX3J4X2Nsa19pbnZlcnQgPSB0cnVlLAorfTsK Kwogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZWljNzcwMF9kd21hY19tYXRjaFtd ID0gewotCXsgLmNvbXBhdGlibGUgPSAiZXN3aW4sZWljNzcwMC1xb3MtZXRoIiB9LAorCXsJLmNv bXBhdGlibGUgPSAiZXN3aW4sZWljNzcwMC1xb3MtZXRoIiwKKwkJLmRhdGEgPSAmZWljNzcwMF9k d21hY19kYXRhLAorCX0sCisJeworCQkuY29tcGF0aWJsZSA9ICJlc3dpbixlaWM3NzAwLXFvcy1l dGgtY2xrLWludmVyc2lvbiIsCisJCS5kYXRhID0gJmVpYzc3MDBfZHdtYWNfZGF0YV9jbGtfaW52 ZXJzaW9uLAorCX0sCiAJeyB9CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZWljNzcwMF9k d21hY19tYXRjaCk7Ci0tIAoyLjI1LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJpc2N2Cg==