From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B95ECC001DE for ; Thu, 13 Jul 2023 22:19:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232919AbjGMWTT (ORCPT ); Thu, 13 Jul 2023 18:19:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229815AbjGMWTQ (ORCPT ); Thu, 13 Jul 2023 18:19:16 -0400 Received: from mail-qv1-xf34.google.com (mail-qv1-xf34.google.com [IPv6:2607:f8b0:4864:20::f34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7C181BEB for ; Thu, 13 Jul 2023 15:19:15 -0700 (PDT) Received: by mail-qv1-xf34.google.com with SMTP id 6a1803df08f44-635eb5b0320so7129496d6.3 for ; Thu, 13 Jul 2023 15:19:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286755; x=1691878755; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=2IZg4/owNJCjIPBqNlttbzksoiW5oM8rKk+EPg35D4Y=; b=RiPTFKsOi8wfu4/pW2nOH5oW3x+dTEJC2fFxVLkavlG9Fzkl+kd0oh4PyQSTA0iv9T WCTCJR7ZiH7xgymkBevoTO3NWX0aLCu+SJpQpejj18oaFtMD2hiuLn1HFh1IRoWDbufk Xlbp4shyd5ct5CIfEhHKVbAyYmQg3izWAk/W0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286755; x=1691878755; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2IZg4/owNJCjIPBqNlttbzksoiW5oM8rKk+EPg35D4Y=; b=DJU5RkxVOLsmXl5fVxjaeVIJzJ/4m8ZXmGw3zflL1BmowkooevKOkKWJZGeyuYDqf8 0csnuuAlwgFTiaAcS64Dodx3H+3fqAtscFm/xKTEONv1avkdX1y5P/kPab+UiMEfYogv ZchYJNUH/1521IQtl/FiQsvJKnqyqDVpHa0hcJsMIgxJPeBaFyTWYct415xQmqLYLb0H OXzzMWEpaU0ZTyhBeN+sN73m9YB7JMVRzD1cmARl5/IXtEBHphMAoEC7WV0buyMgp2Ew z4mdI6zEG0vg2BzVpr2P6WF7mYtiU+w2gphu1ue60dFVnCU9/FxnfEn0V0H70eaRyS3Q WEvQ== X-Gm-Message-State: ABy/qLZ2xfzggGn+HSWf7KPiOFwbPHJfQ38zjC25n6KGTHluJSXca+Nu tLsC6SshpRTXy+ZdC93e+G/cmw== X-Google-Smtp-Source: APBJJlFFaNOKgcQHxz/d9JVfrBGbfoErKD0wtudd0PXZ4ze1v02twfjADoZM0annlD81ovPkXTs53Q== X-Received: by 2002:a0c:a991:0:b0:635:d5c5:15d2 with SMTP id a17-20020a0ca991000000b00635d5c515d2mr3042431qvb.18.1689286754946; Thu, 13 Jul 2023 15:19:14 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:14 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 01/11] dt-bindings: net: brcm,unimac-mdio: Add asp-v2.0 Date: Thu, 13 Jul 2023 15:18:56 -0700 Message-Id: <1689286746-43609-2-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000f785b9060065b87f" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000f785b9060065b87f MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIEFTUCAyLjAgRXRoZXJuZXQgY29udHJvbGxlciB1c2VzIGEgYnJjbSB1bmltYWMuCgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29yaWdpbmUuY29tPgpBY2tlZC1i eTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KU2lnbmVkLW9mZi1i eTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+ClNpZ25l ZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQogRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLHVuaW1hYy1tZGlvLnlhbWwg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLHVuaW1hYy1tZGlvLnlhbWwg Yi89CkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYnJjbSx1bmltYWMtbWRp by55YW1sCmluZGV4IDBiZTQyNmVlMWU0NC4uNjY4NDgxMGZjYmYwIDEwMDY0NAotLS0gYS9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2JyY20sdW5pbWFjLW1kaW8ueWFtbAor KysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2JyY20sdW5pbWFjLW1k aW8ueWFtbApAQCAtMjIsNiArMjIsOCBAQCBwcm9wZXJ0aWVzOgogICAgICAgLSBicmNtLGdlbmV0 LW1kaW8tdjMKICAgICAgIC0gYnJjbSxnZW5ldC1tZGlvLXY0CiAgICAgICAtIGJyY20sZ2VuZXQt bWRpby12NQorICAgICAgLSBicmNtLGFzcC12Mi4wLW1kaW8KKyAgICAgIC0gYnJjbSxhc3AtdjIu MS1tZGlvCiAgICAgICAtIGJyY20sdW5pbWFjLW1kaW8KPTIwCiAgIHJlZzoKLS09MjAKMi43LjQK --000000000000f785b9060065b87f Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINAcq15A6mFf9q6u2xJbqVsioTkozB6uouzx A9tu0tHlMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkxNVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQC3Md7XNJe3kFC4uigahO6w7w+2DWwIPTIJCjU+bRhXlw6njisedtvT KGU7bx8oND2oMYOEnD3URwhp6CdhJ9UMork+5YNFb1FKzGSDDilseXP5VpEtumx1OBKw2O40pcJM AE2/ILFNvtHp5lLNSv18yJg/P6CaByBYkxF2fpmOvN3OSVtU1ItHWyHHuxfo7VbSixPhRoLMGlKU yGMAxuBoxiCIi3of3uZTAkese2RwaK2sJlIEWPekS+yW1RUh90IeKy6ayCxAdMP75i2DdQu3Pseg Yzsc7AmSQt/zBDxcU2hjORDPspM2KIWQypDCGBrF4xxLa+gAFIh+P/0/w2p+ --000000000000f785b9060065b87f-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A0B2C001DE for ; Thu, 13 Jul 2023 22:19:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229815AbjGMWTX (ORCPT ); Thu, 13 Jul 2023 18:19:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232449AbjGMWTT (ORCPT ); Thu, 13 Jul 2023 18:19:19 -0400 Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com [IPv6:2607:f8b0:4864:20::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 669382736 for ; Thu, 13 Jul 2023 15:19:18 -0700 (PDT) Received: by mail-oi1-x229.google.com with SMTP id 5614622812f47-38c35975545so1119701b6e.1 for ; Thu, 13 Jul 2023 15:19:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286757; x=1691878757; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=iWyijcS1l93tWTXTFvCcMMCsgkwdW6HY8d9s1I+Jmbs=; b=dcM82PoT3nlDb4RQMFi9lyJKXuKfYvVBwy2qqWGDY68BUBRF56Rzi0Z9KyFVZewFrf 3oQlBTXG8ZBKhs7avIAtsoZCb9yGrzGSk5Ucx+aUgAk+jqlTh75PbgmfDg1z4sFfrdFJ e0u8Exn0XlD4pIfHv6VA1fZ31FU/b1XyjSXM8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286757; x=1691878757; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iWyijcS1l93tWTXTFvCcMMCsgkwdW6HY8d9s1I+Jmbs=; b=eeRC5oCQOgxJHYFZLzy5+7FnyW6isJCSIwOW1Oy2iSvA9dwRq0qfAter+sYAJPar7f +omYFUBeeFGVlC056lNF56ukzdfpM2JugGZQsJrySbAMsQes9BCkr1QP6o0tXO7x7KOT pS841dSzGxv6Vqoj4Pz50i59fxMl1lQ/uhu8mIgeIosZNLVI6vY23egdFVM9Tl/1ZqI8 l9cgL8fD6lSqQmqCioWb+hkVfxFb8L3UJCC2OUN0Yjx/nb9l03ub/le+wijoAftk/MLk kIP/Zy+yFNkVysr+VyhY3ks6FTuRILhFsO/7TmvH8MDxAIYDv7NNMXJpTXvuG4PiC/iP GcJg== X-Gm-Message-State: ABy/qLYCi4KlFvIAssSZaRhECB8ctYGYgfc2eQr1a6u1edz1KLhhL2ba oKPTFdPrWKuHsPWnYC2rjHlfwQ== X-Google-Smtp-Source: APBJJlH1+IMHSyZbwvRj+m0gJUVshNQQjR63AYYmIl+frNZtCcKMZ4PbDgAIrLEvVcemD14i1LsIVA== X-Received: by 2002:a05:6808:1929:b0:3a4:91a:224a with SMTP id bf41-20020a056808192900b003a4091a224amr4598005oib.34.1689286757668; Thu, 13 Jul 2023 15:19:17 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:17 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 02/11] dt-bindings: net: Brcm ASP 2.0 Ethernet controller Date: Thu, 13 Jul 2023 15:18:57 -0700 Message-Id: <1689286746-43609-3-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000021c9ed060065b9ac" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000021c9ed060065b9ac MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+CgpB ZGQgYSBiaW5kaW5nIGRvY3VtZW50IGZvciB0aGUgQnJvYWRjb20gQVNQIDIuMCBFdGhlcm5ldApj b250cm9sbGVyLgoKUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3Jv Y2hpcC5jb20+ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVs bGlAYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5A YnJvYWRjb20uY29tPgotLS0KdjcKCS0gQWRkZWQgInVuZXZhbHVhdGVkUHJvcGVydGllczogRmFs c2UiCgp2NgoJLSBNb3ZlZCBjb21wYXRpYmxlIHRvIHRoZSB0b3AKCS0gQ2hhbmdlZCBxdW90ZXMg dG8gYmUgY29uc2lzdGVudAoJLSBFbGFib3JhdGVkIG9uIGJyY20sY2hhbm5lbCBkZXNjcmlwdGlv bgoKdjUKCS0gRml4IGNvbXBhdGlibGUgc3RyaW5nIHlhbWwgZm9ybWF0IHRvIHByb3Blcmx5IGNh cHR1cmUgd2hhdCB3ZSB3YW50Cgp2NAogICAgICAgIC0gQWRqdXN0IGNvbXBhdGlibGUgc3RyaW5n IGV4YW1wbGUgdG8gcmVmZXJlbmNlIFNvQyBhbmQgSFcgdmVyCgp2MwogICAgICAgIC0gTWlub3Ig Zm9ybWF0dGluZyBpc3N1ZXMKICAgICAgICAtIENoYW5nZSBjaGFubmVsIHByb3AgdG8gYnJjbSxj aGFubmVsIGZvciB2ZW5kb3Igc3BlY2lmaWMgZm9ybWF0CiAgICAgICAgLSBSZW1vdmVkIHJlZHVu ZGFudCB2Mi4wIGZyb20gY29tcGF0IHN0cmluZwogICAgICAgIC0gRml4IHJhbmdlcyBmaWVsZAoK djIKICAgICAgICAtIE1pbm9yIGZvcm1hdHRpbmcgaXNzdWVzCgogLi4uL2RldmljZXRyZWUvYmlu ZGluZ3MvbmV0L2JyY20sYXNwLXYyLjAueWFtbCAgICAgfCAxNTUgKysrKysrKysrKysrKysrKys9 CisrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYnJjbSxhc3AtdjIuMC55 YW1sCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9i cmNtLGFzcC12Mi4wLnlhbWwgYi9Eb2M9CnVtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9u ZXQvYnJjbSxhc3AtdjIuMC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYWEzMTYyYzc0ODMzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLGFzcC12Mi4wLnlhbWwKQEAgLTAsMCArMSwxNTUgQEAK KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNl KQorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0 L2JyY20sYXNwLXYyLjAueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRh LXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQnJvYWRjb20gQVNQIDIuMCBFdGhlcm5ldCBj b250cm9sbGVyCisKK21haW50YWluZXJzOgorICAtIEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBi cm9hZGNvbS5jb20+CisgIC0gRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9h ZGNvbS5jb20+CisKK2Rlc2NyaXB0aW9uOiBCcm9hZGNvbSBFdGhlcm5ldCBjb250cm9sbGVyIGZp cnN0IGludHJvZHVjZWQgd2l0aCA3MjE2NQorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgor ICAgIG9uZU9mOgorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGVudW06CisgICAgICAgICAg ICAgIC0gYnJjbSxiY203NDE2NS1hc3AKKyAgICAgICAgICAtIGNvbnN0OiBicmNtLGFzcC12Mi4x CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBicmNt LGJjbTcyMTY1LWFzcAorICAgICAgICAgIC0gY29uc3Q6IGJyY20sYXNwLXYyLjAKKworICAiI2Fk ZHJlc3MtY2VsbHMiOgorICAgIGNvbnN0OiAxCisgICIjc2l6ZS1jZWxscyI6CisgICAgY29uc3Q6 IDEKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICByYW5nZXM6IHRydWUKKworICBpbnRl cnJ1cHRzOgorICAgIG1pbkl0ZW1zOiAxCisgICAgaXRlbXM6CisgICAgICAtIGRlc2NyaXB0aW9u OiBSWC9UWCBpbnRlcnJ1cHQKKyAgICAgIC0gZGVzY3JpcHRpb246IFBvcnQgMCBXYWtlLW9uLUxB TgorICAgICAgLSBkZXNjcmlwdGlvbjogUG9ydCAxIFdha2Utb24tTEFOCisKKyAgY2xvY2tzOgor ICAgIG1heEl0ZW1zOiAxCisKKyAgZXRoZXJuZXQtcG9ydHM6CisgICAgdHlwZTogb2JqZWN0Cisg ICAgcHJvcGVydGllczoKKyAgICAgICIjYWRkcmVzcy1jZWxscyI6CisgICAgICAgIGNvbnN0OiAx CisgICAgICAiI3NpemUtY2VsbHMiOgorICAgICAgICBjb25zdDogMAorCisgICAgcGF0dGVyblBy b3BlcnRpZXM6CisgICAgICAiXnBvcnRAWzAtOV0rJCI6CisgICAgICAgIHR5cGU6IG9iamVjdAor CisgICAgICAgICRyZWY6IGV0aGVybmV0LWNvbnRyb2xsZXIueWFtbCMKKworICAgICAgICB1bmV2 YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlCisKKyAgICAgICAgcHJvcGVydGllczoKKyAgICAgICAg ICByZWc6CisgICAgICAgICAgICBtYXhJdGVtczogMQorICAgICAgICAgICAgZGVzY3JpcHRpb246 IFBvcnQgbnVtYmVyCisKKyAgICAgICAgICBicmNtLGNoYW5uZWw6CisgICAgICAgICAgICAkcmVm OiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy91aW50MzIKKyAgICAgICAgICAgIGRl c2NyaXB0aW9uOiB8CisgICAgICAgICAgICAgIEFTUCBDaGFubmVsIE51bWJlcgorCisgICAgICAg ICAgICAgIFRoZSBkZXBhY2tldGl6ZXIgY2hhbm5lbCB0aGF0IGNvbnN1bWVzIHBhY2tldHMgZnJv bQorICAgICAgICAgICAgICB0aGUgdW5pbWFjL3BvcnQuCisKKyAgICAgICAgcmVxdWlyZWQ6Cisg ICAgICAgICAgLSByZWcKKyAgICAgICAgICAtIGJyY20sY2hhbm5lbAorCisgICAgYWRkaXRpb25h bFByb3BlcnRpZXM6IGZhbHNlCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAiXm1kaW9AWzAtOWEt Zl0rJCI6CisgICAgdHlwZTogb2JqZWN0CisgICAgJHJlZjogYnJjbSx1bmltYWMtbWRpby55YW1s CisKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIEFTUCBpbnRlcm5hbCBVbmlNQUMgTURJTyBidXMK KworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAg LSBjbG9ja3MKKyAgLSByYW5nZXMKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK2V4 YW1wbGVzOgorICAtIHwKKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRy b2xsZXIvaXJxLmg+CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9s bGVyL2FybS1naWMuaD4KKworICAgIGV0aGVybmV0QDljMDAwMDAgeworICAgICAgICBjb21wYXRp YmxlID0zRCAiYnJjbSxiY203MjE2NS1hc3AiLCAiYnJjbSxhc3AtdjIuMCI7CisgICAgICAgIHJl ZyA9M0QgPDB4OWMwMDAwMCAweDFmZmYxND47CisgICAgICAgIGludGVycnVwdHMgPTNEIDxHSUNf U1BJIDUxIElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgICByYW5nZXMgPTNEIDwweDAgMHg5 YzAwMDAwIDB4MWZmZjE0PjsKKyAgICAgICAgY2xvY2tzID0zRCA8JnNjbWkgMTQ+OworICAgICAg ICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+OworICAgICAgICAjc2l6ZS1jZWxscyA9M0QgPDE+Owor CisgICAgICAgIG1kaW9AYzYxNCB7CisgICAgICAgICAgICBjb21wYXRpYmxlID0zRCAiYnJjbSxh c3AtdjIuMC1tZGlvIjsKKyAgICAgICAgICAgIHJlZyA9M0QgPDB4YzYxNCAweDg+OworICAgICAg ICAgICAgcmVnLW5hbWVzID0zRCAibWRpbyI7CisgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9 M0QgPDE+OworICAgICAgICAgICAgI3NpemUtY2VsbHMgPTNEIDwwPjsKKworICAgICAgICAgICAg cGh5MDogZXRoZXJuZXQtcGh5QDEgeworICAgICAgICAgICAgICAgIHJlZyA9M0QgPDE+OworICAg ICAgICAgICAgfTsKKyAgICAgICB9OworCisgICAgICAgIG1kaW9AY2UxNCB7CisgICAgICAgICAg ICBjb21wYXRpYmxlID0zRCAiYnJjbSxhc3AtdjIuMC1tZGlvIjsKKyAgICAgICAgICAgIHJlZyA9 M0QgPDB4Y2UxNCAweDg+OworICAgICAgICAgICAgcmVnLW5hbWVzID0zRCAibWRpbyI7CisgICAg ICAgICAgICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+OworICAgICAgICAgICAgI3NpemUtY2VsbHMg PTNEIDwwPjsKKworICAgICAgICAgICAgcGh5MTogZXRoZXJuZXQtcGh5QDEgeworICAgICAgICAg ICAgICAgIHJlZyA9M0QgPDE+OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAg ICBldGhlcm5ldC1wb3J0cyB7CisgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+Owor ICAgICAgICAgICAgI3NpemUtY2VsbHMgPTNEIDwwPjsKKworICAgICAgICAgICAgcG9ydEAwIHsK KyAgICAgICAgICAgICAgICByZWcgPTNEIDwwPjsKKyAgICAgICAgICAgICAgICBicmNtLGNoYW5u ZWwgPTNEIDw4PjsKKyAgICAgICAgICAgICAgICBwaHktbW9kZSA9M0QgInJnbWlpIjsKKyAgICAg ICAgICAgICAgICBwaHktaGFuZGxlID0zRCA8JnBoeTA+OworICAgICAgICAgICAgfTsKKworICAg ICAgICAgICAgcG9ydEAxIHsKKyAgICAgICAgICAgICAgICByZWcgPTNEIDwxPjsKKyAgICAgICAg ICAgICAgICBicmNtLGNoYW5uZWwgPTNEIDw5PjsKKyAgICAgICAgICAgICAgICBwaHktbW9kZSA9 M0QgInJnbWlpIjsKKyAgICAgICAgICAgICAgICBwaHktaGFuZGxlID0zRCA8JnBoeTE+OworICAg ICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9OwotLT0yMAoyLjcuNAo= --00000000000021c9ed060065b9ac Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIKOegA0YxXA/8wWNvS6nAeuueXoPtEI1WN+J 1esFfaZvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkxN1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAFuKOmwvmIIBVvpPqXpsGJBunz+ICQuMXzJ3qpmRJS7Mgdo4p4HCpt eEYIgQmgybg4dUAI84uTt85q0I+Si6tivvAuIyOT7ILgRRYYgqH6IEx4zZFOBPPH8v5Mxrcnjhc2 UM9m9QIK5+LB2EjRCCoUkwsi/NnsNC+xqRgtEn2wHE64z6Hr/RzxXZDQTSkPj++OziumJZ3yKrSX 1Zz3SD4m3q0KsAK+JDe1D6iLbWfj7iITi3b1PKVVHDSBhnEgCNIM2Q3Z4p0ov7mN5hrPz9uXBJwf EZ0+WC3bNcFFxGfzt5smFDqERnjhdtN8bX8mzYjtFx4RoEKl2CsV5aMcUbfg --00000000000021c9ed060065b9ac-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE70DC001DE for ; Thu, 13 Jul 2023 22:19:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232607AbjGMWTd (ORCPT ); Thu, 13 Jul 2023 18:19:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232990AbjGMWT2 (ORCPT ); Thu, 13 Jul 2023 18:19:28 -0400 Received: from mail-qk1-x736.google.com (mail-qk1-x736.google.com [IPv6:2607:f8b0:4864:20::736]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 019382D61 for ; Thu, 13 Jul 2023 15:19:22 -0700 (PDT) Received: by mail-qk1-x736.google.com with SMTP id af79cd13be357-76754b9eac0so118660385a.0 for ; Thu, 13 Jul 2023 15:19:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286761; x=1691878761; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=UsKEN+Y09Hp2lx9eVDvwXB+ahY7ZJK0V2XFMrcTngBk=; b=I4VsYPWPZ7kKvVRYy76QMpHbmeewRy7UlBrukG3BGFUxZrbrMvnYrFKYeGAGKyn0NG 5t4Cpb6TKA4mj9Nd9nUHP6hsYIIHIpicDJQ8OKMDGWxEz/dk6W9zyQ5UQ//l8j7s82T2 zCXzw3ckELyzYmdsbj/1AU3uzl9Qwos7P1/YY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286761; x=1691878761; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=UsKEN+Y09Hp2lx9eVDvwXB+ahY7ZJK0V2XFMrcTngBk=; b=ZfETpWpiyQ9reYqmf3Y5dEGZzv/R5ZAXYAceAmywc7sHrZXs8B1XecXa2uEj3Y6JOb 1JKieZ+1kFXA7mQpEzYXzZeXtukuXkfrEXN2AhccsSRbY0HNzTwBszGQkY1Vxk4CKwco M2q0IxnrwWSLKotBZg+Psz3Q/f10YCKs5yTIwZX+Hwfv9oVVYMPKx1xbuA3P5HGsDhGg /WrQ5ssBfags/z9W1ORcn3jZsYnE51xw1xjJHUcmp6AFP+5yoAFkCaqulXQaQj6l6EP1 4fJoOSHH1cV62gfUIcwTp0DQTTDb8qnhdJRbcssnJmMK5MexcUeGoaKFtSV+lleLYxld em/Q== X-Gm-Message-State: ABy/qLZOY6gOdBySTThNhamvAzJdipwOL5ySp+/uJHXxoQxNgI7mqJ/P ztsW/5yvz/cz1oOMozMhcA2F5A== X-Google-Smtp-Source: APBJJlHQ+kCLYrCBqM5fpq7cTJ2zd9qCk84Jtt+II8E6E+0zQ/lq6P/39U8Xu1JtZ4FnBdVp9pj52w== X-Received: by 2002:a0c:e4c5:0:b0:637:87eb:bbba with SMTP id g5-20020a0ce4c5000000b0063787ebbbbamr2754332qvm.8.1689286760631; Thu, 13 Jul 2023 15:19:20 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:20 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 03/11] net: bcmasp: Add support for ASP2.0 Ethernet controller Date: Thu, 13 Jul 2023 15:18:58 -0700 Message-Id: <1689286746-43609-4-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000559e73060065b9ea" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000559e73060065b9ea MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIHRoZSBCcm9hZGNvbSBBU1AgMi4wIEV0aGVybmV0IGNvbnRyb2xsZXIg d2hpY2ggaXMgZmlyc3QKaW50cm9kdWNlZCB3aXRoIDcyMTY1LiBUaGlzIGNvbnRyb2xsZXIgZmVh dHVyZXMgdHdvIGRpc3RpbmN0IEV0aGVybmV0CnBvcnRzIHRoYXQgY2FuIGJlIGluZGVwZW5kZW50 bHkgb3BlcmF0ZWQuCgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29y aWdpbmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5l bGxpQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1c3Rpbi5jaGVu QGJyb2FkY29tLmNvbT4KLS0tCnY5CiAgICAgICAgLSBSZXdvcmtlZCBsb2dpYyB3aGVyZSBhIHBv cnQgZmFpbHMgdG8gcmVnaXN0ZXIgZHVyaW5nIHByb2JlCiAgICAgICAgLSBTd2l0Y2ggZnJvbSBh cnJheSB0byBsaW5rZWQgbGlzdCBmb3IgaW50ZXJmYWNlcy4gVGhpcyBzaW1wbGlmaWVzCiAgICAg ICAgICB0aGUgbG9naWMgYW5kIG1ha2VzIGl0IGEgYml0IGNsZWFuZXIgdG8gZm9sbG93LgogICAg ICAgIC0gQ2hlY2sgZm9yIGNhc2Ugd2hlcmUgcmVtb3ZlIGFuZCBzaHV0ZG93biBob29rIGJvdGgg Z2V0IGNhbGxlZC4KICAgICAgICAtIFVzZSBza2JfY293X2hlYWQgaW5zdGVhZCBvZiBza2JfcmVh bGxvY19oZWFkcm9vbQogICAgICAgIC0gQWRkIHJhdGVsaW1pdCBmb3Igc29tZSBlcnIgcHJpbnRz LgoJLSBVc2UgbmFwaV9hbGxvY19za2IgaW5zdGVhZCBvZiBfX25ldGRldl9hbGxvY19za2IoKS4K CS0gUmV3b3JrZWQgc29tZSBydG5sX2xpbmtfc3RhdHM2NCBhY2NvcmRpbmcgdG8gZG9jdW1lbnRh dGlvbi4KCnY4CgktIEFkZHJlc3Mgc29tZSBjaGVja3BhdGNoIHdhcm5pbmdzCgp2NwoJLSBGaXhl ZCBsZWFraW5nIHBvcnRzX25vZGUgZGV2aWNlIG5vZGUuCgktIFNwbGl0IG91dCB0byBzbWFsbGVy IGNvbW1pdHMKCnY2CgktIEZpeGVkIGEgcmVzZXJ2ZWQgbWFjIGZpbHRlciBpbmRleGluZyBlcnJv cgoJLSBSZW1vdmVkIHR4X2xvY2sKCS0gU2ltcGxpZmllZCB0eF90aW1lb3V0IGhvb2sKCS0gUmVt b3ZlZCBnZXRfc3RhdHMKCS0gRml4ZWQgcGh5IGlvY3RsCgktIEZpeGVkIGRldiAtPiBuZGV2IHR5 cG8KCS0gRml4ZWQgc2V0X3dvbCBkb3VibGUgZGlzYWJsZQoKdjUKCS0gUmVtb3ZlIHVubmVjZXNz YXJ5IHBhcmVudGhlc2lzCgktIFVzZSBib29sIGZvciBiY21hc3BfbmV0ZmlsdF9jaGVja19kdXAo KQoKdjQKICAgICAgICAtIEFkZHJlc3Mgc3BhcnNlIHdhcm5pbmdzCiAgICAgICAgLSBGaXggb25l IG1vcmUgcmV2ZXJzZSB4bWFzIHRyZWUgdmlvbGF0aW9uCiAgICAgICAgLSBJbXByb3ZlIGVycm9y IGxvZ2ljIGZvciBiY21hc3BfbmV0ZmlsdF9nZXRfcmVnX29mZnNldCgpCgktIFJlbW92ZSBpbmxp bmVzCgp2MwogICAgICAgIC0gRml4IGxvZ2ljIGVycm9yIHdpdGggbmV0IHN0YXRzIHdoZXJlIHNv bWUgc3RhdHMgd2VyZSBtaXNzaW5nCiAgICAgICAgLSBHZW5lcmFsIGNsZWFuIHVwIGFkZHJlc3Np bmcgZm9ybWF0dGluZy9zcGVsbGluZy9jb25zaXN0ZW5jeQogICAgICAgIC0gVXNlIGRldl9lcnJf cHJvYmUgdG8gc2F2ZSBhIGZldyBMb0NzCiAgICAgICAgLSBVc2UgcHV0X3VuYWxpZ25lZCB3aGVu IHVwZGF0aW5nIG5ldCBzdGF0cwoKdjIKICAgICAgICAtIFJlcGxhY2UgYSBjb3VwbGUgZnVuY3Rp b25zIHdpdGggaGVscGVyIGZ1bmN0aW9ucwogICAgICAgIC0gRml4IGEgZmV3IFdvTCBpc3N1ZXMK CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnICAgICAgICAgICAgICB8ICAg MTEgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGUgICAgICAgICAgICAg fCAgICAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvTWFrZWZpbGUgICAg ICAgIHwgICAgMiArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5j ICAgICAgICB8ICA2OTYgKysrKysrKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v YXNwMi9iY21hc3AuaCAgICAgICAgfCAgNTAzICsrKysrKysrCiAuLi4vbmV0L2V0aGVybmV0L2Jy b2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8ICAgNDAgKwogZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAxMzQyICsrKysrKysrKysrKysr Kys9CisrKysKIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZz LmggIHwgIDE5NiArKysKIDggZmlsZXMgY2hhbmdlZCwgMjc5MSBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9NYWtlZmls ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZz LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYj0Kcm9hZGNvbS9LY29uZmlnCmluZGV4IDk0ODU4NmJmMWI1 Yi4uZDQxNjYxNDExNDVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWcKQEAg LTI1NSw0ICsyNTUsMTUgQEAgY29uZmlnIEJOWFRfSFdNT04KIAkgIFNheSBZIGlmIHlvdSB3YW50 IHRvIGV4cG9zZSB0aGUgdGhlcm1hbCBzZW5zb3IgZGF0YSBvbiBOZXRYdHJlbWUtQy9FCiAJICBk ZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2ZzIGludGVyZmFjZS4KPTIwCitjb25maWcgQkNNQVNQ CisJdHJpc3RhdGUgIkJyb2FkY29tIEFTUCAyLjAgRXRoZXJuZXQgc3VwcG9ydCIKKwlkZWZhdWx0 IEFSQ0hfQlJDTVNUQgorCWRlcGVuZHMgb24gT0YKKwlzZWxlY3QgTUlJCisJc2VsZWN0IFBIWUxJ QgorCXNlbGVjdCBNRElPX0JDTV9VTklNQUMKKwloZWxwCisJICBUaGlzIGNvbmZpZ3VyYXRpb24g ZW5hYmxlcyB0aGUgQnJvYWRjb20gQVNQIDIuMCBFdGhlcm5ldCBjb250cm9sbGVyCisJICBkcml2 ZXIgd2hpY2ggaXMgcHJlc2VudCBpbiBCcm9hZGNvbSBTVEIgU29DcyBzdWNoIGFzIDcyMTY1Lgor CiBlbmRpZiAjIE5FVF9WRU5ET1JfQlJPQURDT00KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvPQpicm9hZGNv bS9NYWtlZmlsZQppbmRleCAwZGRmYjViNWQ1M2MuLmJhYzVjYjZhZDBjZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGUKQEAgLTE3LDMgKzE3LDQgQEAgb2JqLSQoQ09ORklH X0JHTUFDX0JDTUEpICs9M0QgYmdtYWMtYmNtYS5vIGJnbWFjLWJjbWEtbWRpPQpvLm8KIG9iai0k KENPTkZJR19CR01BQ19QTEFURk9STSkgKz0zRCBiZ21hYy1wbGF0Zm9ybS5vCiBvYmotJChDT05G SUdfU1lTVEVNUE9SVCkgKz0zRCBiY21zeXNwb3J0Lm8KIG9iai0kKENPTkZJR19CTlhUKSArPTNE IGJueHQvCitvYmotJChDT05GSUdfQkNNQVNQKSArPTNEIGFzcDIvCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRo ZT0Kcm5ldC9icm9hZGNvbS9hc3AyL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZTA3NTUwMzE1ZjgzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9NYWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK29iai0k KENPTkZJR19CQ01BU1ApICs9M0QgYmNtLWFzcC5vCitiY20tYXNwLW9ianMgOj0zRCBiY21hc3Au byBiY21hc3BfaW50Zi5vIGJjbWFzcF9ldGh0b29sLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0 L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi44MzQ5NDY0MWI1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCkBAIC0wLDAgKzEsNjk2IEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIEJyb2FkY29tIFNUQiBBU1AgMi4wIERy aXZlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAyMyBCcm9hZGNvbQorICovCisjaW5jbHVkZSA8 bGludXgvZXRoZXJkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pZl92bGFuLmg+CisjaW5jbHVk ZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8 bGludXgvb2ZfYWRkcmVzcy5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5j bHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlICJiY21hc3AuaCIKKyNpbmNsdWRlICJiY21h c3BfaW50Zl9kZWZzLmgiCisKK3N0YXRpYyB2b2lkIF9pbnRyMl9tYXNrX2NsZWFyKHN0cnVjdCBi Y21hc3BfcHJpdiAqcHJpdiwgdTMyIG1hc2spCit7CisJaW50cjJfY29yZV93bChwcml2LCBtYXNr LCBBU1BfSU5UUjJfTUFTS19DTEVBUik7CisJcHJpdi0+aXJxX21hc2sgJj0zRCB+bWFzazsKK30K Kworc3RhdGljIHZvaWQgX2ludHIyX21hc2tfc2V0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwg dTMyIG1hc2spCit7CisJaW50cjJfY29yZV93bChwcml2LCBtYXNrLCBBU1BfSU5UUjJfTUFTS19T RVQpOworCXByaXYtPmlycV9tYXNrIHw9M0QgbWFzazsKK30KKwordm9pZCBiY21hc3BfZW5hYmxl X3R4X2lycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBlbikKK3sKKwlzdHJ1Y3QgYmNt YXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKworCWlmIChlbikKKwkJX2ludHIyX21h c2tfY2xlYXIocHJpdiwgQVNQX0lOVFIyX1RYX0RFU0MoaW50Zi0+Y2hhbm5lbCkpOworCWVsc2UK KwkJX2ludHIyX21hc2tfc2V0KHByaXYsIEFTUF9JTlRSMl9UWF9ERVNDKGludGYtPmNoYW5uZWwp KTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGJjbWFzcF9lbmFibGVfdHhfaXJxKTsKKwordm9pZCBi Y21hc3BfZW5hYmxlX3J4X2lycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBlbikKK3sK KwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKworCWlmIChlbikK KwkJX2ludHIyX21hc2tfY2xlYXIocHJpdiwgQVNQX0lOVFIyX1JYX0VDSChpbnRmLT5jaGFubmVs KSk7CisJZWxzZQorCQlfaW50cjJfbWFza19zZXQocHJpdiwgQVNQX0lOVFIyX1JYX0VDSChpbnRm LT5jaGFubmVsKSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChiY21hc3BfZW5hYmxlX3J4X2lycSk7 CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9pbnRyMl9tYXNrX3NldF9hbGwoc3RydWN0IGJjbWFzcF9w cml2ICpwcml2KQoreworCV9pbnRyMl9tYXNrX3NldChwcml2LCAweGZmZmZmZmZmKTsKKwlwcml2 LT5pcnFfbWFzayA9M0QgMHhmZmZmZmZmZjsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2ludHIy X2NsZWFyX2FsbChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYpCit7CisJaW50cjJfY29yZV93bChw cml2LCAweGZmZmZmZmZmLCBBU1BfSU5UUjJfQ0xFQVIpOworfQorCitzdGF0aWMgdm9pZCBiY21h c3BfaW50cjJfaGFuZGxpbmcoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1MzIgc3RhdHVzKQor eworCWlmIChzdGF0dXMgJiBBU1BfSU5UUjJfUlhfRUNIKGludGYtPmNoYW5uZWwpKSB7CisJCWlm IChsaWtlbHkobmFwaV9zY2hlZHVsZV9wcmVwKCZpbnRmLT5yeF9uYXBpKSkpIHsKKwkJCWJjbWFz cF9lbmFibGVfcnhfaXJxKGludGYsIDApOworCQkJX19uYXBpX3NjaGVkdWxlX2lycW9mZigmaW50 Zi0+cnhfbmFwaSk7CisJCX0KKwl9CisKKwlpZiAoc3RhdHVzICYgQVNQX0lOVFIyX1RYX0RFU0Mo aW50Zi0+Y2hhbm5lbCkpIHsKKwkJaWYgKGxpa2VseShuYXBpX3NjaGVkdWxlX3ByZXAoJmludGYt PnR4X25hcGkpKSkgeworCQkJYmNtYXNwX2VuYWJsZV90eF9pcnEoaW50ZiwgMCk7CisJCQlfX25h cGlfc2NoZWR1bGVfaXJxb2ZmKCZpbnRmLT50eF9uYXBpKTsKKwkJfQorCX0KK30KKworc3RhdGlj IGlycXJldHVybl90IGJjbWFzcF9pc3IoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qg YmNtYXNwX3ByaXYgKnByaXYgPTNEIGRhdGE7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOwor CXUzMiBzdGF0dXM7CisKKwlzdGF0dXMgPTNEIGludHIyX2NvcmVfcmwocHJpdiwgQVNQX0lOVFIy X1NUQVRVUykgJgorCQl+aW50cjJfY29yZV9ybChwcml2LCBBU1BfSU5UUjJfTUFTS19TVEFUVVMp OworCisJaW50cjJfY29yZV93bChwcml2LCBzdGF0dXMsIEFTUF9JTlRSMl9DTEVBUik7CisKKwlp ZiAodW5saWtlbHkoc3RhdHVzID0zRD0zRCAwKSkgeworCQlkZXZfd2FybigmcHJpdi0+cGRldi0+ ZGV2LCAibDIgc3B1cmlvdXMgaW50ZXJydXB0XG4iKTsKKwkJcmV0dXJuIElSUV9OT05FOworCX0K KworCS8qIEhhbmRsZSBpbnRmZXJmYWNlcyAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW50Ziwg JnByaXYtPmludGZzLCBsaXN0KQorCQliY21hc3BfaW50cjJfaGFuZGxpbmcoaW50Ziwgc3RhdHVz KTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKwordm9pZCBiY21hc3BfZmx1c2hfcnhfcG9y dChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2 ID0zRCBpbnRmLT5wYXJlbnQ7CisJdTMyIG1hc2s7CisKKwlzd2l0Y2ggKGludGYtPnBvcnQpIHsK KwljYXNlIDA6CisJCW1hc2sgPTNEIEFTUF9DVFJMX1VNQUMwX0ZMVVNIX01BU0s7CisJCWJyZWFr OworCWNhc2UgMToKKwkJbWFzayA9M0QgQVNQX0NUUkxfVU1BQzFfRkxVU0hfTUFTSzsKKwkJYnJl YWs7CisJY2FzZSAyOgorCQltYXNrID0zRCBBU1BfQ1RSTF9TUEJfRkxVU0hfTUFTSzsKKwkJYnJl YWs7CisJZGVmYXVsdDoKKwkJLyogTm90IHZhbGlkIHBvcnQgKi8KKwkJcmV0dXJuOworCX0KKwor CXJ4X2N0cmxfY29yZV93bChwcml2LCBtYXNrLCBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZsdXNo KTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2FkZHJfdG9fdWludCh1bnNpZ25lZCBjaGFyICph ZGRyLCB1MzIgKmhpZ2gsIHUzMiAqbG93KQoreworCSpoaWdoID0zRCAodTMyKShhZGRyWzBdIDw8 IDggfCBhZGRyWzFdKTsKKwkqbG93ID0zRCAodTMyKShhZGRyWzJdIDw8IDI0IHwgYWRkclszXSA8 PCAxNiB8IGFkZHJbNF0gPDwgOCB8CisJCSAgICAgYWRkcls1XSk7Cit9CisKK3N0YXRpYyB2b2lk IGJjbWFzcF9zZXRfbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJICBj b25zdCB1bnNpZ25lZCBjaGFyICphZGRyLAorCQkJCSAgdW5zaWduZWQgY2hhciAqbWFzaywKKwkJ CQkgIHVuc2lnbmVkIGludCBpKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50 Zi0+cGFyZW50OworCXUzMiBhZGRyX2gsIGFkZHJfbCwgbWFza19oLCBtYXNrX2w7CisKKwkvKiBT ZXQgbG9jYWwgY29weSAqLworCWV0aGVyX2FkZHJfY29weShwcml2LT5tZGFfZmlsdGVyc1tpXS5t YXNrLCBtYXNrKTsKKwlldGhlcl9hZGRyX2NvcHkocHJpdi0+bWRhX2ZpbHRlcnNbaV0uYWRkciwg YWRkcik7CisKKwkvKiBXcml0ZSB0byBIVyAqLworCWJjbWFzcF9hZGRyX3RvX3VpbnQocHJpdi0+ bWRhX2ZpbHRlcnNbaV0ubWFzaywgJm1hc2tfaCwgJm1hc2tfbCk7CisJYmNtYXNwX2FkZHJfdG9f dWludChwcml2LT5tZGFfZmlsdGVyc1tpXS5hZGRyLCAmYWRkcl9oLCAmYWRkcl9sKTsKKwlyeF9m aWx0ZXJfY29yZV93bChwcml2LCBhZGRyX2gsIEFTUF9SWF9GSUxURVJfTURBX1BBVF9IKGkpKTsK KwlyeF9maWx0ZXJfY29yZV93bChwcml2LCBhZGRyX2wsIEFTUF9SWF9GSUxURVJfTURBX1BBVF9M KGkpKTsKKwlyeF9maWx0ZXJfY29yZV93bChwcml2LCBtYXNrX2gsIEFTUF9SWF9GSUxURVJfTURB X01TS19IKGkpKTsKKwlyeF9maWx0ZXJfY29yZV93bChwcml2LCBtYXNrX2wsIEFTUF9SWF9GSUxU RVJfTURBX01TS19MKGkpKTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2VuX21kYV9maWx0ZXIo c3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuLAorCQkJCSB1bnNpZ25lZCBpbnQgaSkK K3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKworCWlmIChw cml2LT5tZGFfZmlsdGVyc1tpXS5lbiA9M0Q9M0QgZW4pCisJCXJldHVybjsKKworCXByaXYtPm1k YV9maWx0ZXJzW2ldLmVuID0zRCBlbjsKKwlwcml2LT5tZGFfZmlsdGVyc1tpXS5wb3J0ID0zRCBp bnRmLT5wb3J0OworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwgKChpbnRmLT5jaGFubmVsICsg OCkgfAorCQkJICAoZW4gPDwgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX0VOX1NISUZUKSB8CisJCQkg IEFTUF9SWF9GSUxURVJfTURBX0NGR19VTUNfU0VMKGludGYtPnBvcnQpKSwKKwkJCSAgQVNQX1JY X0ZJTFRFUl9NREFfQ0ZHKGkpKTsKK30KKworLyogVGhlcmUgYXJlIDMyIE1EQSBmaWx0ZXJzIHNo YXJlZCBiZXR3ZWVuIGFsbCBwb3J0cywgd2UgcmVzZXJ2ZSA0IGZpbHRlcnM9CiBwZXIKKyAqIHBv cnQgZm9yIHRoZSBmb2xsb3dpbmcuCisgKiAtIFByb21pc2M6IEZpbHRlciB0byBhbGxvdyBhbGwg cGFja2V0cyB3aGVuIHByb21pc2MgaXMgZW5hYmxlZAorICogLSBBbGwgTXVsdGljYXN0CisgKiAt IEJyb2FkY2FzdAorICogLSBPd24gYWRkcmVzcworICoKKyAqIFRoZSByZXNlcnZlZCBmaWx0ZXJz IGFyZSBpZGVudGlmaWVkIGFzIHNvLgorICogLSBQcm9taXNjOiAoaW5kZXggKiA0KSArIDAKKyAq IC0gQWxsIE11bHRpY2FzdDogKGluZGV4ICogNCkgKyAxCisgKiAtIEJyb2FkY2FzdDogKGluZGV4 ICogNCkgKyAyCisgKiAtIE93biBhZGRyZXNzOiAoaW5kZXggKiA0KSArIDMKKyAqLworZW51bSBh c3BfcnhfZmlsdGVyX2lkIHsKKwlBU1BfUlhfRklMVEVSX01EQV9QUk9NSVNDID0zRCAwLAorCUFT UF9SWF9GSUxURVJfTURBX0FMTE1VTFRJLAorCUFTUF9SWF9GSUxURVJfTURBX0JST0FEQ0FTVCwK KwlBU1BfUlhfRklMVEVSX01EQV9PV05fQUREUiwKKwlBU1BfUlhfRklMVEVSX01EQV9SRVNfTUFY LAorfTsKKworI2RlZmluZSBBU1BfUlhfRklMVF9NREEoaW50ZiwgbmFtZSkJKCgoaW50ZiktPmlu ZGV4ICogXAorCQkJCQkgIEFTUF9SWF9GSUxURVJfTURBX1JFU19NQVgpIFwKKwkJCQkJICsgQVNQ X1JYX0ZJTFRFUl9NREFfIyNuYW1lKQorCitzdGF0aWMgaW50IGJjbWFzcF90b3RhbF9yZXNfbWRh X2NudChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYpCit7CisJcmV0dXJuIGxpc3RfY291bnRfbm9k ZXMoJnByaXYtPmludGZzKSAqIEFTUF9SWF9GSUxURVJfTURBX1JFU19NQVg7Cit9CisKK3ZvaWQg YmNtYXNwX3NldF9wcm9taXNjKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbikKK3sK Kwl1bnNpZ25lZCBpbnQgaSA9M0QgQVNQX1JYX0ZJTFRfTURBKGludGYsIFBST01JU0MpOworCXVu c2lnbmVkIGNoYXIgcHJvbWlzY1tFVEhfQUxFTl07CisKKwlldGhfemVyb19hZGRyKHByb21pc2Mp OworCS8qIFNldCBtYXNrIHRvIDAwOjAwOjAwOjAwOjAwOjAwIHRvIG1hdGNoIGFsbCBwYWNrZXRz ICovCisJYmNtYXNwX3NldF9tZGFfZmlsdGVyKGludGYsIHByb21pc2MsIHByb21pc2MsIGkpOwor CWJjbWFzcF9lbl9tZGFfZmlsdGVyKGludGYsIGVuLCBpKTsKK30KKwordm9pZCBiY21hc3Bfc2V0 X2FsbG11bHRpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbikKK3sKKwl1bnNpZ25l ZCBjaGFyIGFsbG11bHRpW10gPTNEIHsweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw fTsKKwl1bnNpZ25lZCBpbnQgaSA9M0QgQVNQX1JYX0ZJTFRfTURBKGludGYsIEFMTE1VTFRJKTsK KworCS8qIFNldCBtYXNrIHRvIDAxOjAwOjAwOjAwOjAwOjAwIHRvIG1hdGNoIGFsbCBtdWx0aWNh c3QgKi8KKwliY21hc3Bfc2V0X21kYV9maWx0ZXIoaW50ZiwgYWxsbXVsdGksIGFsbG11bHRpLCBp KTsKKwliY21hc3BfZW5fbWRhX2ZpbHRlcihpbnRmLCBlbiwgaSk7Cit9CisKK3ZvaWQgYmNtYXNw X3NldF9icm9hZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJdW5zaWdu ZWQgaW50IGkgPTNEIEFTUF9SWF9GSUxUX01EQShpbnRmLCBCUk9BRENBU1QpOworCXVuc2lnbmVk IGNoYXIgYWRkcltFVEhfQUxFTl07CisKKwlldGhfYnJvYWRjYXN0X2FkZHIoYWRkcik7CisJYmNt YXNwX3NldF9tZGFfZmlsdGVyKGludGYsIGFkZHIsIGFkZHIsIGkpOworCWJjbWFzcF9lbl9tZGFf ZmlsdGVyKGludGYsIGVuLCBpKTsKK30KKwordm9pZCBiY21hc3Bfc2V0X29hZGRyKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiwgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkciwKKwkJICAgICAgYm9v bCBlbikKK3sKKwl1bnNpZ25lZCBjaGFyIG1hc2tbXSA9M0QgezB4ZmYsIDB4ZmYsIDB4ZmYsIDB4 ZmYsIDB4ZmYsIDB4ZmZ9OworCXVuc2lnbmVkIGludCBpID0zRCBBU1BfUlhfRklMVF9NREEoaW50 ZiwgT1dOX0FERFIpOworCisJYmNtYXNwX3NldF9tZGFfZmlsdGVyKGludGYsIGFkZHIsIG1hc2ss IGkpOworCWJjbWFzcF9lbl9tZGFfZmlsdGVyKGludGYsIGVuLCBpKTsKK30KKwordm9pZCBiY21h c3BfZGlzYWJsZV9hbGxfZmlsdGVycyhzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3Ry dWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJdW5zaWduZWQgaW50IGk7 CisJaW50IHJlc19jb3VudDsKKworCXJlc19jb3VudCA9M0QgYmNtYXNwX3RvdGFsX3Jlc19tZGFf Y250KGludGYtPnBhcmVudCk7CisKKwkvKiBEaXNhYmxlIGFsbCBmaWx0ZXJzIGhlbGQgYnkgdGhp cyBwb3J0ICovCisJZm9yIChpID0zRCByZXNfY291bnQ7IGkgPCBOVU1fTURBX0ZJTFRFUlM7IGkr KykgeworCQlpZiAocHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gJiYKKwkJICAgIHByaXYtPm1kYV9m aWx0ZXJzW2ldLnBvcnQgPTNEPTNEIGludGYtPnBvcnQpCisJCQliY21hc3BfZW5fbWRhX2ZpbHRl cihpbnRmLCAwLCBpKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX2NvbWJpbmVfc2V0X2Zp bHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJICAgICB1bnNpZ25lZCBjaGFyICph ZGRyLCB1bnNpZ25lZCBjaGFyICptYXNrLAorCQkJCSAgICAgaW50IGkpCit7CisJc3RydWN0IGJj bWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJdTY0IGFkZHIxLCBhZGRyMiwgbWFz azEsIG1hc2syLCBtYXNrMzsKKworCS8qIFN3aXRjaCB0byB1NjQgdG8gaGVscCB3aXRoIHRoZSBj YWxjdWxhdGlvbnMgKi8KKwlhZGRyMSA9M0QgZXRoZXJfYWRkcl90b191NjQocHJpdi0+bWRhX2Zp bHRlcnNbaV0uYWRkcik7CisJbWFzazEgPTNEIGV0aGVyX2FkZHJfdG9fdTY0KHByaXYtPm1kYV9m aWx0ZXJzW2ldLm1hc2spOworCWFkZHIyID0zRCBldGhlcl9hZGRyX3RvX3U2NChhZGRyKTsKKwlt YXNrMiA9M0QgZXRoZXJfYWRkcl90b191NjQobWFzayk7CisKKwkvKiBDaGVjayBpZiBvbmUgZmls dGVyIHJlc2lkZXMgd2l0aGluIHRoZSBvdGhlciAqLworCW1hc2szID0zRCBtYXNrMSAmIG1hc2sy OworCWlmIChtYXNrMyA9M0Q9M0QgbWFzazEgJiYgKChhZGRyMSAmIG1hc2sxKSA9M0Q9M0QgKGFk ZHIyICYgbWFzazEpKSkgeworCQkvKiBGaWx0ZXIgMiByZXNpZGVzIHdpdGhpbiBmaWx0ZXIgMSwg c28gZXZlcnl0aGluZyBpcyBnb29kICovCisJCXJldHVybiAwOworCX0gZWxzZSBpZiAobWFzazMg PTNEPTNEIG1hc2syICYmICgoYWRkcjEgJiBtYXNrMikgPTNEPTNEIChhZGRyMiAmIG1hc2syKSk9 CikgeworCQkvKiBGaWx0ZXIgMSByZXNpZGVzIHdpdGhpbiBmaWx0ZXIgMiwgc28gc3dhcCBmaWx0 ZXJzICovCisJCWJjbWFzcF9zZXRfbWRhX2ZpbHRlcihpbnRmLCBhZGRyLCBtYXNrLCBpKTsKKwkJ cmV0dXJuIDA7CisJfQorCisJLyogVW5hYmxlIHRvIGNvbWJpbmUgKi8KKwlyZXR1cm4gLUVJTlZB TDsKK30KKworaW50IGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYg KmludGYsIHVuc2lnbmVkIGNoYXIgKmFkZHIsCisJCQkgICAgIHVuc2lnbmVkIGNoYXIgKm1hc2sp Cit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IHJl dCwgcmVzX2NvdW50OworCXVuc2lnbmVkIGludCBpOworCisJcmVzX2NvdW50ID0zRCBiY21hc3Bf dG90YWxfcmVzX21kYV9jbnQoaW50Zi0+cGFyZW50KTsKKworCWZvciAoaSA9M0QgcmVzX2NvdW50 OyBpIDwgTlVNX01EQV9GSUxURVJTOyBpKyspIHsKKwkJLyogSWYgZmlsdGVyIG5vdCBlbmFibGVk IG9yIGJlbG9uZ3MgdG8gYW5vdGhlciBwb3J0IHNraXAgKi8KKwkJaWYgKCFwcml2LT5tZGFfZmls dGVyc1tpXS5lbiB8fAorCQkgICAgcHJpdi0+bWRhX2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGludGYt PnBvcnQpCisJCQljb250aW51ZTsKKworCQkvKiBBdHRlbXB0IHRvIGNvbWJpbmUgZmlsdGVycyAq LworCQlyZXQgPTNEIGJjbWFzcF9jb21iaW5lX3NldF9maWx0ZXIoaW50ZiwgYWRkciwgbWFzaywg aSk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJfQorCisJLyogQ3JlYXRlIG5ldyBmaWx0 ZXIgaWYgcG9zc2libGUgKi8KKwlmb3IgKGkgPTNEIHJlc19jb3VudDsgaSA8IE5VTV9NREFfRklM VEVSUzsgaSsrKSB7CisJCWlmIChwcml2LT5tZGFfZmlsdGVyc1tpXS5lbikKKwkJCWNvbnRpbnVl OworCisJCWJjbWFzcF9zZXRfbWRhX2ZpbHRlcihpbnRmLCBhZGRyLCBtYXNrLCBpKTsKKwkJYmNt YXNwX2VuX21kYV9maWx0ZXIoaW50ZiwgMSwgaSk7CisJCXJldHVybiAwOworCX0KKworCS8qIE5v IHJvb20gZm9yIG5ldyBmaWx0ZXIgKi8KKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIHZv aWQgYmNtYXNwX2NvcmVfaW5pdF9maWx0ZXJzKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdikKK3sK Kwl1bnNpZ25lZCBpbnQgaTsKKworCS8qIERpc2FibGUgYWxsIGZpbHRlcnMgYW5kIHJlc2V0IHNv ZnR3YXJlIHZpZXcgc2luY2UgdGhlIEhXCisJICogY2FuIGxvc2UgY29udGV4dCB3aGlsZSBpbiBk ZWVwIHNsZWVwIHN1c3BlbmQgc3RhdGVzCisJICovCisJZm9yIChpID0zRCAwOyBpIDwgTlVNX01E QV9GSUxURVJTOyBpKyspIHsKKwkJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwgMHgwLCBBU1BfUlhf RklMVEVSX01EQV9DRkcoaSkpOworCQlwcml2LT5tZGFfZmlsdGVyc1tpXS5lbiA9M0QgMDsKKwl9 CisKKwkvKiBUb3AgbGV2ZWwgZmlsdGVyIGVuYWJsZSBiaXQgc2hvdWxkIGJlIGVuYWJsZWQgYXQg YWxsIHRpbWVzLCBzZXQKKwkgKiBHRU5fV0FLRV9DTEVBUiB0byBjbGVhciB0aGUgbmV0d29yayBm aWx0ZXIgd2FrZS11cCB3aGljaCB3b3VsZAorCSAqIG90aGVyd2lzZSBiZSBzdGlja3kKKwkgKi8K KwlyeF9maWx0ZXJfY29yZV93bChwcml2LCAoQVNQX1JYX0ZJTFRFUl9PUFVUX0VOIHwKKwkJCSAg QVNQX1JYX0ZJTFRFUl9NREFfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX0dFTl9XS19DTFIgfAor CQkJICBBU1BfUlhfRklMVEVSX05UX0ZMVF9FTiksCisJCQkgIEFTUF9SWF9GSUxURVJfQkxLX0NU UkwpOworfQorCisvKiBBU1AgY29yZSBpbml0aWFsaXphdGlvbiAqLworc3RhdGljIHZvaWQgYmNt YXNwX2NvcmVfaW5pdChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYpCit7CisJdHhfYW5hbHl0aWNz X2NvcmVfd2wocHJpdiwgMHgwLCBBU1BfVFhfQU5BTFlUSUNTX0NUUkwpOworCXJ4X2FuYWx5dGlj c19jb3JlX3dsKHByaXYsIDB4NCwgQVNQX1JYX0FOQUxZVElDU19DVFJMKTsKKworCXJ4X2VkcGt0 X2NvcmVfd2wocHJpdiwgKEFTUF9FRFBLVF9IRFJfU1pfMTI4IDw8IEFTUF9FRFBLVF9IRFJfU1pf U0hJRlQpLAorCQkJIEFTUF9FRFBLVF9IRFJfQ0ZHKTsKKwlyeF9lZHBrdF9jb3JlX3dsKHByaXYs CisJCQkgKEFTUF9FRFBLVF9FTkRJX0JUX1NXUF9XRCA8PCBBU1BfRURQS1RfRU5ESV9ERVNDX1NI SUZUKSwKKwkJCSBBU1BfRURQS1RfRU5ESSk7CisKKwlyeF9lZHBrdF9jb3JlX3dsKHByaXYsIDB4 MWIsIEFTUF9FRFBLVF9CVVJTVF9CVUZfUFNDQUxfVE9VVCk7CisJcnhfZWRwa3RfY29yZV93bChw cml2LCAweDNlOCwgQVNQX0VEUEtUX0JVUlNUX0JVRl9XUklURV9UT1VUKTsKKwlyeF9lZHBrdF9j b3JlX3dsKHByaXYsIDB4M2U4LCBBU1BfRURQS1RfQlVSU1RfQlVGX1JFQURfVE9VVCk7CisKKwly eF9lZHBrdF9jb3JlX3dsKHByaXYsIEFTUF9FRFBLVF9FTkFCTEVfRU4sIEFTUF9FRFBLVF9FTkFC TEUpOworCisJLyogRGlzYWJsZSBhbmQgY2xlYXIgYm90aCBVbmlNQUMncyB3YWtlLXVwIGludGVy cnVwdHMgdG8gYXZvaWQKKwkgKiBzdGlja3kgaW50ZXJydXB0cy4KKwkgKi8KKwlfaW50cjJfbWFz a19zZXQocHJpdiwgQVNQX0lOVFIyX1VNQzBfV0FLRSB8IEFTUF9JTlRSMl9VTUMxX1dBS0UpOwor CWludHIyX2NvcmVfd2wocHJpdiwgQVNQX0lOVFIyX1VNQzBfV0FLRSB8IEFTUF9JTlRSMl9VTUMx X1dBS0UsCisJCSAgICAgIEFTUF9JTlRSMl9DTEVBUik7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFz cF9jb3JlX2Nsb2NrX3NlbGVjdChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIGJvb2wgc2xvdykK K3sKKwl1MzIgcmVnOworCisJcmVnID0zRCBjdHJsX2NvcmVfcmwocHJpdiwgQVNQX0NUUkxfQ09S RV9DTE9DS19TRUxFQ1QpOworCWlmIChzbG93KQorCQlyZWcgJj0zRCB+QVNQX0NUUkxfQ09SRV9D TE9DS19TRUxFQ1RfTUFJTjsKKwllbHNlCisJCXJlZyB8PTNEIEFTUF9DVFJMX0NPUkVfQ0xPQ0tf U0VMRUNUX01BSU47CisJY3RybF9jb3JlX3dsKHByaXYsIHJlZywgQVNQX0NUUkxfQ09SRV9DTE9D S19TRUxFQ1QpOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfY29yZV9jbG9ja19zZXRfbGwoc3Ry dWN0IGJjbWFzcF9wcml2ICpwcml2LCB1MzIgY2xyLCB1Mz0KMiBzZXQpCit7CisJdTMyIHJlZzsK KworCXJlZyA9M0QgY3RybF9jb3JlX3JsKHByaXYsIEFTUF9DVFJMX0NMT0NLX0NUUkwpOworCXJl ZyAmPTNEIH5jbHI7CisJcmVnIHw9M0Qgc2V0OworCWN0cmxfY29yZV93bChwcml2LCByZWcsIEFT UF9DVFJMX0NMT0NLX0NUUkwpOworCisJcmVnID0zRCBjdHJsX2NvcmVfcmwocHJpdiwgQVNQX0NU UkxfU0NSQVRDSF8wKTsKKwlyZWcgJj0zRCB+Y2xyOworCXJlZyB8PTNEIHNldDsKKwljdHJsX2Nv cmVfd2wocHJpdiwgcmVnLCBBU1BfQ1RSTF9TQ1JBVENIXzApOworfQorCitzdGF0aWMgdm9pZCBi Y21hc3BfY29yZV9jbG9ja19zZXQoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LCB1MzIgY2xyLCB1 MzIgcz0KZXQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZl KCZwcml2LT5jbGtfbG9jaywgZmxhZ3MpOworCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9sbChwcml2 LCBjbHIsIHNldCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+Y2xrX2xvY2ssIGZs YWdzKTsKK30KKwordm9pZCBiY21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihzdHJ1Y3QgYmNtYXNw X2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJdTMyIGludGZfbWFzayA9M0QgQVNQX0NUUkxfQ0xP Q0tfQ1RSTF9BU1BfUkdNSUlfRElTKGludGYtPnBvcnQpOworCXN0cnVjdCBiY21hc3BfcHJpdiAq cHJpdiA9M0QgaW50Zi0+cGFyZW50OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdTMyIHJlZzsK KworCS8qIFdoZW4gZW5hYmxpbmcgYW4gaW50ZXJmYWNlLCBpZiB0aGUgUlggb3IgVFggY2xvY2tz IHdlcmUgbm90IGVuYWJsZWQsCisJICogZW5hYmxlIHRoZW0uIENvbnZlcnNlbHksIHdoaWxlIGRp c2FibGluZyBhbiBpbnRlcmZhY2UsIGlmIHRoaXMgaXMKKwkgKiB0aGUgbGFzdCBvbmUgZW5hYmxl ZCwgd2UgY2FuIHR1cm4gb2ZmIHRoZSBzaGFyZWQgUlggYW5kIFRYIGNsb2NrcyBhcworCSAqIHdl bGwuIFdlIGNvbnRyb2wgZW5hYmxlIGJpdHMgd2hpY2ggaXMgd2h5IHdlIHRlc3QgZm9yIGVxdWFs aXR5IG9uCisJICogdGhlIFJHTUlJIGNsb2NrIGJpdCBtYXNrLgorCSAqLworCXNwaW5fbG9ja19p cnFzYXZlKCZwcml2LT5jbGtfbG9jaywgZmxhZ3MpOworCWlmIChlbikgeworCQlpbnRmX21hc2sg fD0zRCBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9UWF9ESVNBQkxFIHwKKwkJCSAgICAgQVNQX0NU UkxfQ0xPQ0tfQ1RSTF9BU1BfUlhfRElTQUJMRTsKKwkJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2xs KHByaXYsIGludGZfbWFzaywgMCk7CisJfSBlbHNlIHsKKwkJcmVnID0zRCBjdHJsX2NvcmVfcmwo cHJpdiwgQVNQX0NUUkxfU0NSQVRDSF8wKSB8IGludGZfbWFzazsKKwkJaWYgKChyZWcgJiBBU1Bf Q1RSTF9DTE9DS19DVFJMX0FTUF9SR01JSV9NQVNLKSA9M0Q9M0QKKwkJICAgIEFTUF9DVFJMX0NM T0NLX0NUUkxfQVNQX1JHTUlJX01BU0spCisJCQlpbnRmX21hc2sgfD0zRCBBU1BfQ1RSTF9DTE9D S19DVFJMX0FTUF9UWF9ESVNBQkxFIHwKKwkJCQkgICAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQ X1JYX0RJU0FCTEU7CisJCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9sbChwcml2LCAwLCBpbnRmX21h c2spOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5jbGtfbG9jaywgZmxhZ3Mp OworfQorCitzdGF0aWMgc3RydWN0IGJjbWFzcF9od19pbmZvIHYyMF9od19pbmZvID0zRCB7CisJ LnJ4X2N0cmxfZmx1c2ggPTNEIEFTUF9SWF9DVFJMX0ZMVVNILAorCS51bWFjMmZiID0zRCBVTUFD MkZCX09GRlNFVCwKKwkucnhfY3RybF9mYl9vdXRfZnJhbWVfY291bnQgPTNEIEFTUF9SWF9DVFJM X0ZCX09VVF9GUkFNRV9DT1VOVCwKKwkucnhfY3RybF9mYl9maWx0X291dF9mcmFtZV9jb3VudCA9 M0QgQVNQX1JYX0NUUkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQsCisJLnJ4X2N0cmxfZmJfcnhf Zmlmb19kZXB0aCA9M0QgQVNQX1JYX0NUUkxfRkJfUlhfRklGT19ERVBUSCwKK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgYmNtYXNwX3BsYXRfZGF0YSB2MjBfcGxhdF9kYXRhID0zRCB7CisJLmh3 X2luZm8gPTNEICZ2MjBfaHdfaW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2lu Zm8gdjIxX2h3X2luZm8gPTNEIHsKKwkucnhfY3RybF9mbHVzaCA9M0QgQVNQX1JYX0NUUkxfRkxV U0hfMl8xLAorCS51bWFjMmZiID0zRCBVTUFDMkZCX09GRlNFVF8yXzEsCisJLnJ4X2N0cmxfZmJf b3V0X2ZyYW1lX2NvdW50ID0zRCBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlRfMl8xLAor CS5yeF9jdHJsX2ZiX2ZpbHRfb3V0X2ZyYW1lX2NvdW50ID0zRAorCQlBU1BfUlhfQ1RSTF9GQl9G SUxUX09VVF9GUkFNRV9DT1VOVF8yXzEsCisJLnJ4X2N0cmxfZmJfcnhfZmlmb19kZXB0aCA9M0Qg QVNQX1JYX0NUUkxfRkJfUlhfRklGT19ERVBUSF8yXzEsCit9OworCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGJjbWFzcF9wbGF0X2RhdGEgdjIxX3BsYXRfZGF0YSA9M0QgeworCS5od19pbmZvID0zRCAm djIxX2h3X2luZm8sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY21h c3Bfb2ZfbWF0Y2hbXSA9M0QgeworCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGFzcC12Mi4wIiwg LmRhdGEgPTNEICZ2MjBfcGxhdF9kYXRhIH0sCisJeyAuY29tcGF0aWJsZSA9M0QgImJyY20sYXNw LXYyLjEiLCAuZGF0YSA9M0QgJnYyMV9wbGF0X2RhdGEgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0s Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYmNtYXNwX29mX21hdGNoKTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtYXNwX21kaW9fb2ZfbWF0Y2hbXSA9M0Qgewor CXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGFzcC12Mi4xLW1kaW8iLCB9LAorCXsgLmNvbXBhdGli bGUgPTNEICJicmNtLGFzcC12Mi4wLW1kaW8iLCB9LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307 CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBiY21hc3BfbWRpb19vZl9tYXRjaCk7CisKK3N0YXRp YyB2b2lkIGJjbWFzcF9yZW1vdmVfaW50ZnMoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQorewor CXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgKm47CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoaW50ZiwgbiwgJnByaXYtPmludGZzLCBsaXN0KSB7CisJCWxpc3RfZGVsKCZpbnRmLT5saXN0 KTsKKwkJYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95KGludGYpOworCX0KK30KKworc3RhdGljIGlu dCBiY21hc3BfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKnBvcnRzX25vZGUsICppbnRmX25vZGU7CisJY29uc3Qgc3RydWN0IGJjbWFz cF9wbGF0X2RhdGEgKnBkYXRhOworCXN0cnVjdCBkZXZpY2UgKmRldiA9M0QgJnBkZXYtPmRldjsK KwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXY7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOwor CWludCByZXQgPTNEIDAsIGNvdW50ID0zRCAwOworCXVuc2lnbmVkIGludCBpOworCisJcHJpdiA9 M0QgZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFw cml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXByaXYtPmlycSA9M0QgcGxhdGZvcm1fZ2V0X2ly cShwZGV2LCAwKTsKKwlpZiAocHJpdi0+aXJxIDw9M0QgMCkKKwkJcmV0dXJuIGRldl9lcnJfcHJv YmUoZGV2LCAtRUlOVkFMLCAiaW52YWxpZCBpbnRlcnJ1cHRcbiIpOworCisJcHJpdi0+Y2xrID0z RCBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZChkZXYsICJzd19hc3AiKTsKKwlpZiAoSVNf RVJSKHByaXYtPmNsaykpCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihwcml2 LT5jbGspLAorCQkJCSAgICAgImZhaWxlZCB0byByZXF1ZXN0IGNsb2NrXG4iKTsKKworCS8qIEJh c2UgZnJvbSBwYXJlbnQgbm9kZSAqLworCXByaXYtPmJhc2UgPTNEIGRldm1fcGxhdGZvcm1faW9y ZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQorCQlyZXR1 cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHJpdi0+YmFzZSksICJmYWlsZWQgdG8gaW9t YXBcbiIpOworCisJcmV0ID0zRCBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KCZwZGV2LT5kZXYs IERNQV9CSVRfTUFTSyg0MCkpOworCWlmIChyZXQpCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRl diwgcmV0LCAidW5hYmxlIHRvIHNldCBETUEgbWFzazogJWRcbiIsIHJldCk7CisKKwlkZXZfc2V0 X2RydmRhdGEoJnBkZXYtPmRldiwgcHJpdik7CisJcHJpdi0+cGRldiA9M0QgcGRldjsKKwlzcGlu X2xvY2tfaW5pdCgmcHJpdi0+bWRhX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZwcml2LT5jbGtf bG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmludGZzKTsKKworCXBkYXRhID0zRCBkZXZp Y2VfZ2V0X21hdGNoX2RhdGEoJnBkZXYtPmRldik7CisJaWYgKCFwZGF0YSkKKwkJcmV0dXJuIGRl dl9lcnJfcHJvYmUoZGV2LCAtRUlOVkFMLCAidW5hYmxlIHRvIGZpbmQgcGxhdGZvcm0gZGF0YVxu Iik7CisKKwlwcml2LT5od19pbmZvID0zRCBwZGF0YS0+aHdfaW5mbzsKKworCS8qIEVuYWJsZSBh bGwgY2xvY2tzIHRvIGVuc3VyZSBzdWNjZXNzZnVsIHByb2JpbmcgKi8KKwliY21hc3BfY29yZV9j bG9ja19zZXQocHJpdiwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfQUxMX0RJU0FCTEUsIDApOwor CisJLyogU3dpdGNoIHRvIHRoZSBtYWluIGNsb2NrICovCisJYmNtYXNwX2NvcmVfY2xvY2tfc2Vs ZWN0KHByaXYsIGZhbHNlKTsKKworCWJjbWFzcF9pbnRyMl9tYXNrX3NldF9hbGwocHJpdik7CisJ YmNtYXNwX2ludHIyX2NsZWFyX2FsbChwcml2KTsKKworCXJldCA9M0QgZGV2bV9yZXF1ZXN0X2ly cSgmcGRldi0+ZGV2LCBwcml2LT5pcnEsIGJjbWFzcF9pc3IsIDAsCisJCQkgICAgICAgcGRldi0+ bmFtZSwgcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQs ICJmYWlsZWQgdG8gcmVxdWVzdCBBU1AgaW50ZXJydXB0OiAlZCIsIHJlPQp0KTsKKworCS8qIFJl Z2lzdGVyIG1kaW8gY2hpbGQgbm9kZXMgKi8KKwlvZl9wbGF0Zm9ybV9wb3B1bGF0ZShkZXYtPm9m X25vZGUsIGJjbWFzcF9tZGlvX29mX21hdGNoLCBOVUxMLCBkZXYpOworCisJLyogQVNQIHNwZWNp ZmljIGluaXRpYWxpemF0aW9uLCBOZWVkcyB0byBiZSBkb25lIHJlZ2FyZGxlc3Mgb2YKKwkgKiBo b3cgbWFueSBpbnRlcmZhY2VzIGNvbWUgdXAuCisJICovCisJYmNtYXNwX2NvcmVfaW5pdChwcml2 KTsKKwliY21hc3BfY29yZV9pbml0X2ZpbHRlcnMocHJpdik7CisKKwlwb3J0c19ub2RlID0zRCBv Zl9maW5kX25vZGVfYnlfbmFtZShkZXYtPm9mX25vZGUsICJldGhlcm5ldC1wb3J0cyIpOworCWlm ICghcG9ydHNfbm9kZSkgeworCQlkZXZfd2FybihkZXYsICJObyBwb3J0cyBmb3VuZFxuIik7CisJ CXJldHVybiAtRUlOVkFMOworCX0KKworCWkgPTNEIDA7CisJZm9yX2VhY2hfYXZhaWxhYmxlX2No aWxkX29mX25vZGUocG9ydHNfbm9kZSwgaW50Zl9ub2RlKSB7CisJCWludGYgPTNEIGJjbWFzcF9p bnRlcmZhY2VfY3JlYXRlKHByaXYsIGludGZfbm9kZSwgaSk7CisJCWlmICghaW50ZikgeworCQkJ ZGV2X2VycihkZXYsICJDYW5ub3QgY3JlYXRlIGV0aCBpbnRlcmZhY2UgJWRcbiIsIGkpOworCQkJ YmNtYXNwX3JlbW92ZV9pbnRmcyhwcml2KTsKKwkJCWdvdG8gb2ZfcHV0X2V4aXQ7CisJCX0KKwkJ bGlzdF9hZGRfdGFpbCgmaW50Zi0+bGlzdCwgJnByaXYtPmludGZzKTsKKwkJaSsrOworCX0KKwor CS8qIERyb3AgdGhlIGNsb2NrIHJlZmVyZW5jZSBjb3VudCBub3cgYW5kIGxldCBuZG9fb3Blbigp L25kb19jbG9zZSgpCisJICogbWFuYWdlIGl0IGZvciB1cyBmcm9tIG5vdyBvbi4KKwkgKi8KKwli Y21hc3BfY29yZV9jbG9ja19zZXQocHJpdiwgMCwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfQUxM X0RJU0FCTEUpOworCisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7CisKKwkvKiBO b3cgZG8gdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgbmV0d29yayBwb3J0cyB3aGljaCB3aWxsIHRh a2UgY2FyZQorCSAqIG9mIG1hbmFnaW5nIHRoZSBjbG9jayBwcm9wZXJseS4KKwkgKi8KKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGludGYsICZwcml2LT5pbnRmcywgbGlzdCkgeworCQlyZXQgPTNEIHJl Z2lzdGVyX25ldGRldihpbnRmLT5uZGV2KTsKKwkJaWYgKHJldCkgeworCQkJbmV0ZGV2X2Vycihp bnRmLT5uZGV2LAorCQkJCSAgICJmYWlsZWQgdG8gcmVnaXN0ZXIgbmV0X2RldmljZTogJWRcbiIs IHJldCk7CisJCQliY21hc3BfcmVtb3ZlX2ludGZzKHByaXYpOworCQkJZ290byBvZl9wdXRfZXhp dDsKKwkJfQorCQljb3VudCsrOworCX0KKworCWRldl9pbmZvKGRldiwgIkluaXRpYWxpemVkICVk IHBvcnQocylcbiIsIGNvdW50KTsKKworb2ZfcHV0X2V4aXQ6CisJb2Zfbm9kZV9wdXQocG9ydHNf bm9kZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBiY21hc3BfcmVtb3ZlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0z RCBkZXZfZ2V0X2RydmRhdGEoJnBkZXYtPmRldik7CisKKwlpZiAoIXByaXYpCisJCXJldHVybiAw OworCisJYmNtYXNwX3JlbW92ZV9pbnRmcyhwcml2KTsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgdm9pZCBiY21hc3Bfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sK KwliY21hc3BfcmVtb3ZlKHBkZXYpOworfQorCitzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGJj bWFzcF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmQpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBkZXZfZ2V0X2RydmRhdGEoZCk7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOwor CWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGYsICZwcml2LT5pbnRmcywgbGlz dCkgeworCQlyZXQgPTNEIGJjbWFzcF9pbnRlcmZhY2Vfc3VzcGVuZChpbnRmKTsKKwkJaWYgKHJl dCkKKwkJCWJyZWFrOworCX0KKworCXJldCA9M0QgY2xrX3ByZXBhcmVfZW5hYmxlKHByaXYtPmNs ayk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIFdoZXRoZXIgV2FrZS1vbi1MQU4g aXMgZW5hYmxlZCBvciBub3QsIHdlIGNhbiBhbHdheXMgZGlzYWJsZQorCSAqIHRoZSBzaGFyZWQg VFggY2xvY2sKKwkgKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXQocHJpdiwgMCwgQVNQX0NUUkxf Q0xPQ0tfQ1RSTF9BU1BfVFhfRElTQUJMRSk7CisKKwliY21hc3BfY29yZV9jbG9ja19zZWxlY3Qo cHJpdiwgdHJ1ZSk7CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJpdi0+Y2xrKTsKKworCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgYmNtYXNwX3Jlc3VtZShz dHJ1Y3QgZGV2aWNlICpkKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgZGV2X2dl dF9kcnZkYXRhKGQpOworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKKwlpbnQgcmV0OworCisJ cmV0ID0zRCBjbGtfcHJlcGFyZV9lbmFibGUocHJpdi0+Y2xrKTsKKwlpZiAocmV0KQorCQlyZXR1 cm4gcmV0OworCisJLyogU3dpdGNoIHRvIHRoZSBtYWluIGNsb2NrIGRvbWFpbiAqLworCWJjbWFz cF9jb3JlX2Nsb2NrX3NlbGVjdChwcml2LCBmYWxzZSk7CisKKwkvKiBSZS1lbmFibGUgYWxsIGNs b2NrcyBmb3IgcmUtaW5pdGlhbGl6YXRpb24gKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXQocHJp diwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfQUxMX0RJU0FCTEUsIDApOworCisJYmNtYXNwX2Nv cmVfaW5pdChwcml2KTsKKwliY21hc3BfY29yZV9pbml0X2ZpbHRlcnMocHJpdik7CisKKwkvKiBB bmQgZGlzYWJsZSB0aGVtIHRvIGxldCB0aGUgbmV0d29yayBkZXZpY2VzIHRha2UgY2FyZSBvZiB0 aGVtICovCisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0KHByaXYsIDAsIEFTUF9DVFJMX0NMT0NLX0NU UkxfQVNQX0FMTF9ESVNBQkxFKTsKKworCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5jbGsp OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRmLCAmcHJpdi0+aW50ZnMsIGxpc3QpIHsKKwkJ cmV0ID0zRCBiY21hc3BfaW50ZXJmYWNlX3Jlc3VtZShpbnRmKTsKKwkJaWYgKHJldCkKKwkJCWJy ZWFrOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhi Y21hc3BfcG1fb3BzLAorCQkJIGJjbWFzcF9zdXNwZW5kLCBiY21hc3BfcmVzdW1lKTsKKworc3Rh dGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmNtYXNwX2RyaXZlciA9M0QgeworCS5wcm9iZSA9 M0QgYmNtYXNwX3Byb2JlLAorCS5yZW1vdmUgPTNEIGJjbWFzcF9yZW1vdmUsCisJLnNodXRkb3du ID0zRCBiY21hc3Bfc2h1dGRvd24sCisJLmRyaXZlciA9M0QgeworCQkubmFtZSA9M0QgImJyY20s YXNwLXYyIiwKKwkJLm9mX21hdGNoX3RhYmxlID0zRCBiY21hc3Bfb2ZfbWF0Y2gsCisJCS5wbSA9 M0QgJmJjbWFzcF9wbV9vcHMsCisJfSwKK307Cittb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGJjbWFz cF9kcml2ZXIpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIkJyb2FkY29tIEFTUCAyLjAgRXRoZXJu ZXQgY29udHJvbGxlciBkcml2ZXIiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06YnJjbSxhc3At djIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0L2Jy b2FkY29tL2FzcDIvYmNtYXNwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi40ZmU4NGQyNjI1MWQKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCkBAIC0wLDAgKzEsNTAzIEBACisvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2lmbmRlZiBfX0JDTUFTUF9ICisjZGVmaW5lIF9f QkNNQVNQX0gKKworI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4 L3BoeS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLTY0LW5vbmF0b21pYy1oaS1sby5oPgorI2luY2x1 ZGUgPHVhcGkvbGludXgvZXRodG9vbC5oPgorCisjZGVmaW5lIEFTUF9JTlRSMl9PRkZTRVQJCQkw eDEwMDAKKyNkZWZpbmUgIEFTUF9JTlRSMl9TVEFUVVMJCQkweDAKKyNkZWZpbmUgIEFTUF9JTlRS Ml9TRVQJCQkJMHg0CisjZGVmaW5lICBBU1BfSU5UUjJfQ0xFQVIJCQkweDgKKyNkZWZpbmUgIEFT UF9JTlRSMl9NQVNLX1NUQVRVUwkJCTB4YworI2RlZmluZSAgQVNQX0lOVFIyX01BU0tfU0VUCQkJ MHgxMAorI2RlZmluZSAgQVNQX0lOVFIyX01BU0tfQ0xFQVIJCQkweDE0CisKKyNkZWZpbmUgQVNQ X0lOVFIyX1JYX0VDSChpbnRyKQkJCUJJVChpbnRyKQorI2RlZmluZSBBU1BfSU5UUjJfVFhfREVT QyhpbnRyKQkJCUJJVCgoaW50cikgKyAxNCkKKyNkZWZpbmUgQVNQX0lOVFIyX1VNQzBfV0FLRQkJ CUJJVCgyMikKKyNkZWZpbmUgQVNQX0lOVFIyX1VNQzFfV0FLRQkJCUJJVCgyOCkKKworI2RlZmlu ZSBBU1BfV0FLRVVQX0lOVFIyX09GRlNFVAkJCTB4MTIwMAorI2RlZmluZSAgQVNQX1dBS0VVUF9J TlRSMl9TVEFUVVMJCTB4MAorI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9TRVQJCQkweDQKKyNk ZWZpbmUgIEFTUF9XQUtFVVBfSU5UUjJfQ0xFQVIJCQkweDgKKyNkZWZpbmUgIEFTUF9XQUtFVVBf SU5UUjJfTUFTS19TVEFUVVMJCTB4YworI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9NQVNLX1NF VAkJMHgxMAorI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9NQVNLX0NMRUFSCQkweDE0CisjZGVm aW5lIEFTUF9XQUtFVVBfSU5UUjJfTVBEXzAJCQlCSVQoMCkKKyNkZWZpbmUgQVNQX1dBS0VVUF9J TlRSMl9NUERfMQkJCUJJVCgxKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX0ZJTFRfMAkJCUJJ VCgyKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX0ZJTFRfMQkJCUJJVCgzKQorI2RlZmluZSBB U1BfV0FLRVVQX0lOVFIyX0ZXCQkJQklUKDQpCisKKyNkZWZpbmUgQVNQX1RYX0FOQUxZVElDU19P RkZTRVQJCQkweDRjMDAwCisjZGVmaW5lICBBU1BfVFhfQU5BTFlUSUNTX0NUUkwJCQkweDAKKwor I2RlZmluZSBBU1BfUlhfQU5BTFlUSUNTX09GRlNFVAkJCTB4OTgwMDAKKyNkZWZpbmUgIEFTUF9S WF9BTkFMWVRJQ1NfQ1RSTAkJCTB4MAorCisjZGVmaW5lIEFTUF9SWF9DVFJMX09GRlNFVAkJCTB4 OWYwMDAKKyNkZWZpbmUgQVNQX1JYX0NUUkxfVU1BQ18wX0ZSQU1FX0NPVU5UCQkweDgKKyNkZWZp bmUgQVNQX1JYX0NUUkxfVU1BQ18xX0ZSQU1FX0NPVU5UCQkweGMKKyNkZWZpbmUgQVNQX1JYX0NU UkxfRkJfMF9GUkFNRV9DT1VOVAkJMHgxNAorI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl8xX0ZSQU1F X0NPVU5UCQkweDE4CisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCXzhfRlJBTUVfQ09VTlQJCTB4MWMK Ky8qIGFzcDIuMSBkaXZlcmdlcyBvZmZzZXRzIGhlcmUgKi8KKy8qIEFTUDIuMCAqLworI2RlZmlu ZSBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlQJCTB4MjAKKyNkZWZpbmUgQVNQX1JYX0NU UkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQJMHgyNAorI2RlZmluZSBBU1BfUlhfQ1RSTF9GTFVT SAkJCTB4MjgKKyNkZWZpbmUgIEFTUF9DVFJMX1VNQUMwX0ZMVVNIX01BU0sJCShCSVQoMCkgfCBC SVQoMTIpKQorI2RlZmluZSAgQVNQX0NUUkxfVU1BQzFfRkxVU0hfTUFTSwkJKEJJVCgxKSB8IEJJ VCgxMykpCisjZGVmaW5lICBBU1BfQ1RSTF9TUEJfRkxVU0hfTUFTSwkJKEJJVCg4KSB8IEJJVCgy MCkpCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX1JYX0ZJRk9fREVQVEgJCTB4MzAKKy8qIEFTUDIu MSAqLworI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl85X0ZSQU1FX0NPVU5UXzJfMQkweDIwCisjZGVm aW5lIEFTUF9SWF9DVFJMX0ZCXzEwX0ZSQU1FX0NPVU5UXzJfMQkweDI0CisjZGVmaW5lIEFTUF9S WF9DVFJMX0ZCX09VVF9GUkFNRV9DT1VOVF8yXzEJMHgyOAorI2RlZmluZSBBU1BfUlhfQ1RSTF9G Ql9GSUxUX09VVF9GUkFNRV9DT1VOVF8yXzEJMHgyYworI2RlZmluZSBBU1BfUlhfQ1RSTF9GTFVT SF8yXzEJCQkweDMwCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX1JYX0ZJRk9fREVQVEhfMl8xCTB4 MzgKKworI2RlZmluZSBBU1BfUlhfRklMVEVSX09GRlNFVAkJCTB4ODAwMDAKKyNkZWZpbmUgIEFT UF9SWF9GSUxURVJfQkxLX0NUUkwJCQkweDAKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX09QVVRf RU4JCQlCSVQoMCkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX01EQV9FTgkJCUJJVCgxKQorI2Rl ZmluZSAgIEFTUF9SWF9GSUxURVJfTE5SX01ECQkJQklUKDIpCisjZGVmaW5lICAgQVNQX1JYX0ZJ TFRFUl9HRU5fV0tfRU4JCUJJVCgzKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfR0VOX1dLX0NM UgkJQklUKDQpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9OVF9GTFRfRU4JCUJJVCg1KQorI2Rl ZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTAw KQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTURBX0NGR19FTl9TSElGVAk4CisjZGVmaW5lICAg QVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX1VNQ19TRUwoc2VsKQkoKHNlbCkgPiAxID8gQklUKDE3KSA6 IFwKKwkJCQkJCSBCSVQoKHNlbCkgKyA5KSkKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX1BB VF9IKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTA0KQorI2RlZmluZSAgQVNQX1JYX0ZJTFRF Ul9NREFfUEFUX0woc2VsKQkJKCgoc2VsKSAqIDB4MTQpICsgMHgxMDgpCisjZGVmaW5lICBBU1Bf UlhfRklMVEVSX01EQV9NU0tfSChzZWwpCQkoKChzZWwpICogMHgxNCkgKyAweDEwYykKKyNkZWZp bmUgIEFTUF9SWF9GSUxURVJfTURBX01TS19MKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTEw KQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHKHNlbCkJCSgoKHNlbCkgKiAweDE0KSAr IDB4MTAwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfUEFUX0goc2VsKQkJKCgoc2VsKSAq IDB4MTQpICsgMHgxMDQpCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX01EQV9QQVRfTChzZWwpCQko KChzZWwpICogMHgxNCkgKyAweDEwOCkKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX01TS19I KHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTBjKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9N REFfTVNLX0woc2VsKQkJKCgoc2VsKSAqIDB4MTQpICsgMHgxMTApCisjZGVmaW5lICBBU1BfUlhf RklMVEVSX05FVF9DRkcoc2VsKQkJKCgoc2VsKSAqIDB4YTA0KSArIDB4NDAwKQorI2RlZmluZSAg IEFTUF9SWF9GSUxURVJfTkVUX0NGR19DSChzZWwpCQkoKHNlbCkgPDwgMCkKKyNkZWZpbmUgICBB U1BfUlhfRklMVEVSX05FVF9DRkdfRU4JCUJJVCg5KQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJf TkVUX0NGR19MMl9FTgkJQklUKDEwKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19M M19FTgkJQklUKDExKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MNF9FTgkJQklU KDEyKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MM19GUk0oc2VsKQkoKHNlbCkg PDwgMTMpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0ZSTShzZWwpCSgoc2Vs KSA8PCAxNSkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX05FVF9DRkdfVU1DKHNlbCkJQklUKChz ZWwpICsgMTkpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0RNQV9FTgkJQklUKDI3 KQorCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTUFYCQkzMgorI2RlZmluZSAg QVNQX1JYX0ZJTFRFUl9ORVRfUEFUKHNlbCwgYmxvY2ssIG9mZikgXAorCQkoKChzZWwpICogMHhh MDQpICsgKChibG9jaykgKiAweDIwMCkgKyAob2ZmKSArIDB4NjAwKQorI2RlZmluZSAgQVNQX1JY X0ZJTFRFUl9ORVRfTUFTSyhzZWwsIGJsb2NrLCBvZmYpIFwKKwkJKCgoc2VsKSAqIDB4YTA0KSAr ICgoYmxvY2spICogMHgyMDApICsgKG9mZikgKyAweDcwMCkKKworI2RlZmluZSAgQVNQX1JYX0ZJ TFRFUl9ORVRfT0ZGU0VUKHNlbCkJCSgoKHNlbCkgKiAweGEwNCkgKyAweGUwMCkKKyNkZWZpbmUg ICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDIodmFsKQkoKHZhbCkgPDwgMCkKKyNkZWZpbmUg ICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDNfMCh2YWwpCSgodmFsKSA8PCA4KQorI2RlZmlu ZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MM18xKHZhbCkJKCh2YWwpIDw8IDE2KQorI2Rl ZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MNCh2YWwpCSgodmFsKSA8PCAyNCkKKwor I2RlZmluZSBBU1BfRURQS1RfT0ZGU0VUCQkJMHg5YzAwMAorI2RlZmluZSAgQVNQX0VEUEtUX0VO QUJMRQkJCTB4NAorI2RlZmluZSAgIEFTUF9FRFBLVF9FTkFCTEVfRU4JCQlCSVQoMCkKKyNkZWZp bmUgIEFTUF9FRFBLVF9IRFJfQ0ZHCQkJMHhjCisjZGVmaW5lICAgQVNQX0VEUEtUX0hEUl9TWl9T SElGVAkJMgorI2RlZmluZSAgIEFTUF9FRFBLVF9IRFJfU1pfMzIJCQkwCisjZGVmaW5lICAgQVNQ X0VEUEtUX0hEUl9TWl82NAkJCTEKKyNkZWZpbmUgICBBU1BfRURQS1RfSERSX1NaXzk2CQkJMgor I2RlZmluZSAgIEFTUF9FRFBLVF9IRFJfU1pfMTI4CQkJMworI2RlZmluZSBBU1BfRURQS1RfQlVS U1RfQlVGX1BTQ0FMX1RPVVQJCTB4MTAKKyNkZWZpbmUgQVNQX0VEUEtUX0JVUlNUX0JVRl9XUklU RV9UT1VUCQkweDE0CisjZGVmaW5lIEFTUF9FRFBLVF9CVVJTVF9CVUZfUkVBRF9UT1VUCQkweDE4 CisjZGVmaW5lIEFTUF9FRFBLVF9SWF9UU19DT1VOVEVSCQkJMHgzOAorI2RlZmluZSAgQVNQX0VE UEtUX0VOREkJCQkJMHg0OAorI2RlZmluZSAgIEFTUF9FRFBLVF9FTkRJX0RFU0NfU0hJRlQJCTgK KyNkZWZpbmUgICBBU1BfRURQS1RfRU5ESV9OT19CVF9TV1AJCTAKKyNkZWZpbmUgICBBU1BfRURQ S1RfRU5ESV9CVF9TV1BfV0QJCTEKKyNkZWZpbmUgQVNQX0VEUEtUX1JYX1BLVF9DTlQJCQkweDEz OAorI2RlZmluZSBBU1BfRURQS1RfSERSX0VYVFJfQ05UCQkJMHgxM2MKKyNkZWZpbmUgQVNQX0VE UEtUX0hEUl9PVVRfQ05UCQkJMHgxNDAKKworI2RlZmluZSBBU1BfQ1RSTAkJCQkweDEwMTAwMAor I2RlZmluZSAgQVNQX0NUUkxfQVNQX1NXX0lOSVQJCQkweDA0CisjZGVmaW5lICAgQVNQX0NUUkxf QVNQX1NXX0lOSVRfQUNQVVNTX0NPUkUJQklUKDApCisjZGVmaW5lICAgQVNQX0NUUkxfQVNQX1NX X0lOSVRfQVNQX1RYCQlCSVQoMSkKKyNkZWZpbmUgICBBU1BfQ1RSTF9BU1BfU1dfSU5JVF9BU19S WAkJQklUKDIpCisjZGVmaW5lICAgQVNQX0NUUkxfQVNQX1NXX0lOSVRfQVNQX1JHTUlJX1VNQUMw CUJJVCgzKQorI2RlZmluZSAgIEFTUF9DVFJMX0FTUF9TV19JTklUX0FTUF9SR01JSV9VTUFDMQlC SVQoNCkKKyNkZWZpbmUgICBBU1BfQ1RSTF9BU1BfU1dfSU5JVF9BU1BfWE1FTUlGCUJJVCg1KQor I2RlZmluZSAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTAkJCTB4MDQKKyNkZWZpbmUgICBBU1BfQ1RSTF9D TE9DS19DVFJMX0FTUF9UWF9ESVNBQkxFCUJJVCgwKQorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NL X0NUUkxfQVNQX1JYX0RJU0FCTEUJQklUKDEpCisjZGVmaW5lICAgQVNQX0NUUkxfQ0xPQ0tfQ1RS TF9BU1BfUkdNSUlfU0hJRlQJMgorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JH TUlJX01BU0sJKDB4NyA8PCBBU1BfQ1RSTF9DTE9DS19DVFJMX0E9ClNQX1JHTUlJX1NISUZUKQor I2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JHTUlJX0RJUyh4KQlCSVQoQVNQX0NU UkxfQ0xPQ0tfQ1RSTF9BU1A9Cl9SR01JSV9TSElGVCArICh4KSkKKyNkZWZpbmUgICBBU1BfQ1RS TF9DTE9DS19DVFJMX0FTUF9BTExfRElTQUJMRQlHRU5NQVNLKDQsIDApCisjZGVmaW5lICBBU1Bf Q1RSTF9DT1JFX0NMT0NLX1NFTEVDVAkJMHgwOAorI2RlZmluZSAgIEFTUF9DVFJMX0NPUkVfQ0xP Q0tfU0VMRUNUX01BSU4JQklUKDApCisjZGVmaW5lICBBU1BfQ1RSTF9TQ1JBVENIXzAJCQkweDBj CisKK3N0cnVjdCBiY21hc3BfdHhfY2IgeworCXN0cnVjdCBza19idWZmCQkqc2tiOworCXVuc2ln bmVkIGludAkJYnl0ZXNfc2VudDsKKwlib29sCQkJbGFzdDsKKworCURFRklORV9ETUFfVU5NQVBf QUREUihkbWFfYWRkcik7CisJREVGSU5FX0RNQV9VTk1BUF9MRU4oZG1hX2xlbik7Cit9OworCitz dHJ1Y3QgYmNtYXNwX3JlcyB7CisJLyogUGVyIGludGVyZmFjZSByZXNvdXJjZXMgKi8KKwkvKiBQ b3J0ICovCisJdm9pZCBfX2lvbWVtCQkqdW1hYzsKKwl2b2lkIF9faW9tZW0JCSp1bWFjMmZiOwor CXZvaWQgX19pb21lbQkJKnJnbWlpOworCisJLyogVFggc2xvd3BhdGgvY29uZmlndXJhdGlvbiAq LworCXZvaWQgX19pb21lbQkJKnR4X3NwYl9jdHJsOworCXZvaWQgX19pb21lbQkJKnR4X3NwYl90 b3A7CisJdm9pZCBfX2lvbWVtCQkqdHhfZXBrdF9jb3JlOworCXZvaWQgX19pb21lbQkJKnR4X3Bh dXNlX2N0cmw7Cit9OworCisjZGVmaW5lIERFU0NfQUREUih4KQkJKCh4KSAmIEdFTk1BU0tfVUxM KDM5LCAwKSkKKyNkZWZpbmUgREVTQ19GTEFHUyh4KQkJKCh4KSAmIEdFTk1BU0tfVUxMKDYzLCA0 MCkpCisKK3N0cnVjdCBiY21hc3BfZGVzYyB7CisJdTY0CQlidWY7CisJI2RlZmluZSBERVNDX0NI S1NVTQlCSVRfVUxMKDQwKQorCSNkZWZpbmUgREVTQ19DUkNfRVJSCUJJVF9VTEwoNDEpCisJI2Rl ZmluZSBERVNDX1JYX1NZTV9FUlIJQklUX1VMTCg0MikKKwkjZGVmaW5lIERFU0NfTk9fT0NUX0FM TiBCSVRfVUxMKDQzKQorCSNkZWZpbmUgREVTQ19QS1RfVFJVQwlCSVRfVUxMKDQ0KQorCS8qICAz OTowIChUWC9SWCkgYml0cyAwLTM5IG9mIGJ1ZiBhZGRyCisJICogICAgNDAgKFJYKSBjaGVja3N1 bQorCSAqICAgIDQxIChSWCkgY3JjX2Vycm9yCisJICogICAgNDIgKFJYKSByeF9zeW1ib2xfZXJy b3IKKwkgKiAgICA0MyAoUlgpIG5vbl9vY3RldF9hbGlnbmVkCisJICogICAgNDQgKFJYKSBwa3Rf dHJ1bmNhdGVkCisJICogICAgNDUgUmVzZXJ2ZWQKKwkgKiA1Njo0NiAoUlgpIG1hY19maWx0ZXJf aWQKKwkgKiA2MDo1NyAoUlgpIHJ4X3BvcnRfbnVtICgwLXVuaWNtYWMwLCAxLXVuaW1hYzEpCisJ ICogICAgNjEgUmVzZXJ2ZWQKKwkgKiA2Mzo2MiAoVFgpIGZvcndhcmQgQ1JDLCBvdmVyd3JpdGUg Q1JDCisJICovCisJdTMyCQlzaXplOworCXUzMgkJZmxhZ3M7CisJI2RlZmluZSBERVNDX0lOVF9F TiAgICAgQklUKDApCisJI2RlZmluZSBERVNDX1NPRglCSVQoMSkKKwkjZGVmaW5lIERFU0NfRU9G CUJJVCgyKQorCSNkZWZpbmUgREVTQ19FUEtUX0NNRCAgIEJJVCgzKQorCSNkZWZpbmUgREVTQ19T Q1JBTV9TVCAgIEJJVCg4KQorCSNkZWZpbmUgREVTQ19TQ1JBTV9FTkQgIEJJVCg5KQorCSNkZWZp bmUgREVTQ19QQ1BQICAgICAgIEJJVCgxMCkKKwkjZGVmaW5lIERFU0NfUFBQUCAgICAgICBCSVQo MTEpCisJLyogICAgIDAgKFRYKSB0eF9pbnRfZW4KKwkgKiAgICAgMSAoVFgvUlgpIFNPRgorCSAq ICAgICAyIChUWC9SWCkgRU9GCisJICogICAgIDMgKFRYKSBlcGt0X2NvbW1hbmQKKwkgKiAgIDY6 NCAoVFgpIFBBCisJICogICAgIDcgKFRYKSBwYXVzZSBhdCBkZXNjIGVuZAorCSAqICAgICA4IChU WCkgc2NyYW1fc3RhcnQKKwkgKiAgICAgOSAoVFgpIHNjcmFtX2VuZAorCSAqICAgIDEwIChUWCkg UENQUAorCSAqICAgIDExIChUWCkgUFBQUAorCSAqIDE0OjEyIFJlc2VydmVkCisJICogICAgMTUg KFRYKSBwaWQgY2ggVmFsaWQKKwkgKiAxOToxNiAoVFgpIGRhdGFfcGt0X3R5cGUKKwkgKiAzMjoy MCAoVFgpIHBpZF9jaGFubmVsIChSWCkgbndfZmlsdGVyX2lkCisJICovCit9OworCitzdHJ1Y3Qg YmNtYXNwX2ludGY7CisKK3N0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0IHsKKwkvKiBSeCBTdGF0 cyAqLworCXU2NF9zdGF0c190CXJ4X3BhY2tldHM7CisJdTY0X3N0YXRzX3QJcnhfYnl0ZXM7CisJ dTY0X3N0YXRzX3QJcnhfZXJyb3JzOworCXU2NF9zdGF0c190CXJ4X2Ryb3BwZWQ7CisJdTY0X3N0 YXRzX3QJcnhfY3JjX2VycnM7CisJdTY0X3N0YXRzX3QJcnhfc3ltX2VycnM7CisKKwkvKiBUeCBT dGF0cyovCisJdTY0X3N0YXRzX3QJdHhfcGFja2V0czsKKwl1NjRfc3RhdHNfdAl0eF9ieXRlczsK KworCXN0cnVjdCB1NjRfc3RhdHNfc3luYwkJc3luY3A7Cit9OworCitzdHJ1Y3QgYmNtYXNwX2lu dGZfb3BzIHsKKwl1bnNpZ25lZCBsb25nICgqcnhfZGVzY19yZWFkKShzdHJ1Y3QgYmNtYXNwX2lu dGYgKmludGYpOworCXZvaWQgKCpyeF9idWZmZXJfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAq aW50ZiwgZG1hX2FkZHJfdCBhZGRyKTsKKwl2b2lkICgqcnhfZGVzY193cml0ZSkoc3RydWN0IGJj bWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkZHIpOworCXVuc2lnbmVkIGxvbmcgKCp0eF9y ZWFkKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCXZvaWQgKCp0eF93cml0ZSkoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkZHIpOworfTsKKworc3RydWN0IGJjbWFz cF9wcml2OworCitzdHJ1Y3QgYmNtYXNwX2ludGYgeworCXN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7 CisJc3RydWN0IG5ldF9kZXZpY2UJCSpuZGV2OworCXN0cnVjdCBiY21hc3BfcHJpdgkJKnBhcmVu dDsKKworCS8qIEFTUCBDaCAqLworCWludAkJCQljaGFubmVsOworCWludAkJCQlwb3J0OworCWNv bnN0IHN0cnVjdCBiY21hc3BfaW50Zl9vcHMJKm9wczsKKworCS8qIFVzZWQgZm9yIHNwbGl0dGlu ZyBzaGFyZWQgcmVzb3VyY2VzICovCisJaW50CQkJCWluZGV4OworCisJc3RydWN0IG5hcGlfc3Ry dWN0CQl0eF9uYXBpOworCS8qIFRYIHJpbmcsIHN0YXJ0cyBvbiBhIG5ldyBjYWNoZWxpbmUgYm91 bmRhcnkgKi8KKwl2b2lkIF9faW9tZW0JCQkqdHhfc3BiX2RtYTsKKwlpbnQJCQkJdHhfc3BiX2lu ZGV4OworCWludAkJCQl0eF9zcGJfY2xlYW5faW5kZXg7CisJc3RydWN0IGJjbWFzcF9kZXNjCQkq dHhfc3BiX2NwdTsKKwlkbWFfYWRkcl90CQkJdHhfc3BiX2RtYV9hZGRyOworCWRtYV9hZGRyX3QJ CQl0eF9zcGJfZG1hX3ZhbGlkOworCWRtYV9hZGRyX3QJCQl0eF9zcGJfZG1hX3JlYWQ7CisJc3Ry dWN0IGJjbWFzcF90eF9jYgkJKnR4X2NiczsKKworCS8qIFJYIHJpbmcsIHN0YXJ0cyBvbiBhIG5l dyBjYWNoZWxpbmUgYm91bmRhcnkgKi8KKwl2b2lkIF9faW9tZW0JCQkqcnhfZWRwa3RfY2ZnOwor CXZvaWQgX19pb21lbQkJCSpyeF9lZHBrdF9kbWE7CisJaW50CQkJCXJ4X2VkcGt0X2luZGV4Owor CWludAkJCQlyeF9idWZfb3JkZXI7CisJc3RydWN0IGJjbWFzcF9kZXNjCQkqcnhfZWRwa3RfY3B1 OworCWRtYV9hZGRyX3QJCQlyeF9lZHBrdF9kbWFfYWRkcjsKKwlkbWFfYWRkcl90CQkJcnhfZWRw a3RfZG1hX3JlYWQ7CisKKwkvKiBSWCBidWZmZXIgcHJlZmV0Y2hlciByaW5nKi8KKwl2b2lkCQkJ CSpyeF9yaW5nX2NwdTsKKwlkbWFfYWRkcl90CQkJcnhfcmluZ19kbWE7CisJZG1hX2FkZHJfdAkJ CXJ4X3JpbmdfZG1hX3ZhbGlkOworCXN0cnVjdCBuYXBpX3N0cnVjdAkJcnhfbmFwaTsKKworCXN0 cnVjdCBiY21hc3BfcmVzCQlyZXM7CisJdW5zaWduZWQgaW50CQkJY3JjX2Z3ZDsKKworCS8qIFBI WSBkZXZpY2UgKi8KKwlzdHJ1Y3QgZGV2aWNlX25vZGUJCSpwaHlfZG47CisJc3RydWN0IGRldmlj ZV9ub2RlCQkqbmRldl9kbjsKKwlwaHlfaW50ZXJmYWNlX3QJCQlwaHlfaW50ZXJmYWNlOworCWJv b2wJCQkJaW50ZXJuYWxfcGh5OworCWludAkJCQlvbGRfcGF1c2U7CisJaW50CQkJCW9sZF9saW5r OworCWludAkJCQlvbGRfZHVwbGV4OworCisJdTMyCQkJCW1zZ19lbmFibGU7CisKKwkvKiBTdGF0 aXN0aWNzICovCisJc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQJc3RhdHM2NDsKK307CisKKyNk ZWZpbmUgTlVNX01EQV9GSUxURVJTCQkJCTMyCitzdHJ1Y3QgYmNtYXNwX21kYV9maWx0ZXIgewor CS8qIEN1cnJlbnQgb3duZXIgb2YgdGhpcyBmaWx0ZXIgKi8KKwlpbnQJCXBvcnQ7CisJYm9vbAkJ ZW47CisJdTgJCWFkZHJbRVRIX0FMRU5dOworCXU4CQltYXNrW0VUSF9BTEVOXTsKK307CisKK3N0 cnVjdCBiY21hc3BfaHdfaW5mbyB7CisJdTMyCQlyeF9jdHJsX2ZsdXNoOworCXUzMgkJdW1hYzJm YjsKKwl1MzIJCXJ4X2N0cmxfZmJfb3V0X2ZyYW1lX2NvdW50OworCXUzMgkJcnhfY3RybF9mYl9m aWx0X291dF9mcmFtZV9jb3VudDsKKwl1MzIJCXJ4X2N0cmxfZmJfcnhfZmlmb19kZXB0aDsKK307 CisKK3N0cnVjdCBiY21hc3BfcGxhdF9kYXRhIHsKKwlzdHJ1Y3QgYmNtYXNwX2h3X2luZm8JCSpo d19pbmZvOworfTsKKworc3RydWN0IGJjbWFzcF9wcml2IHsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlCQkqcGRldjsKKwlzdHJ1Y3QgY2xrCQkJKmNsazsKKworCWludAkJCQlpcnE7CisJdTMyCQkJ CWlycV9tYXNrOworCisJdm9pZCBfX2lvbWVtCQkJKmJhc2U7CisJc3RydWN0CWJjbWFzcF9od19p bmZvCQkqaHdfaW5mbzsKKworCXN0cnVjdCBsaXN0X2hlYWQJCWludGZzOworCisJc3RydWN0IGJj bWFzcF9tZGFfZmlsdGVyCW1kYV9maWx0ZXJzW05VTV9NREFfRklMVEVSU107CisKKwkvKiBNQUMg ZGVzdGluYXRpb24gYWRkcmVzcyBmaWx0ZXJzIGxvY2sgKi8KKwlzcGlubG9ja190CQkJbWRhX2xv Y2s7CisKKwkvKiBQcm90ZWN0cyBhY2Nlc3NlcyB0byBBU1BfQ1RSTF9DTE9DS19DVFJMICovCisJ c3BpbmxvY2tfdAkJCWNsa19sb2NrOworfTsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IGJjbWFzcF9pbnRmX3J4X2Rlc2NfcmVhZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmk9Cm50ZikKK3sK KwlyZXR1cm4gaW50Zi0+b3BzLT5yeF9kZXNjX3JlYWQoaW50Zik7Cit9CisKK3N0YXRpYyBpbmxp bmUgdm9pZCBiY21hc3BfaW50Zl9yeF9idWZmZXJfd3JpdGUoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLAorCQkJCQkgICAgICAgZG1hX2FkZHJfdCBhZGRyKQoreworCWludGYtPm9wcy0+cnhfYnVm ZmVyX3dyaXRlKGludGYsIGFkZHIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYmNtYXNwX2lu dGZfcnhfZGVzY193cml0ZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJCSAgICAgZG1h X2FkZHJfdCBhZGRyKQoreworCWludGYtPm9wcy0+cnhfZGVzY193cml0ZShpbnRmLCBhZGRyKTsK K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGJjbWFzcF9pbnRmX3R4X3JlYWQoc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXJldHVybiBpbnRmLT5vcHMtPnR4X3JlYWQoaW50 Zik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBiY21hc3BfaW50Zl90eF93cml0ZShzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYsCisJCQkJCWRtYV9hZGRyX3QgYWRkcikKK3sKKwlpbnRmLT5vcHMt PnR4X3dyaXRlKGludGYsIGFkZHIpOworfQorCisjZGVmaW5lIF9fQkNNQVNQX0lPX01BQ1JPKG5h bWUsIG0pCQkJCQlcCitzdGF0aWMgaW5saW5lIHUzMiBuYW1lIyNfcmwoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCB1MzIgb2ZmKQkJXAorewkJCQkJCQkJCVwKKwl1MzIgcmVnID0zRCByZWFkbF9y ZWxheGVkKGludGYtPm0gKyBvZmYpOwkJCQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJ CQkJCVwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfd2woc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLCB1MzIgdmFsLCB1MzIgb2ZmKVwKK3sJCQkJCQkJCQlcCisJd3JpdGVsX3JlbGF4ZWQodmFs LCBpbnRmLT5tICsgb2ZmKTsJCQkJXAorfQorCisjZGVmaW5lIEJDTUFTUF9JT19NQUNSTyhuYW1l KQkJX19CQ01BU1BfSU9fTUFDUk8obmFtZSwgcmVzLm5hbWUpCisjZGVmaW5lIEJDTUFTUF9GUF9J T19NQUNSTyhuYW1lKQlfX0JDTUFTUF9JT19NQUNSTyhuYW1lLCBuYW1lKQorCitCQ01BU1BfSU9f TUFDUk8odW1hYyk7CitCQ01BU1BfSU9fTUFDUk8odW1hYzJmYik7CitCQ01BU1BfSU9fTUFDUk8o cmdtaWkpOworQkNNQVNQX0ZQX0lPX01BQ1JPKHR4X3NwYl9kbWEpOworQkNNQVNQX0lPX01BQ1JP KHR4X3NwYl9jdHJsKTsKK0JDTUFTUF9JT19NQUNSTyh0eF9zcGJfdG9wKTsKK0JDTUFTUF9JT19N QUNSTyh0eF9lcGt0X2NvcmUpOworQkNNQVNQX0lPX01BQ1JPKHR4X3BhdXNlX2N0cmwpOworQkNN QVNQX0ZQX0lPX01BQ1JPKHJ4X2VkcGt0X2RtYSk7CitCQ01BU1BfRlBfSU9fTUFDUk8ocnhfZWRw a3RfY2ZnKTsKKworI2RlZmluZSBfX0JDTUFTUF9GUF9JT19NQUNST19RKG5hbWUsIG0pCQkJCQlc CitzdGF0aWMgaW5saW5lIHU2NCBuYW1lIyNfcnEoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1 MzIgb2ZmKQkJXAorewkJCQkJCQkJCVwKKwl1NjQgcmVnID0zRCByZWFkcV9yZWxheGVkKGludGYt Pm0gKyBvZmYpOwkJCQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJCQkJCVwKK3N0YXRp YyBpbmxpbmUgdm9pZCBuYW1lIyNfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1NjQgdmFs LCB1MzIgb2ZmKVwKK3sJCQkJCQkJCQlcCisJd3JpdGVxX3JlbGF4ZWQodmFsLCBpbnRmLT5tICsg b2ZmKTsJCQkJXAorfQorCisjZGVmaW5lIEJDTUFTUF9GUF9JT19NQUNST19RKG5hbWUpCV9fQkNN QVNQX0ZQX0lPX01BQ1JPX1EobmFtZSwgbmFtZSkKKworQkNNQVNQX0ZQX0lPX01BQ1JPX1EodHhf c3BiX2RtYSk7CitCQ01BU1BfRlBfSU9fTUFDUk9fUShyeF9lZHBrdF9kbWEpOworQkNNQVNQX0ZQ X0lPX01BQ1JPX1EocnhfZWRwa3RfY2ZnKTsKKworI2RlZmluZSBQS1RfT0ZGTE9BRF9OT1AJCQko MCA8PCAyOCkKKyNkZWZpbmUgUEtUX09GRkxPQURfSERSX09QCQkoMSA8PCAyOCkKKyNkZWZpbmUg IFBLVF9PRkZMT0FEX0hEUl9XUkJBQ0sJCUJJVCgxOSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0hE Ul9DT1VOVCh4KQkoKHgpIDw8IDE2KQorI2RlZmluZSAgUEtUX09GRkxPQURfSERSX1NJWkVfMSh4 KQkoKHgpIDw8IDQpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9IRFJfU0laRV8yKHgpCSh4KQorI2Rl ZmluZSAgUEtUX09GRkxPQURfSERSMl9TSVpFXzIoeCkJKCh4KSA8PCAyNCkKKyNkZWZpbmUgIFBL VF9PRkZMT0FEX0hEUjJfU0laRV8zKHgpCSgoeCkgPDwgMTIpCisjZGVmaW5lICBQS1RfT0ZGTE9B RF9IRFIyX1NJWkVfNCh4KQkoeCkKKyNkZWZpbmUgUEtUX09GRkxPQURfRVBLVF9PUAkJKDIgPDwg MjgpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX1dSQkFDSwlCSVQoMjMpCisjZGVmaW5lICBQ S1RfT0ZGTE9BRF9FUEtUX0lQKHgpCQkoKHgpIDw8IDIxKQorI2RlZmluZSAgUEtUX09GRkxPQURf RVBLVF9UUCh4KQkJKCh4KSA8PCAxOSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0VQS1RfTEVOKHgp CSgoeCkgPDwgMTYpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX0NTVU1fTDMJQklUKDE1KQor I2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9DU1VNX0wyCUJJVCgxNCkKKyNkZWZpbmUgIFBLVF9P RkZMT0FEX0VQS1RfSUQoeCkJCSgoeCkgPDwgMTIpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtU X1NFUSh4KQkoKHgpIDw8IDEwKQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9UUyh4KQkJKCh4 KSA8PCA4KQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9CTE9DKHgpCSh4KQorI2RlZmluZSBQ S1RfT0ZGTE9BRF9FTkRfT1AJCSg3IDw8IDI4KQorCitzdHJ1Y3QgYmNtYXNwX3BrdF9vZmZsb2Fk IHsKKwlfX2JlMzIJCW5vcDsKKwlfX2JlMzIJCWhlYWRlcjsKKwlfX2JlMzIJCWhlYWRlcjI7CisJ X19iZTMyCQllcGt0OworCV9fYmUzMgkJZW5kOworfTsKKworI2RlZmluZSBCQ01BU1BfQ09SRV9J T19NQUNSTyhuYW1lLCBvZmZzZXQpCQkJCVwKK3N0YXRpYyBpbmxpbmUgdTMyIG5hbWUjI19jb3Jl X3JsKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwJCVwKKwkJCQkgdTMyIG9mZikJCQkJXAorewkJ CQkJCQkJCVwKKwl1MzIgcmVnID0zRCByZWFkbF9yZWxheGVkKHByaXYtPmJhc2UgKyAob2Zmc2V0 KSArIG9mZik7CQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJCQkJCVwKK3N0YXRpYyBp bmxpbmUgdm9pZCBuYW1lIyNfY29yZV93bChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsCQlcCisJ CQkJICB1MzIgdmFsLCB1MzIgb2ZmKQkJCVwKK3sJCQkJCQkJCQlcCisJd3JpdGVsX3JlbGF4ZWQo dmFsLCBwcml2LT5iYXNlICsgKG9mZnNldCkgKyBvZmYpOwkJXAorfQorCitCQ01BU1BfQ09SRV9J T19NQUNSTyhpbnRyMiwgQVNQX0lOVFIyX09GRlNFVCk7CitCQ01BU1BfQ09SRV9JT19NQUNSTyh3 YWtldXBfaW50cjIsIEFTUF9XQUtFVVBfSU5UUjJfT0ZGU0VUKTsKK0JDTUFTUF9DT1JFX0lPX01B Q1JPKHR4X2FuYWx5dGljcywgQVNQX1RYX0FOQUxZVElDU19PRkZTRVQpOworQkNNQVNQX0NPUkVf SU9fTUFDUk8ocnhfYW5hbHl0aWNzLCBBU1BfUlhfQU5BTFlUSUNTX09GRlNFVCk7CitCQ01BU1Bf Q09SRV9JT19NQUNSTyhyeF9jdHJsLCBBU1BfUlhfQ1RSTF9PRkZTRVQpOworQkNNQVNQX0NPUkVf SU9fTUFDUk8ocnhfZmlsdGVyLCBBU1BfUlhfRklMVEVSX09GRlNFVCk7CitCQ01BU1BfQ09SRV9J T19NQUNSTyhyeF9lZHBrdCwgQVNQX0VEUEtUX09GRlNFVCk7CitCQ01BU1BfQ09SRV9JT19NQUNS TyhjdHJsLCBBU1BfQ1RSTCk7CisKK3N0cnVjdCBiY21hc3BfaW50ZiAqYmNtYXNwX2ludGVyZmFj ZV9jcmVhdGUoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCQkgICAgc3RydWN0IGRldmlj ZV9ub2RlICpuZGV2X2RuLCBpbnQgaSk7CisKK3ZvaWQgYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95 KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7CisKK3ZvaWQgYmNtYXNwX2VuYWJsZV90eF9pcnEo c3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgZW4pOworCit2b2lkIGJjbWFzcF9lbmFibGVf cnhfaXJxKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgaW50IGVuKTsKKwordm9pZCBiY21hc3Bf Zmx1c2hfcnhfcG9ydChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCitleHRlcm4gY29uc3Qg c3RydWN0IGV0aHRvb2xfb3BzIGJjbWFzcF9ldGh0b29sX29wczsKKworaW50IGJjbWFzcF9pbnRl cmZhY2Vfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCitpbnQgYmNtYXNwX2lu dGVyZmFjZV9yZXN1bWUoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKKwordm9pZCBiY21hc3Bf c2V0X3Byb21pc2Moc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuKTsKKwordm9pZCBi Y21hc3Bfc2V0X2FsbG11bHRpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbik7CisK K3ZvaWQgYmNtYXNwX3NldF9icm9hZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4p OworCit2b2lkIGJjbWFzcF9zZXRfb2FkZHIoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBjb25z dCB1bnNpZ25lZCBjaGFyICphZGRyLAorCQkgICAgICBib29sIGVuKTsKKworaW50IGJjbWFzcF9z ZXRfZW5fbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIHVuc2lnbmVkIGNoYXIg KmFkZHIsCisJCQkgICAgIHVuc2lnbmVkIGNoYXIgKm1hc2spOworCit2b2lkIGJjbWFzcF9kaXNh YmxlX2FsbF9maWx0ZXJzKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7CisKK3ZvaWQgYmNtYXNw X2NvcmVfY2xvY2tfc2V0X2ludGYoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuKTsK KworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3Ay L2JjbWFzcF9ldGh0b29sLmMgYi9kcml2ZXJzLz0KbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwX2V0aHRvb2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjM5NGMwZTFjYjAyNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYwpAQCAtMCwwICsxLDQwIEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorI2RlZmluZSBwcl9mbXQoZm10KQkJCQkiYmNtYXNw X2V0aHRvb2w6ICIgZm10CisKKyNpbmNsdWRlIDxsaW51eC9ldGh0b29sLmg+CisjaW5jbHVkZSA8 bGludXgvbmV0ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisK KyNpbmNsdWRlICJiY21hc3AuaCIKKyNpbmNsdWRlICJiY21hc3BfaW50Zl9kZWZzLmgiCisKK3N0 YXRpYyB2b2lkIGJjbWFzcF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJ ICAgICAgIHN0cnVjdCBldGh0b29sX2RydmluZm8gKmluZm8pCit7CisJc3Ryc2NweShpbmZvLT5k cml2ZXIsICJiY21hc3AiLCBzaXplb2YoaW5mby0+ZHJpdmVyKSk7CisJc3Ryc2NweShpbmZvLT5i dXNfaW5mbywgZGV2X25hbWUoZGV2LT5kZXYucGFyZW50KSwKKwkJc2l6ZW9mKGluZm8tPmJ1c19p bmZvKSk7Cit9CisKK3N0YXRpYyB1MzIgYmNtYXNwX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYo ZGV2KTsKKworCXJldHVybiBpbnRmLT5tc2dfZW5hYmxlOworfQorCitzdGF0aWMgdm9pZCBiY21h c3Bfc2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBsZXZlbCkKK3sKKwlz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwlpbnRmLT5t c2dfZW5hYmxlID0zRCBsZXZlbDsKK30KKworY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGJjbWFz cF9ldGh0b29sX29wcyA9M0QgeworCS5nZXRfZHJ2aW5mbwkJPTNEIGJjbWFzcF9nZXRfZHJ2aW5m bywKKwkuZ2V0X2xpbmsJCT0zRCBldGh0b29sX29wX2dldF9saW5rLAorCS5nZXRfbGlua19rc2V0 dGluZ3MJPTNEIHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncywKKwkuc2V0X2xpbmtfa3Nl dHRpbmdzCT0zRCBwaHlfZXRodG9vbF9zZXRfbGlua19rc2V0dGluZ3MsCisJLmdldF9tc2dsZXZl bAkJPTNEIGJjbWFzcF9nZXRfbXNnbGV2ZWwsCisJLnNldF9tc2dsZXZlbAkJPTNEIGJjbWFzcF9z ZXRfbXNnbGV2ZWwsCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYXNwMi9iY21hc3BfaW50Zi5jIGIvZHJpdmVycy9uZXQ9Ci9ldGhlcm5ldC9icm9hZGNvbS9h c3AyL2JjbWFzcF9pbnRmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wMjMyZjVjZjg5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKQEAgLTAsMCArMSwxMzQyIEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorI2RlZmluZSBwcl9mbXQoZm10KQkJCSJiY21hc3Bf aW50ZjogIiBmbXQKKworI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKyNpbmNsdWRlIDxsaW51 eC9icmNtcGh5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZGVs YXkuaD4KKyNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L25l dGRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX25ldC5oPgorI2luY2x1ZGUgPGxpbnV4L29m X21kaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9waHlfZml4 ZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHBfY2xhc3NpZnkuaD4KKyNpbmNsdWRlIDxsaW51eC9w bGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxuZXQvaXAuaD4KKyNpbmNsdWRlIDxuZXQvaXB2 Ni5oPgorCisjaW5jbHVkZSAiYmNtYXNwLmgiCisjaW5jbHVkZSAiYmNtYXNwX2ludGZfZGVmcy5o IgorCitzdGF0aWMgaW50IGluY3JfcmluZyhpbnQgaW5kZXgsIGludCByaW5nX2NvdW50KQorewor CWluZGV4Kys7CisJaWYgKGluZGV4ID0zRD0zRCByaW5nX2NvdW50KQorCQlyZXR1cm4gMDsKKwor CXJldHVybiBpbmRleDsKK30KKworLyogUG9pbnRzIHRvIGxhc3QgYnl0ZSBvZiBkZXNjcmlwdG9y ICovCitzdGF0aWMgZG1hX2FkZHJfdCBpbmNyX2xhc3RfYnl0ZShkbWFfYWRkcl90IGFkZHIsIGRt YV9hZGRyX3QgYmVnLAorCQkJCSBpbnQgcmluZ19jb3VudCkKK3sKKwlkbWFfYWRkcl90IGVuZCA9 M0QgYmVnICsgKHJpbmdfY291bnQgKiBERVNDX1NJWkUpOworCisJYWRkciArPTNEIERFU0NfU0la RTsKKwlpZiAoYWRkciA+IGVuZCkKKwkJcmV0dXJuIGJlZyArIERFU0NfU0laRSAtIDE7CisKKwly ZXR1cm4gYWRkcjsKK30KKworLyogUG9pbnRzIHRvIGZpcnN0IGJ5dGUgb2YgZGVzY3JpcHRvciAq Lworc3RhdGljIGRtYV9hZGRyX3QgaW5jcl9maXJzdF9ieXRlKGRtYV9hZGRyX3QgYWRkciwgZG1h X2FkZHJfdCBiZWcsCisJCQkJICBpbnQgcmluZ19jb3VudCkKK3sKKwlkbWFfYWRkcl90IGVuZCA9 M0QgYmVnICsgKHJpbmdfY291bnQgKiBERVNDX1NJWkUpOworCisJYWRkciArPTNEIERFU0NfU0la RTsKKwlpZiAoYWRkciA+PTNEIGVuZCkKKwkJcmV0dXJuIGJlZzsKKworCXJldHVybiBhZGRyOwor fQorCitzdGF0aWMgdm9pZCBiY21hc3BfZW5hYmxlX3R4KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiwgaW50IGVuKQoreworCWlmIChlbikgeworCQl0eF9zcGJfY3RybF93bChpbnRmLCBUWF9TUEJf Q1RSTF9FTkFCTEVfRU4sIFRYX1NQQl9DVFJMX0VOQUJMRSk7CisJCXR4X2Vwa3RfY29yZV93bChp bnRmLCAoVFhfRVBLVF9DX0NGR19NSVNDX0VOIHwKKwkJCQlUWF9FUEtUX0NfQ0ZHX01JU0NfUFQg fAorCQkJCShpbnRmLT5wb3J0IDw8IFRYX0VQS1RfQ19DRkdfTUlTQ19QU19TSElGVCkpLAorCQkJ CVRYX0VQS1RfQ19DRkdfTUlTQyk7CisJfSBlbHNlIHsKKwkJdHhfc3BiX2N0cmxfd2woaW50Ziwg MHgwLCBUWF9TUEJfQ1RSTF9FTkFCTEUpOworCQl0eF9lcGt0X2NvcmVfd2woaW50ZiwgMHgwLCBU WF9FUEtUX0NfQ0ZHX01JU0MpOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2VuYWJsZV9y eChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBlbikKK3sKKwlpZiAoZW4pCisJCXJ4X2Vk cGt0X2NmZ193bChpbnRmLCBSWF9FRFBLVF9DRkdfRU5BQkxFX0VOLAorCQkJCVJYX0VEUEtUX0NG R19FTkFCTEUpOworCWVsc2UKKwkJcnhfZWRwa3RfY2ZnX3dsKGludGYsIDB4MCwgUlhfRURQS1Rf Q0ZHX0VOQUJMRSk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9zZXRfcnhfbW9kZShzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQoreworCXVuc2lnbmVkIGNoYXIgbWFza1tdID0zRCB7MHhmZiwgMHhm ZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZn07CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0z RCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBuZXRkZXZfaHdfYWRkciAqaGE7CisJaW50IHJl dDsKKworCXNwaW5fbG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7CisKKwliY21hc3Bf ZGlzYWJsZV9hbGxfZmlsdGVycyhpbnRmKTsKKworCWlmIChkZXYtPmZsYWdzICYgSUZGX1BST01J U0MpCisJCWdvdG8gc2V0X3Byb21pc2M7CisKKwliY21hc3Bfc2V0X3Byb21pc2MoaW50ZiwgMCk7 CisKKwliY21hc3Bfc2V0X2Jyb2FkKGludGYsIDEpOworCisJYmNtYXNwX3NldF9vYWRkcihpbnRm LCBkZXYtPmRldl9hZGRyLCAxKTsKKworCWlmIChkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKSB7 CisJCWJjbWFzcF9zZXRfYWxsbXVsdGkoaW50ZiwgMSk7CisJfSBlbHNlIHsKKwkJYmNtYXNwX3Nl dF9hbGxtdWx0aShpbnRmLCAwKTsKKworCQluZXRkZXZfZm9yX2VhY2hfbWNfYWRkcihoYSwgZGV2 KSB7CisJCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihpbnRmLCBoYS0+YWRkciwg bWFzayk7CisJCQlpZiAocmV0KQorCQkJCWdvdG8gc2V0X3Byb21pc2M7CisJCX0KKwl9CisKKwlu ZXRkZXZfZm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7CisJCXJldCA9M0QgYmNtYXNwX3NldF9l bl9tZGFfZmlsdGVyKGludGYsIGhhLT5hZGRyLCBtYXNrKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8g c2V0X3Byb21pc2M7CisJfQorCisJc3Bpbl91bmxvY2tfYmgoJmludGYtPnBhcmVudC0+bWRhX2xv Y2spOworCXJldHVybjsKKworc2V0X3Byb21pc2M6CisJYmNtYXNwX3NldF9wcm9taXNjKGludGYs IDEpOworCisJLyogZGlzYWJsZSBhbGwgZmlsdGVycyB1c2VkIGJ5IHRoaXMgcG9ydCAqLworCWJj bWFzcF9kaXNhYmxlX2FsbF9maWx0ZXJzKGludGYpOworCisJc3Bpbl91bmxvY2tfYmgoJmludGYt PnBhcmVudC0+bWRhX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfY2xlYW5fdHhjYihz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBpbmRleCkKK3sKKwlzdHJ1Y3QgYmNtYXNwX3R4 X2NiICp0eGNiID0zRCAmaW50Zi0+dHhfY2JzW2luZGV4XTsKKworCXR4Y2ItPnNrYiA9M0QgTlVM TDsKKwlkbWFfdW5tYXBfYWRkcl9zZXQodHhjYiwgZG1hX2FkZHIsIDApOworCWRtYV91bm1hcF9s ZW5fc2V0KHR4Y2IsIGRtYV9sZW4sIDApOworCXR4Y2ItPmxhc3QgPTNEIGZhbHNlOworfQorCitz dGF0aWMgaW50IHR4X3NwYl9yaW5nX2Z1bGwoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBpbnQg Y250KQoreworCWludCBuZXh0X2luZGV4LCBpOworCisJLyogQ2hlY2sgaWYgd2UgaGF2ZSBlbm91 Z2ggcm9vbSBmb3IgY250IGRlc2NyaXB0b3JzICovCisJZm9yIChpID0zRCAwOyBpIDwgY250OyBp KyspIHsKKwkJbmV4dF9pbmRleCA9M0QgaW5jcl9yaW5nKGludGYtPnR4X3NwYl9pbmRleCwgREVT Q19SSU5HX0NPVU5UKTsKKwkJaWYgKG5leHRfaW5kZXggPTNEPTNEIGludGYtPnR4X3NwYl9jbGVh bl9pbmRleCkKKwkJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3Ry dWN0IHNrX2J1ZmYgKmJjbWFzcF9jc3VtX29mZmxvYWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK KwkJCQkJICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAgYm9vbCAqY3N1bV9odykKK3sK Kwl1MzIgaGVhZGVyID0zRCAwLCBoZWFkZXIyID0zRCAwLCBlcGt0ID0zRCAwOworCXN0cnVjdCBi Y21hc3BfcGt0X29mZmxvYWQgKm9mZmxvYWQ7CisJdW5zaWduZWQgaW50IGhlYWRlcl9jbnQgPTNE IDA7CisJdTggaXBfcHJvdG87CisJaW50IHJldDsKKworCWlmIChza2ItPmlwX3N1bW1lZCAhPTNE IENIRUNLU1VNX1BBUlRJQUwpCisJCXJldHVybiBza2I7CisKKwlyZXQgPTNEIHNrYl9jb3dfaGVh ZChza2IsIHNpemVvZigqb2ZmbG9hZCkpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGhlbHA7CisK Kwlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wpIHsKKwljYXNlIGh0b25zKEVUSF9QX0lQKToKKwkJaGVh ZGVyIHw9M0QgUEtUX09GRkxPQURfSERSX1NJWkVfMigoaXBfaGRybGVuKHNrYikgPj4gOCkgJiAw eGYpOworCQloZWFkZXIyIHw9M0QgUEtUX09GRkxPQURfSERSMl9TSVpFXzIoaXBfaGRybGVuKHNr YikgJiAweGZmKTsKKwkJZXBrdCB8PTNEIFBLVF9PRkZMT0FEX0VQS1RfSVAoMCkgfCBQS1RfT0ZG TE9BRF9FUEtUX0NTVU1fTDI7CisJCWlwX3Byb3RvID0zRCBpcF9oZHIoc2tiKS0+cHJvdG9jb2w7 CisJCWhlYWRlcl9jbnQgKz0zRCAyOworCQlicmVhazsKKwljYXNlIGh0b25zKEVUSF9QX0lQVjYp OgorCQloZWFkZXIgfD0zRCBQS1RfT0ZGTE9BRF9IRFJfU0laRV8yKChJUDZfSExFTiA+PiA4KSAm IDB4Zik7CisJCWhlYWRlcjIgfD0zRCBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMihJUDZfSExFTiAm IDB4ZmYpOworCQllcGt0IHw9M0QgUEtUX09GRkxPQURfRVBLVF9JUCgxKSB8IFBLVF9PRkZMT0FE X0VQS1RfQ1NVTV9MMjsKKwkJaXBfcHJvdG8gPTNEIGlwdjZfaGRyKHNrYiktPm5leHRoZHI7CisJ CWhlYWRlcl9jbnQgKz0zRCAyOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlnb3RvIGhlbHA7CisJ fQorCisJc3dpdGNoIChpcF9wcm90bykgeworCWNhc2UgSVBQUk9UT19UQ1A6CisJCWhlYWRlcjIg fD0zRCBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMyh0Y3BfaGRybGVuKHNrYikpOworCQllcGt0IHw9 M0QgUEtUX09GRkxPQURfRVBLVF9UUCgwKSB8IFBLVF9PRkZMT0FEX0VQS1RfQ1NVTV9MMzsKKwkJ aGVhZGVyX2NudCsrOworCQlicmVhazsKKwljYXNlIElQUFJPVE9fVURQOgorCQloZWFkZXIyIHw9 M0QgUEtUX09GRkxPQURfSERSMl9TSVpFXzMoVURQX0hMRU4pOworCQllcGt0IHw9M0QgUEtUX09G RkxPQURfRVBLVF9UUCgxKSB8IFBLVF9PRkZMT0FEX0VQS1RfQ1NVTV9MMzsKKwkJaGVhZGVyX2Nu dCsrOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlnb3RvIGhlbHA7CisJfQorCisJb2ZmbG9hZCA9 M0QgKHN0cnVjdCBiY21hc3BfcGt0X29mZmxvYWQgKilza2JfcHVzaChza2IsIHNpemVvZigqb2Zm bG9hZCkpOworCisJaGVhZGVyIHw9M0QgUEtUX09GRkxPQURfSERSX09QIHwgUEtUX09GRkxPQURf SERSX0NPVU5UKGhlYWRlcl9jbnQpIHwKKwkJICBQS1RfT0ZGTE9BRF9IRFJfU0laRV8xKEVUSF9I TEVOKTsKKwllcGt0IHw9M0QgUEtUX09GRkxPQURfRVBLVF9PUDsKKworCW9mZmxvYWQtPm5vcCA9 M0QgaHRvbmwoUEtUX09GRkxPQURfTk9QKTsKKwlvZmZsb2FkLT5oZWFkZXIgPTNEIGh0b25sKGhl YWRlcik7CisJb2ZmbG9hZC0+aGVhZGVyMiA9M0QgaHRvbmwoaGVhZGVyMik7CisJb2ZmbG9hZC0+ ZXBrdCA9M0QgaHRvbmwoZXBrdCk7CisJb2ZmbG9hZC0+ZW5kID0zRCBodG9ubChQS1RfT0ZGTE9B RF9FTkRfT1ApOworCSpjc3VtX2h3ID0zRCB0cnVlOworCisJcmV0dXJuIHNrYjsKKworaGVscDoK Kwlza2JfY2hlY2tzdW1faGVscChza2IpOworCisJcmV0dXJuIHNrYjsKK30KKworc3RhdGljIHVu c2lnbmVkIGxvbmcgYmNtYXNwX3J4X2VkcGt0X2RtYV9ycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYpCit7CisJcmV0dXJuIHJ4X2VkcGt0X2RtYV9ycShpbnRmLCBSWF9FRFBLVF9ETUFfVkFMSUQp OworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfcnhfZWRwa3RfY2ZnX3dxKHN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBhZD0KZHIpCit7CisJcnhfZWRwa3RfY2ZnX3dxKGludGYs IGFkZHIsIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1JFQUQpOworfQorCitzdGF0aWMgdm9pZCBiY21h c3BfcnhfZWRwa3RfZG1hX3dxKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBh ZD0KZHIpCit7CisJcnhfZWRwa3RfZG1hX3dxKGludGYsIGFkZHIsIFJYX0VEUEtUX0RNQV9SRUFE KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgYmNtYXNwX3R4X3NwYl9kbWFfcnEoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmKQoreworCXJldHVybiB0eF9zcGJfZG1hX3JxKGludGYsIFRYX1NQ Ql9ETUFfUkVBRCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF90eF9zcGJfZG1hX3dxKHN0cnVj dCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBhZGRyKQoreworCXR4X3NwYl9kbWFfd3Eo aW50ZiwgYWRkciwgVFhfU1BCX0RNQV9WQUxJRCk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg YmNtYXNwX2ludGZfb3BzIGJjbWFzcF9pbnRmX29wcyA9M0QgeworCS5yeF9kZXNjX3JlYWQgPTNE IGJjbWFzcF9yeF9lZHBrdF9kbWFfcnEsCisJLnJ4X2J1ZmZlcl93cml0ZSA9M0QgYmNtYXNwX3J4 X2VkcGt0X2NmZ193cSwKKwkucnhfZGVzY193cml0ZSA9M0QgYmNtYXNwX3J4X2VkcGt0X2RtYV93 cSwKKwkudHhfcmVhZCA9M0QgYmNtYXNwX3R4X3NwYl9kbWFfcnEsCisJLnR4X3dyaXRlID0zRCBi Y21hc3BfdHhfc3BiX2RtYV93cSwKK307CisKK3N0YXRpYyBuZXRkZXZfdHhfdCBiY21hc3BfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVj dCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwl1bnNpZ25lZCBpbnQg dG90YWxfYnl0ZXMsIHNpemU7CisJaW50IHNwYl9pbmRleCwgbnJfZnJhZ3MsIGksIGo7CisJc3Ry dWN0IGJjbWFzcF90eF9jYiAqdHhjYjsKKwlkbWFfYWRkcl90IG1hcHBpbmcsIHZhbGlkOworCXN0 cnVjdCBiY21hc3BfZGVzYyAqZGVzYzsKKwlib29sIGNzdW1faHcgPTNEIGZhbHNlOworCXN0cnVj dCBkZXZpY2UgKmtkZXY7CisJc2tiX2ZyYWdfdCAqZnJhZzsKKworCWtkZXYgPTNEICZpbnRmLT5w YXJlbnQtPnBkZXYtPmRldjsKKworCW5yX2ZyYWdzID0zRCBza2Jfc2hpbmZvKHNrYiktPm5yX2Zy YWdzOworCisJaWYgKHR4X3NwYl9yaW5nX2Z1bGwoaW50ZiwgbnJfZnJhZ3MgKyAxKSkgeworCQlu ZXRpZl9zdG9wX3F1ZXVlKGRldik7CisJCWlmIChuZXRfcmF0ZWxpbWl0KCkpCisJCQluZXRkZXZf ZXJyKGRldiwgIlR4IFJpbmcgRnVsbCFcbiIpOworCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CisJ fQorCisJLyogU2F2ZSBza2IgbGVuIGJlZm9yZSBhZGRpbmcgY3N1bSBvZmZsb2FkIGhlYWRlciAq LworCXRvdGFsX2J5dGVzID0zRCBza2ItPmxlbjsKKwlza2IgPTNEIGJjbWFzcF9jc3VtX29mZmxv YWQoZGV2LCBza2IsICZjc3VtX2h3KTsKKwlpZiAoIXNrYikKKwkJcmV0dXJuIE5FVERFVl9UWF9P SzsKKworCXNwYl9pbmRleCA9M0QgaW50Zi0+dHhfc3BiX2luZGV4OworCXZhbGlkID0zRCBpbnRm LT50eF9zcGJfZG1hX3ZhbGlkOworCWZvciAoaSA9M0QgMDsgaSA8PTNEIG5yX2ZyYWdzOyBpKysp IHsKKwkJaWYgKCFpKSB7CisJCQlzaXplID0zRCBza2JfaGVhZGxlbihza2IpOworCQkJaWYgKCFu cl9mcmFncyAmJiBzaXplIDwgKEVUSF9aTEVOICsgRVRIX0ZDU19MRU4pKSB7CisJCQkJaWYgKHNr Yl9wdXRfcGFkdG8oc2tiLCBFVEhfWkxFTiArIEVUSF9GQ1NfTEVOKSkKKwkJCQkJcmV0dXJuIE5F VERFVl9UWF9PSzsKKwkJCQlzaXplID0zRCBza2ItPmxlbjsKKwkJCX0KKwkJCW1hcHBpbmcgPTNE IGRtYV9tYXBfc2luZ2xlKGtkZXYsIHNrYi0+ZGF0YSwgc2l6ZSwKKwkJCQkJCSBETUFfVE9fREVW SUNFKTsKKwkJfSBlbHNlIHsKKwkJCWZyYWcgPTNEICZza2Jfc2hpbmZvKHNrYiktPmZyYWdzW2kg LSAxXTsKKwkJCXNpemUgPTNEIHNrYl9mcmFnX3NpemUoZnJhZyk7CisJCQltYXBwaW5nID0zRCBz a2JfZnJhZ19kbWFfbWFwKGtkZXYsIGZyYWcsIDAsIHNpemUsCisJCQkJCQkgICBETUFfVE9fREVW SUNFKTsKKwkJfQorCisJCWlmIChkbWFfbWFwcGluZ19lcnJvcihrZGV2LCBtYXBwaW5nKSkgewor CQkJc3BiX2luZGV4ID0zRCBpbnRmLT50eF9zcGJfaW5kZXg7CisJCQlmb3IgKGogPTNEIDA7IGog PCBpOyBqKyspIHsKKwkJCQliY21hc3BfY2xlYW5fdHhjYihpbnRmLCBzcGJfaW5kZXgpOworCQkJ CXNwYl9pbmRleCA9M0QgaW5jcl9yaW5nKHNwYl9pbmRleCwKKwkJCQkJCSAgICAgIERFU0NfUklO R19DT1VOVCk7CisJCQl9CisJCQkvKiBSZXdpbmQgc28gd2UgZG8gbm90IGhhdmUgYSBob2xlICov CisJCQlzcGJfaW5kZXggPTNEIGludGYtPnR4X3NwYl9pbmRleDsKKwkJCXJldHVybiBORVRERVZf VFhfT0s7CisJCX0KKworCQl0eGNiID0zRCAmaW50Zi0+dHhfY2JzW3NwYl9pbmRleF07CisJCWRl c2MgPTNEICZpbnRmLT50eF9zcGJfY3B1W3NwYl9pbmRleF07CisJCW1lbXNldChkZXNjLCAwLCBz aXplb2YoKmRlc2MpKTsKKwkJdHhjYi0+c2tiID0zRCBza2I7CisJCXR4Y2ItPmJ5dGVzX3NlbnQg PTNEIHRvdGFsX2J5dGVzOworCQlkbWFfdW5tYXBfYWRkcl9zZXQodHhjYiwgZG1hX2FkZHIsIG1h cHBpbmcpOworCQlkbWFfdW5tYXBfbGVuX3NldCh0eGNiLCBkbWFfbGVuLCBzaXplKTsKKwkJaWYg KCFpKSB7CisJCQlkZXNjLT5mbGFncyB8PTNEIERFU0NfU09GOworCQkJaWYgKGNzdW1faHcpCisJ CQkJZGVzYy0+ZmxhZ3MgfD0zRCBERVNDX0VQS1RfQ01EOworCQl9CisKKwkJaWYgKGkgPTNEPTNE IG5yX2ZyYWdzKSB7CisJCQlkZXNjLT5mbGFncyB8PTNEIERFU0NfRU9GOworCQkJdHhjYi0+bGFz dCA9M0QgdHJ1ZTsKKwkJfQorCisJCWRlc2MtPmJ1ZiA9M0QgbWFwcGluZzsKKwkJZGVzYy0+c2l6 ZSA9M0Qgc2l6ZTsKKwkJZGVzYy0+ZmxhZ3MgfD0zRCBERVNDX0lOVF9FTjsKKworCQluZXRpZl9k YmcoaW50ZiwgdHhfcXVldWVkLCBkZXYsCisJCQkgICIlcyBkbWFfYnVmPTNEJXBhZCBkbWFfbGVu PTNEMHgleCBmbGFncz0zRDB4JXggaW5kZXg9M0QweCV4XG4iLAorCQkJICBfX2Z1bmNfXywgJm1h cHBpbmcsIGRlc2MtPnNpemUsIGRlc2MtPmZsYWdzLAorCQkJICBzcGJfaW5kZXgpOworCisJCXNw Yl9pbmRleCA9M0QgaW5jcl9yaW5nKHNwYl9pbmRleCwgREVTQ19SSU5HX0NPVU5UKTsKKwkJdmFs aWQgPTNEIGluY3JfbGFzdF9ieXRlKHZhbGlkLCBpbnRmLT50eF9zcGJfZG1hX2FkZHIsCisJCQkJ ICAgICAgIERFU0NfUklOR19DT1VOVCk7CisJfQorCisJLyogRW5zdXJlIGFsbCBkZXNjcmlwdG9y cyBoYXZlIGJlZW4gd3JpdHRlbiB0byBEUkFNIGZvciB0aGUKKwkgKiBoYXJkd2FyZSB0byBzZWUg dXAtdG8tZGF0ZSBjb250ZW50cy4KKwkgKi8KKwl3bWIoKTsKKworCWludGYtPnR4X3NwYl9pbmRl eCA9M0Qgc3BiX2luZGV4OworCWludGYtPnR4X3NwYl9kbWFfdmFsaWQgPTNEIHZhbGlkOworCWJj bWFzcF9pbnRmX3R4X3dyaXRlKGludGYsIGludGYtPnR4X3NwYl9kbWFfdmFsaWQpOworCisJaWYg KHR4X3NwYl9yaW5nX2Z1bGwoaW50ZiwgTUFYX1NLQl9GUkFHUyArIDEpKQorCQluZXRpZl9zdG9w X3F1ZXVlKGRldik7CisKKwlyZXR1cm4gTkVUREVWX1RYX09LOworfQorCitzdGF0aWMgdm9pZCBi Y21hc3BfbmV0aWZfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwliY21hc3Bfc2V0X3J4X21v ZGUoZGV2KTsKKwluYXBpX2VuYWJsZSgmaW50Zi0+dHhfbmFwaSk7CisJbmFwaV9lbmFibGUoJmlu dGYtPnJ4X25hcGkpOworCisJYmNtYXNwX2VuYWJsZV9yeF9pcnEoaW50ZiwgMSk7CisJYmNtYXNw X2VuYWJsZV90eF9pcnEoaW50ZiwgMSk7CisKKwlwaHlfc3RhcnQoZGV2LT5waHlkZXYpOworfQor CitzdGF0aWMgdm9pZCB1bWFjX3Jlc2V0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwl1 bWFjX3dsKGludGYsIDB4MCwgVU1DX0NNRCk7CisJdW1hY193bChpbnRmLCBVTUNfQ01EX1NXX1JF U0VULCBVTUNfQ01EKTsKKwl1c2xlZXBfcmFuZ2UoMTAsIDEwMCk7CisJdW1hY193bChpbnRmLCAw eDAsIFVNQ19DTUQpOworfQorCitzdGF0aWMgdm9pZCB1bWFjX3NldF9od19hZGRyKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiwKKwkJCSAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkcikKK3sK Kwl1MzIgbWFjMCA9M0QgKGFkZHJbMF0gPDwgMjQpIHwgKGFkZHJbMV0gPDwgMTYpIHwgKGFkZHJb Ml0gPDwgOCkgfAorCQkgICAgYWRkclszXTsKKwl1MzIgbWFjMSA9M0QgKGFkZHJbNF0gPDwgOCkg fCBhZGRyWzVdOworCisJdW1hY193bChpbnRmLCBtYWMwLCBVTUNfTUFDMCk7CisJdW1hY193bChp bnRmLCBtYWMxLCBVTUNfTUFDMSk7Cit9CisKK3N0YXRpYyB2b2lkIHVtYWNfZW5hYmxlX3NldChz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIHUzMiBtYXNrLAorCQkJICAgIHVuc2lnbmVkIGludCBl bmFibGUpCit7CisJdTMyIHJlZzsKKworCXJlZyA9M0QgdW1hY19ybChpbnRmLCBVTUNfQ01EKTsK KwlpZiAoZW5hYmxlKQorCQlyZWcgfD0zRCBtYXNrOworCWVsc2UKKwkJcmVnICY9M0Qgfm1hc2s7 CisJdW1hY193bChpbnRmLCByZWcsIFVNQ19DTUQpOworCisJLyogVW5pTUFDIHN0b3BzIG9uIGEg cGFja2V0IGJvdW5kYXJ5LCB3YWl0IGZvciBhIGZ1bGwtc2l6ZWQgcGFja2V0CisJICogdG8gYmUg cHJvY2Vzc2VkICgxIG1zZWMpLgorCSAqLworCWlmIChlbmFibGUgPTNEPTNEIDApCisJCXVzbGVl cF9yYW5nZSgxMDAwLCAyMDAwKTsKK30KKworc3RhdGljIHZvaWQgdW1hY19pbml0KHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZikKK3sKKwl1bWFjX3dsKGludGYsIDB4ODAwLCBVTUNfRlJNX0xFTik7 CisJdW1hY193bChpbnRmLCAweGZmZmYsIFVNQ19QQVVTRV9DTlRSTCk7CisJdW1hY193bChpbnRm LCAweDgwMCwgVU1DX1JYX01BWF9QS1RfU1opOworCXVtYWNfZW5hYmxlX3NldChpbnRmLCBVTUNf Q01EX1BST01JU0MsIDEpOworfQorCitzdGF0aWMgaW50IGJjbWFzcF90eF9wb2xsKHN0cnVjdCBu YXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYgPTNECisJCWNvbnRhaW5lcl9vZihuYXBpLCBzdHJ1Y3QgYmNtYXNwX2ludGYsIHR4X25hcGkp OworCXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0ICpzdGF0cyA9M0QgJmludGYtPnN0YXRzNjQ7 CisJc3RydWN0IGRldmljZSAqa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2OworCXVu c2lnbmVkIGxvbmcgcmVhZCwgcmVsZWFzZWQgPTNEIDA7CisJc3RydWN0IGJjbWFzcF90eF9jYiAq dHhjYjsKKwlzdHJ1Y3QgYmNtYXNwX2Rlc2MgKmRlc2M7CisJZG1hX2FkZHJfdCBtYXBwaW5nOwor CisJcmVhZCA9M0QgYmNtYXNwX2ludGZfdHhfcmVhZChpbnRmKTsKKwl3aGlsZSAoaW50Zi0+dHhf c3BiX2RtYV9yZWFkICE9M0QgcmVhZCkgeworCQl0eGNiID0zRCAmaW50Zi0+dHhfY2JzW2ludGYt PnR4X3NwYl9jbGVhbl9pbmRleF07CisJCW1hcHBpbmcgPTNEIGRtYV91bm1hcF9hZGRyKHR4Y2Is IGRtYV9hZGRyKTsKKworCQlkbWFfdW5tYXBfc2luZ2xlKGtkZXYsIG1hcHBpbmcsCisJCQkJIGRt YV91bm1hcF9sZW4odHhjYiwgZG1hX2xlbiksCisJCQkJIERNQV9UT19ERVZJQ0UpOworCisJCWlm ICh0eGNiLT5sYXN0KSB7CisJCQlkZXZfY29uc3VtZV9za2JfYW55KHR4Y2ItPnNrYik7CisKKwkJ CXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7CisJCQl1NjRfc3RhdHNfaW5j KCZzdGF0cy0+dHhfcGFja2V0cyk7CisJCQl1NjRfc3RhdHNfYWRkKCZzdGF0cy0+dHhfYnl0ZXMs IHR4Y2ItPmJ5dGVzX3NlbnQpOworCQkJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnN0YXRzLT5zeW5j cCk7CisJCX0KKworCQlkZXNjID0zRCAmaW50Zi0+dHhfc3BiX2NwdVtpbnRmLT50eF9zcGJfY2xl YW5faW5kZXhdOworCisJCW5ldGlmX2RiZyhpbnRmLCB0eF9kb25lLCBpbnRmLT5uZGV2LAorCQkJ ICAiJXMgZG1hX2J1Zj0zRCVwYWQgZG1hX2xlbj0zRDB4JXggZmxhZ3M9M0QweCV4IGNfaW5kZXg9 M0QweCV4XG4iLAorCQkJICBfX2Z1bmNfXywgJm1hcHBpbmcsIGRlc2MtPnNpemUsIGRlc2MtPmZs YWdzLAorCQkJICBpbnRmLT50eF9zcGJfY2xlYW5faW5kZXgpOworCisJCWJjbWFzcF9jbGVhbl90 eGNiKGludGYsIGludGYtPnR4X3NwYl9jbGVhbl9pbmRleCk7CisJCXJlbGVhc2VkKys7CisKKwkJ aW50Zi0+dHhfc3BiX2NsZWFuX2luZGV4ID0zRCBpbmNyX3JpbmcoaW50Zi0+dHhfc3BiX2NsZWFu X2luZGV4LAorCQkJCQkJICAgICBERVNDX1JJTkdfQ09VTlQpOworCQlpbnRmLT50eF9zcGJfZG1h X3JlYWQgPTNEIGluY3JfZmlyc3RfYnl0ZShpbnRmLT50eF9zcGJfZG1hX3JlYWQsCisJCQkJCQkJ aW50Zi0+dHhfc3BiX2RtYV9hZGRyLAorCQkJCQkJCURFU0NfUklOR19DT1VOVCk7CisJfQorCisJ LyogRW5zdXJlIGFsbCBkZXNjcmlwdG9ycyBoYXZlIGJlZW4gd3JpdHRlbiB0byBEUkFNIGZvciB0 aGUgaGFyZHdhcmUKKwkgKiB0byBzZWUgdXBkYXRlZCBjb250ZW50cy4KKwkgKi8KKwl3bWIoKTsK KworCW5hcGlfY29tcGxldGUoJmludGYtPnR4X25hcGkpOworCisJYmNtYXNwX2VuYWJsZV90eF9p cnEoaW50ZiwgMSk7CisKKwlpZiAocmVsZWFzZWQpCisJCW5ldGlmX3dha2VfcXVldWUoaW50Zi0+ bmRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY21hc3BfcnhfcG9sbChzdHJ1 Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCit7CisJc3RydWN0IGJjbWFzcF9pbnRm ICppbnRmID0zRAorCQljb250YWluZXJfb2YobmFwaSwgc3RydWN0IGJjbWFzcF9pbnRmLCByeF9u YXBpKTsKKwlzdHJ1Y3QgYmNtYXNwX2ludGZfc3RhdHM2NCAqc3RhdHMgPTNEICZpbnRmLT5zdGF0 czY0OworCXN0cnVjdCBkZXZpY2UgKmtkZXYgPTNEICZpbnRmLT5wYXJlbnQtPnBkZXYtPmRldjsK Kwl1bnNpZ25lZCBsb25nIHByb2Nlc3NlZCA9M0QgMDsKKwlzdHJ1Y3QgYmNtYXNwX2Rlc2MgKmRl c2M7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKwlkbWFfYWRkcl90IHZhbGlkOworCXZvaWQgKmRh dGE7CisJdTY0IGZsYWdzOworCXUzMiBsZW47CisKKwl2YWxpZCA9M0QgYmNtYXNwX2ludGZfcnhf ZGVzY19yZWFkKGludGYpICsgMTsKKwlpZiAodmFsaWQgPTNEPTNEIGludGYtPnJ4X2VkcGt0X2Rt YV9hZGRyICsgREVTQ19SSU5HX1NJWkUpCisJCXZhbGlkID0zRCBpbnRmLT5yeF9lZHBrdF9kbWFf YWRkcjsKKworCXdoaWxlICgocHJvY2Vzc2VkIDwgYnVkZ2V0KSAmJiAodmFsaWQgIT0zRCBpbnRm LT5yeF9lZHBrdF9kbWFfcmVhZCkpIHsKKwkJZGVzYyA9M0QgJmludGYtPnJ4X2VkcGt0X2NwdVtp bnRmLT5yeF9lZHBrdF9pbmRleF07CisKKwkJLyogRW5zdXJlIHRoYXQgZGVzY3JpcHRvciBoYXMg YmVlbiBmdWxseSB3cml0dGVuIHRvIERSQU0gYnkKKwkJICogaGFyZHdhcmUgYmVmb3JlIHJlYWRp bmcgYnkgdGhlIENQVQorCQkgKi8KKwkJcm1iKCk7CisKKwkJLyogQ2FsY3VsYXRlIHZpcnQgYWRk ciBieSBvZmZzZXR0aW5nIGZyb20gcGh5c2ljYWwgYWRkciAqLworCQlkYXRhID0zRCBpbnRmLT5y eF9yaW5nX2NwdSArCisJCQkoREVTQ19BRERSKGRlc2MtPmJ1ZikgLSBpbnRmLT5yeF9yaW5nX2Rt YSk7CisKKwkJZmxhZ3MgPTNEIERFU0NfRkxBR1MoZGVzYy0+YnVmKTsKKwkJaWYgKHVubGlrZWx5 KGZsYWdzICYgKERFU0NfQ1JDX0VSUiB8IERFU0NfUlhfU1lNX0VSUikpKSB7CisJCQlpZiAobmV0 X3JhdGVsaW1pdCgpKSB7CisJCQkJbmV0aWZfZXJyKGludGYsIHJ4X3N0YXR1cywgaW50Zi0+bmRl diwKKwkJCQkJICAiZmxhZ3M9M0QweCVsbHhcbiIsIGZsYWdzKTsKKwkJCX0KKworCQkJdTY0X3N0 YXRzX3VwZGF0ZV9iZWdpbigmc3RhdHMtPnN5bmNwKTsKKwkJCWlmIChmbGFncyAmIERFU0NfQ1JD X0VSUikKKwkJCQl1NjRfc3RhdHNfaW5jKCZzdGF0cy0+cnhfY3JjX2VycnMpOworCQkJaWYgKGZs YWdzICYgREVTQ19SWF9TWU1fRVJSKQorCQkJCXU2NF9zdGF0c19pbmMoJnN0YXRzLT5yeF9zeW1f ZXJycyk7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmc3RhdHMtPnN5bmNwKTsKKworCQkJZ290 byBuZXh0OworCQl9CisKKwkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoa2RldiwgREVTQ19BRERS KGRlc2MtPmJ1ZiksIGRlc2MtPnNpemUsCisJCQkJCURNQV9GUk9NX0RFVklDRSk7CisKKwkJbGVu ID0zRCBkZXNjLT5zaXplOworCisJCXNrYiA9M0QgbmFwaV9hbGxvY19za2IobmFwaSwgbGVuKTsK KwkJaWYgKCFza2IpIHsKKwkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7 CisJCQl1NjRfc3RhdHNfaW5jKCZzdGF0cy0+cnhfZHJvcHBlZCk7CisJCQl1NjRfc3RhdHNfdXBk YXRlX2VuZCgmc3RhdHMtPnN5bmNwKTsKKwkJCWdvdG8gbmV4dDsKKwkJfQorCisJCXNrYl9wdXQo c2tiLCBsZW4pOworCQltZW1jcHkoc2tiLT5kYXRhLCBkYXRhLCBsZW4pOworCisJCXNrYl9wdWxs KHNrYiwgMik7CisJCWxlbiAtPTNEIDI7CisJCWlmIChsaWtlbHkoaW50Zi0+Y3JjX2Z3ZCkpIHsK KwkJCXNrYl90cmltKHNrYiwgbGVuIC0gRVRIX0ZDU19MRU4pOworCQkJbGVuIC09M0QgRVRIX0ZD U19MRU47CisJCX0KKworCQlpZiAoKGludGYtPm5kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9SWENT VU0pICYmCisJCSAgICAoZGVzYy0+YnVmICYgREVTQ19DSEtTVU0pKQorCQkJc2tiLT5pcF9zdW1t ZWQgPTNEIENIRUNLU1VNX1VOTkVDRVNTQVJZOworCisJCXNrYi0+cHJvdG9jb2wgPTNEIGV0aF90 eXBlX3RyYW5zKHNrYiwgaW50Zi0+bmRldik7CisKKwkJbmFwaV9ncm9fcmVjZWl2ZShuYXBpLCBz a2IpOworCisJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7CisJCXU2NF9z dGF0c19pbmMoJnN0YXRzLT5yeF9wYWNrZXRzKTsKKwkJdTY0X3N0YXRzX2FkZCgmc3RhdHMtPnJ4 X2J5dGVzLCBsZW4pOworCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmc3RhdHMtPnN5bmNwKTsKKwor bmV4dDoKKwkJYmNtYXNwX2ludGZfcnhfYnVmZmVyX3dyaXRlKGludGYsIChERVNDX0FERFIoZGVz Yy0+YnVmKSArCisJCQkJCSAgICBkZXNjLT5zaXplKSk7CisKKwkJcHJvY2Vzc2VkKys7CisJCWlu dGYtPnJ4X2VkcGt0X2RtYV9yZWFkID0zRAorCQkJaW5jcl9maXJzdF9ieXRlKGludGYtPnJ4X2Vk cGt0X2RtYV9yZWFkLAorCQkJCQlpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciwKKwkJCQkJREVTQ19S SU5HX0NPVU5UKTsKKwkJaW50Zi0+cnhfZWRwa3RfaW5kZXggPTNEIGluY3JfcmluZyhpbnRmLT5y eF9lZHBrdF9pbmRleCwKKwkJCQkJCSBERVNDX1JJTkdfQ09VTlQpOworCX0KKworCWJjbWFzcF9p bnRmX3J4X2Rlc2Nfd3JpdGUoaW50ZiwgaW50Zi0+cnhfZWRwa3RfZG1hX3JlYWQpOworCisJaWYg KHByb2Nlc3NlZCA8IGJ1ZGdldCkgeworCQluYXBpX2NvbXBsZXRlX2RvbmUoJmludGYtPnJ4X25h cGksIHByb2Nlc3NlZCk7CisJCWJjbWFzcF9lbmFibGVfcnhfaXJxKGludGYsIDEpOworCX0KKwor CXJldHVybiBwcm9jZXNzZWQ7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9hZGpfbGluayhzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0 ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0zRCBkZXYtPnBoeWRl djsKKwl1MzIgY21kX2JpdHMgPTNEIDAsIHJlZzsKKwlpbnQgY2hhbmdlZCA9M0QgMDsKKworCWlm IChpbnRmLT5vbGRfbGluayAhPTNEIHBoeWRldi0+bGluaykgeworCQljaGFuZ2VkID0zRCAxOwor CQlpbnRmLT5vbGRfbGluayA9M0QgcGh5ZGV2LT5saW5rOworCX0KKworCWlmIChpbnRmLT5vbGRf ZHVwbGV4ICE9M0QgcGh5ZGV2LT5kdXBsZXgpIHsKKwkJY2hhbmdlZCA9M0QgMTsKKwkJaW50Zi0+ b2xkX2R1cGxleCA9M0QgcGh5ZGV2LT5kdXBsZXg7CisJfQorCisJc3dpdGNoIChwaHlkZXYtPnNw ZWVkKSB7CisJY2FzZSBTUEVFRF8yNTAwOgorCQljbWRfYml0cyA9M0QgVU1DX0NNRF9TUEVFRF8y NTAwOworCQlicmVhazsKKwljYXNlIFNQRUVEXzEwMDA6CisJCWNtZF9iaXRzID0zRCBVTUNfQ01E X1NQRUVEXzEwMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwOgorCQljbWRfYml0cyA9M0Qg VU1DX0NNRF9TUEVFRF8xMDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTA6CisJCWNtZF9iaXRz ID0zRCBVTUNfQ01EX1NQRUVEXzEwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9 CisJY21kX2JpdHMgPDw9M0QgVU1DX0NNRF9TUEVFRF9TSElGVDsKKworCWlmIChwaHlkZXYtPmR1 cGxleCA9M0Q9M0QgRFVQTEVYX0hBTEYpCisJCWNtZF9iaXRzIHw9M0QgVU1DX0NNRF9IRF9FTjsK KworCWlmIChpbnRmLT5vbGRfcGF1c2UgIT0zRCBwaHlkZXYtPnBhdXNlKSB7CisJCWNoYW5nZWQg PTNEIDE7CisJCWludGYtPm9sZF9wYXVzZSA9M0QgcGh5ZGV2LT5wYXVzZTsKKwl9CisKKwlpZiAo IXBoeWRldi0+cGF1c2UpCisJCWNtZF9iaXRzIHw9M0QgVU1DX0NNRF9SWF9QQVVTRV9JR05PUkUg fCBVTUNfQ01EX1RYX1BBVVNFX0lHTk9SRTsKKworCWlmICghY2hhbmdlZCkKKwkJcmV0dXJuOwor CisJaWYgKHBoeWRldi0+bGluaykgeworCQlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0NNRCk7 CisJCXJlZyAmPTNEIH4oKFVNQ19DTURfU1BFRURfTUFTSyA8PCBVTUNfQ01EX1NQRUVEX1NISUZU KSB8CisJCQlVTUNfQ01EX0hEX0VOIHwgVU1DX0NNRF9SWF9QQVVTRV9JR05PUkUgfAorCQkJVU1D X0NNRF9UWF9QQVVTRV9JR05PUkUpOworCQlyZWcgfD0zRCBjbWRfYml0czsKKwkJdW1hY193bChp bnRmLCByZWcsIFVNQ19DTUQpOworCX0KKworCXJlZyA9M0QgcmdtaWlfcmwoaW50ZiwgUkdNSUlf T09CX0NOVFJMKTsKKwlpZiAocGh5ZGV2LT5saW5rKQorCQlyZWcgfD0zRCBSR01JSV9MSU5LOwor CWVsc2UKKwkJcmVnICY9M0QgflJHTUlJX0xJTks7CisJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01J SV9PT0JfQ05UUkwpOworCisJaWYgKGNoYW5nZWQpCisJCXBoeV9wcmludF9zdGF0dXMocGh5ZGV2 KTsKK30KKworc3RhdGljIGludCBiY21hc3BfaW5pdF9yeChzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYpCit7CisJc3RydWN0IGRldmljZSAqa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2 OworCXN0cnVjdCBwYWdlICpidWZmZXJfcGc7CisJZG1hX2FkZHJfdCBkbWE7CisJdm9pZCAqcDsK Kwl1MzIgcmVnOworCWludCByZXQ7CisKKwlpbnRmLT5yeF9idWZfb3JkZXIgPTNEIGdldF9vcmRl cihSSU5HX0JVRkZFUl9TSVpFKTsKKwlidWZmZXJfcGcgPTNEIGFsbG9jX3BhZ2VzKEdGUF9LRVJO RUwsIGludGYtPnJ4X2J1Zl9vcmRlcik7CisKKwlkbWEgPTNEIGRtYV9tYXBfcGFnZShrZGV2LCBi dWZmZXJfcGcsIDAsIFJJTkdfQlVGRkVSX1NJWkUsCisJCQkgICBETUFfRlJPTV9ERVZJQ0UpOwor CWlmIChkbWFfbWFwcGluZ19lcnJvcihrZGV2LCBkbWEpKSB7CisJCV9fZnJlZV9wYWdlcyhidWZm ZXJfcGcsIGludGYtPnJ4X2J1Zl9vcmRlcik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlpbnRm LT5yeF9yaW5nX2NwdSA9M0QgcGFnZV90b192aXJ0KGJ1ZmZlcl9wZyk7CisJaW50Zi0+cnhfcmlu Z19kbWEgPTNEIGRtYTsKKwlpbnRmLT5yeF9yaW5nX2RtYV92YWxpZCA9M0QgaW50Zi0+cnhfcmlu Z19kbWEgKyBSSU5HX0JVRkZFUl9TSVpFIC0gMTsKKworCXAgPTNEIGRtYV9hbGxvY19jb2hlcmVu dChrZGV2LCBERVNDX1JJTkdfU0laRSwgJmludGYtPnJ4X2VkcGt0X2RtYV9hZGRyLAorCQkJICAg ICAgIEdGUF9LRVJORUwpOworCWlmICghcCkgeworCQlyZXQgPTNEIC1FTk9NRU07CisJCWdvdG8g ZnJlZV9yeF9yaW5nOworCX0KKwlpbnRmLT5yeF9lZHBrdF9jcHUgPTNEIHA7CisKKwluZXRpZl9u YXBpX2FkZChpbnRmLT5uZGV2LCAmaW50Zi0+cnhfbmFwaSwgYmNtYXNwX3J4X3BvbGwpOworCisJ aW50Zi0+cnhfZWRwa3RfZG1hX3JlYWQgPTNEIGludGYtPnJ4X2VkcGt0X2RtYV9hZGRyOworCWlu dGYtPnJ4X2VkcGt0X2luZGV4ID0zRCAwOworCisJLyogTWFrZSBzdXJlIGNoYW5uZWxzIGFyZSBk aXNhYmxlZCAqLworCXJ4X2VkcGt0X2NmZ193bChpbnRmLCAweDAsIFJYX0VEUEtUX0NGR19FTkFC TEUpOworCisJLyogUnggU1BCICovCisJcnhfZWRwa3RfY2ZnX3dxKGludGYsIGludGYtPnJ4X3Jp bmdfZG1hLCBSWF9FRFBLVF9SSU5HX0JVRkZFUl9SRUFEKTsKKwlyeF9lZHBrdF9jZmdfd3EoaW50 ZiwgaW50Zi0+cnhfcmluZ19kbWEsIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1dSSVRFKTsKKwlyeF9l ZHBrdF9jZmdfd3EoaW50ZiwgaW50Zi0+cnhfcmluZ19kbWEsIFJYX0VEUEtUX1JJTkdfQlVGRkVS X0JBU0UpOworCXJ4X2VkcGt0X2NmZ193cShpbnRmLCBpbnRmLT5yeF9yaW5nX2RtYV92YWxpZCwK KwkJCVJYX0VEUEtUX1JJTkdfQlVGRkVSX0VORCk7CisJcnhfZWRwa3RfY2ZnX3dxKGludGYsIGlu dGYtPnJ4X3JpbmdfZG1hX3ZhbGlkLAorCQkJUlhfRURQS1RfUklOR19CVUZGRVJfVkFMSUQpOwor CisJLyogRURQS1QgKi8KKwlyeF9lZHBrdF9jZmdfd2woaW50ZiwgKFJYX0VEUEtUX0NGR19DRkcw X1JCVUZfNEsgPDwKKwkJCVJYX0VEUEtUX0NGR19DRkcwX0RCVUZfU0hJRlQpIHwKKwkJICAgICAg IChSWF9FRFBLVF9DRkdfQ0ZHMF82NF9BTE4gPDwKKwkJCVJYX0VEUEtUX0NGR19DRkcwX0JBTE5f U0hJRlQpIHwKKwkJICAgICAgIChSWF9FRFBLVF9DRkdfQ0ZHMF9FRlJNX1NUVUYpLAorCQkJUlhf RURQS1RfQ0ZHX0NGRzApOworCXJ4X2VkcGt0X2RtYV93cShpbnRmLCBpbnRmLT5yeF9lZHBrdF9k bWFfYWRkciwgUlhfRURQS1RfRE1BX1dSSVRFKTsKKwlyeF9lZHBrdF9kbWFfd3EoaW50ZiwgaW50 Zi0+cnhfZWRwa3RfZG1hX2FkZHIsIFJYX0VEUEtUX0RNQV9SRUFEKTsKKwlyeF9lZHBrdF9kbWFf d3EoaW50ZiwgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIsIFJYX0VEUEtUX0RNQV9CQVNFKTsKKwly eF9lZHBrdF9kbWFfd3EoaW50ZiwgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIgKyAoREVTQ19SSU5H X1NJWkUgLSAxKSwKKwkJCVJYX0VEUEtUX0RNQV9FTkQpOworCXJ4X2VkcGt0X2RtYV93cShpbnRm LCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciArIChERVNDX1JJTkdfU0laRSAtIDEpLAorCQkJUlhf RURQS1RfRE1BX1ZBTElEKTsKKworCXJlZyA9M0QgVU1BQzJGQl9DRkdfREVGQVVMVF9FTiB8CisJ ICAgICAgKChpbnRmLT5jaGFubmVsICsgMTEpIDw8IFVNQUMyRkJfQ0ZHX0NISURfU0hJRlQpOwor CXJlZyB8PTNEICgweGQgPDwgVU1BQzJGQl9DRkdfT0tfU0VORF9TSElGVCk7CisJdW1hYzJmYl93 bChpbnRmLCByZWcsIFVNQUMyRkJfQ0ZHKTsKKworCXJldHVybiAwOworCitmcmVlX3J4X3Jpbmc6 CisJZG1hX3VubWFwX3BhZ2Uoa2RldiwgaW50Zi0+cnhfcmluZ19kbWEsIFJJTkdfQlVGRkVSX1NJ WkUsCisJCSAgICAgICBETUFfRlJPTV9ERVZJQ0UpOworCV9fZnJlZV9wYWdlcyh2aXJ0X3RvX3Bh Z2UoaW50Zi0+cnhfcmluZ19jcHUpLCBpbnRmLT5yeF9idWZfb3JkZXIpOworCisJcmV0dXJuIHJl dDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3JlY2xhaW1fZnJlZV9hbGxfcngoc3RydWN0IGJj bWFzcF9pbnRmICppbnRmKQoreworCXN0cnVjdCBkZXZpY2UgKmtkZXYgPTNEICZpbnRmLT5wYXJl bnQtPnBkZXYtPmRldjsKKworCWRtYV9mcmVlX2NvaGVyZW50KGtkZXYsIERFU0NfUklOR19TSVpF LCBpbnRmLT5yeF9lZHBrdF9jcHUsCisJCQkgIGludGYtPnJ4X2VkcGt0X2RtYV9hZGRyKTsKKwlk bWFfdW5tYXBfcGFnZShrZGV2LCBpbnRmLT5yeF9yaW5nX2RtYSwgUklOR19CVUZGRVJfU0laRSwK KwkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisJX19mcmVlX3BhZ2VzKHZpcnRfdG9fcGFnZShp bnRmLT5yeF9yaW5nX2NwdSksIGludGYtPnJ4X2J1Zl9vcmRlcik7Cit9CisKK3N0YXRpYyBpbnQg YmNtYXNwX2luaXRfdHgoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXN0cnVjdCBkZXZp Y2UgKmtkZXYgPTNEICZpbnRmLT5wYXJlbnQtPnBkZXYtPmRldjsKKwl2b2lkICpwOworCWludCBy ZXQ7CisKKwlwID0zRCBkbWFfYWxsb2NfY29oZXJlbnQoa2RldiwgREVTQ19SSU5HX1NJWkUsICZp bnRmLT50eF9zcGJfZG1hX2FkZHIsCisJCQkgICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFwKQor CQlyZXR1cm4gLUVOT01FTTsKKworCWludGYtPnR4X3NwYl9jcHUgPTNEIHA7CisJaW50Zi0+dHhf c3BiX2RtYV92YWxpZCA9M0QgaW50Zi0+dHhfc3BiX2RtYV9hZGRyICsgREVTQ19SSU5HX1NJWkUg LSAxOworCWludGYtPnR4X3NwYl9kbWFfcmVhZCA9M0QgaW50Zi0+dHhfc3BiX2RtYV9hZGRyOwor CisJaW50Zi0+dHhfY2JzID0zRCBrY2FsbG9jKERFU0NfUklOR19DT1VOVCwgc2l6ZW9mKHN0cnVj dCBiY21hc3BfdHhfY2IpLAorCQkJICAgICAgIEdGUF9LRVJORUwpOworCWlmICghaW50Zi0+dHhf Y2JzKSB7CisJCXJldCA9M0QgLUVOT01FTTsKKwkJZ290byBmcmVlX3R4X3NwYjsKKwl9CisKKwlp bnRmLT50eF9zcGJfaW5kZXggPTNEIDA7CisJaW50Zi0+dHhfc3BiX2NsZWFuX2luZGV4ID0zRCAw OworCisJbmV0aWZfbmFwaV9hZGRfdHgoaW50Zi0+bmRldiwgJmludGYtPnR4X25hcGksIGJjbWFz cF90eF9wb2xsKTsKKworCS8qIE1ha2Ugc3VyZSBjaGFubmVscyBhcmUgZGlzYWJsZWQgKi8KKwl0 eF9zcGJfY3RybF93bChpbnRmLCAweDAsIFRYX1NQQl9DVFJMX0VOQUJMRSk7CisJdHhfZXBrdF9j b3JlX3dsKGludGYsIDB4MCwgVFhfRVBLVF9DX0NGR19NSVNDKTsKKworCS8qIFR4IFNQQiAqLwor CXR4X3NwYl9jdHJsX3dsKGludGYsICgoaW50Zi0+Y2hhbm5lbCArIDgpIDw8IFRYX1NQQl9DVFJM X1hGX0JJRF9TSElGVCksCisJCSAgICAgICBUWF9TUEJfQ1RSTF9YRl9DVFJMMik7CisJdHhfcGF1 c2VfY3RybF93bChpbnRmLCAoMSA8PCAoaW50Zi0+Y2hhbm5lbCArIDgpKSwgVFhfUEFVU0VfTUFQ X1ZFQ1RPUik7CisJdHhfc3BiX3RvcF93bChpbnRmLCAweDFlLCBUWF9TUEJfVE9QX0JMS09VVCk7 CisJdHhfc3BiX3RvcF93bChpbnRmLCAweDAsIFRYX1NQQl9UT1BfU1BSRV9CV19DVFJMKTsKKwor CXR4X3NwYl9kbWFfd3EoaW50ZiwgaW50Zi0+dHhfc3BiX2RtYV9hZGRyLCBUWF9TUEJfRE1BX1JF QUQpOworCXR4X3NwYl9kbWFfd3EoaW50ZiwgaW50Zi0+dHhfc3BiX2RtYV9hZGRyLCBUWF9TUEJf RE1BX0JBU0UpOworCXR4X3NwYl9kbWFfd3EoaW50ZiwgaW50Zi0+dHhfc3BiX2RtYV92YWxpZCwg VFhfU1BCX0RNQV9FTkQpOworCXR4X3NwYl9kbWFfd3EoaW50ZiwgaW50Zi0+dHhfc3BiX2RtYV92 YWxpZCwgVFhfU1BCX0RNQV9WQUxJRCk7CisKKwlyZXR1cm4gMDsKKworZnJlZV90eF9zcGI6CisJ ZG1hX2ZyZWVfY29oZXJlbnQoa2RldiwgREVTQ19SSU5HX1NJWkUsIGludGYtPnR4X3NwYl9jcHUs CisJCQkgIGludGYtPnR4X3NwYl9kbWFfYWRkcik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgdm9pZCBiY21hc3BfcmVjbGFpbV9mcmVlX2FsbF90eChzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYpCit7CisJc3RydWN0IGRldmljZSAqa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2 OworCisJLyogRnJlZSBkZXNjcmlwdG9ycyAqLworCWRtYV9mcmVlX2NvaGVyZW50KGtkZXYsIERF U0NfUklOR19TSVpFLCBpbnRmLT50eF9zcGJfY3B1LAorCQkJICBpbnRmLT50eF9zcGJfZG1hX2Fk ZHIpOworCisJLyogRnJlZSBjYnMgKi8KKwlrZnJlZShpbnRmLT50eF9jYnMpOworfQorCitzdGF0 aWMgdm9pZCBiY21hc3BfZXBoeV9lbmFibGVfc2V0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Ziwg Ym9vbCBlbmFibGUpCit7CisJdTMyIG1hc2sgPTNEIFJHTUlJX0VQSFlfQ0ZHX0lERFFfQklBUyB8 IFJHTUlJX0VQSFlfQ0ZHX0VYVF9QV1JET1dOIHwKKwkJICAgUkdNSUlfRVBIWV9DRkdfSUREUV9H TE9CQUw7CisJdTMyIHJlZzsKKworCXJlZyA9M0QgcmdtaWlfcmwoaW50ZiwgUkdNSUlfRVBIWV9D TlRSTCk7CisJaWYgKGVuYWJsZSkgeworCQlyZWcgJj0zRCB+UkdNSUlfRVBIWV9DSzI1X0RJUzsK KwkJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9FUEhZX0NOVFJMKTsKKwkJbWRlbGF5KDEpOwor CisJCXJlZyAmPTNEIH5tYXNrOworCQlyZWcgfD0zRCBSR01JSV9FUEhZX1JFU0VUOworCQlyZ21p aV93bChpbnRmLCByZWcsIFJHTUlJX0VQSFlfQ05UUkwpOworCQltZGVsYXkoMSk7CisKKwkJcmVn ICY9M0QgflJHTUlJX0VQSFlfUkVTRVQ7CisJfSBlbHNlIHsKKwkJcmVnIHw9M0QgbWFzayB8IFJH TUlJX0VQSFlfUkVTRVQ7CisJCXJnbWlpX3dsKGludGYsIHJlZywgUkdNSUlfRVBIWV9DTlRSTCk7 CisJCW1kZWxheSgxKTsKKwkJcmVnIHw9M0QgUkdNSUlfRVBIWV9DSzI1X0RJUzsKKwl9CisJcmdt aWlfd2woaW50ZiwgcmVnLCBSR01JSV9FUEhZX0NOVFJMKTsKKwltZGVsYXkoMSk7CisKKwkvKiBT ZXQgb3IgY2xlYXIgdGhlIExFRCBjb250cm9sIG92ZXJyaWRlIHRvIGF2b2lkIGxpZ2h0aW5nIHVw IExFRHMKKwkgKiB3aGlsZSB0aGUgRVBIWSBpcyBwb3dlcmVkIG9mZiBhbmQgZHJhd2luZyB1bm5l Y2Vzc2FyeSBjdXJyZW50LgorCSAqLworCXJlZyA9M0QgcmdtaWlfcmwoaW50ZiwgUkdNSUlfU1lT X0xFRF9DTlRSTCk7CisJaWYgKGVuYWJsZSkKKwkJcmVnICY9M0QgflJHTUlJX1NZU19MRURfQ05U UkxfTElOS19PVlJEOworCWVsc2UKKwkJcmVnIHw9M0QgUkdNSUlfU1lTX0xFRF9DTlRSTF9MSU5L X09WUkQ7CisJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9TWVNfTEVEX0NOVFJMKTsKK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX3JnbWlpX21vZGVfZW5fc2V0KHN0cnVjdCBiY21hc3BfaW50ZiAq aW50ZiwgYm9vbCBlbmFibGUpCit7CisJdTMyIHJlZzsKKworCXJlZyA9M0QgcmdtaWlfcmwoaW50 ZiwgUkdNSUlfT09CX0NOVFJMKTsKKwlyZWcgJj0zRCB+UkdNSUlfT09CX0RJUzsKKwlpZiAoZW5h YmxlKQorCQlyZWcgfD0zRCBSR01JSV9NT0RFX0VOOworCWVsc2UKKwkJcmVnICY9M0QgflJHTUlJ X01PREVfRU47CisJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9PT0JfQ05UUkwpOworfQorCitz dGF0aWMgdm9pZCBiY21hc3BfbmV0aWZfZGVpbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7 CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXUzMiBy ZWcsIHRpbWVvdXQgPTNEIDEwMDA7CisKKwluYXBpX2Rpc2FibGUoJmludGYtPnR4X25hcGkpOwor CisJYmNtYXNwX2VuYWJsZV90eChpbnRmLCAwKTsKKworCS8qIEZsdXNoIGFueSBUWCBwYWNrZXRz IGluIHRoZSBwaXBlICovCisJdHhfc3BiX2RtYV93bChpbnRmLCBUWF9TUEJfRE1BX0ZJRk9fRkxV U0gsIFRYX1NQQl9ETUFfRklGT19DVFJMKTsKKwlkbyB7CisJCXJlZyA9M0QgdHhfc3BiX2RtYV9y bChpbnRmLCBUWF9TUEJfRE1BX0ZJRk9fU1RBVFVTKTsKKwkJaWYgKCEocmVnICYgVFhfU1BCX0RN QV9GSUZPX0ZMVVNIKSkKKwkJCWJyZWFrOworCQl1c2xlZXBfcmFuZ2UoMTAwMCwgMjAwMCk7CisJ fSB3aGlsZSAodGltZW91dC0tID4gMCk7CisJdHhfc3BiX2RtYV93bChpbnRmLCAweDAsIFRYX1NQ Ql9ETUFfRklGT19DVFJMKTsKKworCXVtYWNfZW5hYmxlX3NldChpbnRmLCBVTUNfQ01EX1RYX0VO LCAwKTsKKworCXBoeV9zdG9wKGRldi0+cGh5ZGV2KTsKKworCXVtYWNfZW5hYmxlX3NldChpbnRm LCBVTUNfQ01EX1JYX0VOLCAwKTsKKworCWJjbWFzcF9mbHVzaF9yeF9wb3J0KGludGYpOworCXVz bGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKKwliY21hc3BfZW5hYmxlX3J4KGludGYsIDApOworCisJ bmFwaV9kaXNhYmxlKCZpbnRmLT5yeF9uYXBpKTsKKworCS8qIERpc2FibGUgaW50ZXJydXB0cyAq LworCWJjbWFzcF9lbmFibGVfdHhfaXJxKGludGYsIDApOworCWJjbWFzcF9lbmFibGVfcnhfaXJx KGludGYsIDApOworCisJbmV0aWZfbmFwaV9kZWwoJmludGYtPnR4X25hcGkpOworCWJjbWFzcF9y ZWNsYWltX2ZyZWVfYWxsX3R4KGludGYpOworCisJbmV0aWZfbmFwaV9kZWwoJmludGYtPnJ4X25h cGkpOworCWJjbWFzcF9yZWNsYWltX2ZyZWVfYWxsX3J4KGludGYpOworfQorCitzdGF0aWMgaW50 IGJjbWFzcF9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9p bnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJbmV0aWZfZGJnKGludGYsIGlmZG93 biwgZGV2LCAiYmNtYXNwIHN0b3BcbiIpOworCisJLyogU3RvcCB0eCBmcm9tIHVwZGF0aW5nIEhX ICovCisJbmV0aWZfdHhfZGlzYWJsZShkZXYpOworCisJYmNtYXNwX25ldGlmX2RlaW5pdChkZXYp OworCisJcGh5X2Rpc2Nvbm5lY3QoZGV2LT5waHlkZXYpOworCisJLyogRGlzYWJsZSBpbnRlcm5h bCBFUEhZIG9yIGV4dGVybmFsIFBIWSAqLworCWlmIChpbnRmLT5pbnRlcm5hbF9waHkpCisJCWJj bWFzcF9lcGh5X2VuYWJsZV9zZXQoaW50ZiwgZmFsc2UpOworCWVsc2UKKwkJYmNtYXNwX3JnbWlp X21vZGVfZW5fc2V0KGludGYsIGZhbHNlKTsKKworCS8qIERpc2FibGUgdGhlIGludGVyZmFjZSBj bG9ja3MgKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihpbnRmLCBmYWxzZSk7CisKKwlj bGtfZGlzYWJsZV91bnByZXBhcmUoaW50Zi0+cGFyZW50LT5jbGspOworCisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9jb25maWd1cmVfcG9ydChzdHJ1Y3QgYmNtYXNwX2ludGYg KmludGYpCit7CisJdTMyIHJlZywgaWRfbW9kZV9kaXMgPTNEIDA7CisKKwlyZWcgPTNEIHJnbWlp X3JsKGludGYsIFJHTUlJX1BPUlRfQ05UUkwpOworCXJlZyAmPTNEIH5SR01JSV9QT1JUX01PREVf TUFTSzsKKworCXN3aXRjaCAoaW50Zi0+cGh5X2ludGVyZmFjZSkgeworCWNhc2UgUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJOgorCQkvKiBSR01JSV9OT19JRDogVFhDIHRyYW5zaXRpb25zIGF0IHRo ZSBzYW1lIHRpbWUgYXMgVFhECisJCSAqCQkocmVxdWlyZXMgUENCIG9yIHJlY2VpdmVyLXNpZGUg ZGVsYXkpCisJCSAqIFJHTUlJOglBZGQgMm5zIGRlbGF5IG9uIFRYQyAoOTAgZGVncmVlIHNoaWZ0 KQorCQkgKgorCQkgKiBJRCBpcyBpbXBsaWNpdGx5IGRpc2FibGVkIGZvciAxMDBNYnBzIChSRylN SUkgb3BlcmF0aW9uLgorCQkgKi8KKwkJaWRfbW9kZV9kaXMgPTNEIFJHTUlJX0lEX01PREVfRElT OworCQlmYWxsdGhyb3VnaDsKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9UWElEOgor CQlyZWcgfD0zRCBSR01JSV9QT1JUX01PREVfRVhUX0dQSFk7CisJCWJyZWFrOworCWNhc2UgUEhZ X0lOVEVSRkFDRV9NT0RFX01JSToKKwkJcmVnIHw9M0QgUkdNSUlfUE9SVF9NT0RFX0VYVF9FUEhZ OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlpZiAoaW50Zi0+aW50ZXJu YWxfcGh5KQorCQlyZWcgfD0zRCBSR01JSV9QT1JUX01PREVfRVBIWTsKKworCXJnbWlpX3dsKGlu dGYsIHJlZywgUkdNSUlfUE9SVF9DTlRSTCk7CisKKwlyZWcgPTNEIHJnbWlpX3JsKGludGYsIFJH TUlJX09PQl9DTlRSTCk7CisJcmVnICY9M0QgflJHTUlJX0lEX01PREVfRElTOworCXJlZyB8PTNE IGlkX21vZGVfZGlzOworCXJnbWlpX3dsKGludGYsIHJlZywgUkdNSUlfT09CX0NOVFJMKTsKK30K Kworc3RhdGljIGludCBiY21hc3BfbmV0aWZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBi b29sIHBoeV9jb25uZWN0KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2 X3ByaXYoZGV2KTsKKwlwaHlfaW50ZXJmYWNlX3QgcGh5X2lmYWNlID0zRCBpbnRmLT5waHlfaW50 ZXJmYWNlOworCXUzMiBwaHlfZmxhZ3MgPTNEIFBIWV9CUkNNX0FVVE9fUFdSRFdOX0VOQUJMRSB8 CisJCQlQSFlfQlJDTV9ESVNfVFhDUlhDX05PRU5SR1kgfAorCQkJUEhZX0JSQ01fSUREUV9TVVNQ RU5EOworCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPTNEIE5VTEw7CisJaW50IHJldDsKKwor CS8qIEFsd2F5cyBlbmFibGUgaW50ZXJmYWNlIGNsb2NrcyAqLworCWJjbWFzcF9jb3JlX2Nsb2Nr X3NldF9pbnRmKGludGYsIHRydWUpOworCisJLyogRW5hYmxlIGludGVybmFsIFBIWSBvciBleHRl cm5hbCBQSFkgYmVmb3JlIGFueSBNQUMgYWN0aXZpdHkgKi8KKwlpZiAoaW50Zi0+aW50ZXJuYWxf cGh5KQorCQliY21hc3BfZXBoeV9lbmFibGVfc2V0KGludGYsIHRydWUpOworCWVsc2UKKwkJYmNt YXNwX3JnbWlpX21vZGVfZW5fc2V0KGludGYsIHRydWUpOworCWJjbWFzcF9jb25maWd1cmVfcG9y dChpbnRmKTsKKworCS8qIFRoaXMgaXMgYW4gdWdseSBxdWlyayBidXQgd2UgaGF2ZSBub3QgYmVl biBjb3JyZWN0bHkKKwkgKiBpbnRlcnByZXRpbmcgdGhlIHBoeV9pbnRlcmZhY2UgdmFsdWVzIGFu ZCB3ZSBoYXZlIGRvbmUgdGhhdAorCSAqIGFjcm9zcyBkaWZmZXJlbnQgZHJpdmVycywgc28gYXQg bGVhc3Qgd2UgYXJlIGNvbnNpc3RlbnQgaW4KKwkgKiBvdXIgbWlzdGFrZXMuCisJICoKKwkgKiBX aGVuIHRoZSBHZW5lcmljIFBIWSBkcml2ZXIgaXMgaW4gdXNlIGVpdGhlciB0aGUgUEhZIGhhcwor CSAqIGJlZW4gc3RyYXBwZWQgb3IgcHJvZ3JhbW1lZCBjb3JyZWN0bHkgYnkgdGhlIGJvb3QgbG9h ZGVyIHNvCisJICogd2Ugc2hvdWxkIHN0aWNrIHRvIG91ciBpbmNvcnJlY3QgaW50ZXJwcmV0YXRp b24gc2luY2Ugd2UKKwkgKiBoYXZlIHZhbGlkYXRlZCBpdC4KKwkgKgorCSAqIE5vdyB3aGVuIGEg ZGVkaWNhdGVkIFBIWSBkcml2ZXIgaXMgaW4gdXNlLCB3ZSBuZWVkIHRvCisJICogcmV2ZXJzZSB0 aGUgbWVhbmluZyBvZiB0aGUgcGh5X2ludGVyZmFjZV9tb2RlIHZhbHVlcyB0bworCSAqIHNvbWV0 aGluZyB0aGF0IHRoZSBQSFkgZHJpdmVyIHdpbGwgaW50ZXJwcmV0IGFuZCBhY3Qgb24gc3VjaAor CSAqIHRoYXQgd2UgaGF2ZSB0d28gbWlzdGFrZXMgY2FuY2VsaW5nIHRoZW1zZWx2ZXMgc28gdG8g c3BlYWsuCisJICogV2Ugb25seSBkbyB0aGlzIGZvciB0aGUgdHdvIG1vZGVzIHRoYXQgR0VORVQg ZHJpdmVyCisJICogb2ZmaWNpYWxseSBzdXBwb3J0cyBvbiBCcm9hZGNvbSBTVEIgY2hpcHM6CisJ ICogUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJIGFuZCBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlf VFhJRC4KKwkgKiBPdGhlciBtb2RlcyBhcmUgbm90ICpvZmZpY2lhbGx5KiBzdXBwb3J0ZWQgd2l0 aCB0aGUgYm9vdAorCSAqIGxvYWRlciBhbmQgdGhlIHNjcmlwdGVkIGVudmlyb25tZW50IGdlbmVy YXRpbmcgRGV2aWNlIFRyZWUKKwkgKiBibG9icyBmb3IgdGhvc2UgcGxhdGZvcm1zLgorCSAqCisJ ICogTm90ZSB0aGF0IGludGVybmFsIFBIWSBhbmQgZml4ZWQtbGluayBjb25maWd1cmF0aW9ucyBh cmUgbm90CisJICogYWZmZWN0ZWQgYmVjYXVzZSB0aGV5IHVzZSBkaWZmZXJlbnQgcGh5X2ludGVy ZmFjZV90IHZhbHVlcworCSAqIG9yIHRoZSBHZW5lcmljIFBIWSBkcml2ZXIuCisJICovCisJc3dp dGNoIChwaHlfaWZhY2UpIHsKKwljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSToKKwkJcGh5 X2lmYWNlID0zRCBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfSUQ7CisJCWJyZWFrOworCWNhc2Ug UEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6CisJCXBoeV9pZmFjZSA9M0QgUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJX1JYSUQ7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0K KworCWlmIChwaHlfY29ubmVjdCkgeworCQlwaHlkZXYgPTNEIG9mX3BoeV9jb25uZWN0KGRldiwg aW50Zi0+cGh5X2RuLAorCQkJCQliY21hc3BfYWRqX2xpbmssIHBoeV9mbGFncywKKwkJCQkJcGh5 X2lmYWNlKTsKKwkJaWYgKCFwaHlkZXYpIHsKKwkJCXJldCA9M0QgLUVOT0RFVjsKKwkJCW5ldGRl dl9lcnIoZGV2LCAiY291bGQgbm90IGF0dGFjaCB0byBQSFlcbiIpOworCQkJZ290byBlcnJfcGh5 X2Rpc2FibGU7CisJCX0KKwl9IGVsc2UgeworCQlyZXQgPTNEIHBoeV9yZXN1bWUoZGV2LT5waHlk ZXYpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfcGh5X2Rpc2FibGU7CisJfQorCisJdW1hY19y ZXNldChpbnRmKTsKKworCXVtYWNfaW5pdChpbnRmKTsKKworCS8qIERpc2FibGUgdGhlIFVuaU1B QyBSWC9UWCAqLworCXVtYWNfZW5hYmxlX3NldChpbnRmLCAoVU1DX0NNRF9SWF9FTiB8IFVNQ19D TURfVFhfRU4pLCAwKTsKKworCXVtYWNfc2V0X2h3X2FkZHIoaW50ZiwgZGV2LT5kZXZfYWRkcik7 CisKKwlpbnRmLT5vbGRfZHVwbGV4ID0zRCAtMTsKKwlpbnRmLT5vbGRfbGluayA9M0QgLTE7CisJ aW50Zi0+b2xkX3BhdXNlID0zRCAtMTsKKworCXJldCA9M0QgYmNtYXNwX2luaXRfdHgoaW50Zik7 CisJaWYgKHJldCkKKwkJZ290byBlcnJfcGh5X2Rpc2Nvbm5lY3Q7CisKKwkvKiBUdXJuIG9uIGFz cCAqLworCWJjbWFzcF9lbmFibGVfdHgoaW50ZiwgMSk7CisKKwlyZXQgPTNEIGJjbWFzcF9pbml0 X3J4KGludGYpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3JlY2xhaW1fdHg7CisKKwliY21hc3Bf ZW5hYmxlX3J4KGludGYsIDEpOworCisJLyogVHVybiBvbiBVbmlNQUMgVFgvUlggKi8KKwl1bWFj X2VuYWJsZV9zZXQoaW50ZiwgKFVNQ19DTURfUlhfRU4gfCBVTUNfQ01EX1RYX0VOKSwgMSk7CisK KwlpbnRmLT5jcmNfZndkID0zRCAhISh1bWFjX3JsKGludGYsIFVNQ19DTUQpICYgVU1DX0NNRF9D UkNfRldEKTsKKworCWJjbWFzcF9uZXRpZl9zdGFydChkZXYpOworCisJbmV0aWZfc3RhcnRfcXVl dWUoZGV2KTsKKworCXJldHVybiAwOworCitlcnJfcmVjbGFpbV90eDoKKwliY21hc3BfcmVjbGFp bV9mcmVlX2FsbF90eChpbnRmKTsKK2Vycl9waHlfZGlzY29ubmVjdDoKKwlpZiAocGh5ZGV2KQor CQlwaHlfZGlzY29ubmVjdChwaHlkZXYpOworZXJyX3BoeV9kaXNhYmxlOgorCWlmIChpbnRmLT5p bnRlcm5hbF9waHkpCisJCWJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoaW50ZiwgZmFsc2UpOworCWVs c2UKKwkJYmNtYXNwX3JnbWlpX21vZGVfZW5fc2V0KGludGYsIGZhbHNlKTsKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgaW50IGJjbWFzcF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7 CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCWludCBy ZXQ7CisKKwluZXRpZl9kYmcoaW50ZiwgaWZ1cCwgZGV2LCAiYmNtYXNwIG9wZW5cbiIpOworCisJ cmV0ID0zRCBjbGtfcHJlcGFyZV9lbmFibGUoaW50Zi0+cGFyZW50LT5jbGspOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CisKKwlyZXQgPTNEIGJjbWFzcF9uZXRpZl9pbml0KGRldiwgdHJ1ZSk7 CisJaWYgKHJldCkKKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGludGYtPnBhcmVudC0+Y2xrKTsK KworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF90eF90aW1lb3V0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB0eHF1ZXVlKQoreworCXN0cnVjdCBiY21h c3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKworCW5ldGlmX2RiZyhpbnRmLCB0 eF9lcnIsIGRldiwgInRyYW5zbWl0IHRpbWVvdXQhXG4iKTsKK30KKworc3RhdGljIGludCBiY21h c3BfZ2V0X3BoeXNfcG9ydF9uYW1lKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICBj aGFyICpuYW1lLCBzaXplX3QgbGVuKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0Qg bmV0ZGV2X3ByaXYoZGV2KTsKKworCWlmIChzbnByaW50ZihuYW1lLCBsZW4sICJwJWQiLCBpbnRm LT5wb3J0KSA+PTNEIGxlbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX2dldF9zdGF0czY0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJ CQkgICAgICAgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0cykKK3sKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IGJjbWFzcF9pbnRm X3N0YXRzNjQgKmxzdGF0czsKKwl1bnNpZ25lZCBpbnQgc3RhcnQ7CisKKwlsc3RhdHMgPTNEICZp bnRmLT5zdGF0czY0OworCisJZG8geworCQlzdGFydCA9M0QgdTY0X3N0YXRzX2ZldGNoX2JlZ2lu KCZsc3RhdHMtPnN5bmNwKTsKKwkJc3RhdHMtPnJ4X3BhY2tldHMgPTNEIHU2NF9zdGF0c19yZWFk KCZsc3RhdHMtPnJ4X3BhY2tldHMpOworCQlzdGF0cy0+cnhfYnl0ZXMgPTNEIHU2NF9zdGF0c19y ZWFkKCZsc3RhdHMtPnJ4X2J5dGVzKTsKKwkJc3RhdHMtPnJ4X2Ryb3BwZWQgPTNEIHU2NF9zdGF0 c19yZWFkKCZsc3RhdHMtPnJ4X2Ryb3BwZWQpOworCQlzdGF0cy0+cnhfY3JjX2Vycm9ycyA9M0Qg dTY0X3N0YXRzX3JlYWQoJmxzdGF0cy0+cnhfY3JjX2VycnMpOworCQlzdGF0cy0+cnhfZnJhbWVf ZXJyb3JzID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9zeW1fZXJycyk7CisJCXN0YXRz LT5yeF9lcnJvcnMgPTNEIHN0YXRzLT5yeF9jcmNfZXJyb3JzICsgc3RhdHMtPnJ4X2ZyYW1lX2Vy cm9yczsKKworCQlzdGF0cy0+dHhfcGFja2V0cyA9M0QgdTY0X3N0YXRzX3JlYWQoJmxzdGF0cy0+ dHhfcGFja2V0cyk7CisJCXN0YXRzLT50eF9ieXRlcyA9M0QgdTY0X3N0YXRzX3JlYWQoJmxzdGF0 cy0+dHhfYnl0ZXMpOworCX0gd2hpbGUgKHU2NF9zdGF0c19mZXRjaF9yZXRyeSgmbHN0YXRzLT5z eW5jcCwgc3RhcnQpKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBi Y21hc3BfbmV0ZGV2X29wcyA9M0QgeworCS5uZG9fb3BlbgkJPTNEIGJjbWFzcF9vcGVuLAorCS5u ZG9fc3RvcAkJPTNEIGJjbWFzcF9zdG9wLAorCS5uZG9fc3RhcnRfeG1pdAkJPTNEIGJjbWFzcF94 bWl0LAorCS5uZG9fdHhfdGltZW91dAkJPTNEIGJjbWFzcF90eF90aW1lb3V0LAorCS5uZG9fc2V0 X3J4X21vZGUJPTNEIGJjbWFzcF9zZXRfcnhfbW9kZSwKKwkubmRvX2dldF9waHlzX3BvcnRfbmFt ZQk9M0QgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZSwKKwkubmRvX2V0aF9pb2N0bAkJPTNEIHBo eV9kb19pb2N0bF9ydW5uaW5nLAorCS5uZG9fc2V0X21hY19hZGRyZXNzCT0zRCBldGhfbWFjX2Fk ZHIsCisJLm5kb19nZXRfc3RhdHM2NAk9M0QgYmNtYXNwX2dldF9zdGF0czY0LAorfTsKKworc3Rh dGljIHZvaWQgYmNtYXNwX21hcF9yZXMoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LCBzdHJ1Y3Qg YmNtYXNwX2ludGYgKmk9Cm50ZikKK3sKKwkvKiBQZXIgcG9ydCAqLworCWludGYtPnJlcy51bWFj ID0zRCBwcml2LT5iYXNlICsgVU1DX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yZXMudW1hYzJmYiA9 M0QgcHJpdi0+YmFzZSArIChwcml2LT5od19pbmZvLT51bWFjMmZiICsKKwkJCQkJICAoaW50Zi0+ cG9ydCAqIDB4NCkpOworCWludGYtPnJlcy5yZ21paSA9M0QgcHJpdi0+YmFzZSArIFJHTUlJX09G RlNFVChpbnRmKTsKKworCS8qIFBlciBjaCAqLworCWludGYtPnR4X3NwYl9kbWEgPTNEIHByaXYt PmJhc2UgKyBUWF9TUEJfRE1BX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yZXMudHhfc3BiX2N0cmwg PTNEIHByaXYtPmJhc2UgKyBUWF9TUEJfQ1RSTF9PRkZTRVQoaW50Zik7CisJaW50Zi0+cmVzLnR4 X3NwYl90b3AgPTNEIHByaXYtPmJhc2UgKyBUWF9TUEJfVE9QX09GRlNFVChpbnRmKTsKKwlpbnRm LT5yZXMudHhfZXBrdF9jb3JlID0zRCBwcml2LT5iYXNlICsgVFhfRVBLVF9DX09GRlNFVChpbnRm KTsKKwlpbnRmLT5yZXMudHhfcGF1c2VfY3RybCA9M0QgcHJpdi0+YmFzZSArIFRYX1BBVVNFX0NU UkxfT0ZGU0VUKGludGYpOworCisJaW50Zi0+cnhfZWRwa3RfZG1hID0zRCBwcml2LT5iYXNlICsg UlhfRURQS1RfRE1BX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yeF9lZHBrdF9jZmcgPTNEIHByaXYt PmJhc2UgKyBSWF9FRFBLVF9DRkdfT0ZGU0VUKGludGYpOworfQorCisjZGVmaW5lIE1BWF9JUlFf U1RSX0xFTgkJNjQKK3N0cnVjdCBiY21hc3BfaW50ZiAqYmNtYXNwX2ludGVyZmFjZV9jcmVhdGUo c3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCQkgICAgc3RydWN0IGRldmljZV9ub2RlICpu ZGV2X2RuLCBpbnQgaSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNEICZwcml2LT5wZGV2LT5k ZXY7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOworCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2 OworCWludCBjaCwgcG9ydCwgcmV0OworCisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5kZXZf ZG4sICJyZWciLCAmcG9ydCkpIHsKKwkJZGV2X3dhcm4oZGV2LCAiJXM6IGludmFsaWQgcG9ydCBu dW1iZXJcbiIsIG5kZXZfZG4tPm5hbWUpOworCQlnb3RvIGVycjsKKwl9CisKKwlpZiAob2ZfcHJv cGVydHlfcmVhZF91MzIobmRldl9kbiwgImJyY20sY2hhbm5lbCIsICZjaCkpIHsKKwkJZGV2X3dh cm4oZGV2LCAiJXM6IGludmFsaWQgY2ggbnVtYmVyXG4iLCBuZGV2X2RuLT5uYW1lKTsKKwkJZ290 byBlcnI7CisJfQorCisJbmRldiA9M0QgYWxsb2NfZXRoZXJkZXYoc2l6ZW9mKHN0cnVjdCBiY21h c3BfaW50ZikpOworCWlmICghbmRldikgeworCQlkZXZfd2FybihkZXYsICIlczogdW5hYmxlIHRv IGFsbG9jIG5kZXZcbiIsIG5kZXZfZG4tPm5hbWUpOworCQlnb3RvIGVycjsKKwl9CisJaW50ZiA9 M0QgbmV0ZGV2X3ByaXYobmRldik7CisKKwlpbnRmLT5wYXJlbnQgPTNEIHByaXY7CisJaW50Zi0+ bmRldiA9M0QgbmRldjsKKwlpbnRmLT5jaGFubmVsID0zRCBjaDsKKwlpbnRmLT5wb3J0ID0zRCBw b3J0OworCWludGYtPm5kZXZfZG4gPTNEIG5kZXZfZG47CisJaW50Zi0+aW5kZXggPTNEIGk7CisK KwlyZXQgPTNEIG9mX2dldF9waHlfbW9kZShuZGV2X2RuLCAmaW50Zi0+cGh5X2ludGVyZmFjZSk7 CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihkZXYsICJpbnZhbGlkIFBIWSBtb2RlIHByb3Bl cnR5XG4iKTsKKwkJZ290byBlcnJfZnJlZV9uZXRkZXY7CisJfQorCisJaWYgKGludGYtPnBoeV9p bnRlcmZhY2UgPTNEPTNEIFBIWV9JTlRFUkZBQ0VfTU9ERV9JTlRFUk5BTCkKKwkJaW50Zi0+aW50 ZXJuYWxfcGh5ID0zRCB0cnVlOworCisJaW50Zi0+cGh5X2RuID0zRCBvZl9wYXJzZV9waGFuZGxl KG5kZXZfZG4sICJwaHktaGFuZGxlIiwgMCk7CisJaWYgKCFpbnRmLT5waHlfZG4gJiYgb2ZfcGh5 X2lzX2ZpeGVkX2xpbmsobmRldl9kbikpIHsKKwkJcmV0ID0zRCBvZl9waHlfcmVnaXN0ZXJfZml4 ZWRfbGluayhuZGV2X2RuKTsKKwkJaWYgKHJldCkgeworCQkJZGV2X3dhcm4oZGV2LCAiJXM6IGZh aWxlZCB0byByZWdpc3RlciBmaXhlZCBQSFlcbiIsCisJCQkJIG5kZXZfZG4tPm5hbWUpOworCQkJ Z290byBlcnJfZnJlZV9uZXRkZXY7CisJCX0KKwkJaW50Zi0+cGh5X2RuID0zRCBuZGV2X2RuOwor CX0KKworCS8qIE1hcCByZXNvdXJjZSAqLworCWJjbWFzcF9tYXBfcmVzKHByaXYsIGludGYpOwor CisJaWYgKCghcGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKGludGYtPnBoeV9pbnRlcmZhY2Up ICYmCisJICAgICBpbnRmLT5waHlfaW50ZXJmYWNlICE9M0QgUEhZX0lOVEVSRkFDRV9NT0RFX01J SSAmJgorCSAgICAgaW50Zi0+cGh5X2ludGVyZmFjZSAhPTNEIFBIWV9JTlRFUkZBQ0VfTU9ERV9J TlRFUk5BTCkgfHwKKwkgICAgKGludGYtPnBvcnQgIT0zRCAxICYmIGludGYtPmludGVybmFsX3Bo eSkpIHsKKwkJbmV0ZGV2X2VycihpbnRmLT5uZGV2LCAiaW52YWxpZCBQSFkgbW9kZTogJXMgZm9y IHBvcnQgJWRcbiIsCisJCQkgICBwaHlfbW9kZXMoaW50Zi0+cGh5X2ludGVyZmFjZSksIGludGYt PnBvcnQpOworCQlyZXQgPTNEIC1FSU5WQUw7CisJCWdvdG8gZXJyX2ZyZWVfbmV0ZGV2OworCX0K KworCXJldCA9M0Qgb2ZfZ2V0X2V0aGRldl9hZGRyZXNzKG5kZXZfZG4sIG5kZXYpOworCWlmIChy ZXQpIHsKKwkJbmV0ZGV2X3dhcm4obmRldiwgInVzaW5nIHJhbmRvbSBFdGhlcm5ldCBNQUNcbiIp OworCQlldGhfaHdfYWRkcl9yYW5kb20obmRldik7CisJfQorCisJU0VUX05FVERFVl9ERVYobmRl diwgZGV2KTsKKwlpbnRmLT5vcHMgPTNEICZiY21hc3BfaW50Zl9vcHM7CisJbmRldi0+bmV0ZGV2 X29wcyA9M0QgJmJjbWFzcF9uZXRkZXZfb3BzOworCW5kZXYtPmV0aHRvb2xfb3BzID0zRCAmYmNt YXNwX2V0aHRvb2xfb3BzOworCWludGYtPm1zZ19lbmFibGUgPTNEIG5ldGlmX21zZ19pbml0KC0x LCBORVRJRl9NU0dfRFJWIHwKKwkJCQkJICBORVRJRl9NU0dfUFJPQkUgfAorCQkJCQkgIE5FVElG X01TR19MSU5LKTsKKwluZGV2LT5mZWF0dXJlcyB8PTNEIE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElG X0ZfSVBWNl9DU1VNIHwgTkVUSUZfRl9TRyB8CisJCQkgIE5FVElGX0ZfUlhDU1VNOworCW5kZXYt Pmh3X2ZlYXR1cmVzIHw9M0QgbmRldi0+ZmVhdHVyZXM7CisJbmRldi0+bmVlZGVkX2hlYWRyb29t ICs9M0Qgc2l6ZW9mKHN0cnVjdCBiY21hc3BfcGt0X29mZmxvYWQpOworCisJcmV0dXJuIGludGY7 CisKK2Vycl9mcmVlX25ldGRldjoKKwlmcmVlX25ldGRldihuZGV2KTsKK2VycjoKKwlyZXR1cm4g TlVMTDsKK30KKwordm9pZCBiY21hc3BfaW50ZXJmYWNlX2Rlc3Ryb3koc3RydWN0IGJjbWFzcF9p bnRmICppbnRmKQoreworCWlmIChpbnRmLT5uZGV2LT5yZWdfc3RhdGUgPTNEPTNEIE5FVFJFR19S RUdJU1RFUkVEKQorCQl1bnJlZ2lzdGVyX25ldGRldihpbnRmLT5uZGV2KTsKKwlpZiAob2ZfcGh5 X2lzX2ZpeGVkX2xpbmsoaW50Zi0+bmRldl9kbikpCisJCW9mX3BoeV9kZXJlZ2lzdGVyX2ZpeGVk X2xpbmsoaW50Zi0+bmRldl9kbik7CisJZnJlZV9uZXRkZXYoaW50Zi0+bmRldik7Cit9CisKK2lu dCBiY21hc3BfaW50ZXJmYWNlX3N1c3BlbmQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQorewor CXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPTNEIGludGYtPm5kZXY7CisJaW50IHJldCA9M0QgMDsK KworCWlmICghbmV0aWZfcnVubmluZyhkZXYpKQorCQlyZXR1cm4gMDsKKworCW5ldGlmX2Rldmlj ZV9kZXRhY2goZGV2KTsKKworCWJjbWFzcF9uZXRpZl9kZWluaXQoZGV2KTsKKworCXJldCA9M0Qg cGh5X3N1c3BlbmQoZGV2LT5waHlkZXYpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYg KGludGYtPmludGVybmFsX3BoeSkKKwkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxz ZSk7CisJZWxzZQorCQliY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCisJ LyogSWYgV2FrZS1vbi1MQU4gaXMgZGlzYWJsZWQsIHdlIGNhbiBzYWZlbHkKKwkgKiBkaXNhYmxl IHRoZSBuZXR3b3JrIGludGVyZmFjZSBjbG9ja3MuCisJICovCisJYmNtYXNwX2NvcmVfY2xvY2tf c2V0X2ludGYoaW50ZiwgZmFsc2UpOworCisJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGludGYtPnBh cmVudC0+Y2xrKTsKKworCXJldHVybiByZXQ7CisKK291dDoKKwliY21hc3BfbmV0aWZfaW5pdChk ZXYsIGZhbHNlKTsKKwlyZXR1cm4gcmV0OworfQorCitpbnQgYmNtYXNwX2ludGVyZmFjZV9yZXN1 bWUoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PTNEIGludGYtPm5kZXY7CisJaW50IHJldDsKKworCWlmICghbmV0aWZfcnVubmluZyhkZXYpKQor CQlyZXR1cm4gMDsKKworCXJldCA9M0QgY2xrX3ByZXBhcmVfZW5hYmxlKGludGYtPnBhcmVudC0+ Y2xrKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0zRCBiY21hc3BfbmV0aWZf aW5pdChkZXYsIGZhbHNlKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCW5ldGlmX2Rldmlj ZV9hdHRhY2goZGV2KTsKKworCXJldHVybiAwOworCitvdXQ6CisJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGludGYtPnBhcmVudC0+Y2xrKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggYi9kcml2 ZXI9CnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGZfZGVmcy5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjI1OWE0NzUyMDdmCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50 Zl9kZWZzLmgKQEAgLTAsMCArMSwxOTYgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wICovCisjaWZuZGVmIF9fQkNNQVNQX0lOVEZfREVGU19ICisjZGVmaW5lIF9fQkNNQVNQ X0lOVEZfREVGU19ICisKKyNkZWZpbmUgVU1DX09GRlNFVChpbnRmKQkJXAorCSgoKChpbnRmKS0+ cG9ydCkgKiAweDgwMCkgKyAweGMwMDApCisjZGVmaW5lICBVTUNfQ01ECQkJMHgwMDgKKyNkZWZp bmUgICBVTUNfQ01EX1RYX0VOCQkJQklUKDApCisjZGVmaW5lICAgVU1DX0NNRF9SWF9FTgkJCUJJ VCgxKQorI2RlZmluZSAgIFVNQ19DTURfU1BFRURfU0hJRlQJCTB4MgorI2RlZmluZSAgICBVTUNf Q01EX1NQRUVEX01BU0sJCTB4MworI2RlZmluZSAgICBVTUNfQ01EX1NQRUVEXzEwCQkweDAKKyNk ZWZpbmUgICAgVU1DX0NNRF9TUEVFRF8xMDAJCTB4MQorI2RlZmluZSAgICBVTUNfQ01EX1NQRUVE XzEwMDAJCTB4MgorI2RlZmluZSAgICBVTUNfQ01EX1NQRUVEXzI1MDAJCTB4MworI2RlZmluZSAg IFVNQ19DTURfUFJPTUlTQwkJQklUKDQpCisjZGVmaW5lICAgVU1DX0NNRF9QQURfRU4JCUJJVCg1 KQorI2RlZmluZSAgIFVNQ19DTURfQ1JDX0ZXRAkJQklUKDYpCisjZGVmaW5lICAgVU1DX0NNRF9Q QVVTRV9GV0QJCUJJVCg3KQorI2RlZmluZSAgIFVNQ19DTURfUlhfUEFVU0VfSUdOT1JFCUJJVCg4 KQorI2RlZmluZSAgIFVNQ19DTURfVFhfQUREUl9JTlMJCUJJVCg5KQorI2RlZmluZSAgIFVNQ19D TURfSERfRU4JCQlCSVQoMTApCisjZGVmaW5lICAgVU1DX0NNRF9TV19SRVNFVAkJQklUKDEzKQor I2RlZmluZSAgIFVNQ19DTURfTENMX0xPT1BfRU4JCUJJVCgxNSkKKyNkZWZpbmUgICBVTUNfQ01E X0FVVE9fQ09ORklHCQlCSVQoMjIpCisjZGVmaW5lICAgVU1DX0NNRF9DTlRMX0ZSTV9FTgkJQklU KDIzKQorI2RlZmluZSAgIFVNQ19DTURfTk9fTEVOX0NISwkJQklUKDI0KQorI2RlZmluZSAgIFVN Q19DTURfUk1UX0xPT1BfRU4JCUJJVCgyNSkKKyNkZWZpbmUgICBVTUNfQ01EX1BSQkxfRU4JCUJJ VCgyNykKKyNkZWZpbmUgICBVTUNfQ01EX1RYX1BBVVNFX0lHTk9SRQlCSVQoMjgpCisjZGVmaW5l ICAgVU1DX0NNRF9UWF9SWF9FTgkJQklUKDI5KQorI2RlZmluZSAgIFVNQ19DTURfUlVOVF9GSUxU RVJfRElTCUJJVCgzMCkKKyNkZWZpbmUgIFVNQ19NQUMwCQkJMHgwYworI2RlZmluZSAgVU1DX01B QzEJCQkweDEwCisjZGVmaW5lICBVTUNfRlJNX0xFTgkJCTB4MTQKKyNkZWZpbmUgIFVNQ19FRUVf Q1RSTAkJCTB4NjQKKyNkZWZpbmUgICBFTl9MUElfUlhfUEFVU0UJCUJJVCgwKQorI2RlZmluZSAg IEVOX0xQSV9UWF9QRkMJCQlCSVQoMSkKKyNkZWZpbmUgICBFTl9MUElfVFhfUEFVU0UJCUJJVCgy KQorI2RlZmluZSAgIEVFRV9FTgkJCUJJVCgzKQorI2RlZmluZSAgIFJYX0ZJRk9fQ0hFQ0sJCQlC SVQoNCkKKyNkZWZpbmUgICBFRUVfVFhfQ0xLX0RJUwkJQklUKDUpCisjZGVmaW5lICAgRElTX0VF RV8xME0JCQlCSVQoNikKKyNkZWZpbmUgICBMUF9JRExFX1BSRURJQ1RJT05fTU9ERQlCSVQoNykK KyNkZWZpbmUgIFVNQ19FRUVfTFBJX1RJTUVSCQkweDY4CisjZGVmaW5lICBVTUNfUEFVU0VfQ05U UkwJCTB4MzMwCisjZGVmaW5lICBVTUNfVFhfRkxVU0gJCQkweDMzNAorI2RlZmluZSAgVU1DX01J Ql9TVEFSVAkJCTB4NDAwCisjZGVmaW5lICBVTUNfTUlCX0NOVFJMCQkJMHg1ODAKKyNkZWZpbmUg ICBVTUNfTUlCX0NOVFJMX1JYX0NOVF9SU1QJQklUKDApCisjZGVmaW5lICAgVU1DX01JQl9DTlRS TF9SVU5UX0NOVF9SU1QJQklUKDEpCisjZGVmaW5lICAgVU1DX01JQl9DTlRSTF9UWF9DTlRfUlNU CUJJVCgyKQorI2RlZmluZSAgVU1DX1JYX01BWF9QS1RfU1oJCTB4NjA4CisjZGVmaW5lICBVTUNf TVBEX0NUUkwJCQkweDYyMAorI2RlZmluZSAgIFVNQ19NUERfQ1RSTF9NUERfRU4JCUJJVCgwKQor I2RlZmluZSAgIFVNQ19NUERfQ1RSTF9QU1dfRU4JCUJJVCgyNykKKyNkZWZpbmUgIFVNQ19QU1df TVMJCQkweDYyNAorI2RlZmluZSAgVU1DX1BTV19MUwkJCTB4NjI4CisKKyNkZWZpbmUgVU1BQzJG Ql9PRkZTRVRfMl8xCQkweDlmMDQ0CisjZGVmaW5lIFVNQUMyRkJfT0ZGU0VUCQkJMHg5ZjAzYwor I2RlZmluZSAgVU1BQzJGQl9DRkcJCQkweDAKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19PUFVUX0VO CQlCSVQoMCkKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19WTEFOX0VOCQlCSVQoMSkKKyNkZWZpbmUg ICBVTUFDMkZCX0NGR19TTkFQX0VOCQlCSVQoMikKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19CQ01f VEdfRU4JCUJJVCgzKQorI2RlZmluZSAgIFVNQUMyRkJfQ0ZHX0lQVVRfRU4JCUJJVCg0KQorI2Rl ZmluZSAgIFVNQUMyRkJfQ0ZHX0NISURfU0hJRlQJOAorI2RlZmluZSAgIFVNQUMyRkJfQ0ZHX09L X1NFTkRfU0hJRlQJMjQKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19ERUZBVUxUX0VOCVwKKwkJKFVN QUMyRkJfQ0ZHX09QVVRfRU4gfCBVTUFDMkZCX0NGR19WTEFOX0VOIFwKKwkJfCBVTUFDMkZCX0NG R19TTkFQX0VOIHwgVU1BQzJGQl9DRkdfSVBVVF9FTikKKworI2RlZmluZSBSR01JSV9PRkZTRVQo aW50ZikJXAorCSgoKChpbnRmKS0+cG9ydCkgKiAweDEwMCkgKyAweGQwMDApCisjZGVmaW5lICBS R01JSV9FUEhZX0NOVFJMCQkweDAwCisjZGVmaW5lICAgIFJHTUlJX0VQSFlfQ0ZHX0lERFFfQklB UwlCSVQoMCkKKyNkZWZpbmUgICAgUkdNSUlfRVBIWV9DRkdfRVhUX1BXUkRPV04JQklUKDEpCisj ZGVmaW5lICAgIFJHTUlJX0VQSFlfQ0ZHX0ZPUkNFX0RMTF9FTglCSVQoMikKKyNkZWZpbmUgICAg UkdNSUlfRVBIWV9DRkdfSUREUV9HTE9CQUwJQklUKDMpCisjZGVmaW5lICAgIFJHTUlJX0VQSFlf Q0syNV9ESVMJCUJJVCg0KQorI2RlZmluZSAgICBSR01JSV9FUEhZX1JFU0VUCQlCSVQoNykKKyNk ZWZpbmUgIFJHTUlJX09PQl9DTlRSTAkJMHgwYworI2RlZmluZSAgIFJHTUlJX0xJTksJCQlCSVQo NCkKKyNkZWZpbmUgICBSR01JSV9PT0JfRElTCQkJQklUKDUpCisjZGVmaW5lICAgUkdNSUlfTU9E RV9FTgkJCUJJVCg2KQorI2RlZmluZSAgIFJHTUlJX0lEX01PREVfRElTCQlCSVQoMTYpCisKKyNk ZWZpbmUgUkdNSUlfUE9SVF9DTlRSTAkJMHg2MAorI2RlZmluZSAgIFJHTUlJX1BPUlRfTU9ERV9F UEhZCQkwCisjZGVmaW5lICAgUkdNSUlfUE9SVF9NT0RFX0dQSFkJCTEKKyNkZWZpbmUgICBSR01J SV9QT1JUX01PREVfRVhUX0VQSFkJMgorI2RlZmluZSAgIFJHTUlJX1BPUlRfTU9ERV9FWFRfR1BI WQkzCisjZGVmaW5lICAgUkdNSUlfUE9SVF9NT0RFX0VYVF9SVk1JSQk0CisjZGVmaW5lICAgUkdN SUlfUE9SVF9NT0RFX01BU0sJCUdFTk1BU0soMiwgMCkKKworI2RlZmluZSBSR01JSV9TWVNfTEVE X0NOVFJMCQkweDc0CisjZGVmaW5lICBSR01JSV9TWVNfTEVEX0NOVFJMX0xJTktfT1ZSRAlCSVQo MTUpCisKKyNkZWZpbmUgVFhfU1BCX0RNQV9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hh bm5lbCkgKiAweDMwKSArIDB4NDgxODApCisjZGVmaW5lICBUWF9TUEJfRE1BX1JFQUQJCTB4MDAK KyNkZWZpbmUgIFRYX1NQQl9ETUFfQkFTRQkJMHgwOAorI2RlZmluZSAgVFhfU1BCX0RNQV9FTkQJ CQkweDEwCisjZGVmaW5lICBUWF9TUEJfRE1BX1ZBTElECQkweDE4CisjZGVmaW5lICBUWF9TUEJf RE1BX0ZJRk9fQ1RSTAkJMHgyMAorI2RlZmluZSAgIFRYX1NQQl9ETUFfRklGT19GTFVTSAkJQklU KDApCisjZGVmaW5lICBUWF9TUEJfRE1BX0ZJRk9fU1RBVFVTCQkweDI0CisKKyNkZWZpbmUgVFhf U1BCX0NUUkxfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwpICogMHg2OCkgKyAw eDQ5MzQwKQorI2RlZmluZSAgVFhfU1BCX0NUUkxfRU5BQkxFCQkweDAKKyNkZWZpbmUgICBUWF9T UEJfQ1RSTF9FTkFCTEVfRU4JCUJJVCgwKQorI2RlZmluZSAgVFhfU1BCX0NUUkxfWEZfQ1RSTDIJ CTB4MjAKKyNkZWZpbmUgICBUWF9TUEJfQ1RSTF9YRl9CSURfU0hJRlQJMTYKKworI2RlZmluZSBU WF9TUEJfVE9QX09GRlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsKSAqIDB4MWMpICsg MHg0YTBlMCkKKyNkZWZpbmUgVFhfU1BCX1RPUF9CTEtPVVQJCTB4MAorI2RlZmluZSBUWF9TUEJf VE9QX1NQUkVfQldfQ1RSTAkJMHg0CisKKyNkZWZpbmUgVFhfRVBLVF9DX09GRlNFVChpbnRmKSBc CisJKCgoKGludGYpLT5jaGFubmVsKSAqIDB4MTIwKSArIDB4NDA5MDApCisjZGVmaW5lICBUWF9F UEtUX0NfQ0ZHX01JU0MJCTB4MAorI2RlZmluZSAgIFRYX0VQS1RfQ19DRkdfTUlTQ19FTgkJQklU KDApCisjZGVmaW5lICAgVFhfRVBLVF9DX0NGR19NSVNDX1BUCQlCSVQoMSkKKyNkZWZpbmUgICBU WF9FUEtUX0NfQ0ZHX01JU0NfUFNfU0hJRlQJMTQKKyNkZWZpbmUgICBUWF9FUEtUX0NfQ0ZHX01J U0NfRkRfU0hJRlQJMjAKKworI2RlZmluZSBUWF9QQVVTRV9DVFJMX09GRlNFVChpbnRmKSBcCisJ KCgoKGludGYpLT5jaGFubmVsICogMHhjKSArIDB4NDlhMjApKQorI2RlZmluZSAgVFhfUEFVU0Vf TUFQX1ZFQ1RPUgkJMHg4CisKKyNkZWZpbmUgUlhfRURQS1RfRE1BX09GRlNFVChpbnRmKSBcCisJ KCgoKGludGYpLT5jaGFubmVsKSAqIDB4MzgpICsgMHg5Y2EwMCkKKyNkZWZpbmUgIFJYX0VEUEtU X0RNQV9XUklURQkJMHgwMAorI2RlZmluZSAgUlhfRURQS1RfRE1BX1JFQUQJCTB4MDgKKyNkZWZp bmUgIFJYX0VEUEtUX0RNQV9CQVNFCQkweDEwCisjZGVmaW5lICBSWF9FRFBLVF9ETUFfRU5ECQkw eDE4CisjZGVmaW5lICBSWF9FRFBLVF9ETUFfVkFMSUQJCTB4MjAKKyNkZWZpbmUgIFJYX0VEUEtU X0RNQV9GVUxMTkVTUwkJMHgyOAorI2RlZmluZSAgUlhfRURQS1RfRE1BX01JTl9USFJFUwkJMHgy YworI2RlZmluZSAgUlhfRURQS1RfRE1BX0NIX1hPTk9GRgkJMHgzMAorCisjZGVmaW5lIFJYX0VE UEtUX0NGR19PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCkgKiAweDcwKSArIDB4 OWM2MDApCisjZGVmaW5lICBSWF9FRFBLVF9DRkdfQ0ZHMAkJMHgwCisjZGVmaW5lICAgUlhfRURQ S1RfQ0ZHX0NGRzBfREJVRl9TSElGVAk5CisjZGVmaW5lICAgIFJYX0VEUEtUX0NGR19DRkcwX1JC VUYJMHgwCisjZGVmaW5lICAgIFJYX0VEUEtUX0NGR19DRkcwX1JCVUZfNEsJMHgxCisjZGVmaW5l ICAgIFJYX0VEUEtUX0NGR19DRkcwX0JVRl80SwkweDIKKy8qIEVGUk0gU1RVRkYsIDAgPTNEIG5v IGJ5dGUgc3R1ZmYsIDEgPTNEIHR3byBieXRlIHN0dWZmICovCisjZGVmaW5lICAgUlhfRURQS1Rf Q0ZHX0NGRzBfRUZSTV9TVFVGCUJJVCgxMSkKKyNkZWZpbmUgICBSWF9FRFBLVF9DRkdfQ0ZHMF9C QUxOX1NISUZUCTEyCisjZGVmaW5lICAgIFJYX0VEUEtUX0NGR19DRkcwX05PX0FMTgkwCisjZGVm aW5lICAgIFJYX0VEUEtUX0NGR19DRkcwXzRfQUxOCTIKKyNkZWZpbmUgICAgUlhfRURQS1RfQ0ZH X0NGRzBfNjRfQUxOCTYKKyNkZWZpbmUgIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1dSSVRFCTB4MzgK KyNkZWZpbmUgIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1JFQUQJMHg0MAorI2RlZmluZSAgUlhfRURQ S1RfUklOR19CVUZGRVJfQkFTRQkweDQ4CisjZGVmaW5lICBSWF9FRFBLVF9SSU5HX0JVRkZFUl9F TkQJMHg1MAorI2RlZmluZSAgUlhfRURQS1RfUklOR19CVUZGRVJfVkFMSUQJMHg1OAorI2RlZmlu ZSAgUlhfRURQS1RfQ0ZHX0VOQUJMRQkJMHg2YworI2RlZmluZSAgIFJYX0VEUEtUX0NGR19FTkFC TEVfRU4JQklUKDApCisKKyNkZWZpbmUgUlhfU1BCX0RNQV9PRkZTRVQoaW50ZikgXAorCSgoKChp bnRmKS0+Y2hhbm5lbCkgKiAweDMwKSArIDB4YTAwMDApCisjZGVmaW5lICBSWF9TUEJfRE1BX1JF QUQJCTB4MDAKKyNkZWZpbmUgIFJYX1NQQl9ETUFfQkFTRQkJMHgwOAorI2RlZmluZSAgUlhfU1BC X0RNQV9FTkQJCQkweDEwCisjZGVmaW5lICBSWF9TUEJfRE1BX1ZBTElECQkweDE4CisjZGVmaW5l ICBSWF9TUEJfRE1BX0ZJRk9fQ1RSTAkJMHgyMAorI2RlZmluZSAgIFJYX1NQQl9ETUFfRklGT19G TFVTSAkJQklUKDApCisjZGVmaW5lICBSWF9TUEJfRE1BX0ZJRk9fU1RBVFVTCQkweDI0CisKKyNk ZWZpbmUgUlhfU1BCX0NUUkxfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwgLSA2 KSAqIDB4NjgpICsgMHhhMTAwMCkKKyNkZWZpbmUgIFJYX1NQQl9DVFJMX0VOQUJMRQkJMHgwMAor I2RlZmluZSAgIFJYX1NQQl9DVFJMX0VOQUJMRV9FTgkJQklUKDApCisKKyNkZWZpbmUgUlhfUEFV U0VfQ1RSTF9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCAtIDYpICogMHg0KSAr IDB4YTExMzgpCisjZGVmaW5lICBSWF9QQVVTRV9NQVBfVkVDVE9SCQkweDAwCisKKyNkZWZpbmUg UlhfU1BCX1RPUF9DVFJMX09GRlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsIC0gNikg KiAweDE0KSArIDB4YTIwMDApCisjZGVmaW5lICBSWF9TUEJfVE9QX0JMS09VVAkJMHgwMAorCisj ZGVmaW5lIE5VTV80S19CVUZGRVJTCQkJMzIKKyNkZWZpbmUgUklOR19CVUZGRVJfU0laRQkJKFBB R0VfU0laRSAqIE5VTV80S19CVUZGRVJTKQorCisjZGVmaW5lIERFU0NfUklOR19DT1VOVAkJCSg2 NCAqIE5VTV80S19CVUZGRVJTKQorI2RlZmluZSBERVNDX1NJWkUJCQkxNgorI2RlZmluZSBERVND X1JJTkdfU0laRQkJCShERVNDX1JJTkdfQ09VTlQgKiBERVNDX1NJWkUpCisKKyNlbmRpZgotLT0y MAoyLjcuNAo= --000000000000559e73060065b9ea Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIMLfxmYoBmJGTjW6ASkNC+U0fSf1tqyu6kJA jjsHmK0UMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkyMVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBGdyvN4M3JRSDo0M5qKt0CIDsg5VaA0ELkKkw7C+hrBaQAKN/JSPDf dyhmtV9iLIhXbottpqBTGu3buQtU/rzg/iKG+lkDN0JQ/sUKSgcfxCYyOnEq8EiEP2VMoDDhV3xO 0dXDGKE7bszwCjHy8dvwiOYG4cFlLSPi4YbyZP8anKOHvmfI0Tf0LY/PXgwP0B9vBSrMGlOnoGOP vSmomB/1NEo78CTw/A0xfK2qfe4aLad1JJ+MjL2t2TtdI0E7SWU8J/lWQsqxaX3VRK1nSOt8lF+J Rs3hDsZanR/wFTUew9U8ihdF/3/9EBTD077ZhPNAq73fhAhPg/HmhKhuKVQ5 --000000000000559e73060065b9ea-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E573C001B0 for ; Thu, 13 Jul 2023 22:19:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233671AbjGMWTh (ORCPT ); Thu, 13 Jul 2023 18:19:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231303AbjGMWTe (ORCPT ); Thu, 13 Jul 2023 18:19:34 -0400 Received: from mail-vk1-xa2d.google.com (mail-vk1-xa2d.google.com [IPv6:2607:f8b0:4864:20::a2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D54512D64 for ; Thu, 13 Jul 2023 15:19:24 -0700 (PDT) Received: by mail-vk1-xa2d.google.com with SMTP id 71dfb90a1353d-4812f361e67so459444e0c.2 for ; Thu, 13 Jul 2023 15:19:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286763; x=1691878763; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=u/pCeV5MyubmuSD4yf+OpPcpiCDz6jWf06GDZm2PZZw=; b=T0hainWcXJ/cgU/uPOMW0kcfs/7NFr91pljyyvStBtrlbPsqrdw5bx+3d3TpHHUC5+ JEOusnxbxTccgqjDE0LEwJZrIi1OFWpY2XJRPCd8HpJC07WZGRqI+XWmWIIRWCBFGkAK kQj4pgF3dfQ7p+F2xgMrQqIavLYx/w6i9roco= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286763; x=1691878763; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=u/pCeV5MyubmuSD4yf+OpPcpiCDz6jWf06GDZm2PZZw=; b=jowm6yw6fwXnxEOWjDWgN+inJmFjD+KQxPOSEUD7MxSY4AxiZlNU/bCRgMpiYjS4oX 2ucmrOlOXrJXnloHWxU/xgdxKdc2dbGL0N78AmwKxtW52T3yH1UhOmRA6m/9pI4BzYsO WKuZG72SZx3+EGCqrR+ZsudUStX6pZGLnx5whhKIMWNpKLMc9JxYTkHIu4aVUHAJF3jn Am2XPLP4jretV4cQtwI/rneIVZES5/wUOlQmFlRoDhesx83O4bQXtaXBW7ng23a9Ls57 f5U60Adfr1j/tGuPxbdDCu+Pi75Ch97J5OuhmIvYAnfUIHeLNpE5lgWqu2+bxLbPnZg5 2Isg== X-Gm-Message-State: ABy/qLbOAfPngpRduPY+nfBxmVwEXAO0Awxuq49npSUONGHg1mi5eOPp SzzzefgfdqrHxnH5RHTYxjqs3A== X-Google-Smtp-Source: APBJJlFCHrJxdMok81T2UslrHwt5poKQBdtsktoPnGytfmtpmak2EWcfTwn8RblHS+Tnct3MZzGkXw== X-Received: by 2002:a1f:4e81:0:b0:47e:3bc8:af53 with SMTP id c123-20020a1f4e81000000b0047e3bc8af53mr1752378vkb.14.1689286763391; Thu, 13 Jul 2023 15:19:23 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:23 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 04/11] net: bcmasp: Add support for WoL magic packet Date: Thu, 13 Jul 2023 15:18:59 -0700 Message-Id: <1689286746-43609-5-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000007cd3f9060065b904" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000007cd3f9060065b904 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIFdha2UtT24tTGFuIG1hZ2ljIHBhY2tldCBhbmQgbWFnaWMgcGFja2V0 IHdpdGggcGFzc3dvcmQuCgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5A YnJvYWRjb20uY29tPgotLS0KdjkKCS0gRml4ZWQgc29tZSBzcGFjaW5nIGlzc3VlcwoKIGRyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgICAgICAgIHwgMTQ0ICsrKysr KysrKysrKysrKysrPQorKysrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcC5oICAgICAgICB8ICAxOCArKysKIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9i Y21hc3BfZXRodG9vbC5jICAgIHwgIDM2ICsrKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgNzYgKysrKysrKysrLS0KIDQgZmlsZXMgY2hh bmdlZCwgMjYyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgYi9kcml2ZXJzL25ldC9l dGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKaW5kZXggODM0OTQ2NDFiNTQ1Li44OTRj MTRkY2E5MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Au YwpAQCAtNDM2LDYgKzQzNiwxMzUgQEAgdm9pZCBiY21hc3BfY29yZV9jbG9ja19zZXRfaW50Zihz dHJ1Y3QgYmNtYXNwX2ludGYgKmk9Cm50ZiwgYm9vbCBlbikKIAlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwcml2LT5jbGtfbG9jaywgZmxhZ3MpOwogfQo9MjAKK3N0YXRpYyBpcnFyZXR1cm5fdCBi Y21hc3BfaXNyX3dvbChpbnQgaXJxLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBiY21hc3BfcHJp diAqcHJpdiA9M0QgZGF0YTsKKwl1MzIgc3RhdHVzOworCisJLyogTm8gTDMgSVJRLCBzbyB3ZSBn b29kICovCisJaWYgKHByaXYtPndvbF9pcnEgPD0zRCAwKQorCQlnb3RvIGlycV9oYW5kbGVkOwor CisJc3RhdHVzID0zRCB3YWtldXBfaW50cjJfY29yZV9ybChwcml2LCBBU1BfV0FLRVVQX0lOVFIy X1NUQVRVUykgJgorCQl+d2FrZXVwX2ludHIyX2NvcmVfcmwocHJpdiwgQVNQX1dBS0VVUF9JTlRS Ml9NQVNLX1NUQVRVUyk7CisJd2FrZXVwX2ludHIyX2NvcmVfd2wocHJpdiwgc3RhdHVzLCBBU1Bf V0FLRVVQX0lOVFIyX0NMRUFSKTsKKworaXJxX2hhbmRsZWQ6CisJcG1fd2FrZXVwX2V2ZW50KCZw cml2LT5wZGV2LT5kZXYsIDApOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGlu dCBiY21hc3BfZ2V0X2FuZF9yZXF1ZXN0X2lycShzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIGlu dCBpKQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPTNEIHByaXYtPnBkZXY7CisJ aW50IGlycSwgcmV0OworCisJaXJxID0zRCBwbGF0Zm9ybV9nZXRfaXJxX29wdGlvbmFsKHBkZXYs IGkpOworCWlmIChpcnEgPCAwKQorCQlyZXR1cm4gaXJxOworCisJcmV0ID0zRCBkZXZtX3JlcXVl c3RfaXJxKCZwZGV2LT5kZXYsIGlycSwgYmNtYXNwX2lzcl93b2wsIDAsCisJCQkgICAgICAgcGRl di0+bmFtZSwgcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBpcnE7 Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9pbml0X3dvbF9zaGFyZWQoc3RydWN0IGJjbWFzcF9w cml2ICpwcml2KQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPTNEIHByaXYtPnBk ZXY7CisJc3RydWN0IGRldmljZSAqZGV2ID0zRCAmcGRldi0+ZGV2OworCWludCBpcnE7CisKKwlp cnEgPTNEIGJjbWFzcF9nZXRfYW5kX3JlcXVlc3RfaXJxKHByaXYsIDEpOworCWlmIChpcnEgPCAw KSB7CisJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBpbml0IFdvTCBpcnE6ICVkXG4iLCBpcnEp OworCQlyZXR1cm47CisJfQorCisJcHJpdi0+d29sX2lycSA9M0QgaXJxOworCXByaXYtPndvbF9p cnFfZW5hYmxlZF9tYXNrID0zRCAwOworCWRldmljZV9zZXRfd2FrZXVwX2NhcGFibGUoJnBkZXYt PmRldiwgMSk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9lbmFibGVfd29sX3NoYXJlZChzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJc3RydWN0IGRldmljZSAqZGV2ID0zRCAmcHJpdi0+cGRl di0+ZGV2OworCisJaWYgKGVuKSB7CisJCWlmIChwcml2LT53b2xfaXJxX2VuYWJsZWRfbWFzaykg eworCQkJc2V0X2JpdChpbnRmLT5wb3J0LCAmcHJpdi0+d29sX2lycV9lbmFibGVkX21hc2spOwor CQkJcmV0dXJuOworCQl9CisKKwkJLyogRmlyc3QgZW5hYmxlICovCisJCXNldF9iaXQoaW50Zi0+ cG9ydCwgJnByaXYtPndvbF9pcnFfZW5hYmxlZF9tYXNrKTsKKwkJZW5hYmxlX2lycV93YWtlKHBy aXYtPndvbF9pcnEpOworCQlkZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUoZGV2LCAxKTsKKwl9IGVs c2UgeworCQlpZiAoIXByaXYtPndvbF9pcnFfZW5hYmxlZF9tYXNrKQorCQkJcmV0dXJuOworCisJ CWNsZWFyX2JpdChpbnRmLT5wb3J0LCAmcHJpdi0+d29sX2lycV9lbmFibGVkX21hc2spOworCQlp ZiAocHJpdi0+d29sX2lycV9lbmFibGVkX21hc2spCisJCQlyZXR1cm47CisKKwkJLyogTGFzdCBk aXNhYmxlICovCisJCWRpc2FibGVfaXJxX3dha2UocHJpdi0+d29sX2lycSk7CisJCWRldmljZV9z ZXRfd2FrZXVwX2VuYWJsZShkZXYsIDApOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3dv bF9pcnFfZGVzdHJveV9zaGFyZWQoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCWlmIChw cml2LT53b2xfaXJxID4gMCkKKwkJZnJlZV9pcnEocHJpdi0+d29sX2lycSwgcHJpdik7Cit9CisK K3N0YXRpYyB2b2lkIGJjbWFzcF9pbml0X3dvbF9wZXJfaW50ZihzdHJ1Y3QgYmNtYXNwX3ByaXYg KnByaXYpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9M0QgcHJpdi0+cGRldjsK KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNEICZwZGV2LT5kZXY7CisJc3RydWN0IGJjbWFzcF9pbnRm ICppbnRmOworCWludCBpcnE7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGYsICZwcml2LT5p bnRmcywgbGlzdCkgeworCQlpcnEgPTNEIGJjbWFzcF9nZXRfYW5kX3JlcXVlc3RfaXJxKHByaXYs IGludGYtPnBvcnQgKyAxKTsKKwkJaWYgKGlycSA8IDApIHsKKwkJCWRldl93YXJuKGRldiwgIkZh aWxlZCB0byBpbml0IFdvTCBpcnEocG9ydCAlZCk6ICVkXG4iLAorCQkJCSBpbnRmLT5wb3J0LCBp cnEpOworCQkJY29udGludWU7CisJCX0KKworCQlpbnRmLT53b2xfaXJxID0zRCBpcnE7CisJCWlu dGYtPndvbF9pcnFfZW5hYmxlZCA9M0QgZmFsc2U7CisJCWRldmljZV9zZXRfd2FrZXVwX2NhcGFi bGUoJnBkZXYtPmRldiwgMSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBiY21hc3BfZW5hYmxlX3dv bF9wZXJfaW50ZihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJc3RydWN0 IGRldmljZSAqZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CisKKwlpZiAoZW4gXiBp bnRmLT53b2xfaXJxX2VuYWJsZWQpCisJCWlycV9zZXRfaXJxX3dha2UoaW50Zi0+d29sX2lycSwg ZW4pOworCisJaW50Zi0+d29sX2lycV9lbmFibGVkID0zRCBlbjsKKwlkZXZpY2Vfc2V0X3dha2V1 cF9lbmFibGUoZGV2LCBlbik7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF93b2xfaXJxX2Rlc3Ry b3lfcGVyX2ludGYoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCXN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZjsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW50ZiwgJnByaXYtPmludGZzLCBs aXN0KSB7CisJCWlmIChpbnRmLT53b2xfaXJxID4gMCkKKwkJCWZyZWVfaXJxKGludGYtPndvbF9p cnEsIHByaXYpOworCX0KK30KKwogc3RhdGljIHN0cnVjdCBiY21hc3BfaHdfaW5mbyB2MjBfaHdf aW5mbyA9M0QgewogCS5yeF9jdHJsX2ZsdXNoID0zRCBBU1BfUlhfQ1RSTF9GTFVTSCwKIAkudW1h YzJmYiA9M0QgVU1BQzJGQl9PRkZTRVQsCkBAIC00NDUsNiArNTc0LDkgQEAgc3RhdGljIHN0cnVj dCBiY21hc3BfaHdfaW5mbyB2MjBfaHdfaW5mbyA9M0QgewogfTsKPTIwCiBzdGF0aWMgY29uc3Qg c3RydWN0IGJjbWFzcF9wbGF0X2RhdGEgdjIwX3BsYXRfZGF0YSA9M0QgeworCS5pbml0X3dvbCA9 M0QgYmNtYXNwX2luaXRfd29sX3Blcl9pbnRmLAorCS5lbmFibGVfd29sID0zRCBiY21hc3BfZW5h YmxlX3dvbF9wZXJfaW50ZiwKKwkuZGVzdHJveV93b2wgPTNEIGJjbWFzcF93b2xfaXJxX2Rlc3Ry b3lfcGVyX2ludGYsCiAJLmh3X2luZm8gPTNEICZ2MjBfaHdfaW5mbywKIH07Cj0yMApAQCAtNDU4 LDYgKzU5MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2luZm8gdjIxX2h3X2luZm8gPTNE IHsKIH07Cj0yMAogc3RhdGljIGNvbnN0IHN0cnVjdCBiY21hc3BfcGxhdF9kYXRhIHYyMV9wbGF0 X2RhdGEgPTNEIHsKKwkuaW5pdF93b2wgPTNEIGJjbWFzcF9pbml0X3dvbF9zaGFyZWQsCisJLmVu YWJsZV93b2wgPTNEIGJjbWFzcF9lbmFibGVfd29sX3NoYXJlZCwKKwkuZGVzdHJveV93b2wgPTNE IGJjbWFzcF93b2xfaXJxX2Rlc3Ryb3lfc2hhcmVkLAogCS5od19pbmZvID0zRCAmdjIxX2h3X2lu Zm8sCiB9Owo9MjAKQEAgLTUyMSwxMiArNjU2LDE2IEBAIHN0YXRpYyBpbnQgYmNtYXNwX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcHJpdi0+cGRldiA9M0QgcGRldjsKIAlz cGluX2xvY2tfaW5pdCgmcHJpdi0+bWRhX2xvY2spOwogCXNwaW5fbG9ja19pbml0KCZwcml2LT5j bGtfbG9jayk7CisJbXV0ZXhfaW5pdCgmcHJpdi0+d29sX2xvY2spOwogCUlOSVRfTElTVF9IRUFE KCZwcml2LT5pbnRmcyk7Cj0yMAogCXBkYXRhID0zRCBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBk ZXYtPmRldik7CiAJaWYgKCFwZGF0YSkKIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlO VkFMLCAidW5hYmxlIHRvIGZpbmQgcGxhdGZvcm0gZGF0YVxuIik7Cj0yMAorCXByaXYtPmluaXRf d29sID0zRCBwZGF0YS0+aW5pdF93b2w7CisJcHJpdi0+ZW5hYmxlX3dvbCA9M0QgcGRhdGEtPmVu YWJsZV93b2w7CisJcHJpdi0+ZGVzdHJveV93b2wgPTNEIHBkYXRhLT5kZXN0cm95X3dvbDsKIAlw cml2LT5od19pbmZvID0zRCBwZGF0YS0+aHdfaW5mbzsKPTIwCiAJLyogRW5hYmxlIGFsbCBjbG9j a3MgdG8gZW5zdXJlIHN1Y2Nlc3NmdWwgcHJvYmluZyAqLwpAQCAtNTcwLDYgKzcwOSw5IEBAIHN0 YXRpYyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWkr KzsKIAl9Cj0yMAorCS8qIENoZWNrIGFuZCBlbmFibGUgV29MICovCisJcHJpdi0+aW5pdF93b2wo cHJpdik7CisKIAkvKiBEcm9wIHRoZSBjbG9jayByZWZlcmVuY2UgY291bnQgbm93IGFuZCBsZXQg bmRvX29wZW4oKS9uZG9fY2xvc2UoKQogCSAqIG1hbmFnZSBpdCBmb3IgdXMgZnJvbSBub3cgb24u CiAJICovCkBAIC01ODUsNiArNzI3LDcgQEAgc3RhdGljIGludCBiY21hc3BfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJaWYgKHJldCkgewogCQkJbmV0ZGV2X2VycihpbnRm LT5uZGV2LAogCQkJCSAgICJmYWlsZWQgdG8gcmVnaXN0ZXIgbmV0X2RldmljZTogJWRcbiIsIHJl dCk7CisJCQlwcml2LT5kZXN0cm95X3dvbChwcml2KTsKIAkJCWJjbWFzcF9yZW1vdmVfaW50ZnMo cHJpdik7CiAJCQlnb3RvIG9mX3B1dF9leGl0OwogCQl9CkBAIC02MDUsNiArNzQ4LDcgQEAgc3Rh dGljIGludCBiY21hc3BfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYg KCFwcml2KQogCQlyZXR1cm4gMDsKPTIwCisJcHJpdi0+ZGVzdHJveV93b2wocHJpdik7CiAJYmNt YXNwX3JlbW92ZV9pbnRmcyhwcml2KTsKPTIwCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oIGIvZHJpdmVycy9uZXQvZXRo ZT0Kcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCmluZGV4IDRmZTg0ZDI2MjUxZC4uMmNkZjIy NzMyZjRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgK QEAgLTMwMSw2ICszMDEsMTIgQEAgc3RydWN0IGJjbWFzcF9pbnRmIHsKPTIwCiAJLyogU3RhdGlz dGljcyAqLwogCXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0CXN0YXRzNjQ7CisKKwl1MzIJCQkJ d29sb3B0czsKKwl1OAkJCQlzb3Bhc3NbU09QQVNTX01BWF07CisJLyogVXNlZCBpZiBwZXIgaW50 ZiB3b2wgaXJxICovCisJaW50CQkJCXdvbF9pcnE7CisJdW5zaWduZWQgaW50CQkJd29sX2lycV9l bmFibGVkOjE7CiB9Owo9MjAKICNkZWZpbmUgTlVNX01EQV9GSUxURVJTCQkJCTMyCkBAIC0zMjEs NiArMzI3LDkgQEAgc3RydWN0IGJjbWFzcF9od19pbmZvIHsKIH07Cj0yMAogc3RydWN0IGJjbWFz cF9wbGF0X2RhdGEgeworCXZvaWQgKCppbml0X3dvbCkoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2 KTsKKwl2b2lkICgqZW5hYmxlX3dvbCkoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVu KTsKKwl2b2lkICgqZGVzdHJveV93b2wpKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdik7CiAJc3Ry dWN0IGJjbWFzcF9od19pbmZvCQkqaHdfaW5mbzsKIH07Cj0yMApAQCAtMzMxLDYgKzM0MCwxNSBA QCBzdHJ1Y3QgYmNtYXNwX3ByaXYgewogCWludAkJCQlpcnE7CiAJdTMyCQkJCWlycV9tYXNrOwo9 MjAKKwkvKiBVc2VkIGlmIHNoYXJlZCB3b2wgaXJxICovCisJc3RydWN0IG11dGV4CQkJd29sX2xv Y2s7CisJaW50CQkJCXdvbF9pcnE7CisJdW5zaWduZWQgbG9uZwkJCXdvbF9pcnFfZW5hYmxlZF9t YXNrOworCisJdm9pZCAoKmluaXRfd29sKShzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYpOworCXZv aWQgKCplbmFibGVfd29sKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pOworCXZv aWQgKCpkZXN0cm95X3dvbCkoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KTsKKwogCXZvaWQgX19p b21lbQkJCSpiYXNlOwogCXN0cnVjdAliY21hc3BfaHdfaW5mbwkJKmh3X2luZm87Cj0yMApkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9v bC5jIGIvZHJpdmVycy89Cm5ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29s LmMKaW5kZXggMzk0YzBlMWNiMDI2Li5hZTI0YTFmNzRkNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKQEAgLTMwLDYgKzMw LDQwIEBAIHN0YXRpYyB2b2lkIGJjbWFzcF9zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgPQp1MzIgbGV2ZWwpCiAJaW50Zi0+bXNnX2VuYWJsZSA9M0QgbGV2ZWw7CiB9Cj0yMAor I2RlZmluZSBCQ01BU1BfU1VQUE9SVEVEX1dBS0UgICAoV0FLRV9NQUdJQyB8IFdBS0VfTUFHSUNT RUNVUkUpCitzdGF0aWMgdm9pZCBiY21hc3BfZ2V0X3dvbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LCBzdHJ1Y3QgZXRodG9vbF93b2xpbmZvID0KKndvbCkKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYg KmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwl3b2wtPnN1cHBvcnRlZCA9M0QgQkNNQVNQ X1NVUFBPUlRFRF9XQUtFOworCXdvbC0+d29sb3B0cyA9M0QgaW50Zi0+d29sb3B0czsKKwltZW1z ZXQod29sLT5zb3Bhc3MsIDAsIHNpemVvZih3b2wtPnNvcGFzcykpOworCisJaWYgKHdvbC0+d29s b3B0cyAmIFdBS0VfTUFHSUNTRUNVUkUpCisJCW1lbWNweSh3b2wtPnNvcGFzcywgaW50Zi0+c29w YXNzLCBzaXplb2YoaW50Zi0+c29wYXNzKSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX3NldF93 b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfd29saW5mbyAqPQp3b2wp Cit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0 cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCXN0cnVjdCBkZXZpY2Ug KmtkZXYgPTNEICZwcml2LT5wZGV2LT5kZXY7CisKKwlpZiAoIWRldmljZV9jYW5fd2FrZXVwKGtk ZXYpKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKKwkvKiBJbnRlcmZhY2UgU3BlY2lmaWMgKi8K KwlpbnRmLT53b2xvcHRzID0zRCB3b2wtPndvbG9wdHM7CisJaWYgKGludGYtPndvbG9wdHMgJiBX QUtFX01BR0lDU0VDVVJFKQorCQltZW1jcHkoaW50Zi0+c29wYXNzLCB3b2wtPnNvcGFzcywgc2l6 ZW9mKHdvbC0+c29wYXNzKSk7CisKKwltdXRleF9sb2NrKCZwcml2LT53b2xfbG9jayk7CisJcHJp di0+ZW5hYmxlX3dvbChpbnRmLCAhIWludGYtPndvbG9wdHMpOworCW11dGV4X3VubG9jaygmcHJp di0+d29sX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKIGNvbnN0IHN0cnVjdCBldGh0b29sX29w cyBiY21hc3BfZXRodG9vbF9vcHMgPTNEIHsKIAkuZ2V0X2RydmluZm8JCT0zRCBiY21hc3BfZ2V0 X2RydmluZm8sCiAJLmdldF9saW5rCQk9M0QgZXRodG9vbF9vcF9nZXRfbGluaywKQEAgLTM3LDQg KzcxLDYgQEAgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGJjbWFzcF9ldGh0b29sX29wcyA9M0Qg ewogCS5zZXRfbGlua19rc2V0dGluZ3MJPTNEIHBoeV9ldGh0b29sX3NldF9saW5rX2tzZXR0aW5n cywKIAkuZ2V0X21zZ2xldmVsCQk9M0QgYmNtYXNwX2dldF9tc2dsZXZlbCwKIAkuc2V0X21zZ2xl dmVsCQk9M0QgYmNtYXNwX3NldF9tc2dsZXZlbCwKKwkuZ2V0X3dvbAkJPTNEIGJjbWFzcF9nZXRf d29sLAorCS5zZXRfd29sCQk9M0QgYmNtYXNwX3NldF93b2wsCiB9OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jIGIvZHJpdmVycy9u ZXQ9Ci9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKaW5kZXggMDIzMmY1Y2Y4 OTA5Li4yMWE4ZDE1YTQ3ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcF9pbnRmLmMKQEAgLTEwMzQsNyArMTAzNCw3IEBAIHN0YXRpYyBpbnQgYmNt YXNwX25ldGlmX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgPQpib29sIHBoeV9jb25uZWN0 KQogCQkJbmV0ZGV2X2VycihkZXYsICJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7CiAJCQln b3RvIGVycl9waHlfZGlzYWJsZTsKIAkJfQotCX0gZWxzZSB7CisJfSBlbHNlIGlmICghaW50Zi0+ d29sb3B0cykgewogCQlyZXQgPTNEIHBoeV9yZXN1bWUoZGV2LT5waHlkZXYpOwogCQlpZiAocmV0 KQogCQkJZ290byBlcnJfcGh5X2Rpc2FibGU7CkBAIC0xMjgxLDggKzEyODEsMzkgQEAgdm9pZCBi Y21hc3BfaW50ZXJmYWNlX2Rlc3Ryb3koc3RydWN0IGJjbWFzcF9pbnRmICppbj0KdGYpCiAJZnJl ZV9uZXRkZXYoaW50Zi0+bmRldik7CiB9Cj0yMAorc3RhdGljIHZvaWQgYmNtYXNwX3N1c3BlbmRf dG9fd29sKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgbmV0X2RldmljZSAq bmRldiA9M0QgaW50Zi0+bmRldjsKKwl1MzIgcmVnOworCisJcmVnID0zRCB1bWFjX3JsKGludGYs IFVNQ19NUERfQ1RSTCk7CisJaWYgKGludGYtPndvbG9wdHMgJiAoV0FLRV9NQUdJQyB8IFdBS0Vf TUFHSUNTRUNVUkUpKQorCQlyZWcgfD0zRCBVTUNfTVBEX0NUUkxfTVBEX0VOOworCXJlZyAmPTNE IH5VTUNfTVBEX0NUUkxfUFNXX0VOOworCWlmIChpbnRmLT53b2xvcHRzICYgV0FLRV9NQUdJQ1NF Q1VSRSkgeworCQkvKiBQcm9ncmFtIHRoZSBTZWN1cmVPbiBwYXNzd29yZCAqLworCQl1bWFjX3ds KGludGYsIGdldF91bmFsaWduZWRfYmUxNigmaW50Zi0+c29wYXNzWzBdKSwKKwkJCVVNQ19QU1df TVMpOworCQl1bWFjX3dsKGludGYsIGdldF91bmFsaWduZWRfYmUzMigmaW50Zi0+c29wYXNzWzJd KSwKKwkJCVVNQ19QU1dfTFMpOworCQlyZWcgfD0zRCBVTUNfTVBEX0NUUkxfUFNXX0VOOworCX0K Kwl1bWFjX3dsKGludGYsIHJlZywgVU1DX01QRF9DVFJMKTsKKworCS8qIFVuaU1BQyByZWNlaXZl IG5lZWRzIHRvIGJlIHR1cm5lZCBvbiAqLworCXVtYWNfZW5hYmxlX3NldChpbnRmLCBVTUNfQ01E X1JYX0VOLCAxKTsKKworCWlmIChpbnRmLT5wYXJlbnQtPndvbF9pcnEgPiAwKSB7CisJCXdha2V1 cF9pbnRyMl9jb3JlX3dsKGludGYtPnBhcmVudCwgMHhmZmZmZmZmZiwKKwkJCQkgICAgIEFTUF9X QUtFVVBfSU5UUjJfTUFTS19DTEVBUik7CisJfQorCisJbmV0aWZfZGJnKGludGYsIHdvbCwgbmRl diwgImVudGVyZWQgV09MIG1vZGVcbiIpOworfQorCiBpbnQgYmNtYXNwX2ludGVyZmFjZV9zdXNw ZW5kKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKIHsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0z RCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9M0Qg aW50Zi0+bmRldjsKIAlpbnQgcmV0ID0zRCAwOwo9MjAKQEAgLTEyOTMsMTkgKzEzMjQsMjQgQEAg aW50IGJjbWFzcF9pbnRlcmZhY2Vfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmluPQp0ZikK PTIwCiAJYmNtYXNwX25ldGlmX2RlaW5pdChkZXYpOwo9MjAKLQlyZXQgPTNEIHBoeV9zdXNwZW5k KGRldi0+cGh5ZGV2KTsKLQlpZiAocmV0KQotCQlnb3RvIG91dDsKKwlpZiAoIWludGYtPndvbG9w dHMpIHsKKwkJcmV0ID0zRCBwaHlfc3VzcGVuZChkZXYtPnBoeWRldik7CisJCWlmIChyZXQpCisJ CQlnb3RvIG91dDsKPTIwCi0JaWYgKGludGYtPmludGVybmFsX3BoeSkKLQkJYmNtYXNwX2VwaHlf ZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7Ci0JZWxzZQotCQliY21hc3BfcmdtaWlfbW9kZV9lbl9z ZXQoaW50ZiwgZmFsc2UpOworCQlpZiAoaW50Zi0+aW50ZXJuYWxfcGh5KQorCQkJYmNtYXNwX2Vw aHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJCWVsc2UKKwkJCWJjbWFzcF9yZ21paV9tb2Rl X2VuX3NldChpbnRmLCBmYWxzZSk7Cj0yMAotCS8qIElmIFdha2Utb24tTEFOIGlzIGRpc2FibGVk LCB3ZSBjYW4gc2FmZWx5Ci0JICogZGlzYWJsZSB0aGUgbmV0d29yayBpbnRlcmZhY2UgY2xvY2tz LgotCSAqLwotCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKGludGYsIGZhbHNlKTsKKwkJLyog SWYgV2FrZS1vbi1MQU4gaXMgZGlzYWJsZWQsIHdlIGNhbiBzYWZlbHkKKwkJICogZGlzYWJsZSB0 aGUgbmV0d29yayBpbnRlcmZhY2UgY2xvY2tzLgorCQkgKi8KKwkJYmNtYXNwX2NvcmVfY2xvY2tf c2V0X2ludGYoaW50ZiwgZmFsc2UpOworCX0KKworCWlmIChkZXZpY2VfbWF5X3dha2V1cChrZGV2 KSAmJiBpbnRmLT53b2xvcHRzKQorCQliY21hc3Bfc3VzcGVuZF90b193b2woaW50Zik7Cj0yMAog CWNsa19kaXNhYmxlX3VucHJlcGFyZShpbnRmLT5wYXJlbnQtPmNsayk7Cj0yMApAQCAtMTMxNiw2 ICsxMzUyLDIwIEBAIGludCBiY21hc3BfaW50ZXJmYWNlX3N1c3BlbmQoc3RydWN0IGJjbWFzcF9p bnRmICppbnQ9CmYpCiAJcmV0dXJuIHJldDsKIH0KPTIwCitzdGF0aWMgdm9pZCBiY21hc3BfcmVz dW1lX2Zyb21fd29sKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwl1MzIgcmVnOworCisJ cmVnID0zRCB1bWFjX3JsKGludGYsIFVNQ19NUERfQ1RSTCk7CisJcmVnICY9M0QgflVNQ19NUERf Q1RSTF9NUERfRU47CisJdW1hY193bChpbnRmLCByZWcsIFVNQ19NUERfQ1RSTCk7CisKKwlpZiAo aW50Zi0+cGFyZW50LT53b2xfaXJxID4gMCkgeworCQl3YWtldXBfaW50cjJfY29yZV93bChpbnRm LT5wYXJlbnQsIDB4ZmZmZmZmZmYsCisJCQkJICAgICBBU1BfV0FLRVVQX0lOVFIyX01BU0tfU0VU KTsKKwl9Cit9CisKIGludCBiY21hc3BfaW50ZXJmYWNlX3Jlc3VtZShzdHJ1Y3QgYmNtYXNwX2lu dGYgKmludGYpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9M0QgaW50Zi0+bmRldjsKQEAg LTEzMzIsNiArMTM4Miw4IEBAIGludCBiY21hc3BfaW50ZXJmYWNlX3Jlc3VtZShzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYpCiAJaWYgKHJldCkKIAkJZ290byBvdXQ7Cj0yMAorCWJjbWFzcF9yZXN1 bWVfZnJvbV93b2woaW50Zik7CisKIAluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7Cj0yMAogCXJl dHVybiAwOwotLT0yMAoyLjcuNAo= --0000000000007cd3f9060065b904 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIG8La+qisFEBI06kjHqTUQIxQznjmNWJx106 KFYzT0pDMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkyM1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAdkjzK0N+PTRHaT4OLlRxbgjij0gZbji19Nolro/s4z5rhgmGIP1m1 FAQocXSTFsA9FXKiPrkIcODwg3GsOc/r89EynQOF8Xn01ENJ5h5sGL1LSqsef98Z4q3EWNCcupO6 w6lxRrwK6HJDibk5SuHLm/jDFLlez/YdUNst6BoZvg9ujZAPuoDz+76QQzHbezteSowPX8jPsQwS 0SBfnsDy1TbBd9IGHAS+sMLYJl+HZ1CwnOesfJNGvc71xeiBAVMvXEgXRtxJ6a9tE0ee8K91IKVu /27Slklti9nmngJDiXmZ1Ph1uq1fSD2sGkzBf+cM99daoC9ryV417keGrsRT --0000000000007cd3f9060065b904-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64275C001DE for ; Thu, 13 Jul 2023 22:19:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234072AbjGMWTz (ORCPT ); Thu, 13 Jul 2023 18:19:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233410AbjGMWTq (ORCPT ); Thu, 13 Jul 2023 18:19:46 -0400 Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE70E30DE for ; Thu, 13 Jul 2023 15:19:27 -0700 (PDT) Received: by mail-qv1-xf2a.google.com with SMTP id 6a1803df08f44-635eb5b0320so7130016d6.3 for ; Thu, 13 Jul 2023 15:19:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286766; x=1691878766; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=9mKtxCkGroqGLBuGPuPS/20D6Yn4iTLngVeuaO387iE=; b=Ol5SnkyI7rIBW4e8OWmgyf3A7mgfqoOgDPDeGhz/UjUYIb4yxCrfqV9klApH7OZHMF WJ1bAoCdIM7Ytp4wZjsWJ1lca92JAbH9c/ar+mB9kbH0azu1UzhrF0g+TYGynQlBen1S Vtp4P2tRoFeZx9zEZpEcD9Qz40xffnyrQnMdU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286766; x=1691878766; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9mKtxCkGroqGLBuGPuPS/20D6Yn4iTLngVeuaO387iE=; b=BHRYNKOqEeBX1s2EEoaPUlxS7WP+zXb9axNUx+ImQyFJFQ3SGv3RELWc1KDtH5bm5v /vClyU4w4BXLe8ursfiAn7oi1t1F90K3UmJH86N/yhr/lYMn6Ajjcd+Ly5aySbflHAVj lTJkLxJJiF+ba0062mOIqAgrdhSmfd6rd6A/17MXOlsq/EOsIBxgpiBzIf/9O5Iw75/v e6jMTeSSzBZG0FCIEHMN/j3x1tnnHylR0UsgqSxGeLLhS4ywafx2l7vh1RhEHl+8zpcy gxxQrS40KQQOcg48fD6jZD/fxN2QFOTYwFBvIKspDBZ+ud2fpfIP516qwtOCjwkC34i1 uRQw== X-Gm-Message-State: ABy/qLYauvyIdcGxEVduYRrVl4upwe0d66a0+fgAkMq8jaVOeSj++bKN KF8HIkW7lk1aLBoTTanQvcc3AA== X-Google-Smtp-Source: APBJJlGa5LQ6aDyr6izE/VVRpBp4fnOsWDNP+lr/YCjQ9+3mKujIL0Rg7M1xUk7aRNRL/qJlAzJTrw== X-Received: by 2002:a0c:8e81:0:b0:635:ef7b:c74e with SMTP id x1-20020a0c8e81000000b00635ef7bc74emr2554470qvb.62.1689286766300; Thu, 13 Jul 2023 15:19:26 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:25 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 05/11] net: bcmasp: Add support for wake on net filters Date: Thu, 13 Jul 2023 15:19:00 -0700 Message-Id: <1689286746-43609-6-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000a72096060065b9d7" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000a72096060065b9d7 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIHdha2Ugb24gbmV0d29yayBmaWx0ZXJzLiBUaGUgbWF4IG1hdGNoIGlz IDI1NiBieXRlcy4KClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9h ZGNvbS5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Au YyAgICAgICAgfCA1OTUgKysrKysrKysrKysrKysrKys9CisrKysKIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDQwICsrCiAuLi4vbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDEzMSArKysrLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgIDMgKwogNCBm aWxlcyBjaGFuZ2VkLCA3NjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgYi9kcml2ZXJz L25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKaW5kZXggODk0YzE0ZGNhOTEx Li45MmRmZWE5NjFhZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9i Y21hc3AuYwpAQCAtMTI3LDYgKzEyNyw1OTcgQEAgdm9pZCBiY21hc3BfZmx1c2hfcnhfcG9ydChz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCiAJcnhfY3RybF9jb3JlX3dsKHByaXYsIG1hc2ssIHBy aXYtPmh3X2luZm8tPnJ4X2N0cmxfZmx1c2gpOwogfQo9MjAKK3N0YXRpYyB2b2lkIGJjbWFzcF9u ZXRmaWx0X2h3X2VuX3dha2Uoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCSAgICAgIHN0 cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQpCit7CisJcnhfZmlsdGVyX2NvcmVfd2wocHJp diwgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0wzXzEoNjQpLAorCQkJICBBU1BfUlhfRklMVEVS X05FVF9PRkZTRVQobmZpbHQtPmh3X2luZGV4KSk7CisKKwlyeF9maWx0ZXJfY29yZV93bChwcml2 LCBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDIoMzIpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9O RVRfT0ZGU0VUX0wzXzAoMzIpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0wzXzEo OTYpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0w0KDMyKSwKKwkJCSAgQVNQX1JY X0ZJTFRFUl9ORVRfT0ZGU0VUKG5maWx0LT5od19pbmRleCArIDEpKTsKKworCXJ4X2ZpbHRlcl9j b3JlX3dsKHByaXYsIEFTUF9SWF9GSUxURVJfTkVUX0NGR19DSChuZmlsdC0+cG9ydCArIDgpIHwK KwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRf Q0ZHX0wyX0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0wzX0VOIHwKKwkJCSAgQVNQ X1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0wz X0ZSTSgyKSB8CisJCQkgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MNF9GUk0oMikgfAorCQkJICBB U1BfUlhfRklMVEVSX05FVF9DRkdfVU1DKG5maWx0LT5wb3J0KSwKKwkJCSAgQVNQX1JYX0ZJTFRF Ul9ORVRfQ0ZHKG5maWx0LT5od19pbmRleCkpOworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwg QVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0NIKG5maWx0LT5wb3J0ICsgOCkgfAorCQkJICBBU1BfUlhf RklMVEVSX05FVF9DRkdfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDJfRU4gfAor CQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDNfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05F VF9DRkdfTDRfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDNfRlJNKDIpIHwKKwkJ CSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0ZSTSgyKSB8CisJCQkgIEFTUF9SWF9GSUxURVJf TkVUX0NGR19VTUMobmZpbHQtPnBvcnQpLAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkcobmZp bHQtPmh3X2luZGV4ICsgMSkpOworfQorCisjZGVmaW5lIE1BWF9XQUtFX0ZJTFRFUl9TSVpFCQky NTYKK2VudW0gYXNwX25ldGZpbHRfcmVnX3R5cGUgeworCUFTUF9ORVRGSUxUX01BVENIID0zRCAw LAorCUFTUF9ORVRGSUxUX01BU0ssCisJQVNQX05FVEZJTFRfTUFYCit9OworCitzdGF0aWMgaW50 IGJjbWFzcF9uZXRmaWx0X2dldF9yZWdfb2Zmc2V0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwK KwkJCQkJIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkJCSBlbnVtIGFzcF9u ZXRmaWx0X3JlZ190eXBlIHJlZ190eXBlLAorCQkJCQkgdTMyIG9mZnNldCkKK3sKKwl1MzIgYmxv Y2tfaW5kZXgsIGZpbHRlcl9zZWw7CisKKwlpZiAob2Zmc2V0IDwgMzIpIHsKKwkJYmxvY2tfaW5k ZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0wyOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdf aW5kZXg7CisJfSBlbHNlIGlmIChvZmZzZXQgPCA2NCkgeworCQlibG9ja19pbmRleCA9M0QgQVNQ X1JYX0ZJTFRFUl9ORVRfTDI7CisJCWZpbHRlcl9zZWwgPTNEIG5maWx0LT5od19pbmRleCArIDE7 CisJfSBlbHNlIGlmIChvZmZzZXQgPCA5NikgeworCQlibG9ja19pbmRleCA9M0QgQVNQX1JYX0ZJ TFRFUl9ORVRfTDNfMDsKKwkJZmlsdGVyX3NlbCA9M0QgbmZpbHQtPmh3X2luZGV4OworCX0gZWxz ZSBpZiAob2Zmc2V0IDwgMTI4KSB7CisJCWJsb2NrX2luZGV4ID0zRCBBU1BfUlhfRklMVEVSX05F VF9MM18wOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXggKyAxOworCX0gZWxzZSBp ZiAob2Zmc2V0IDwgMTYwKSB7CisJCWJsb2NrX2luZGV4ID0zRCBBU1BfUlhfRklMVEVSX05FVF9M M18xOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXg7CisJfSBlbHNlIGlmIChvZmZz ZXQgPCAxOTIpIHsKKwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0wzXzE7CisJ CWZpbHRlcl9zZWwgPTNEIG5maWx0LT5od19pbmRleCArIDE7CisJfSBlbHNlIGlmIChvZmZzZXQg PCAyMjQpIHsKKwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0w0OworCQlmaWx0 ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXg7CisJfSBlbHNlIGlmIChvZmZzZXQgPCAyNTYpIHsK KwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0w0OworCQlmaWx0ZXJfc2VsID0z RCBuZmlsdC0+aHdfaW5kZXggKyAxOworCX0gZWxzZSB7CisJCXJldHVybiAtRUlOVkFMOworCX0K KworCXN3aXRjaCAocmVnX3R5cGUpIHsKKwljYXNlIEFTUF9ORVRGSUxUX01BVENIOgorCQlyZXR1 cm4gQVNQX1JYX0ZJTFRFUl9ORVRfUEFUKGZpbHRlcl9zZWwsIGJsb2NrX2luZGV4LAorCQkJCQkg ICAgIChvZmZzZXQgJSAzMikpOworCWNhc2UgQVNQX05FVEZJTFRfTUFTSzoKKwkJcmV0dXJuIEFT UF9SWF9GSUxURVJfTkVUX01BU0soZmlsdGVyX3NlbCwgYmxvY2tfaW5kZXgsCisJCQkJCSAgICAg IChvZmZzZXQgJSAzMikpOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX25ldGZpbHRfd3Ioc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAor CQkJICAgICAgc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdCwKKwkJCSAgICAgIGVudW0g YXNwX25ldGZpbHRfcmVnX3R5cGUgcmVnX3R5cGUsCisJCQkgICAgICB1MzIgdmFsLCB1MzIgb2Zm c2V0KQoreworCWludCByZWdfb2Zmc2V0OworCisJLyogSFcgb25seSBhY2NlcHRzIDQgYnl0ZSBh bGlnbmVkIHdyaXRlcyAqLworCWlmICghSVNfQUxJR05FRChvZmZzZXQsIDQpIHx8IG9mZnNldCA+ IE1BWF9XQUtFX0ZJTFRFUl9TSVpFKQorCQlyZXR1cm47CisKKwlyZWdfb2Zmc2V0ID0zRCBiY21h c3BfbmV0ZmlsdF9nZXRfcmVnX29mZnNldChwcml2LCBuZmlsdCwgcmVnX3R5cGUsCisJCQkJCQkg ICBvZmZzZXQpOworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwgdmFsLCByZWdfb2Zmc2V0KTsK K30KKworc3RhdGljIHUzMiBiY21hc3BfbmV0ZmlsdF9yZChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnBy aXYsCisJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkgICAgIGVu dW0gYXNwX25ldGZpbHRfcmVnX3R5cGUgcmVnX3R5cGUsCisJCQkgICAgIHUzMiBvZmZzZXQpCit7 CisJaW50IHJlZ19vZmZzZXQ7CisKKwkvKiBIVyBvbmx5IGFjY2VwdHMgNCBieXRlIGFsaWduZWQg d3JpdGVzICovCisJaWYgKCFJU19BTElHTkVEKG9mZnNldCwgNCkgfHwgb2Zmc2V0ID4gTUFYX1dB S0VfRklMVEVSX1NJWkUpCisJCXJldHVybiAwOworCisJcmVnX29mZnNldCA9M0QgYmNtYXNwX25l dGZpbHRfZ2V0X3JlZ19vZmZzZXQocHJpdiwgbmZpbHQsIHJlZ190eXBlLAorCQkJCQkJICAgb2Zm c2V0KTsKKworCXJldHVybiByeF9maWx0ZXJfY29yZV9ybChwcml2LCByZWdfb2Zmc2V0KTsKK30K Kworc3RhdGljIGludCBiY21hc3BfbmV0ZmlsdF93cl9tX3dha2Uoc3RydWN0IGJjbWFzcF9wcml2 ICpwcml2LAorCQkJCSAgICBzdHJ1Y3QgYmNtYXNwX25ldF9maWx0ZXIgKm5maWx0LAorCQkJCSAg ICB1MzIgb2Zmc2V0LCB2b2lkICptYXRjaCwgdm9pZCAqbWFzaywKKwkJCQkgICAgc2l6ZV90IHNp emUpCit7CisJdTMyIHNoaWZ0LCBtYXNrX3ZhbCA9M0QgMCwgbWF0Y2hfdmFsID0zRCAwOworCWJv b2wgZmlyc3RfYnl0ZSA9M0QgdHJ1ZTsKKworCWlmICgob2Zmc2V0ICsgc2l6ZSkgPiBNQVhfV0FL RV9GSUxURVJfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl3aGlsZSAoc2l6ZS0tKSB7CisJ CS8qIFRoZSBIVyBvbmx5IGFjY2VwdHMgNCBieXRlIGFsaWduZWQgd3JpdGVzLCBzbyBpZiB3ZQor CQkgKiBiZWdpbiB1bmFsaWduZWQgb3IgaWYgcmVtYWluaW5nIGJ5dGVzIGxlc3MgdGhhbiA0LAor CQkgKiB3ZSBuZWVkIHRvIHJlYWQgdGhlbiB3cml0ZSB0byBhdm9pZCBsb3NpbmcgY3VycmVudAor CQkgKiByZWdpc3RlciBzdGF0ZQorCQkgKi8KKwkJaWYgKGZpcnN0X2J5dGUgJiYgKCFJU19BTElH TkVEKG9mZnNldCwgNCkgfHwgc2l6ZSA8IDMpKSB7CisJCQltYXRjaF92YWwgPTNEIGJjbWFzcF9u ZXRmaWx0X3JkKHByaXYsIG5maWx0LAorCQkJCQkJICAgICAgQVNQX05FVEZJTFRfTUFUQ0gsCisJ CQkJCQkgICAgICBBTElHTl9ET1dOKG9mZnNldCwgNCkpOworCQkJbWFza192YWwgPTNEIGJjbWFz cF9uZXRmaWx0X3JkKHByaXYsIG5maWx0LAorCQkJCQkJICAgICBBU1BfTkVURklMVF9NQVNLLAor CQkJCQkJICAgICBBTElHTl9ET1dOKG9mZnNldCwgNCkpOworCQl9CisKKwkJc2hpZnQgPTNEICgz IC0gKG9mZnNldCAlIDQpKSAqIDg7CisJCW1hdGNoX3ZhbCAmPTNEIH5HRU5NQVNLKHNoaWZ0ICsg Nywgc2hpZnQpOworCQltYXNrX3ZhbCAmPTNEIH5HRU5NQVNLKHNoaWZ0ICsgNywgc2hpZnQpOwor CQltYXRjaF92YWwgfD0zRCAodTMyKSgqKCh1OCAqKW1hdGNoKSA8PCBzaGlmdCk7CisJCW1hc2tf dmFsIHw9M0QgKHUzMikoKigodTggKiltYXNrKSA8PCBzaGlmdCk7CisKKwkJLyogSWYgbGFzdCBi eXRlIG9yIGxhc3QgYnl0ZSBvZiB3b3JkLCB3cml0ZSB0byByZWcgKi8KKwkJaWYgKCFzaXplIHx8 ICgob2Zmc2V0ICUgNCkgPTNEPTNEIDMpKSB7CisJCQliY21hc3BfbmV0ZmlsdF93cihwcml2LCBu ZmlsdCwgQVNQX05FVEZJTFRfTUFUQ0gsCisJCQkJCSAgbWF0Y2hfdmFsLCBBTElHTl9ET1dOKG9m ZnNldCwgNCkpOworCQkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxU X01BU0ssCisJCQkJCSAgbWFza192YWwsIEFMSUdOX0RPV04ob2Zmc2V0LCA0KSk7CisJCQlmaXJz dF9ieXRlID0zRCB0cnVlOworCQl9IGVsc2UgeworCQkJZmlyc3RfYnl0ZSA9M0QgZmFsc2U7CisJ CX0KKworCQlvZmZzZXQrKzsKKwkJbWF0Y2grKzsKKwkJbWFzaysrOworCX0KKworCXJldHVybiAw OworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfbmV0ZmlsdF9yZXNldF9odyhzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYsCisJCQkJICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQpCit7 CisJaW50IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBNQVhfV0FLRV9GSUxURVJfU0laRTsgaSAr PTNEIDQpIHsKKwkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxUX01B VENILCAwLCBpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxU X01BU0ssIDAsIGkpOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX25ldGZpbHRfdGNwaXA0 X3dyKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwKKwkJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0 X2ZpbHRlciAqbmZpbHQsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90Y3BpcDRfc3BlYyAqbWF0 Y2gsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90Y3BpcDRfc3BlYyAqbWFzaywKKwkJCQkgICAg IHUzMiBvZmZzZXQpCit7CisJX19iZTE2IHZhbF8xNiwgbWFza18xNjsKKworCXZhbF8xNiA9M0Qg aHRvbnMoRVRIX1BfSVApOworCW1hc2tfMTYgPTNEIGh0b25zKDB4RkZGRik7CisJYmNtYXNwX25l dGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCAoRVRIX0FMRU4gKiAyKSArIG9mZnNldCwKKwkJ CQkgJnZhbF8xNiwgJm1hc2tfMTYsIHNpemVvZih2YWxfMTYpKTsKKwliY21hc3BfbmV0ZmlsdF93 cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgMSwKKwkJCQkgJm1hdGNo LT50b3MsICZtYXNrLT50b3MsCisJCQkJIHNpemVvZihtYXRjaC0+dG9zKSk7CisJYmNtYXNwX25l dGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDEyLAorCQkJ CSAmbWF0Y2gtPmlwNHNyYywgJm1hc2stPmlwNHNyYywKKwkJCQkgc2l6ZW9mKG1hdGNoLT5pcDRz cmMpKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsg b2Zmc2V0ICsgMTYsCisJCQkJICZtYXRjaC0+aXA0ZHN0LCAmbWFzay0+aXA0ZHN0LAorCQkJCSBz aXplb2YobWF0Y2gtPmlwNGRzdCkpOworCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBu ZmlsdCwgRVRIX0hMRU4gKyBvZmZzZXQgKyAyMCwKKwkJCQkgJm1hdGNoLT5wc3JjLCAmbWFzay0+ cHNyYywKKwkJCQkgc2l6ZW9mKG1hdGNoLT5wc3JjKSk7CisJYmNtYXNwX25ldGZpbHRfd3JfbV93 YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDIyLAorCQkJCSAmbWF0Y2gtPnBk c3QsICZtYXNrLT5wZHN0LAorCQkJCSBzaXplb2YobWF0Y2gtPnBkc3QpKTsKK30KKworc3RhdGlj IHZvaWQgYmNtYXNwX25ldGZpbHRfdGNwaXA2X3dyKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwK KwkJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkJICAgICBzdHJ1 Y3QgZXRodG9vbF90Y3BpcDZfc3BlYyAqbWF0Y2gsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90 Y3BpcDZfc3BlYyAqbWFzaywKKwkJCQkgICAgIHUzMiBvZmZzZXQpCit7CisJX19iZTE2IHZhbF8x NiwgbWFza18xNjsKKworCXZhbF8xNiA9M0QgaHRvbnMoRVRIX1BfSVBWNik7CisJbWFza18xNiA9 M0QgaHRvbnMoMHhGRkZGKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQs IChFVEhfQUxFTiAqIDIpICsgb2Zmc2V0LAorCQkJCSAmdmFsXzE2LCAmbWFza18xNiwgc2l6ZW9m KHZhbF8xNikpOworCXZhbF8xNiA9M0QgaHRvbnMobWF0Y2gtPnRjbGFzcyA8PCA0KTsKKwltYXNr XzE2ID0zRCBodG9ucyhtYXNrLT50Y2xhc3MgPDwgNCk7CisJYmNtYXNwX25ldGZpbHRfd3JfbV93 YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCwKKwkJCQkgJnZhbF8xNiwgJm1hc2tf MTYsIHNpemVvZih2YWxfMTYpKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZp bHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgOCwKKwkJCQkgJm1hdGNoLT5pcDZzcmMsICZtYXNrLT5p cDZzcmMsCisJCQkJIHNpemVvZihtYXRjaC0+aXA2c3JjKSk7CisJYmNtYXNwX25ldGZpbHRfd3Jf bV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDI0LAorCQkJCSAmbWF0Y2gt PmlwNmRzdCwgJm1hc2stPmlwNmRzdCwKKwkJCQkgc2l6ZW9mKG1hdGNoLT5pcDZkc3QpKTsKKwli Y21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsg NDAsCisJCQkJICZtYXRjaC0+cHNyYywgJm1hc2stPnBzcmMsCisJCQkJIHNpemVvZihtYXRjaC0+ cHNyYykpOworCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwgRVRIX0hMRU4g KyBvZmZzZXQgKyA0MiwKKwkJCQkgJm1hdGNoLT5wZHN0LCAmbWFzay0+cGRzdCwKKwkJCQkgc2l6 ZW9mKG1hdGNoLT5wZHN0KSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX25ldGZpbHRfd3JfdG9f aHcoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCSAgIHN0cnVjdCBiY21hc3BfbmV0X2Zp bHRlciAqbmZpbHQpCit7CisJc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmcyA9M0QgJm5m aWx0LT5mczsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0zRCAwOworCV9fYmUxNiB2YWxfMTYsIG1h c2tfMTY7CisJdTggdmFsXzgsIG1hc2tfODsKKworCS8qIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRz IHdha2UgZmlsdGVycyAqLworCWlmICghbmZpbHQtPndha2VfZmlsdGVyKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCWJjbWFzcF9uZXRmaWx0X3Jlc2V0X2h3KHByaXYsIG5maWx0KTsKKworCWlmIChm cy0+Zmxvd190eXBlICYgRkxPV19NQUNfRVhUKSB7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2Fr ZShwcml2LCBuZmlsdCwgMCwgJmZzLT5oX2V4dC5oX2Rlc3QsCisJCQkJCSAmZnMtPm1fZXh0Lmhf ZGVzdCwKKwkJCQkJIHNpemVvZihmcy0+aF9leHQuaF9kZXN0KSk7CisJfQorCisJaWYgKChmcy0+ Zmxvd190eXBlICYgRkxPV19FWFQpICYmCisJICAgIChmcy0+bV9leHQudmxhbl9ldHlwZSB8fCBm cy0+bV9leHQudmxhbl90Y2kpKSB7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBu ZmlsdCwgKEVUSF9BTEVOICogMiksCisJCQkJCSAmZnMtPmhfZXh0LnZsYW5fZXR5cGUsCisJCQkJ CSAmZnMtPm1fZXh0LnZsYW5fZXR5cGUsCisJCQkJCSBzaXplb2YoZnMtPmhfZXh0LnZsYW5fZXR5 cGUpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCAoKEVUSF9BTEVO ICogMikgKyAyKSwKKwkJCQkJICZmcy0+aF9leHQudmxhbl90Y2ksCisJCQkJCSAmZnMtPm1fZXh0 LnZsYW5fdGNpLAorCQkJCQkgc2l6ZW9mKGZzLT5oX2V4dC52bGFuX3RjaSkpOworCQlvZmZzZXQg Kz0zRCBWTEFOX0hMRU47CisJfQorCisJc3dpdGNoIChmcy0+Zmxvd190eXBlICYgfihGTE9XX0VY VCB8IEZMT1dfTUFDX0VYVCkpIHsKKwljYXNlIEVUSEVSX0ZMT1c6CisJCWJjbWFzcF9uZXRmaWx0 X3dyX21fd2FrZShwcml2LCBuZmlsdCwgMCwKKwkJCQkJICZmcy0+aF91LmV0aGVyX3NwZWMuaF9k ZXN0LAorCQkJCQkgJmZzLT5tX3UuZXRoZXJfc3BlYy5oX2Rlc3QsCisJCQkJCSBzaXplb2YoZnMt PmhfdS5ldGhlcl9zcGVjLmhfZGVzdCkpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJp diwgbmZpbHQsIEVUSF9BTEVOLAorCQkJCQkgJmZzLT5oX3UuZXRoZXJfc3BlYy5oX3NvdXJjZSwK KwkJCQkJICZmcy0+bV91LmV0aGVyX3NwZWMuaF9zb3VyY2UsCisJCQkJCSBzaXplb2YoZnMtPmhf dS5ldGhlcl9zcGVjLmhfc291cmNlKSk7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2 LCBuZmlsdCwgKEVUSF9BTEVOICogMikgKyBvZmZzZXQsCisJCQkJCSAmZnMtPmhfdS5ldGhlcl9z cGVjLmhfcHJvdG8sCisJCQkJCSAmZnMtPm1fdS5ldGhlcl9zcGVjLmhfcHJvdG8sCisJCQkJCSBz aXplb2YoZnMtPmhfdS5ldGhlcl9zcGVjLmhfcHJvdG8pKTsKKworCQlicmVhazsKKwljYXNlIElQ X1VTRVJfRkxPVzoKKwkJdmFsXzE2ID0zRCBodG9ucyhFVEhfUF9JUCk7CisJCW1hc2tfMTYgPTNE IGh0b25zKDB4RkZGRik7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwg KEVUSF9BTEVOICogMikgKyBvZmZzZXQsCisJCQkJCSAmdmFsXzE2LCAmbWFza18xNiwgc2l6ZW9m KHZhbF8xNikpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9I TEVOICsgb2Zmc2V0ICsgMSwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy50b3MsCisJCQkJ CSAmZnMtPm1fdS51c3JfaXA0X3NwZWMudG9zLAorCQkJCQkgc2l6ZW9mKGZzLT5oX3UudXNyX2lw NF9zcGVjLnRvcykpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVU SF9ITEVOICsgb2Zmc2V0ICsgOSwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy5wcm90bywK KwkJCQkJICZmcy0+bV91LnVzcl9pcDRfc3BlYy5wcm90bywKKwkJCQkJIHNpemVvZihmcy0+aF91 LnVzcl9pcDRfc3BlYy5wcm90bykpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwg bmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgMTIsCisJCQkJCSAmZnMtPmhfdS51c3JfaXA0X3Nw ZWMuaXA0c3JjLAorCQkJCQkgJmZzLT5tX3UudXNyX2lwNF9zcGVjLmlwNHNyYywKKwkJCQkJIHNp emVvZihmcy0+aF91LnVzcl9pcDRfc3BlYy5pcDRzcmMpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3Jf bV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDE2LAorCQkJCQkgJmZzLT5o X3UudXNyX2lwNF9zcGVjLmlwNGRzdCwKKwkJCQkJICZmcy0+bV91LnVzcl9pcDRfc3BlYy5pcDRk c3QsCisJCQkJCSBzaXplb2YoZnMtPmhfdS51c3JfaXA0X3NwZWMuaXA0ZHN0KSk7CisJCWlmICgh ZnMtPm1fdS51c3JfaXA0X3NwZWMubDRfNF9ieXRlcykKKwkJCWJyZWFrOworCisJCS8qIE9ubHkg c3VwcG9ydHMgMjAgYnl0ZSBJUHY0IGhlYWRlciAqLworCQl2YWxfOCA9M0QgMHg0NTsKKwkJbWFz a184ID0zRCAweEZGOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVU SF9ITEVOICsgb2Zmc2V0LAorCQkJCQkgJnZhbF84LCAmbWFza184LCBzaXplb2YodmFsXzgpKTsK KwkJYmNtYXNwX25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LAorCQkJCQkgRVRIX0hMRU4g KyAyMCArIG9mZnNldCwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy5sNF80X2J5dGVzLAor CQkJCQkgJmZzLT5tX3UudXNyX2lwNF9zcGVjLmw0XzRfYnl0ZXMsCisJCQkJCSBzaXplb2YoZnMt PmhfdS51c3JfaXA0X3NwZWMubDRfNF9ieXRlcykKKwkJCQkJICk7CisJCWJyZWFrOworCWNhc2Ug VENQX1Y0X0ZMT1c6CisJCXZhbF84ID0zRCBJUFBST1RPX1RDUDsKKwkJbWFza184ID0zRCAweEZG OworCQliY21hc3BfbmV0ZmlsdF90Y3BpcDRfd3IocHJpdiwgbmZpbHQsICZmcy0+aF91LnRjcF9p cDRfc3BlYywKKwkJCQkJICZmcy0+bV91LnRjcF9pcDRfc3BlYywgb2Zmc2V0KTsKKwkJYmNtYXNw X25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDksCisJ CQkJCSAmdmFsXzgsICZtYXNrXzgsIHNpemVvZih2YWxfOCkpOworCQlicmVhazsKKwljYXNlIFVE UF9WNF9GTE9XOgorCQl2YWxfOCA9M0QgSVBQUk9UT19VRFA7CisJCW1hc2tfOCA9M0QgMHhGRjsK KwkJYmNtYXNwX25ldGZpbHRfdGNwaXA0X3dyKHByaXYsIG5maWx0LCAmZnMtPmhfdS51ZHBfaXA0 X3NwZWMsCisJCQkJCSAmZnMtPm1fdS51ZHBfaXA0X3NwZWMsIG9mZnNldCk7CisKKwkJYmNtYXNw X25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDksCisJ CQkJCSAmdmFsXzgsICZtYXNrXzgsIHNpemVvZih2YWxfOCkpOworCQlicmVhazsKKwljYXNlIFRD UF9WNl9GTE9XOgorCQl2YWxfOCA9M0QgSVBQUk9UT19UQ1A7CisJCW1hc2tfOCA9M0QgMHhGRjsK KwkJYmNtYXNwX25ldGZpbHRfdGNwaXA2X3dyKHByaXYsIG5maWx0LCAmZnMtPmhfdS50Y3BfaXA2 X3NwZWMsCisJCQkJCSAmZnMtPm1fdS50Y3BfaXA2X3NwZWMsIG9mZnNldCk7CisJCWJjbWFzcF9u ZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwgRVRIX0hMRU4gKyBvZmZzZXQgKyA2LAorCQkJ CQkgJnZhbF84LCAmbWFza184LCBzaXplb2YodmFsXzgpKTsKKwkJYnJlYWs7CisJY2FzZSBVRFBf VjZfRkxPVzoKKwkJdmFsXzggPTNEIElQUFJPVE9fVURQOworCQltYXNrXzggPTNEIDB4RkY7CisJ CWJjbWFzcF9uZXRmaWx0X3RjcGlwNl93cihwcml2LCBuZmlsdCwgJmZzLT5oX3UudWRwX2lwNl9z cGVjLAorCQkJCQkgJmZzLT5tX3UudWRwX2lwNl9zcGVjLCBvZmZzZXQpOworCQliY21hc3BfbmV0 ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgNiwKKwkJCQkJ ICZ2YWxfOCwgJm1hc2tfOCwgc2l6ZW9mKHZhbF84KSk7CisJCWJyZWFrOworCX0KKworCWJjbWFz cF9uZXRmaWx0X2h3X2VuX3dha2UocHJpdiwgbmZpbHQpOworCisJcmV0dXJuIDA7Cit9CisKK3Zv aWQgYmNtYXNwX25ldGZpbHRfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJ c3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJYm9vbCB3cml0ZSA9 M0QgZmFsc2U7CisJaW50IHJldCwgaTsKKworCS8qIFdyaXRlIGFsbCBmaWx0ZXJzIHRvIEhXICov CisJZm9yIChpID0zRCAwOyBpIDwgTlVNX05FVF9GSUxURVJTOyBpKyspIHsKKwkJLyogSWYgdGhl IGZpbHRlciBkb2VzIG5vdCBtYXRjaCB0aGUgcG9ydCwgc2tpcCBwcm9ncmFtbWluZy4gKi8KKwkJ aWYgKCFwcml2LT5uZXRfZmlsdGVyc1tpXS5jbGFpbWVkIHx8CisJCSAgICBwcml2LT5uZXRfZmls dGVyc1tpXS5wb3J0ICE9M0QgaW50Zi0+cG9ydCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChpID4g MCAmJiAoaSAlIDIpICYmCisJCSAgICBwcml2LT5uZXRfZmlsdGVyc1tpXS53YWtlX2ZpbHRlciAm JgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaSAtIDFdLndha2VfZmlsdGVyKQorCQkJY29udGlu dWU7CisKKwkJcmV0ID0zRCBiY21hc3BfbmV0ZmlsdF93cl90b19odyhwcml2LCAmcHJpdi0+bmV0 X2ZpbHRlcnNbaV0pOworCQlpZiAoIXJldCkKKwkJCXdyaXRlID0zRCB0cnVlOworCX0KKworCS8q IFN1Y2Nlc3NmdWxseSBwcm9ncmFtbWVkIGF0IGxlYXN0IG9uZSB3YWtlIGZpbHRlcgorCSAqIHNv IGVuYWJsZSB0b3AgbGV2ZWwgd2FrZSBjb25maWcKKwkgKi8KKwlpZiAod3JpdGUpCisJCXJ4X2Zp bHRlcl9jb3JlX3dsKHByaXYsIChBU1BfUlhfRklMVEVSX09QVVRfRU4gfAorCQkJCSAgQVNQX1JY X0ZJTFRFUl9MTlJfTUQgfAorCQkJCSAgQVNQX1JYX0ZJTFRFUl9HRU5fV0tfRU4gfAorCQkJCSAg QVNQX1JYX0ZJTFRFUl9OVF9GTFRfRU4pLAorCQkJCSAgQVNQX1JYX0ZJTFRFUl9CTEtfQ1RSTCk7 Cit9CisKK3ZvaWQgYmNtYXNwX25ldGZpbHRfZ2V0X2FsbF9hY3RpdmUoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCB1MzIgKnJ1bGVfbG9jPQpzLAorCQkJCSAgIHUzMiAqcnVsZV9jbnQpCit7CisJ c3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IGogPTNEIDAs IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTkVUX0ZJTFRFUlM7IGkrKykgeworCQlpZiAo IXByaXYtPm5ldF9maWx0ZXJzW2ldLmNsYWltZWQgfHwKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJz W2ldLnBvcnQgIT0zRCBpbnRmLT5wb3J0KQorCQkJY29udGludWU7CisKKwkJaWYgKGkgPiAwICYm IChpICUgMikgJiYKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJzW2ldLndha2VfZmlsdGVyICYmCisJ CSAgICBwcml2LT5uZXRfZmlsdGVyc1tpIC0gMV0ud2FrZV9maWx0ZXIpCisJCQljb250aW51ZTsK KworCQlydWxlX2xvY3NbaisrXSA9M0QgcHJpdi0+bmV0X2ZpbHRlcnNbaV0uZnMubG9jYXRpb247 CisJfQorCisJKnJ1bGVfY250ID0zRCBqOworfQorCitpbnQgYmNtYXNwX25ldGZpbHRfZ2V0X2Fj dGl2ZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IGNudCA9M0QgMCwgaTsKKworCWZvciAoaSA9M0Qg MDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCWlmICghcHJpdi0+bmV0X2ZpbHRlcnNb aV0uY2xhaW1lZCB8fAorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGludGYt PnBvcnQpCisJCQljb250aW51ZTsKKworCQkvKiBTa2lwIG92ZXIgYSB3YWtlIGZpbHRlciBwYWly ICovCisJCWlmIChpID4gMCAmJiAoaSAlIDIpICYmCisJCSAgICBwcml2LT5uZXRfZmlsdGVyc1tp XS53YWtlX2ZpbHRlciAmJgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaSAtIDFdLndha2VfZmls dGVyKQorCQkJY29udGludWU7CisKKwkJY250Kys7CisJfQorCisJcmV0dXJuIGNudDsKK30KKwor Ym9vbCBiY21hc3BfbmV0ZmlsdF9jaGVja19kdXAoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAor CQkJICAgICAgc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmcykKK3sKKwlzdHJ1Y3QgYmNt YXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKwlzdHJ1Y3QgZXRodG9vbF9yeF9mbG93 X3NwZWMgKmN1cjsKKwlzaXplX3QgZnNfc2l6ZSA9M0QgMDsKKwlpbnQgaTsKKworCWZvciAoaSA9 M0QgMDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCWlmICghcHJpdi0+bmV0X2ZpbHRl cnNbaV0uY2xhaW1lZCB8fAorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGlu dGYtPnBvcnQpCisJCQljb250aW51ZTsKKworCQljdXIgPTNEICZwcml2LT5uZXRfZmlsdGVyc1tp XS5mczsKKworCQlpZiAoY3VyLT5mbG93X3R5cGUgIT0zRCBmcy0+Zmxvd190eXBlIHx8CisJCSAg ICBjdXItPnJpbmdfY29va2llICE9M0QgZnMtPnJpbmdfY29va2llKQorCQkJY29udGludWU7CisK KwkJc3dpdGNoIChmcy0+Zmxvd190eXBlICYgfihGTE9XX0VYVCB8IEZMT1dfTUFDX0VYVCkpIHsK KwkJY2FzZSBFVEhFUl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBldGhoZHIp OworCQkJYnJlYWs7CisJCWNhc2UgSVBfVVNFUl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9m KHN0cnVjdCBldGh0b29sX3VzcmlwNF9zcGVjKTsKKwkJCWJyZWFrOworCQljYXNlIFRDUF9WNl9G TE9XOgorCQljYXNlIFVEUF9WNl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBl dGh0b29sX3RjcGlwNl9zcGVjKTsKKwkJCWJyZWFrOworCQljYXNlIFRDUF9WNF9GTE9XOgorCQlj YXNlIFVEUF9WNF9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBldGh0b29sX3Rj cGlwNF9zcGVjKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY29udGludWU7CisJCX0KKwor CQlpZiAobWVtY21wKCZjdXItPmhfdSwgJmZzLT5oX3UsIGZzX3NpemUpIHx8CisJCSAgICBtZW1j bXAoJmN1ci0+bV91LCAmZnMtPm1fdSwgZnNfc2l6ZSkpCisJCQljb250aW51ZTsKKworCQlpZiAo Y3VyLT5mbG93X3R5cGUgJiBGTE9XX0VYVCkgeworCQkJaWYgKGN1ci0+aF9leHQudmxhbl9ldHlw ZSAhPTNEIGZzLT5oX2V4dC52bGFuX2V0eXBlIHx8CisJCQkgICAgY3VyLT5tX2V4dC52bGFuX2V0 eXBlICE9M0QgZnMtPm1fZXh0LnZsYW5fZXR5cGUgfHwKKwkJCSAgICBjdXItPmhfZXh0LnZsYW5f dGNpICE9M0QgZnMtPmhfZXh0LnZsYW5fdGNpIHx8CisJCQkgICAgY3VyLT5tX2V4dC52bGFuX3Rj aSAhPTNEIGZzLT5tX2V4dC52bGFuX3RjaSB8fAorCQkJICAgIGN1ci0+aF9leHQuZGF0YVswXSAh PTNEIGZzLT5oX2V4dC5kYXRhWzBdKQorCQkJCWNvbnRpbnVlOworCQl9CisJCWlmIChjdXItPmZs b3dfdHlwZSAmIEZMT1dfTUFDX0VYVCkgeworCQkJaWYgKG1lbWNtcCgmY3VyLT5oX2V4dC5oX2Rl c3QsCisJCQkJICAgJmZzLT5oX2V4dC5oX2Rlc3QsIEVUSF9BTEVOKSB8fAorCQkJICAgIG1lbWNt cCgmY3VyLT5tX2V4dC5oX2Rlc3QsCisJCQkJICAgJmZzLT5tX2V4dC5oX2Rlc3QsIEVUSF9BTEVO KSkKKwkJCQljb250aW51ZTsKKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBm YWxzZTsKK30KKworLyogSWYgbm8gbmV0d29yayBmaWx0ZXIgZm91bmQsIHJldHVybiBvcGVuIGZp bHRlci4KKyAqIElmIG5vIG1vcmUgb3BlbiBmaWx0ZXJzIHJldHVybiBOVUxMCisgKi8KK3N0cnVj dCBiY21hc3BfbmV0X2ZpbHRlciAqYmNtYXNwX25ldGZpbHRfZ2V0X2luaXQoc3RydWN0IGJjbWFz cF9pbnRmICppbnRmLAorCQkJCQkJICBpbnQgbG9jLCBib29sIHdha2VfZmlsdGVyLAorCQkJCQkJ ICBib29sIGluaXQpCit7CisJc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdGVyID0zRCBO VUxMOworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCWludCBp LCBvcGVuX2luZGV4ID0zRCAtMTsKKworCS8qIENoZWNrIHdoZXRoZXIgd2UgZXhjZWVkIHRoZSBm aWx0ZXIgdGFibGUgY2FwYWNpdHkgKi8KKwlpZiAobG9jICE9M0QgUlhfQ0xTX0xPQ19BTlkgJiYg bG9jID49M0QgTlVNX05FVF9GSUxURVJTKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwor CS8qIElmIHRoZSBmaWx0ZXIgbG9jYXRpb24gaXMgYnVzeSAoYWxyZWFkeSBjbGFpbWVkKSBhbmQg d2UgYXJlIGluaXRpYWxpemk9Cm5nCisJICogdGhlIGZpbHRlciAoaW5zZXJ0aW9uKSwgcmV0dXJu IGEgYnVzeSBlcnJvciBjb2RlLgorCSAqLworCWlmIChsb2MgIT0zRCBSWF9DTFNfTE9DX0FOWSAm JiBpbml0ICYmIHByaXYtPm5ldF9maWx0ZXJzW2xvY10uY2xhaW1lZCkKKwkJcmV0dXJuIEVSUl9Q VFIoLUVCVVNZKTsKKworCS8qIFdlIG5lZWQgdHdvIGZpbHRlcnMgZm9yIHdha2UtdXAsIHNvIHdl IGNhbm5vdCB1c2UgYW4gb2RkIGZpbHRlciAqLworCWlmICh3YWtlX2ZpbHRlciAmJiBsb2MgIT0z RCBSWF9DTFNfTE9DX0FOWSAmJiAobG9jICUgMikpCisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp OworCisJLyogSW5pdGlhbGl6ZSB0aGUgbG9vcCBpbmRleCBiYXNlZCBvbiB0aGUgZGVzaXJlZCBs b2NhdGlvbiBvciBmcm9tIDAgKi8KKwlpID0zRCBsb2MgPTNEPTNEIFJYX0NMU19MT0NfQU5ZID8g MCA6IGxvYzsKKworCWZvciAoIDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCS8qIEZv dW5kIG1hdGNoaW5nIG5ldHdvcmsgZmlsdGVyICovCisJCWlmICghaW5pdCAmJgorCQkgICAgcHJp di0+bmV0X2ZpbHRlcnNbaV0uY2xhaW1lZCAmJgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0u aHdfaW5kZXggPTNEPTNEIGkgJiYKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJzW2ldLnBvcnQgPTNE PTNEIGludGYtPnBvcnQpCisJCQlyZXR1cm4gJnByaXYtPm5ldF9maWx0ZXJzW2ldOworCisJCS8q IElmIHdlIGRvbid0IG5lZWQgYSBuZXcgZmlsdGVyIG9yIG5ldyBmaWx0ZXIgYWxyZWFkeSBmb3Vu ZCAqLworCQlpZiAoIWluaXQgfHwgb3Blbl9pbmRleCA+PTNEIDApCisJCQljb250aW51ZTsKKwor CQkvKiBXYWtlIGZpbHRlciBjb25zbGlkYXRlcyB0d28gZmlsdGVycyB0byBjb3ZlciBtb3JlIGJ5 dGVzCisJCSAqIFdha2UgZmlsdGVyIGlzIG9wZW4gaWYuLi4KKwkJICogMS4gSXQgaXMgYW4gZXZl biBmaWx0ZXIKKwkJICogMi4gVGhlIGN1cnJlbnQgYW5kIG5leHQgZmlsdGVyIGlzIG5vdCBjbGFp bWVkCisJCSAqLworCQlpZiAod2FrZV9maWx0ZXIgJiYgIShpICUgMikgJiYgIXByaXYtPm5ldF9m aWx0ZXJzW2ldLmNsYWltZWQgJiYKKwkJICAgICFwcml2LT5uZXRfZmlsdGVyc1tpICsgMV0uY2xh aW1lZCkKKwkJCW9wZW5faW5kZXggPTNEIGk7CisJCWVsc2UgaWYgKCFwcml2LT5uZXRfZmlsdGVy c1tpXS5jbGFpbWVkKQorCQkJb3Blbl9pbmRleCA9M0QgaTsKKwl9CisKKwlpZiAob3Blbl9pbmRl eCA+PTNEIDApIHsKKwkJbmZpbHRlciA9M0QgJnByaXYtPm5ldF9maWx0ZXJzW29wZW5faW5kZXhd OworCQluZmlsdGVyLT5jbGFpbWVkID0zRCB0cnVlOworCQluZmlsdGVyLT5wb3J0ID0zRCBpbnRm LT5wb3J0OworCQluZmlsdGVyLT5od19pbmRleCA9M0Qgb3Blbl9pbmRleDsKKwl9CisKKwlpZiAo d2FrZV9maWx0ZXIgJiYgb3Blbl9pbmRleCA+PTNEIDApIHsKKwkJLyogQ2xhaW0gbmV4dCBmaWx0 ZXIgKi8KKwkJcHJpdi0+bmV0X2ZpbHRlcnNbb3Blbl9pbmRleCArIDFdLmNsYWltZWQgPTNEIHRy dWU7CisJCXByaXYtPm5ldF9maWx0ZXJzW29wZW5faW5kZXggKyAxXS53YWtlX2ZpbHRlciA9M0Qg dHJ1ZTsKKwkJbmZpbHRlci0+d2FrZV9maWx0ZXIgPTNEIHRydWU7CisJfQorCisJcmV0dXJuIG5m aWx0ZXIgPyBuZmlsdGVyIDogRVJSX1BUUigtRUlOVkFMKTsKK30KKwordm9pZCBiY21hc3BfbmV0 ZmlsdF9yZWxlYXNlKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCSAgICBzdHJ1Y3QgYmNt YXNwX25ldF9maWx0ZXIgKm5maWx0KQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0Qg aW50Zi0+cGFyZW50OworCisJaWYgKG5maWx0LT53YWtlX2ZpbHRlcikgeworCQltZW1zZXQoJnBy aXYtPm5ldF9maWx0ZXJzW25maWx0LT5od19pbmRleCArIDFdLCAwLAorCQkgICAgICAgc2l6ZW9m KHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlcikpOworCX0KKworCW1lbXNldChuZmlsdCwgMCwgc2l6 ZW9mKHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlcikpOworfQorCiBzdGF0aWMgdm9pZCBiY21hc3Bf YWRkcl90b191aW50KHVuc2lnbmVkIGNoYXIgKmFkZHIsIHUzMiAqaGlnaCwgdTMyICpsb3cpCiB7 CiAJKmhpZ2ggPTNEICh1MzIpKGFkZHJbMF0gPDwgOCB8IGFkZHJbMV0pOwpAQCAtMzM0LDYgKzky NSw5IEBAIHN0YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2luaXRfZmlsdGVycyhzdHJ1Y3QgYmNtYXNw X3ByaXY9CiAqcHJpdikKIAkJcHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gPTNEIDA7CiAJfQo9MjAK Kwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTkVUX0ZJTFRFUlM7IGkrKykKKwkJcnhfZmlsdGVyX2Nv cmVfd2wocHJpdiwgMHgwLCBBU1BfUlhfRklMVEVSX05FVF9DRkcoaSkpOworCiAJLyogVG9wIGxl dmVsIGZpbHRlciBlbmFibGUgYml0IHNob3VsZCBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcywgc2V0 CiAJICogR0VOX1dBS0VfQ0xFQVIgdG8gY2xlYXIgdGhlIG5ldHdvcmsgZmlsdGVyIHdha2UtdXAg d2hpY2ggd291bGQKIAkgKiBvdGhlcndpc2UgYmUgc3RpY2t5CkBAIC02NTcsNiArMTI1MSw3IEBA IHN0YXRpYyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ c3Bpbl9sb2NrX2luaXQoJnByaXYtPm1kYV9sb2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+ Y2xrX2xvY2spOwogCW11dGV4X2luaXQoJnByaXYtPndvbF9sb2NrKTsKKwltdXRleF9pbml0KCZw cml2LT5uZXRfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmludGZzKTsKPTIwCiAJcGRh dGEgPTNEIGRldmljZV9nZXRfbWF0Y2hfZGF0YSgmcGRldi0+ZGV2KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9l dGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggMmNkZjIyNzMyZjRjLi5mYmJk ZTA0YTBlYWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Au aApAQCAtMTA2LDYgKzEwNiwxNCBAQAogI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNF VF9MM18xKHZhbCkJKCh2YWwpIDw8IDE2KQogI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09G RlNFVF9MNCh2YWwpCSgodmFsKSA8PCAyNCkKPTIwCitlbnVtIGFzcF9yeF9uZXRfZmlsdGVyX2Js b2NrIHsKKwlBU1BfUlhfRklMVEVSX05FVF9MMiA9M0QgMCwKKwlBU1BfUlhfRklMVEVSX05FVF9M M18wLAorCUFTUF9SWF9GSUxURVJfTkVUX0wzXzEsCisJQVNQX1JYX0ZJTFRFUl9ORVRfTDQsCisJ QVNQX1JYX0ZJTFRFUl9ORVRfQkxPQ0tfTUFYCit9OworCiAjZGVmaW5lIEFTUF9FRFBLVF9PRkZT RVQJCQkweDljMDAwCiAjZGVmaW5lICBBU1BfRURQS1RfRU5BQkxFCQkJMHg0CiAjZGVmaW5lICAg QVNQX0VEUEtUX0VOQUJMRV9FTgkJCUJJVCgwKQpAQCAtMzA5LDYgKzMxNywxNyBAQCBzdHJ1Y3Qg YmNtYXNwX2ludGYgewogCXVuc2lnbmVkIGludAkJCXdvbF9pcnFfZW5hYmxlZDoxOwogfTsKPTIw CisjZGVmaW5lIE5VTV9ORVRfRklMVEVSUwkJCQkzMgorc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVy IHsKKwlzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMJZnM7CisKKwlib29sCQkJCWNsYWltZWQ7 CisJYm9vbAkJCQl3YWtlX2ZpbHRlcjsKKworCWludAkJCQlwb3J0OworCXVuc2lnbmVkIGludAkJ CWh3X2luZGV4OworfTsKKwogI2RlZmluZSBOVU1fTURBX0ZJTFRFUlMJCQkJMzIKIHN0cnVjdCBi Y21hc3BfbWRhX2ZpbHRlciB7CiAJLyogQ3VycmVudCBvd25lciBvZiB0aGlzIGZpbHRlciAqLwpA QCAtMzYxLDYgKzM4MCwxMSBAQCBzdHJ1Y3QgYmNtYXNwX3ByaXYgewo9MjAKIAkvKiBQcm90ZWN0 cyBhY2Nlc3NlcyB0byBBU1BfQ1RSTF9DTE9DS19DVFJMICovCiAJc3BpbmxvY2tfdAkJCWNsa19s b2NrOworCisJc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyCW5ldF9maWx0ZXJzW05VTV9ORVRfRklM VEVSU107CisKKwkvKiBOZXR3b3JrIGZpbHRlciBsb2NrICovCisJc3RydWN0IG11dGV4CQkJbmV0 X2xvY2s7CiB9Owo9MjAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBiY21hc3BfaW50Zl9y eF9kZXNjX3JlYWQoc3RydWN0IGJjbWFzcF9pbnRmICppPQpudGYpCkBAIC01MTgsNCArNTQyLDIw IEBAIHZvaWQgYmNtYXNwX2Rpc2FibGVfYWxsX2ZpbHRlcnMoc3RydWN0IGJjbWFzcF9pbnRmICpp bj0KdGYpOwo9MjAKIHZvaWQgYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2ludGYoc3RydWN0IGJjbWFz cF9pbnRmICppbnRmLCBib29sIGVuKTsKPTIwCitzdHJ1Y3QgYmNtYXNwX25ldF9maWx0ZXIgKmJj bWFzcF9uZXRmaWx0X2dldF9pbml0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCQkJCSAg aW50IGxvYywgYm9vbCB3YWtlX2ZpbHRlciwKKwkJCQkJCSAgYm9vbCBpbml0KTsKKworYm9vbCBi Y21hc3BfbmV0ZmlsdF9jaGVja19kdXAoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAorCQkJICAg ICAgc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmcyk7CisKK3ZvaWQgYmNtYXNwX25ldGZp bHRfcmVsZWFzZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkgICAgc3RydWN0IGJjbWFz cF9uZXRfZmlsdGVyICpuZmlsdCk7CisKK2ludCBiY21hc3BfbmV0ZmlsdF9nZXRfYWN0aXZlKHN0 cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7CisKK3ZvaWQgYmNtYXNwX25ldGZpbHRfZ2V0X2FsbF9h Y3RpdmUoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1MzIgKnJ1bGVfbG9jPQpzLAorCQkJCSAg IHUzMiAqcnVsZV9jbnQpOworCit2b2lkIGJjbWFzcF9uZXRmaWx0X3N1c3BlbmQoc3RydWN0IGJj bWFzcF9pbnRmICppbnRmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jIGIvZHJpdmVycy89Cm5ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKaW5kZXggYWUyNGExZjc0ZDQ5Li5lZGRk MWM0M2YwMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3Ay L2JjbWFzcF9ldGh0b29sLmMKQEAgLTMwLDcgKzMwLDcgQEAgc3RhdGljIHZvaWQgYmNtYXNwX3Nl dF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1PQozMiBsZXZlbCkKIAlpbnRmLT5t c2dfZW5hYmxlID0zRCBsZXZlbDsKIH0KPTIwCi0jZGVmaW5lIEJDTUFTUF9TVVBQT1JURURfV0FL RSAgIChXQUtFX01BR0lDIHwgV0FLRV9NQUdJQ1NFQ1VSRSkKKyNkZWZpbmUgQkNNQVNQX1NVUFBP UlRFRF9XQUtFICAgKFdBS0VfTUFHSUMgfCBXQUtFX01BR0lDU0VDVVJFIHwgV0FLRV9GSUxUPQpF UikKIHN0YXRpYyB2b2lkIGJjbWFzcF9nZXRfd29sKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBldGh0b29sX3dvbGluZm8gPQoqd29sKQogewogCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTY0LDYgKzY0LDEzMyBAQCBzdGF0aWMgaW50IGJj bWFzcF9zZXRfd29sKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjPQp0IGV0aHRvb2xfd29s aW5mbyAqd29sKQogCXJldHVybiAwOwogfQo9MjAKK3N0YXRpYyBpbnQgYmNtYXNwX2Zsb3dfaW5z ZXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3J4bmZjPQogKmNtZCkK K3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJc3Ry dWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdGVyOworCXUzMiBsb2MgPTNEIGNtZC0+ZnMubG9j YXRpb247CisJYm9vbCB3YWtlID0zRCBmYWxzZTsKKworCWlmIChjbWQtPmZzLnJpbmdfY29va2ll ID0zRD0zRCBSWF9DTFNfRkxPV19XQUtFKQorCQl3YWtlID0zRCB0cnVlOworCisJLyogQ3VycmVu dGx5IG9ubHkgc3VwcG9ydHMgV0FLRSBmaWx0ZXJzICovCisJaWYgKCF3YWtlKQorCQlyZXR1cm4g LUVPUE5PVFNVUFA7CisKKwlzd2l0Y2ggKGNtZC0+ZnMuZmxvd190eXBlICYgfihGTE9XX0VYVCB8 IEZMT1dfTUFDX0VYVCkpIHsKKwljYXNlIEVUSEVSX0ZMT1c6CisJY2FzZSBJUF9VU0VSX0ZMT1c6 CisJY2FzZSBUQ1BfVjRfRkxPVzoKKwljYXNlIFVEUF9WNF9GTE9XOgorCWNhc2UgVENQX1Y2X0ZM T1c6CisJY2FzZSBVRFBfVjZfRkxPVzoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1F T1BOT1RTVVBQOworCX0KKworCS8qIENoZWNrIGlmIGZpbHRlciBhbHJlYWR5IGV4aXN0cyAqLwor CWlmIChiY21hc3BfbmV0ZmlsdF9jaGVja19kdXAoaW50ZiwgJmNtZC0+ZnMpKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCW5maWx0ZXIgPTNEIGJjbWFzcF9uZXRmaWx0X2dldF9pbml0KGludGYsIGxv Yywgd2FrZSwgdHJ1ZSk7CisJaWYgKElTX0VSUihuZmlsdGVyKSkKKwkJcmV0dXJuIFBUUl9FUlIo bmZpbHRlcik7CisKKwkvKiBSZXR1cm4gdGhlIGxvY2F0aW9uIHdoZXJlIHdlIGRpZCBpbnNlcnQg dGhlIGZpbHRlciAqLworCWNtZC0+ZnMubG9jYXRpb24gPTNEIG5maWx0ZXItPmh3X2luZGV4Owor CW1lbWNweSgmbmZpbHRlci0+ZnMsICZjbWQtPmZzLCBzaXplb2Yoc3RydWN0IGV0aHRvb2xfcnhf Zmxvd19zcGVjKSk7CisKKwkvKiBTaW5jZSB3ZSBvbmx5IHN1cHBvcnQgd2FrZSBmaWx0ZXJzLCBk ZWZlciByZWdpc3RlciBwcm9ncmFtbWluZyB0aWxsCisJICogc3VzcGVuZCB0aW1lLgorCSAqLwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbWFzcF9mbG93X2RlbGV0ZShzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yeG5mYz0KICpjbWQpCit7CisJc3RydWN0IGJj bWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBiY21hc3BfbmV0 X2ZpbHRlciAqbmZpbHRlcjsKKworCW5maWx0ZXIgPTNEIGJjbWFzcF9uZXRmaWx0X2dldF9pbml0 KGludGYsIGNtZC0+ZnMubG9jYXRpb24sIGZhbHNlLCBmYWxzZSk7CisJaWYgKElTX0VSUihuZmls dGVyKSkKKwkJcmV0dXJuIFBUUl9FUlIobmZpbHRlcik7CisKKwliY21hc3BfbmV0ZmlsdF9yZWxl YXNlKGludGYsIG5maWx0ZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNw X2Zsb3dfZ2V0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Ziwgc3RydWN0IGV0aHRvb2xfcnhuZmMg PQoqY21kKQoreworCXN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHRlcjsKKworCW5maWx0 ZXIgPTNEIGJjbWFzcF9uZXRmaWx0X2dldF9pbml0KGludGYsIGNtZC0+ZnMubG9jYXRpb24sIGZh bHNlLCBmYWxzZSk7CisJaWYgKElTX0VSUihuZmlsdGVyKSkKKwkJcmV0dXJuIFBUUl9FUlIobmZp bHRlcik7CisKKwltZW1jcHkoJmNtZC0+ZnMsICZuZmlsdGVyLT5mcywgc2l6ZW9mKG5maWx0ZXIt PmZzKSk7CisKKwljbWQtPmRhdGEgPTNEIE5VTV9ORVRfRklMVEVSUzsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGJjbWFzcF9zZXRfcnhuZmMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IGV0aHRvb2xfcnhuZmMgKj0KY21kKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwlpbnQgcmV0ID0zRCAtRU9QTk9UU1VQUDsKKworCW11 dGV4X2xvY2soJmludGYtPnBhcmVudC0+bmV0X2xvY2spOworCisJc3dpdGNoIChjbWQtPmNtZCkg eworCWNhc2UgRVRIVE9PTF9TUlhDTFNSTElOUzoKKwkJcmV0ID0zRCBiY21hc3BfZmxvd19pbnNl cnQoZGV2LCBjbWQpOworCQlicmVhazsKKwljYXNlIEVUSFRPT0xfU1JYQ0xTUkxERUw6CisJCXJl dCA9M0QgYmNtYXNwX2Zsb3dfZGVsZXRlKGRldiwgY21kKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoK KwkJYnJlYWs7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZpbnRmLT5wYXJlbnQtPm5ldF9sb2NrKTsK KworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX2dldF9yeG5mYyhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyAqPQpjbWQsCisJCQkgICAgdTMy ICpydWxlX2xvY3MpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJp dihkZXYpOworCWludCBlcnIgPTNEIDA7CisKKwltdXRleF9sb2NrKCZpbnRmLT5wYXJlbnQtPm5l dF9sb2NrKTsKKworCXN3aXRjaCAoY21kLT5jbWQpIHsKKwljYXNlIEVUSFRPT0xfR1JYQ0xTUkxD TlQ6CisJCWNtZC0+cnVsZV9jbnQgPTNEIGJjbWFzcF9uZXRmaWx0X2dldF9hY3RpdmUoaW50Zik7 CisJCS8qIFdlIHN1cHBvcnQgc3BlY2lmeWluZyBydWxlIGxvY2F0aW9ucyAqLworCQljbWQtPmRh dGEgfD0zRCBSWF9DTFNfTE9DX1NQRUNJQUw7CisJCWJyZWFrOworCWNhc2UgRVRIVE9PTF9HUlhD TFNSVUxFOgorCQllcnIgPTNEIGJjbWFzcF9mbG93X2dldChpbnRmLCBjbWQpOworCQlicmVhazsK KwljYXNlIEVUSFRPT0xfR1JYQ0xTUkxBTEw6CisJCWJjbWFzcF9uZXRmaWx0X2dldF9hbGxfYWN0 aXZlKGludGYsIHJ1bGVfbG9jcywgJmNtZC0+cnVsZV9jbnQpOworCQljbWQtPmRhdGEgPTNEIE5V TV9ORVRfRklMVEVSUzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZXJyID0zRCAtRU9QTk9UU1VQ UDsKKwkJYnJlYWs7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZpbnRmLT5wYXJlbnQtPm5ldF9sb2Nr KTsKKworCXJldHVybiBlcnI7Cit9CisKIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3Bf ZXRodG9vbF9vcHMgPTNEIHsKIAkuZ2V0X2RydmluZm8JCT0zRCBiY21hc3BfZ2V0X2RydmluZm8s CiAJLmdldF9saW5rCQk9M0QgZXRodG9vbF9vcF9nZXRfbGluaywKQEAgLTczLDQgKzIwMCw2IEBA IGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9vcHMgPTNEIHsKIAkuc2V0 X21zZ2xldmVsCQk9M0QgYmNtYXNwX3NldF9tc2dsZXZlbCwKIAkuZ2V0X3dvbAkJPTNEIGJjbWFz cF9nZXRfd29sLAogCS5zZXRfd29sCQk9M0QgYmNtYXNwX3NldF93b2wsCisJLmdldF9yeG5mYwkJ PTNEIGJjbWFzcF9nZXRfcnhuZmMsCisJLnNldF9yeG5mYwkJPTNEIGJjbWFzcF9zZXRfcnhuZmMs CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21h c3BfaW50Zi5jIGIvZHJpdmVycy9uZXQ9Ci9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9p bnRmLmMKaW5kZXggMjFhOGQxNWE0N2Q4Li5hZDg0MjIzMzRmMzggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKQEAgLTEzMDAsNiArMTMw MCw5IEBAIHN0YXRpYyB2b2lkIGJjbWFzcF9zdXNwZW5kX3RvX3dvbChzdHJ1Y3QgYmNtYXNwX2lu dGYgPQoqaW50ZikKIAl9CiAJdW1hY193bChpbnRmLCByZWcsIFVNQ19NUERfQ1RSTCk7Cj0yMAor CWlmIChpbnRmLT53b2xvcHRzICYgV0FLRV9GSUxURVIpCisJCWJjbWFzcF9uZXRmaWx0X3N1c3Bl bmQoaW50Zik7CisKIAkvKiBVbmlNQUMgcmVjZWl2ZSBuZWVkcyB0byBiZSB0dXJuZWQgb24gKi8K IAl1bWFjX2VuYWJsZV9zZXQoaW50ZiwgVU1DX0NNRF9SWF9FTiwgMSk7Cj0yMAotLT0yMAoyLjcu NAo= --000000000000a72096060065b9d7 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIGYqAw1JqwD9/K7srUo/ZCZ87HNi6gUgKOiy xRYSBbyWMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkyNlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAyWj2Z5HJqggnnwNIJNc53iAJXrgWHxq1D+bdbH8k0fo6hqWs0mNr/ +Iu1lRsCZie8fkXqsnane4HxUCzsHoc8gnP+fumAoqt5jYtkNWHlENFV7N9bY+PkQBK65GgFECiw E42zyPK14kKxoBhE0J/ZV/f6Y3ZqBPULLJ2eZN9DOoT63kxvbI844LawcDuk/nnXMm/GuVlGDvd8 svL9+k5H1AHifpWMvfJTniggqF7/AYYr+rMDKIC62Ncmrn8YK1Vmoysl/jWRHllPgDFuyOyf0REJ gCm2YGzI6YlyM0aEGQIvFPhPP6rECoWwzWKw65Kj37qooyWqgd6QOxXu7VV6 --000000000000a72096060065b9d7-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14AE7C001DF for ; Thu, 13 Jul 2023 22:20:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234290AbjGMWT7 (ORCPT ); Thu, 13 Jul 2023 18:19:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233832AbjGMWTt (ORCPT ); Thu, 13 Jul 2023 18:19:49 -0400 Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64FFD30F2 for ; Thu, 13 Jul 2023 15:19:30 -0700 (PDT) Received: by mail-qk1-x72f.google.com with SMTP id af79cd13be357-7659cb9c42aso110178285a.3 for ; Thu, 13 Jul 2023 15:19:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286769; x=1691878769; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=6il9Bf6X04K4XYhxvSsbkJIi2bojbSPSBB2Yiiz7Zjw=; b=ZjNSLo5xDnLlTzteuY4IKZzKyFRJWH8R7Vn1/4/eWZOZgxbU7nhlNpqU9j43NIKiq+ l1Gy4IuGX4LUrTCGRWjrrWTUhREJcNEEtVlBr3Rqulif/3X4atHbBUVdHdQ6ZimMXWEp Wy9qh7Jh8ANKYka0j6k7+U1xd2MHgnJgZQpjU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286769; x=1691878769; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6il9Bf6X04K4XYhxvSsbkJIi2bojbSPSBB2Yiiz7Zjw=; b=d20couDj8Wm7fdjivRnh8fHMVOX6grKD0/jrADPvC0AL0GthoJYAlrgHefIN1o/FIF fPGf5yknVoLuF1/kBGSneag+PJTfOcaeRsGzFGg3WZoHs1Ax2khnDuVloJRiuRotsodv U4bZnQQMNHKsyH2WwHMyEIgYZdPP4cUknquZBVl67YLkEc/qi6OTze5pAU812NMILSoJ QPUlSP0XVRpIRWCrYLLcdeaxVkh53GXQ01jncPIpQYZ40hZba0KU8NBJgwqxTbLGelHV McL2DALNE74syJ6qlUOzLG1raWXDsuvV+BNo92sCmjwxZ+EwiDKPiR0LEHBu6zRbLN3X HeSA== X-Gm-Message-State: ABy/qLbPR3Xx5PZOrlbPw5sZrufL41wabdp4Hzm055/bDcSWs3AOI1eB 1jDAScDTQtJ7GOgonxnCHN7gww== X-Google-Smtp-Source: APBJJlHb0WvZn8cCCH+uqT1fAd5tahGvRNDfQGrlwCtSgxune9NiIFykAzokV/kYuJBFZNeUKIzRoQ== X-Received: by 2002:a0c:f0d2:0:b0:636:2fa5:fd78 with SMTP id d18-20020a0cf0d2000000b006362fa5fd78mr2619548qvl.30.1689286768888; Thu, 13 Jul 2023 15:19:28 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:28 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 06/11] net: bcmasp: Add support for eee mode Date: Thu, 13 Jul 2023 15:19:01 -0700 Message-Id: <1689286746-43609-7-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000ccc9e5060065b974" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000ccc9e5060065b974 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGVlZSBtb2RlLgoKU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1 c3Rpbi5jaGVuQGJyb2FkY29tLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcC5oICAgICAgICB8ICA0ICsrCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDYxICsrKysrKysrKysrKysrKysrKz0KKysrKwog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgNiAr KysKIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhl PQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggZmJiZGUwNGEwZWFiLi4xOGE0NDA0 NGFkOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaApA QCAtMzE1LDYgKzMxNSw4IEBAIHN0cnVjdCBiY21hc3BfaW50ZiB7CiAJLyogVXNlZCBpZiBwZXIg aW50ZiB3b2wgaXJxICovCiAJaW50CQkJCXdvbF9pcnE7CiAJdW5zaWduZWQgaW50CQkJd29sX2ly cV9lbmFibGVkOjE7CisKKwlzdHJ1Y3QgZXRodG9vbF9lZWUJCWVlZTsKIH07Cj0yMAogI2RlZmlu ZSBOVU1fTkVUX0ZJTFRFUlMJCQkJMzIKQEAgLTU1OCw0ICs1NjAsNiBAQCB2b2lkIGJjbWFzcF9u ZXRmaWx0X2dldF9hbGxfYWN0aXZlKHN0cnVjdCBiY21hc3BfaW50ZiAqPQppbnRmLCB1MzIgKnJ1 bGVfbG9jcywKIAkJCQkgICB1MzIgKnJ1bGVfY250KTsKPTIwCiB2b2lkIGJjbWFzcF9uZXRmaWx0 X3N1c3BlbmQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKKwordm9pZCBiY21hc3BfZWVlX2Vu YWJsZV9zZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuYWJsZSk7CiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0 aHRvb2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRo dG9vbC5jCmluZGV4IGVkZGQxYzQzZjAwZS4uMWU5NmE2OTA0M2YzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCkBAIC0xOTEs NiArMTkxLDY1IEBAIHN0YXRpYyBpbnQgYmNtYXNwX2dldF9yeG5mYyhzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdD0KcnVjdCBldGh0b29sX3J4bmZjICpjbWQsCiAJcmV0dXJuIGVycjsKIH0KPTIw Cit2b2lkIGJjbWFzcF9lZWVfZW5hYmxlX3NldChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJv b2wgZW5hYmxlKQoreworCXUzMiByZWc7CisKKwlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0VF RV9DVFJMKTsKKwlpZiAoZW5hYmxlKQorCQlyZWcgfD0zRCBFRUVfRU47CisJZWxzZQorCQlyZWcg Jj0zRCB+RUVFX0VOOworCXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfRUVFX0NUUkwpOworCisJaW50 Zi0+ZWVlLmVlZV9lbmFibGVkID0zRCBlbmFibGU7CisJaW50Zi0+ZWVlLmVlZV9hY3RpdmUgPTNE IGVuYWJsZTsKK30KKworc3RhdGljIGludCBiY21hc3BfZ2V0X2VlZShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9lZWUgKmUpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBldGh0b29sX2VlZSAqcCA9M0QgJmlu dGYtPmVlZTsKKworCWlmICghZGV2LT5waHlkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJZS0+ ZWVlX2VuYWJsZWQgPTNEIHAtPmVlZV9lbmFibGVkOworCWUtPmVlZV9hY3RpdmUgPTNEIHAtPmVl ZV9hY3RpdmU7CisJZS0+dHhfbHBpX2VuYWJsZWQgPTNEIHAtPnR4X2xwaV9lbmFibGVkOworCWUt PnR4X2xwaV90aW1lciA9M0QgdW1hY19ybChpbnRmLCBVTUNfRUVFX0xQSV9USU1FUik7CisKKwly ZXR1cm4gcGh5X2V0aHRvb2xfZ2V0X2VlZShkZXYtPnBoeWRldiwgZSk7Cit9CisKK3N0YXRpYyBp bnQgYmNtYXNwX3NldF9lZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xf ZWVlICplKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2 KTsKKwlzdHJ1Y3QgZXRodG9vbF9lZWUgKnAgPTNEICZpbnRmLT5lZWU7CisJaW50IHJldDsKKwor CWlmICghZGV2LT5waHlkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKCFwLT5lZWVfZW5h YmxlZCkgeworCQliY21hc3BfZWVlX2VuYWJsZV9zZXQoaW50ZiwgZmFsc2UpOworCX0gZWxzZSB7 CisJCXJldCA9M0QgcGh5X2luaXRfZWVlKGRldi0+cGh5ZGV2LCAwKTsKKwkJaWYgKHJldCkgewor CQkJbmV0aWZfZXJyKGludGYsIGh3LCBkZXYsCisJCQkJICAiRUVFIGluaXRpYWxpemF0aW9uIGZh aWxlZDogJWRcbiIsIHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJdW1hY193bChpbnRm LCBlLT50eF9scGlfdGltZXIsIFVNQ19FRUVfTFBJX1RJTUVSKTsKKwkJaW50Zi0+ZWVlLmVlZV9h Y3RpdmUgPTNEIHJldCA+PTNEIDA7CisJCWludGYtPmVlZS50eF9scGlfZW5hYmxlZCA9M0QgZS0+ dHhfbHBpX2VuYWJsZWQ7CisJCWJjbWFzcF9lZWVfZW5hYmxlX3NldChpbnRmLCB0cnVlKTsKKwl9 CisKKwlyZXR1cm4gcGh5X2V0aHRvb2xfc2V0X2VlZShkZXYtPnBoeWRldiwgZSk7Cit9CisKIGNv bnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9vcHMgPTNEIHsKIAkuZ2V0X2Ry dmluZm8JCT0zRCBiY21hc3BfZ2V0X2RydmluZm8sCiAJLmdldF9saW5rCQk9M0QgZXRodG9vbF9v cF9nZXRfbGluaywKQEAgLTIwMiw0ICsyNjEsNiBAQCBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMg YmNtYXNwX2V0aHRvb2xfb3BzID0zRCB7CiAJLnNldF93b2wJCT0zRCBiY21hc3Bfc2V0X3dvbCwK IAkuZ2V0X3J4bmZjCQk9M0QgYmNtYXNwX2dldF9yeG5mYywKIAkuc2V0X3J4bmZjCQk9M0QgYmNt YXNwX3NldF9yeG5mYywKKwkuc2V0X2VlZQkJPTNEIGJjbWFzcF9zZXRfZWVlLAorCS5nZXRfZWVl CQk9M0QgYmNtYXNwX2dldF9lZWUsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jIGIvZHJpdmVycy9uZXQ9Ci9ldGhlcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKaW5kZXggYWQ4NDIyMzM0ZjM4Li4wNTFmODgyYjI3 NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNw X2ludGYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9p bnRmLmMKQEAgLTY0Niw2ICs2NDYsOSBAQCBzdGF0aWMgdm9pZCBiY21hc3BfYWRqX2xpbmsoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCVVNQ19DTURfVFhfUEFVU0VfSUdOT1JFKTsKIAkJcmVn IHw9M0QgY21kX2JpdHM7CiAJCXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfQ01EKTsKKworCQlpbnRm LT5lZWUuZWVlX2FjdGl2ZSA9M0QgcGh5X2luaXRfZWVlKHBoeWRldiwgMCkgPj0zRCAwOworCQli Y21hc3BfZWVlX2VuYWJsZV9zZXQoaW50ZiwgaW50Zi0+ZWVlLmVlZV9hY3RpdmUpOwogCX0KPTIw CiAJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9PT0JfQ05UUkwpOwpAQCAtMTM4Nyw2ICsx MzkwLDkgQEAgaW50IGJjbWFzcF9pbnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBiY21hc3BfaW50ZiAq aW50ZikKPTIwCiAJYmNtYXNwX3Jlc3VtZV9mcm9tX3dvbChpbnRmKTsKPTIwCisJaWYgKGludGYt PmVlZS5lZWVfZW5hYmxlZCkKKwkJYmNtYXNwX2VlZV9lbmFibGVfc2V0KGludGYsIHRydWUpOwor CiAJbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwo9MjAKIAlyZXR1cm4gMDsKLS09MjAKMi43LjQK --000000000000ccc9e5060065b974 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIHJmRJeqAqwTNac0IDnhNtnbRgAAyLg1a2vl 2JKHKc4JMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkyOVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCY8rCFxgRrMeCWRQCAsurpTSqg6Xx9eOk7txYOZ1VRTibZ22sp7pns 7Nse5YLvVUrwXZcfpAWjXqWu0Lof8LWHV/eLYJb360TLfel8GynNorpeJinMcyyDGk6sujAnuj03 c6J3SCR3iZzVPboF4S+b8nsxU/UoxXywBBZ2wQA4DHbZfqfdX8rf/1CM6f3/HTHEpXWkK3nC7cmw KbNN3GMX9CgV2AhBKhaGpBo5vQvij75PLaPO44CK5Mx+g/hfwjNu8co0SXGobjWmprAJy9VRACOz vv6/Pn28rUg553afcvqKZlEo3rPZ4lXKlj22SYfIyDnWQ/qoeUMUvjIPSOVY --000000000000ccc9e5060065b974-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20FD9C001B0 for ; Thu, 13 Jul 2023 22:20:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234018AbjGMWUO (ORCPT ); Thu, 13 Jul 2023 18:20:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232990AbjGMWT5 (ORCPT ); Thu, 13 Jul 2023 18:19:57 -0400 Received: from mail-vs1-xe2a.google.com (mail-vs1-xe2a.google.com [IPv6:2607:f8b0:4864:20::e2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99ECE3590 for ; Thu, 13 Jul 2023 15:19:33 -0700 (PDT) Received: by mail-vs1-xe2a.google.com with SMTP id ada2fe7eead31-443628ee79dso537513137.1 for ; Thu, 13 Jul 2023 15:19:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286772; x=1691878772; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=/nC38yDv4AGEg0pB9FEwRHgyjA+fCmHly7MHhx15ouI=; b=GTP4Vt/w5Jot4+PmyDSDeDxCVkRfHxORhXpF1aUiuLCtqnQ6eRC1osmAzBnfPeIoNY O7oHXzAc8cuC9sU1V7KtIsCblOLapvIOpoSLP99Bx6AmwNViGW/9JlFZSl/u5PK5fSTS sZIM0mYqtYLC7F9ltb76jvkBAAp4xCop8TXxQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286772; x=1691878772; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/nC38yDv4AGEg0pB9FEwRHgyjA+fCmHly7MHhx15ouI=; b=G09aTsAZuzWLqiQvZcRX7BY5C7CcYv3b8n7r4z+y9JmaBMc9gaG0BDyy1KJ0hkgDiQ LYe4MAlrGkMUrDMlUVCXms5j5XHaX6SSKNqFyXYlYJzdrmEP1f6WPnPeerUAPpluF6/z CkDPqResN+7shV6XP9zevpIj0JqzHjvjo1utXd2waG3Zmof++IQlXKk65NlcxvQndQ4H oMxL8jon/uk5tYJjLQL9mHKT28HNG4sXdwMJ1/Lujbe0+Zlyezg7hAlGffuL1Ex1g1Y7 EZ7LTnewDzF5XAJjMQi9snlBN47aierrfmzhRuTrtSIlLhtGrWjPWS5a7YvCOikSgC3P eJuA== X-Gm-Message-State: ABy/qLahXUnPkIodZxDPhvjf5qF/rLGgHNmIBpIt7SGvd/K83/w9vxJm gasZ6C7v/QhPEjaZw6CnyhBZ7Q== X-Google-Smtp-Source: APBJJlHPEE6/2iQCinP2bpApQPLPXQKX9kD72fRYK3Mb6lPBSQp7YEcwWvJzOedxo8jKBKChk04BfQ== X-Received: by 2002:a67:f88e:0:b0:443:6352:4651 with SMTP id h14-20020a67f88e000000b0044363524651mr2098160vso.22.1689286771896; Thu, 13 Jul 2023 15:19:31 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.29 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:31 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 07/11] net: bcmasp: Add support for ethtool standard stats Date: Thu, 13 Jul 2023 15:19:02 -0700 Message-Id: <1689286746-43609-8-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000fb53e8060065b99d" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000fb53e8060065b99d MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aF9tYWNfc3RhdHMsIHJtb25fc3RhdHMsIGFuZCBldGhfY3RybF9z dGF0cy4KClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5j b20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMg ICAgfCA3NyArKysrKysrKysrKysrKysrKys9CisrKysKIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggIHwgNjMgKysrKysrKysrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jIGIv ZHJpdmVycy89Cm5ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKaW5k ZXggMWU5NmE2OTA0M2YzLi41OWQ4NTNjMjI5M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKQEAgLTI1MCw2ICsyNTAsODAg QEAgc3RhdGljIGludCBiY21hc3Bfc2V0X2VlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 PQpjdCBldGh0b29sX2VlZSAqZSkKIAlyZXR1cm4gcGh5X2V0aHRvb2xfc2V0X2VlZShkZXYtPnBo eWRldiwgZSk7CiB9Cj0yMAorc3RhdGljIHZvaWQgYmNtYXNwX2dldF9ldGhfbWFjX3N0YXRzKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF9ldGhfbWFjX3N0 YXRzICptYWNfc3RhdHMpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZf cHJpdihkZXYpOworCisJbWFjX3N0YXRzLT5GcmFtZXNUcmFuc21pdHRlZE9LID0zRCB1bWFjX3Js KGludGYsIFVNQ19HVFBPSyk7CisJbWFjX3N0YXRzLT5TaW5nbGVDb2xsaXNpb25GcmFtZXMgPTNE IHVtYWNfcmwoaW50ZiwgVU1DX0dUU0NMKTsKKwltYWNfc3RhdHMtPk11bHRpcGxlQ29sbGlzaW9u RnJhbWVzID0zRCB1bWFjX3JsKGludGYsIFVNQ19HVE1DTCk7CisJbWFjX3N0YXRzLT5GcmFtZXNS ZWNlaXZlZE9LID0zRCB1bWFjX3JsKGludGYsIFVNQ19HUlBPSyk7CisJbWFjX3N0YXRzLT5GcmFt ZUNoZWNrU2VxdWVuY2VFcnJvcnMgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSRkNTKTsKKwltYWNf c3RhdHMtPkFsaWdubWVudEVycm9ycyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JBTE4pOworCW1h Y19zdGF0cy0+T2N0ZXRzVHJhbnNtaXR0ZWRPSyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1RCWVQp OworCW1hY19zdGF0cy0+RnJhbWVzV2l0aERlZmVycmVkWG1pc3Npb25zID0zRCB1bWFjX3JsKGlu dGYsIFVNQ19HVERSRik7CisJbWFjX3N0YXRzLT5MYXRlQ29sbGlzaW9ucyA9M0QgdW1hY19ybChp bnRmLCBVTUNfR1RMQ0wpOworCW1hY19zdGF0cy0+RnJhbWVzQWJvcnRlZER1ZVRvWFNDb2xscyA9 M0QgdW1hY19ybChpbnRmLCBVTUNfR1RYQ0wpOworCW1hY19zdGF0cy0+T2N0ZXRzUmVjZWl2ZWRP SyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JCWVQpOworCW1hY19zdGF0cy0+TXVsdGljYXN0RnJh bWVzWG1pdHRlZE9LID0zRCB1bWFjX3JsKGludGYsIFVNQ19HVE1DQSk7CisJbWFjX3N0YXRzLT5C cm9hZGNhc3RGcmFtZXNYbWl0dGVkT0sgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dUQkNBKTsKKwlt YWNfc3RhdHMtPkZyYW1lc1dpdGhFeGNlc3NpdmVEZWZlcnJhbCA9M0QgdW1hY19ybChpbnRmLCBV TUNfR1RFREYpOworCW1hY19zdGF0cy0+TXVsdGljYXN0RnJhbWVzUmVjZWl2ZWRPSyA9M0QgdW1h Y19ybChpbnRmLCBVTUNfR1JNQ0EpOworCW1hY19zdGF0cy0+QnJvYWRjYXN0RnJhbWVzUmVjZWl2 ZWRPSyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JCQ0EpOworfQorCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGV0aHRvb2xfcm1vbl9oaXN0X3JhbmdlIGJjbWFzcF9ybW9uX3Jhbmdlc1tdID0zRCB7CisJ eyAgICAwLCAgIDY0fSwKKwl7ICAgNjUsICAxMjd9LAorCXsgIDEyOCwgIDI1NX0sCisJeyAgMjU2 LCAgNTExfSwKKwl7ICA1MTIsIDEwMjN9LAorCXsgMTAyNCwgMTUxOH0sCisJeyAxNTE5LCAxNTIy fSwKKwl7fQorfTsKKworc3RhdGljIHZvaWQgYmNtYXNwX2dldF9ybW9uX3N0YXRzKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZXRodG9vbF9ybW9uX3N0YXRzICpybW9uX3N0 YXRzLAorCQkJCSAgY29uc3Qgc3RydWN0IGV0aHRvb2xfcm1vbl9oaXN0X3JhbmdlICoqcmFuZ2Vz KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwor CSpyYW5nZXMgPTNEIGJjbWFzcF9ybW9uX3JhbmdlczsKKworCXJtb25fc3RhdHMtPnVuZGVyc2l6 ZV9wa3RzID0zRCB1bWFjX3JsKGludGYsIFVNQ19SUlVORCk7CisJcm1vbl9zdGF0cy0+b3ZlcnNp emVfcGt0cyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JPVlIpOworCXJtb25fc3RhdHMtPmZyYWdt ZW50cyA9M0QgdW1hY19ybChpbnRmLCBVTUNfUlJGUkcpOworCXJtb25fc3RhdHMtPmphYmJlcnMg PTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSSkJSKTsKKworCXJtb25fc3RhdHMtPmhpc3RbMF0gPTNE IHVtYWNfcmwoaW50ZiwgVU1DX0dSNjQpOworCXJtb25fc3RhdHMtPmhpc3RbMV0gPTNEIHVtYWNf cmwoaW50ZiwgVU1DX0dSMTI3KTsKKwlybW9uX3N0YXRzLT5oaXN0WzJdID0zRCB1bWFjX3JsKGlu dGYsIFVNQ19HUjI1NSk7CisJcm1vbl9zdGF0cy0+aGlzdFszXSA9M0QgdW1hY19ybChpbnRmLCBV TUNfR1I1MTEpOworCXJtb25fc3RhdHMtPmhpc3RbNF0gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dS MTAyMyk7CisJcm1vbl9zdGF0cy0+aGlzdFs1XSA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1IxNTE4 KTsKKwlybW9uX3N0YXRzLT5oaXN0WzZdID0zRCB1bWFjX3JsKGludGYsIFVNQ19HUk1HVik7CisK KwlybW9uX3N0YXRzLT5oaXN0X3R4WzBdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjY0KTsKKwly bW9uX3N0YXRzLT5oaXN0X3R4WzFdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjEyNyk7CisJcm1v bl9zdGF0cy0+aGlzdF90eFsyXSA9M0QgdW1hY19ybChpbnRmLCBVTUNfVFIyNTUpOworCXJtb25f c3RhdHMtPmhpc3RfdHhbM10gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX1RSNTExKTsKKwlybW9uX3N0 YXRzLT5oaXN0X3R4WzRdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjEwMjMpOworCXJtb25fc3Rh dHMtPmhpc3RfdHhbNV0gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX1RSMTUxOCk7CisJcm1vbl9zdGF0 cy0+aGlzdF90eFs2XSA9M0QgdW1hY19ybChpbnRmLCBVTUNfVFJNR1YpOworfQorCitzdGF0aWMg dm9pZCBiY21hc3BfZ2V0X2V0aF9jdHJsX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJ CQkJICAgICAgc3RydWN0IGV0aHRvb2xfZXRoX2N0cmxfc3RhdHMgKmN0cmxfc3RhdHMpCit7CisJ c3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJY3RybF9z dGF0cy0+TUFDQ29udHJvbEZyYW1lc1RyYW5zbWl0dGVkID0zRCB1bWFjX3JsKGludGYsIFVNQ19H VFhDRik7CisJY3RybF9zdGF0cy0+TUFDQ29udHJvbEZyYW1lc1JlY2VpdmVkID0zRCB1bWFjX3Js KGludGYsIFVNQ19HUlhDRik7CisJY3RybF9zdGF0cy0+VW5zdXBwb3J0ZWRPcGNvZGVzUmVjZWl2 ZWQgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSWFVPKTsKK30KKwogY29uc3Qgc3RydWN0IGV0aHRv b2xfb3BzIGJjbWFzcF9ldGh0b29sX29wcyA9M0QgewogCS5nZXRfZHJ2aW5mbwkJPTNEIGJjbWFz cF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCT0zRCBldGh0b29sX29wX2dldF9saW5rLApAQCAt MjYzLDQgKzMzNyw3IEBAIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9v cHMgPTNEIHsKIAkuc2V0X3J4bmZjCQk9M0QgYmNtYXNwX3NldF9yeG5mYywKIAkuc2V0X2VlZQkJ PTNEIGJjbWFzcF9zZXRfZWVlLAogCS5nZXRfZWVlCQk9M0QgYmNtYXNwX2dldF9lZWUsCisJLmdl dF9ldGhfbWFjX3N0YXRzCT0zRCBiY21hc3BfZ2V0X2V0aF9tYWNfc3RhdHMsCisJLmdldF9ybW9u X3N0YXRzCQk9M0QgYmNtYXNwX2dldF9ybW9uX3N0YXRzLAorCS5nZXRfZXRoX2N0cmxfc3RhdHMJ PTNEIGJjbWFzcF9nZXRfZXRoX2N0cmxfc3RhdHMsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggYi9kcml2ZXI9CnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGZfZGVmcy5oCmluZGV4IGIyNTlh NDc1MjA3Zi4uYWQ3NDI2MTI4OTVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaApAQCAtNDUsNyArNDUsNjggQEAKICNk ZWZpbmUgIFVNQ19FRUVfTFBJX1RJTUVSCQkweDY4CiAjZGVmaW5lICBVTUNfUEFVU0VfQ05UUkwJ CTB4MzMwCiAjZGVmaW5lICBVTUNfVFhfRkxVU0gJCQkweDMzNAotI2RlZmluZSAgVU1DX01JQl9T VEFSVAkJCTB4NDAwCisjZGVmaW5lICBVTUNfR1I2NAkJCTB4NDAwCisjZGVmaW5lICBVTUNfR1Ix MjcJCQkweDQwNAorI2RlZmluZSAgVU1DX0dSMjU1CQkJMHg0MDgKKyNkZWZpbmUgIFVNQ19HUjUx MQkJCTB4NDBjCisjZGVmaW5lICBVTUNfR1IxMDIzCQkJMHg0MTAKKyNkZWZpbmUgIFVNQ19HUjE1 MTgJCQkweDQxNAorI2RlZmluZSAgVU1DX0dSTUdWCQkJMHg0MTgKKyNkZWZpbmUgIFVNQ19HUjIw NDcJCQkweDQxYworI2RlZmluZSAgVU1DX0dSNDA5NQkJCTB4NDIwCisjZGVmaW5lICBVTUNfR1I5 MjE2CQkJMHg0MjQKKyNkZWZpbmUgIFVNQ19HUlBLVAkJCTB4NDI4CisjZGVmaW5lICBVTUNfR1JC WVQJCQkweDQyYworI2RlZmluZSAgVU1DX0dSTUNBCQkJMHg0MzAKKyNkZWZpbmUgIFVNQ19HUkJD QQkJCTB4NDM0CisjZGVmaW5lICBVTUNfR1JGQ1MJCQkweDQzOAorI2RlZmluZSAgVU1DX0dSWENG CQkJMHg0M2MKKyNkZWZpbmUgIFVNQ19HUlhQRgkJCTB4NDQwCisjZGVmaW5lICBVTUNfR1JYVU8J CQkweDQ0NAorI2RlZmluZSAgVU1DX0dSQUxOCQkJMHg0NDgKKyNkZWZpbmUgIFVNQ19HUkZMUgkJ CTB4NDRjCisjZGVmaW5lICBVTUNfR1JDREUJCQkweDQ1MAorI2RlZmluZSAgVU1DX0dSRkNSCQkJ MHg0NTQKKyNkZWZpbmUgIFVNQ19HUk9WUgkJCTB4NDU4CisjZGVmaW5lICBVTUNfR1JKQlIJCQkw eDQ1YworI2RlZmluZSAgVU1DX0dSTVRVRQkJCTB4NDYwCisjZGVmaW5lICBVTUNfR1JQT0sJCQkw eDQ2NAorI2RlZmluZSAgVU1DX0dSVUMJCQkweDQ2OAorI2RlZmluZSAgVU1DX0dSUFBQCQkJMHg0 NmMKKyNkZWZpbmUgIFVNQ19HUk1DUkMJCQkweDQ3MAorI2RlZmluZSAgVU1DX1RSNjQJCQkweDQ4 MAorI2RlZmluZSAgVU1DX1RSMTI3CQkJMHg0ODQKKyNkZWZpbmUgIFVNQ19UUjI1NQkJCTB4NDg4 CisjZGVmaW5lICBVTUNfVFI1MTEJCQkweDQ4YworI2RlZmluZSAgVU1DX1RSMTAyMwkJCTB4NDkw CisjZGVmaW5lICBVTUNfVFIxNTE4CQkJMHg0OTQKKyNkZWZpbmUgIFVNQ19UUk1HVgkJCTB4NDk4 CisjZGVmaW5lICBVTUNfVFIyMDQ3CQkJMHg0OWMKKyNkZWZpbmUgIFVNQ19UUjQwOTUJCQkweDRh MAorI2RlZmluZSAgVU1DX1RSOTIxNgkJCTB4NGE0CisjZGVmaW5lICBVTUNfR1RQS1QJCQkweDRh OAorI2RlZmluZSAgVU1DX0dUTUNBCQkJMHg0YWMKKyNkZWZpbmUgIFVNQ19HVEJDQQkJCTB4NGIw CisjZGVmaW5lICBVTUNfR1RYUEYJCQkweDRiNAorI2RlZmluZSAgVU1DX0dUWENGCQkJMHg0YjgK KyNkZWZpbmUgIFVNQ19HVEZDUwkJCTB4NGJjCisjZGVmaW5lICBVTUNfR1RPVlIJCQkweDRjMAor I2RlZmluZSAgVU1DX0dURFJGCQkJMHg0YzQKKyNkZWZpbmUgIFVNQ19HVEVERgkJCTB4NGM4Cisj ZGVmaW5lICBVTUNfR1RTQ0wJCQkweDRjYworI2RlZmluZSAgVU1DX0dUTUNMCQkJMHg0ZDAKKyNk ZWZpbmUgIFVNQ19HVExDTAkJCTB4NGQ0CisjZGVmaW5lICBVTUNfR1RYQ0wJCQkweDRkOAorI2Rl ZmluZSAgVU1DX0dURlJHCQkJMHg0ZGMKKyNkZWZpbmUgIFVNQ19HVE5DTAkJCTB4NGUwCisjZGVm aW5lICBVTUNfR1RKQlIJCQkweDRlNAorI2RlZmluZSAgVU1DX0dUQllUCQkJMHg0ZTgKKyNkZWZp bmUgIFVNQ19HVFBPSwkJCTB4NGVjCisjZGVmaW5lICBVTUNfR1RVQwkJCTB4NGYwCisjZGVmaW5l ICBVTUNfUlJQS1QJCQkweDUwMAorI2RlZmluZSAgVU1DX1JSVU5ECQkJMHg1MDQKKyNkZWZpbmUg IFVNQ19SUkZSRwkJCTB4NTA4CisjZGVmaW5lICBVTUNfUlJCWVQJCQkweDUwYwogI2RlZmluZSAg VU1DX01JQl9DTlRSTAkJCTB4NTgwCiAjZGVmaW5lICAgVU1DX01JQl9DTlRSTF9SWF9DTlRfUlNU CUJJVCgwKQogI2RlZmluZSAgIFVNQ19NSUJfQ05UUkxfUlVOVF9DTlRfUlNUCUJJVCgxKQotLT0y MAoyLjcuNAo= --000000000000fb53e8060065b99d Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINSUuHPPaigdLLx8iez5lfL73yOaVZ0KloQq 0owaEGCuMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkzMlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCBBJ94MIxG0myMjPX3wrPSDDLKbfpyOfQNQDTN0z2tWEvmu689gjcY VClHaRNMzLudoES+n7VZLwb7gQZvT7n2GMfQV5Cow9PinHPGf3rByrrMBUIwbbtQ9BPN2qWQeerZ FYc2NwcilUyQDATsGq75TK84rhW1BaLiM0WEoMwlP2KRfUDWkypRPIJmwqdE0XKnyXkCK5wa6oCQ yGWQ8kElqQ+1Mccx+4r5b5TShn03eqKbQ/vL+9YOiZfxbSSFC03KrXrV0eeeRQEiLomZ0jK+v0Fr 9cARDYRcCWI39XOiRrsYreNeDImCM+2lWXvl8VjVEuIIO3ANmWwmnPdQVE0D --000000000000fb53e8060065b99d-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6668AC001DE for ; Thu, 13 Jul 2023 22:20:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233972AbjGMWUT (ORCPT ); Thu, 13 Jul 2023 18:20:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233255AbjGMWUI (ORCPT ); Thu, 13 Jul 2023 18:20:08 -0400 Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com [IPv6:2607:f8b0:4864:20::f2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34FCB35A3 for ; Thu, 13 Jul 2023 15:19:38 -0700 (PDT) Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-634efb81e8dso7217336d6.1 for ; Thu, 13 Jul 2023 15:19:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286774; x=1691878774; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=oeGDnyfiZcKjSlPHFKzzpRmwK0fzE4mt104HzjlZulw=; b=XhFjQvzV53D2I2um6HFaDxNK3oWNYiviHJ+Bs1STJqV4p3SpeQUmJ0m+o2Rcy1NQV+ ceZxNPpnD/bHjFQOgCkWpCw+Ym+78B6MarAUrhU8VlEEqqOuy8QxMZbZmcs98iUPyizT R362IdmrWEUb/FPmRZtlNv3PDVc2mehE2v6Y4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286774; x=1691878774; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oeGDnyfiZcKjSlPHFKzzpRmwK0fzE4mt104HzjlZulw=; b=gh2y0rrjPDgtrfEUhfjOFl5tmKqd7XhsGxKfKbt1ZuDrHgCtvZfvfPaS3612I4XSFk o71xcQcAKz4hFNiOpmIJaUomKntsuiWy7yi4efluPlOPW/+3IAyvEiRJ+9fJmMEmHwc9 9tnOTxI5YsNuvKUSVS3wegslTrKs8HFF7uoWjQfWGnPE4V8ilmeGev711Roq4zSVVuV6 NNDoLRkuCeCZIjABkc7g6Jxqn/pO3qBek7f5N7ZE5zLXOQpYpS6SGA1gDPq64rPJbx0V C7FIn7yG69opoV9xBv8280edR94p9ySr/54lU5itvisApVA37QnMVQGJ6gxsTct8oX3N 0Z+Q== X-Gm-Message-State: ABy/qLbajb7XMPnkiK1l9NQ/K0HDlHmgILAvDl8e+S3aCoh0RqryT5+y eR7RTLYkrvUJnZSFLhNb0TGmoA== X-Google-Smtp-Source: APBJJlHbdFK+xblDJeeKeCHfDtz7gF3ItA55uYsh9Em++8uNsRXrmat//0VkSWrzyBSj0WruH+55BQ== X-Received: by 2002:a05:6214:5146:b0:635:4113:bb07 with SMTP id kh6-20020a056214514600b006354113bb07mr2538292qvb.16.1689286774494; Thu, 13 Jul 2023 15:19:34 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:34 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 08/11] net: bcmasp: Add support for ethtool driver stats Date: Thu, 13 Jul 2023 15:19:03 -0700 Message-Id: <1689286746-43609-9-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000022ede4060065bacc" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000022ede4060065bacc MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aGVybmV0IGRyaXZlciBzcGVjaWZpYyBzdGF0cy4KClNpZ25lZC1v ZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQp2OQogICAg ICAgIC0gUmVtb3ZlZCB0eF9yZWFsbG9jX29mZmxvYWQsIHRoaXMgc3RhdCBpcyBubyBsb25nZXIg cmVsZXZhbnQgd2l0aAogICAgICAgICAgc2tiX2Nvd19oZWFkKCkuCgktIEFkZGVkIHR4X3RpbWVv dXRfY250Cgp2OAoJLSBBZGRyZXNzIG1heWJlIHVuaW5pdCB2YXJpYWJsZSB3YXJuaW5nCgogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYyAgICAgICAgfCAgIDQgKy0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDIx ICsrKwogLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMgICAg fCAxNjAgKysrKysrKysrKysrKysrKys9CisrKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYyAgIHwgIDE4ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxOTkg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcC5jCmluZGV4IDkyZGZlYTk2MWFkZC4uYTk5ODRlZmZmNmQxIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKQEAgLTg5NSw4 ICs4OTUsMTAgQEAgaW50IGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2lu dGYgKmludGYsPQogdW5zaWduZWQgY2hhciAqYWRkciwKPTIwCiAJCS8qIEF0dGVtcHQgdG8gY29t YmluZSBmaWx0ZXJzICovCiAJCXJldCA9M0QgYmNtYXNwX2NvbWJpbmVfc2V0X2ZpbHRlcihpbnRm LCBhZGRyLCBtYXNrLCBpKTsKLQkJaWYgKCFyZXQpCisJCWlmICghcmV0KSB7CisJCQlpbnRmLT5t aWIuZmlsdGVyc19jb21iaW5lX2NudCsrOwogCQkJcmV0dXJuIDA7CisJCX0KIAl9Cj0yMAogCS8q IENyZWF0ZSBuZXcgZmlsdGVyIGlmIHBvc3NpYmxlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCmluZGV4IDE4YTQ0MDQ0YWQ5My4uNmJmY2FhN2Y5NWE4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5o CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKQEAgLTI0 NCw2ICsyNDQsMjYgQEAgc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQgewogCXN0cnVjdCB1NjRf c3RhdHNfc3luYwkJc3luY3A7CiB9Owo9MjAKK3N0cnVjdCBiY21hc3BfbWliX2NvdW50ZXJzIHsK Kwl1MzIJZWRwa3RfdHM7CisJdTMyCWVkcGt0X3J4X3BrdF9jbnQ7CisJdTMyCWVkcGt0X2hkcl9l eHRfY250OworCXUzMgllZHBrdF9oZHJfb3V0X2NudDsKKwl1MzIJdW1hY19mcm1fY250OworCXUz MglmYl9mcm1fY250OworCXUzMglmYl9yeF9maWZvX2RlcHRoOworCXUzMglmYl9vdXRfZnJtX2Nu dDsKKwl1MzIJZmJfZmlsdF9vdXRfZnJtX2NudDsKKwl1MzIJYWxsb2Nfcnhfc2tiX2ZhaWxlZDsK Kwl1MzIJdHhfZG1hX2ZhaWxlZDsKKwl1MzIJbWNfZmlsdGVyc19mdWxsX2NudDsKKwl1MzIJdWNf ZmlsdGVyc19mdWxsX2NudDsKKwl1MzIJZmlsdGVyc19jb21iaW5lX2NudDsKKwl1MzIJcHJvbWlz Y19maWx0ZXJzX2NudDsKKwl1MzIJdHhfcmVhbGxvY19vZmZsb2FkX2ZhaWxlZDsKKwl1MzIJdHhf dGltZW91dF9jbnQ7Cit9OworCiBzdHJ1Y3QgYmNtYXNwX2ludGZfb3BzIHsKIAl1bnNpZ25lZCBs b25nICgqcnhfZGVzY19yZWFkKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOwogCXZvaWQgKCpy eF9idWZmZXJfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBhZGRy KTsKQEAgLTMwOSw2ICszMjksNyBAQCBzdHJ1Y3QgYmNtYXNwX2ludGYgewo9MjAKIAkvKiBTdGF0 aXN0aWNzICovCiAJc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQJc3RhdHM2NDsKKwlzdHJ1Y3Qg YmNtYXNwX21pYl9jb3VudGVycwltaWI7Cj0yMAogCXUzMgkJCQl3b2xvcHRzOwogCXU4CQkJCXNv cGFzc1tTT1BBU1NfTUFYXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJuZXQvYnJvYWRj b20vYXNwMi9iY21hc3BfZXRodG9vbC5jCmluZGV4IDU5ZDg1M2MyMjkzYy4uYzRmMTYwNGQ1YWIz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9l dGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Bf ZXRodG9vbC5jCkBAIC0xLDYgKzEsNyBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKICNkZWZpbmUgcHJfZm10KGZtdCkJCQkJImJjbWFzcF9ldGh0b29sOiAiIGZtdAo9MjAK KyNpbmNsdWRlIDxhc20tZ2VuZXJpYy91bmFsaWduZWQuaD4KICNpbmNsdWRlIDxsaW51eC9ldGh0 b29sLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+CkBAIC04LDYgKzksMTYyIEBACiAjaW5jbHVkZSAiYmNtYXNwLmgiCiAj aW5jbHVkZSAiYmNtYXNwX2ludGZfZGVmcy5oIgo9MjAKK2VudW0gYmNtYXNwX3N0YXRfdHlwZSB7 CisJQkNNQVNQX1NUQVRfUlhfRURQS1QsCisJQkNNQVNQX1NUQVRfUlhfQ1RSTCwKKwlCQ01BU1Bf U1RBVF9SWF9DVFJMX1BFUl9JTlRGLAorCUJDTUFTUF9TVEFUX1NPRlQsCit9OworCitzdHJ1Y3Qg YmNtYXNwX3N0YXRzIHsKKwljaGFyIHN0YXRfc3RyaW5nW0VUSF9HU1RSSU5HX0xFTl07CisJZW51 bSBiY21hc3Bfc3RhdF90eXBlIHR5cGU7CisJdTMyIHJlZ19vZmZzZXQ7Cit9OworCisjZGVmaW5l IFNUQVRfQkNNQVNQX1NPRlRfTUlCKHN0cikgeyBcCisJLnN0YXRfc3RyaW5nID0zRCBzdHIsIFwK KwkudHlwZSA9M0QgQkNNQVNQX1NUQVRfU09GVCwgXAorfQorCisjZGVmaW5lIFNUQVRfQkNNQVNQ X09GRlNFVChzdHIsIF90eXBlLCBvZmZzZXQpIHsgXAorCS5zdGF0X3N0cmluZyA9M0Qgc3RyLCBc CisJLnR5cGUgPTNEIF90eXBlLCBcCisJLnJlZ19vZmZzZXQgPTNEIG9mZnNldCwgXAorfQorCisj ZGVmaW5lIFNUQVRfQkNNQVNQX1JYX0VEUEtUKHN0ciwgb2Zmc2V0KSBcCisJU1RBVF9CQ01BU1Bf T0ZGU0VUKHN0ciwgQkNNQVNQX1NUQVRfUlhfRURQS1QsIG9mZnNldCkKKyNkZWZpbmUgU1RBVF9C Q01BU1BfUlhfQ1RSTChzdHIsIG9mZnNldCkgXAorCVNUQVRfQkNNQVNQX09GRlNFVChzdHIsIEJD TUFTUF9TVEFUX1JYX0NUUkwsIG9mZnNldCkKKyNkZWZpbmUgU1RBVF9CQ01BU1BfUlhfQ1RSTF9Q RVJfSU5URihzdHIsIG9mZnNldCkgXAorCVNUQVRfQkNNQVNQX09GRlNFVChzdHIsIEJDTUFTUF9T VEFUX1JYX0NUUkxfUEVSX0lOVEYsIG9mZnNldCkKKworLyogTXVzdCBtYXRjaCB0aGUgb3JkZXIg b2Ygc3RydWN0IGJjbWFzcF9taWJfY291bnRlcnMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNt YXNwX3N0YXRzIGJjbWFzcF9nc3RyaW5nc19zdGF0c1tdID0zRCB7CisJLyogRURQS1QgY291bnRl cnMgKi8KKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlggVGltZSBTdGFtcCIsIEFTUF9FRFBLVF9S WF9UU19DT1VOVEVSKSwKKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlggUEtUIENvdW50IiwgQVNQ X0VEUEtUX1JYX1BLVF9DTlQpLAorCVNUQVRfQkNNQVNQX1JYX0VEUEtUKCJSWCBQS1QgQnVmZmVy ZWQiLCBBU1BfRURQS1RfSERSX0VYVFJfQ05UKSwKKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlgg UEtUIFB1c2hlZCB0byBEUkFNIiwgQVNQX0VEUEtUX0hEUl9PVVRfQ05UKSwKKwkvKiBBU1AgUlgg Y29udHJvbCAqLworCVNUQVRfQkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoIkZyYW1lcyBGcm9tIFVu aW1hYyIsCisJCQkJICAgICBBU1BfUlhfQ1RSTF9VTUFDXzBfRlJBTUVfQ09VTlQpLAorCVNUQVRf QkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoIkZyYW1lcyBGcm9tIFBvcnQiLAorCQkJCSAgICAgQVNQ X1JYX0NUUkxfRkJfMF9GUkFNRV9DT1VOVCksCisJU1RBVF9CQ01BU1BfUlhfQ1RSTF9QRVJfSU5U RigiUlggQnVmZmVyIEZJRk8gRGVwdGgiLAorCQkJCSAgICAgQVNQX1JYX0NUUkxfRkJfUlhfRklG T19ERVBUSCksCisJU1RBVF9CQ01BU1BfUlhfQ1RSTCgiRnJhbWVzIE91dChCdWZmZXIpIiwKKwkJ CSAgICBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlQpLAorCVNUQVRfQkNNQVNQX1JYX0NU UkwoIkZyYW1lcyBPdXQoRmlsdGVycykiLAorCQkJICAgIEFTUF9SWF9DVFJMX0ZCX0ZJTFRfT1VU X0ZSQU1FX0NPVU5UKSwKKwkvKiBTb2Z0d2FyZSBtYWludGFpbmVkIHN0YXRpc3RpY3MgKi8KKwlT VEFUX0JDTUFTUF9TT0ZUX01JQigiUlggU0tCIEFsbG9jIEZhaWxlZCIpLAorCVNUQVRfQkNNQVNQ X1NPRlRfTUlCKCJUWCBETUEgRmFpbGVkIiksCisJU1RBVF9CQ01BU1BfU09GVF9NSUIoIk11bHRp Y2FzdCBGaWx0ZXJzIEZ1bGwiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiVW5pY2FzdCBGaWx0 ZXJzIEZ1bGwiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiTURBIEZpbHRlcnMgQ29tYmluZWQi KSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiUHJvbWlzYyBGaWx0ZXIgU2V0IiksCisJU1RBVF9C Q01BU1BfU09GVF9NSUIoIlRYIFJlYWxsb2MgRm9yIE9mZmxvYWQgRmFpbGVkIiksCisJU1RBVF9C Q01BU1BfU09GVF9NSUIoIlR4IFRpbWVvdXQgQ291bnQiKSwKK307CisKKyNkZWZpbmUgQkNNQVNQ X1NUQVRTX0xFTglBUlJBWV9TSVpFKGJjbWFzcF9nc3RyaW5nc19zdGF0cykKKworc3RhdGljIHUx NiBiY21hc3Bfc3RhdF9maXh1cF9vZmZzZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAorCQkJ CSAgICBjb25zdCBzdHJ1Y3QgYmNtYXNwX3N0YXRzICpzKQoreworCXN0cnVjdCBiY21hc3BfcHJp diAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCisJaWYgKCFzdHJjbXAoIkZyYW1lcyBPdXQoQnVm ZmVyKSIsIHMtPnN0YXRfc3RyaW5nKSkKKwkJcmV0dXJuIHByaXYtPmh3X2luZm8tPnJ4X2N0cmxf ZmJfb3V0X2ZyYW1lX2NvdW50OworCisJaWYgKCFzdHJjbXAoIkZyYW1lcyBPdXQoRmlsdGVycyki LCBzLT5zdGF0X3N0cmluZykpCisJCXJldHVybiBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZiX2Zp bHRfb3V0X2ZyYW1lX2NvdW50OworCisJaWYgKCFzdHJjbXAoIlJYIEJ1ZmZlciBGSUZPIERlcHRo Iiwgcy0+c3RhdF9zdHJpbmcpKQorCQlyZXR1cm4gcHJpdi0+aHdfaW5mby0+cnhfY3RybF9mYl9y eF9maWZvX2RlcHRoOworCisJcmV0dXJuIHMtPnJlZ19vZmZzZXQ7Cit9CisKK3N0YXRpYyBpbnQg YmNtYXNwX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzdHJpbmdf c2V0KQoreworCXN3aXRjaCAoc3RyaW5nX3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQly ZXR1cm4gQkNNQVNQX1NUQVRTX0xFTjsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CisJfQorfQorCitzdGF0aWMgdm9pZCBiY21hc3BfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdTMyIHN0cmluZ3NldCwKKwkJCSAgICAgICB1OCAqZGF0YSkKK3sKKwl1bnNpZ25l ZCBpbnQgaTsKKworCXN3aXRjaCAoc3RyaW5nc2V0KSB7CisJY2FzZSBFVEhfU1NfU1RBVFM6CisJ CWZvciAoaSA9M0QgMDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgeworCQkJbWVtY3B5KGRh dGEgKyBpICogRVRIX0dTVFJJTkdfTEVOLAorCQkJICAgICAgIGJjbWFzcF9nc3RyaW5nc19zdGF0 c1tpXS5zdGF0X3N0cmluZywKKwkJCSAgICAgICBFVEhfR1NUUklOR19MRU4pOworCQl9CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF91 cGRhdGVfbWliX2NvdW50ZXJzKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwl1bnNpZ25l ZCBpbnQgaTsKKworCWZvciAoaSA9M0QgMDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgewor CQljb25zdCBzdHJ1Y3QgYmNtYXNwX3N0YXRzICpzOworCQl1MzIgb2Zmc2V0LCB2YWw7CisJCWNo YXIgKnA7CisKKwkJcyA9M0QgJmJjbWFzcF9nc3RyaW5nc19zdGF0c1tpXTsKKwkJb2Zmc2V0ID0z RCBiY21hc3Bfc3RhdF9maXh1cF9vZmZzZXQoaW50Ziwgcyk7CisJCXN3aXRjaCAocy0+dHlwZSkg eworCQljYXNlIEJDTUFTUF9TVEFUX1NPRlQ6CisJCQljb250aW51ZTsKKwkJY2FzZSBCQ01BU1Bf U1RBVF9SWF9FRFBLVDoKKwkJCXZhbCA9M0QgcnhfZWRwa3RfY29yZV9ybChpbnRmLT5wYXJlbnQs IG9mZnNldCk7CisJCQlicmVhazsKKwkJY2FzZSBCQ01BU1BfU1RBVF9SWF9DVFJMOgorCQkJdmFs ID0zRCByeF9jdHJsX2NvcmVfcmwoaW50Zi0+cGFyZW50LCBvZmZzZXQpOworCQkJYnJlYWs7CisJ CWNhc2UgQkNNQVNQX1NUQVRfUlhfQ1RSTF9QRVJfSU5URjoKKwkJCW9mZnNldCArPTNEIHNpemVv Zih1MzIpICogaW50Zi0+cG9ydDsKKwkJCXZhbCA9M0QgcnhfY3RybF9jb3JlX3JsKGludGYtPnBh cmVudCwgb2Zmc2V0KTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY29udGludWU7CisJCX0K KwkJcCA9M0QgKGNoYXIgKikoJmludGYtPm1pYikgKyAoaSAqIHNpemVvZih1MzIpKTsKKwkJcHV0 X3VuYWxpZ25lZCh2YWwsICh1MzIgKilwKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9n ZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0 IGV0aHRvb2xfc3RhdHMgKnN0YXRzLAorCQkJCSAgICAgdTY0ICpkYXRhKQoreworCXN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwl1bnNpZ25lZCBpbnQgaTsK KwljaGFyICpwOworCisJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKKwkJYmNtYXNwX3VwZGF0ZV9t aWJfY291bnRlcnMoaW50Zik7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBCQ01BU1BfU1RBVFNfTEVO OyBpKyspIHsKKwkJcCA9M0QgKGNoYXIgKikoJmludGYtPm1pYikgKyAoaSAqIHNpemVvZih1MzIp KTsKKwkJZGF0YVtpXSA9M0QgKih1MzIgKilwOworCX0KK30KKwogc3RhdGljIHZvaWQgYmNtYXNw X2dldF9kcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGV0 aHRvb2xfZHJ2aW5mbyAqaW5mbykKIHsKQEAgLTM0MCw0ICs0OTcsNyBAQCBjb25zdCBzdHJ1Y3Qg ZXRodG9vbF9vcHMgYmNtYXNwX2V0aHRvb2xfb3BzID0zRCB7CiAJLmdldF9ldGhfbWFjX3N0YXRz CT0zRCBiY21hc3BfZ2V0X2V0aF9tYWNfc3RhdHMsCiAJLmdldF9ybW9uX3N0YXRzCQk9M0QgYmNt YXNwX2dldF9ybW9uX3N0YXRzLAogCS5nZXRfZXRoX2N0cmxfc3RhdHMJPTNEIGJjbWFzcF9nZXRf ZXRoX2N0cmxfc3RhdHMsCisJLmdldF9zdHJpbmdzCQk9M0QgYmNtYXNwX2dldF9zdHJpbmdzLAor CS5nZXRfZXRodG9vbF9zdGF0cwk9M0QgYmNtYXNwX2dldF9ldGh0b29sX3N0YXRzLAorCS5nZXRf c3NldF9jb3VudAkJPTNEIGJjbWFzcF9nZXRfc3NldF9jb3VudCwKIH07CmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgYi9kcml2ZXJz L25ldD0KL2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwppbmRleCAwNTFmODgy YjI3NjYuLjUzZTU0Mjg4MTI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYwpAQCAtMTA0LDE1ICsxMDQsMTkgQEAgc3RhdGljIHZvaWQg YmNtYXNwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCj0yMAogCQluZXRkZXZf Zm9yX2VhY2hfbWNfYWRkcihoYSwgZGV2KSB7CiAJCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRh X2ZpbHRlcihpbnRmLCBoYS0+YWRkciwgbWFzayk7Ci0JCQlpZiAocmV0KQorCQkJaWYgKHJldCkg eworCQkJCWludGYtPm1pYi5tY19maWx0ZXJzX2Z1bGxfY250Kys7CiAJCQkJZ290byBzZXRfcHJv bWlzYzsKKwkJCX0KIAkJfQogCX0KPTIwCiAJbmV0ZGV2X2Zvcl9lYWNoX3VjX2FkZHIoaGEsIGRl dikgewogCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihpbnRmLCBoYS0+YWRkciwg bWFzayk7Ci0JCWlmIChyZXQpCisJCWlmIChyZXQpIHsKKwkJCWludGYtPm1pYi51Y19maWx0ZXJz X2Z1bGxfY250Kys7CiAJCQlnb3RvIHNldF9wcm9taXNjOworCQl9CiAJfQo9MjAKIAlzcGluX3Vu bG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7CkBAIC0xMjAsNiArMTI0LDcgQEAgc3Rh dGljIHZvaWQgYmNtYXNwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCj0yMAog c2V0X3Byb21pc2M6CiAJYmNtYXNwX3NldF9wcm9taXNjKGludGYsIDEpOworCWludGYtPm1pYi5w cm9taXNjX2ZpbHRlcnNfY250Kys7Cj0yMAogCS8qIGRpc2FibGUgYWxsIGZpbHRlcnMgdXNlZCBi eSB0aGlzIHBvcnQgKi8KIAliY21hc3BfZGlzYWJsZV9hbGxfZmlsdGVycyhpbnRmKTsKQEAgLTE1 NSw2ICsxNjAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmJjbWFzcF9jc3VtX29mZmxvYWQo c3RydWN0IG5ldF9kPQpldmljZSAqZGV2LAogCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CQkJCQkgICBib29sICpjc3VtX2h3KQogeworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0Qg bmV0ZGV2X3ByaXYoZGV2KTsKIAl1MzIgaGVhZGVyID0zRCAwLCBoZWFkZXIyID0zRCAwLCBlcGt0 ID0zRCAwOwogCXN0cnVjdCBiY21hc3BfcGt0X29mZmxvYWQgKm9mZmxvYWQ7CiAJdW5zaWduZWQg aW50IGhlYWRlcl9jbnQgPTNEIDA7CkBAIC0xNjUsOCArMTcxLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqYmNtYXNwX2NzdW1fb2ZmbG9hZChzdHJ1Y3QgbmV0Xz0KZGV2aWNlICpkZXYsCiAJ CXJldHVybiBza2I7Cj0yMAogCXJldCA9M0Qgc2tiX2Nvd19oZWFkKHNrYiwgc2l6ZW9mKCpvZmZs b2FkKSk7Ci0JaWYgKHJldCA8IDApCisJaWYgKHJldCA8IDApIHsKKwkJaW50Zi0+bWliLnR4X3Jl YWxsb2Nfb2ZmbG9hZF9mYWlsZWQrKzsKIAkJZ290byBoZWxwOworCX0KPTIwCiAJc3dpdGNoIChz a2ItPnByb3RvY29sKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9JUCk6CkBAIC0zMDUsNiArMzEzLDcg QEAgc3RhdGljIG5ldGRldl90eF90IGJjbWFzcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cj0KdWN0IG5ldF9kZXZpY2UgKmRldikKIAkJfQo9MjAKIAkJaWYgKGRtYV9tYXBwaW5nX2Vycm9y KGtkZXYsIG1hcHBpbmcpKSB7CisJCQlpbnRmLT5taWIudHhfZG1hX2ZhaWxlZCsrOwogCQkJc3Bi X2luZGV4ID0zRCBpbnRmLT50eF9zcGJfaW5kZXg7CiAJCQlmb3IgKGogPTNEIDA7IGogPCBpOyBq KyspIHsKIAkJCQliY21hc3BfY2xlYW5fdHhjYihpbnRmLCBzcGJfaW5kZXgpOwpAQCAtNTQxLDYg KzU1MCw4IEBAIHN0YXRpYyBpbnQgYmNtYXNwX3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpu YXBpLCBpbnQ9CiBidWRnZXQpCiAJCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3lu Y3ApOwogCQkJdTY0X3N0YXRzX2luYygmc3RhdHMtPnJ4X2Ryb3BwZWQpOwogCQkJdTY0X3N0YXRz X3VwZGF0ZV9lbmQoJnN0YXRzLT5zeW5jcCk7CisJCQlpbnRmLT5taWIuYWxsb2Nfcnhfc2tiX2Zh aWxlZCsrOworCiAJCQlnb3RvIG5leHQ7CiAJCX0KPTIwCkBAIC0xMTE2LDYgKzExMjcsNyBAQCBz dGF0aWMgdm9pZCBiY21hc3BfdHhfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LD0KIHVu c2lnbmVkIGludCB0eHF1ZXVlKQogCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2 X3ByaXYoZGV2KTsKPTIwCiAJbmV0aWZfZGJnKGludGYsIHR4X2VyciwgZGV2LCAidHJhbnNtaXQg dGltZW91dCFcbiIpOworCWludGYtPm1pYi50eF90aW1lb3V0X2NudCsrOwogfQo9MjAKIHN0YXRp YyBpbnQgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAot LT0yMAoyLjcuNAo= --00000000000022ede4060065bacc Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIBopnsvK166jVx6NbEa5cGHukp+siQ0wG9GP 09UbZMfeMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkzNFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCJnsnMPNtGAJ6OVCEyv+5NP8XNgzWjCcOe/5pQysCy6cvGn5cb4FvM C2qwCanVRyIXVQqlS+OCCC2smRaC13UapEdIgyTi4vKQuCjR6HtkxEl60nu7wRk4gukIQ2f2lcHE vJX/UcwY+pcCDZdgixS97jnN8bNTsjm8ul8ckR8Lq1Rv5pgdQPeS6smWsK/U+Wcfh4djqnbL5MW/ HFDxP02MPp9eLCkUq8MX8zXmbxhfWib/7it0tlvtsH+tk6FeXvGvyVptL5NIN8TkpFe/WUjYecVO qLpN4Fb4eQPOq9DiY+XFJ8pbVgHceW2OVX1VhcVX21QD+SMbIH7aXv/cqRo1 --00000000000022ede4060065bacc-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7FE60C001B0 for ; Thu, 13 Jul 2023 22:20:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231809AbjGMWUm (ORCPT ); Thu, 13 Jul 2023 18:20:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230501AbjGMWUe (ORCPT ); Thu, 13 Jul 2023 18:20:34 -0400 Received: from mail-qv1-xf2a.google.com (mail-qv1-xf2a.google.com [IPv6:2607:f8b0:4864:20::f2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BDDA30F4 for ; Thu, 13 Jul 2023 15:19:58 -0700 (PDT) Received: by mail-qv1-xf2a.google.com with SMTP id 6a1803df08f44-635e6f8bf77so6884546d6.0 for ; Thu, 13 Jul 2023 15:19:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286777; x=1691878777; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=8o4IyqHJzRa/nDiWRXkN6bNOdUdp9p4wL2fLbhKNYUw=; b=VKG6RtLYX4OjJAWMYcCi/idlpAx0FzP6O/vWHN5VTssvHhvgsZOtW/Hqm9E9837gqn RC5i25zcSTeI3hJ3j03EZTQVyOhOEHsyh7kTP31Pty4ynIv59PvpW3MUNB9JGfrq1M2T /AD5kqfOHMqlrYeWJj2kXry8yyYbfiUZAyero= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286777; x=1691878777; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8o4IyqHJzRa/nDiWRXkN6bNOdUdp9p4wL2fLbhKNYUw=; b=JybNRQalmecRfDaxRnakMXFAhm5TlY/7wg3eJ0+QHNpFUewU3FnNBLb2VWKKxtgOvn RzIUgySDfe5KXGvBZJ3TwclH8WquS7pUdUhnBlHYI80u8Ycr3XckEXgQHH4H/E01bjOF vtINvg8COqCx/jTi0M64RrILiboHq9Ir8ifowmruOprHUcIlNGFMXa3ls/csLXYUSo1r yoPVp66ftnMrJ7bchSu4dkcBj4PXJiz1Ge8ds7cBn0mKVSNdEgzru5pO+n10mIs7cfY2 FJFApZNZzVhk7nvneHBFV9ySHVAE+AUK+2lPiPSR3MAWB/0dG2wSdjBLllIdJnf6uKCI MpGg== X-Gm-Message-State: ABy/qLbw7M99349z1chfkG662nTYFmyn1KQSESJ1fM8qkHGMqyGX6wo9 VELiT82D0Q4WbUlE/SxKRJaHOw== X-Google-Smtp-Source: APBJJlHvps96RrrIG9gHX+RpILx3Lw7ilOVwmOt6SJJL/IfCKQ2qvkBqsSvsJZSuXpHEjs3n/A3mzQ== X-Received: by 2002:a0c:be8b:0:b0:636:a9a3:9035 with SMTP id n11-20020a0cbe8b000000b00636a9a39035mr2287168qvi.42.1689286777285; Thu, 13 Jul 2023 15:19:37 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:36 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 09/11] net: phy: mdio-bcm-unimac: Add asp v2.0 support Date: Thu, 13 Jul 2023 15:19:04 -0700 Message-Id: <1689286746-43609-10-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000004e5dbc060065ba4b" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000004e5dbc060065ba4b MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIG1kaW8gY29tcGF0IHN0cmluZyBmb3IgQVNQIDIuMCBldGhlcm5ldCBkcml2ZXIuCgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29yaWdpbmUuY29tPgpSZXZpZXdl ZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFu IEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5lbGxpQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTog SnVzdGluIENoZW4gPGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9t ZGlvL21kaW8tYmNtLXVuaW1hYy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21kaW8vbWRpby1iY20tdW5pbWFjLmMgYi9k cml2ZXJzL25ldC9tZGlvL21kaW8tYmNtPQotdW5pbWFjLmMKaW5kZXggYmZjOWJlMjNjOTczLi42 YjI2YTA4MDM2OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21kaW8vbWRpby1iY20tdW5pbWFj LmMKKysrIGIvZHJpdmVycy9uZXQvbWRpby9tZGlvLWJjbS11bmltYWMuYwpAQCAtMzM0LDYgKzMz NCw4IEBAIHN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyh1bmltYWNfbWRpb19wbV9vcHMsCiAJCQkg dW5pbWFjX21kaW9fc3VzcGVuZCwgdW5pbWFjX21kaW9fcmVzdW1lKTsKPTIwCiBzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCB1bmltYWNfbWRpb19pZHNbXSA9M0QgeworCXsgLmNvbXBh dGlibGUgPTNEICJicmNtLGFzcC12Mi4xLW1kaW8iLCB9LAorCXsgLmNvbXBhdGlibGUgPTNEICJi cmNtLGFzcC12Mi4wLW1kaW8iLCB9LAogCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1k aW8tdjUiLCB9LAogCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1kaW8tdjQiLCB9LAog CXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1kaW8tdjMiLCB9LAotLT0yMAoyLjcuNAo= --0000000000004e5dbc060065ba4b Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIEnzGqj5limPyn3XWWeX7/6M+Ed7zWICe6ZI 8/t8bKFNMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkzN1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBx1V5M6o/OYf1ykCWN/qmBT7/LrqZ9z2XoZtYpDIJE0h/m43+tbxYk JdvupV4V2pMUmNcNTBXsh+ndLCMwcTRw+QyFytvVa46SoU8kLLTR18IKmxkk4K8qcb1D50YDws1h 7WRcbKgvfTF9p3eQerGsjYghY6wNAygbSlF9WNA6tLKlUOPsynzYBRhVqLqhqUYZqWg+UQJYG+VY E1OBIonUczhqn9Wl1Cz90swQcqAG1r0jLLUqToK/iTjnt0aKDSrgO0M3tWOdfC2NnUq2ddXJhv/r o3CuJ97FzsO/ibeyi0NNssfBb/MV+HUcdtfJhCp1Q/6uWO8zysyVcbXGvtcm --0000000000004e5dbc060065ba4b-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07272C001DE for ; Thu, 13 Jul 2023 22:20:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232305AbjGMWUt (ORCPT ); Thu, 13 Jul 2023 18:20:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231246AbjGMWUp (ORCPT ); Thu, 13 Jul 2023 18:20:45 -0400 Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91DB13A98 for ; Thu, 13 Jul 2023 15:20:07 -0700 (PDT) Received: by mail-qv1-xf32.google.com with SMTP id 6a1803df08f44-635857af3beso5968266d6.0 for ; Thu, 13 Jul 2023 15:20:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286780; x=1691878780; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=gPZnFuDL2B4xXDaF/vVU05wA3n3PPVHq2ZYGNrsPQ/o=; b=Haql2nTKtxqIvf79shJ6B6yjljaG9jPuqISOpUj7ZoAz3L/+nQ9SPRgI+a6Ozz+a3T vXoLASNkniIZDqql5//W8pPHam0u4ZWoZ7mK1y1bihhjywAuiOjBH2wZ/iGB0+v5FnVL 3ZOVSXuPunYULcvTCWNpSVEHuPMy5RSZf+3E4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286780; x=1691878780; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gPZnFuDL2B4xXDaF/vVU05wA3n3PPVHq2ZYGNrsPQ/o=; b=UBwyvQ1U7rlyIzMQdvZjnQG/t8y1wJGIUYXciA0HvQZHamHKs/6/CEGBMTODr3h1AR JSgPzZ91R/OJ8kp3RlijLTiR88AkAZ/tHfR/oMF5wrm58eTShnUJ3xDF63Iu2Ixswgts deeFtAopAAD7VryzrRl7Crt8a9rLrJaJL2GFPc6Ps7CDsua6aDCgghO9hMJmAswoONl9 UHNCRUIkr0YtburcZfaLztsO+4GoN1YsxCA0+OFVuWtZ9/pbj/gU80lHiXR4iGlnCxl8 dklI4SJQ4CljOIuQmW0ug0/t3xZga6dtfn6/gofrALr12C8y9XZFcnaVCFQ3p561X5H8 iEdw== X-Gm-Message-State: ABy/qLYqYfs1d1wSVbZoX33rQDgsaOr+srzE48s7wGPLxJCqK/WSlLKn 7BW5+p0NCU7DfaB3oCRxWZi9Kg== X-Google-Smtp-Source: APBJJlFTJ65y6qaeDgEBXaw8bhFPiBJv+b86/Ww+PTLBuxr6ypb/tFNp1W8J5LrbIbtNF8UpVpUkvw== X-Received: by 2002:a0c:e507:0:b0:62f:e0e1:478e with SMTP id l7-20020a0ce507000000b0062fe0e1478emr2136465qvm.63.1689286780099; Thu, 13 Jul 2023 15:19:40 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:39 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 10/11] net: phy: bcm7xxx: Add EPHY entry for 74165 Date: Thu, 13 Jul 2023 15:19:05 -0700 Message-Id: <1689286746-43609-11-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000077d156060065baf3" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000077d156060065baf3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+Cgo3 NDE2NSBpcyBhIDE2bm0gcHJvY2VzcyBTb0Mgd2l0aCBhIDEwLzEwMCBpbnRlZ3JhdGVkIEV0aGVy bmV0IFBIWSwKdXRpbGl6ZSB0aGUgcmVjZW50bHkgZGVmaW5lZCAxNm5tIEVQSFkgbWFjcm8gdG8g Y29uZmlndXJlIHRoYXQgUEhZLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9y bWFuQGNvcmlnaW5lLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5j aD4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9h ZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNv bS5jb20+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2JjbTd4eHguYyB8IDEgKwogaW5jbHVkZS9saW51 eC9icmNtcGh5LmggICB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvYmNtN3h4eC5jIGIvZHJpdmVycy9uZXQvcGh5L2Jj bTd4eHguYwppbmRleCBmOGMxN2EyNTNmOGIuLjg0NzhiMDgxYzA1OCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvcGh5L2JjbTd4eHguYworKysgYi9kcml2ZXJzL25ldC9waHkvYmNtN3h4eC5jCkBA IC05MTMsNiArOTEzLDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGJjbTd4eHhfZHJpdmVy W10gPTNEIHsKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzI3OCwgIkJyb2FkY29tIEJD TTcyNzgiKSwKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzM2NCwgIkJyb2FkY29tIEJD TTczNjQiKSwKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzM2NiwgIkJyb2FkY29tIEJD TTczNjYiKSwKKwlCQ003WFhYXzE2Tk1fRVBIWShQSFlfSURfQkNNNzQxNjUsICJCcm9hZGNvbSBC Q003NDE2NSIpLAogCUJDTTdYWFhfMjhOTV9HUEhZKFBIWV9JRF9CQ003NDM3MSwgIkJyb2FkY29t IEJDTTc0MzcxIiksCiAJQkNNN1hYWF8yOE5NX0dQSFkoUEhZX0lEX0JDTTc0MzksICJCcm9hZGNv bSBCQ003NDM5IiksCiAJQkNNN1hYWF8yOE5NX0dQSFkoUEhZX0lEX0JDTTc0MzlfMiwgIkJyb2Fk Y29tIEJDTTc0MzkgKDIpIiksCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JyY21waHkuaCBi L2luY2x1ZGUvbGludXgvYnJjbXBoeS5oCmluZGV4IDVkNzMyZjQ4Zjc4Ny4uYzU1ODEwYTQzNTQx IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2JyY21waHkuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2JyY21waHkuaApAQCAtNDQsNiArNDQsNyBAQAogI2RlZmluZSBQSFlfSURfQkNNNzM2NgkJCTB4 NjAwZDg0OTAKICNkZWZpbmUgUEhZX0lEX0JDTTczNDYJCQkweDYwMGQ4NjUwCiAjZGVmaW5lIFBI WV9JRF9CQ003MzYyCQkJMHg2MDBkODRiMAorI2RlZmluZSBQSFlfSURfQkNNNzQxNjUJCQkweDM1 OTA1MmMwCiAjZGVmaW5lIFBIWV9JRF9CQ003NDI1CQkJMHg2MDBkODZiMAogI2RlZmluZSBQSFlf SURfQkNNNzQyOQkJCTB4NjAwZDg3MzAKICNkZWZpbmUgUEhZX0lEX0JDTTc0MzUJCQkweDYwMGQ4 NzUwCi0tPTIwCjIuNy40Cg== --00000000000077d156060065baf3 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEILud5hDTsFVW/CmCgRXSecajL/5p0K2C5Qac eOL4CtXLMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTk0MFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCykjXdYnW6ZzqWoj8VC3iHRg0BSG6MBlPMYHFDosKFLvmnMjPNCpxV FkIMLyJWHhRPvXsaOgEgz5UwJ11Si5S6/2k3VsIqhyI2juNDvyXyyW51JioLyfWqwAl7NDRCVD3r A8jGlUekzxJdIAXTz3ejQhMlOyvPrYvxLwxt/5GVC/DeDIsVEVtIpzM9r8Uw/QvZycgQWbc3Bty4 i6DGQbVDWFPmsAGNiCiAPsiDkhM2/76/DnT4ZmNeLopFydWNfeP4yIyRF1hY1sxrpLcSBGMuSwNg 8JtmPNhSkKu7j0iRYO8eYFdBV+lxbD2q4DziZtH0GZITx5Qr5QQ81yPEnPHF --00000000000077d156060065baf3-- From nobody Sat Feb 7 12:29:44 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 395A3C001B0 for ; Thu, 13 Jul 2023 22:20:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233255AbjGMWUx (ORCPT ); Thu, 13 Jul 2023 18:20:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232273AbjGMWUt (ORCPT ); Thu, 13 Jul 2023 18:20:49 -0400 Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64C0F2D7D for ; Thu, 13 Jul 2023 15:20:12 -0700 (PDT) Received: by mail-vs1-xe2f.google.com with SMTP id ada2fe7eead31-443628ee79dso537584137.1 for ; Thu, 13 Jul 2023 15:20:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286783; x=1691878783; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=emRBI8Abl7scFe6bdPSOo0kbBS39KMkpIghscTU2vQs=; b=WSLdlreGa7V6L/Bu4YCP9/K4JT6jb6kcSFUvMcjWWXkVSsbgPqsWhuNHXd8lxyGXz5 RTlABDZR2DltkP6c+twiiqyM3PrtM4bwmfdByNVjbznd8Hx6E6sA0cDmeLdjIZvC7U4e iAss/AOfqak6LnTNep3UCHn+ClaKx3QdWDp10= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286783; x=1691878783; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=emRBI8Abl7scFe6bdPSOo0kbBS39KMkpIghscTU2vQs=; b=iEUkMv9B+X5IredpAzVcmnSu/noZfTNixuuV1fMZ+07ww4juJYtiDiGtqeRnihlaOm o04KAq4hYzk+y7k15wXrVOE8zszv447X7rf0sJdAoSI5hKr9WKrAAJlmIZ+f4EqZ+QGU ZoRAWQrnmNhD4qzVHIPTQWJoEafeixqj8H/iASjqlkpKJVxQ4I/IMNQoBXENiD7xMC1n qUHjqDq+ETU72I9NbA3Y1msLmY+sJP56RTDk/EiV8h91PfqM5EdCQaVeRMsL/z1C8L9Q bpeQmgU/Yb5cWA2rK6WXfyKjZxjkNq9+3mMK345+Xf1Bd19VQuXiswYgUymx1Iqzc8d3 EEkA== X-Gm-Message-State: ABy/qLaK94IGPyKirWfueBH7Nh1TbASImvfIR9a0Pg0S7weXecWkTeh7 JnrDA6XDMIenfyluHJCv9Kek/w== X-Google-Smtp-Source: APBJJlFioXY1G+Bd7UZP0nGF4r1bmLzgVdmUeN76yMd7y382vSKOp/cx1gqzbT+pvX+ZT8jfcrKSuA== X-Received: by 2002:a67:f50a:0:b0:444:c35d:4595 with SMTP id u10-20020a67f50a000000b00444c35d4595mr2223600vsn.33.1689286782897; Thu, 13 Jul 2023 15:19:42 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:42 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 11/11] MAINTAINERS: ASP 2.0 Ethernet driver maintainers Date: Thu, 13 Jul 2023 15:19:06 -0700 Message-Id: <1689286746-43609-12-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000a25597060065baa1" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000a25597060065baa1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIG1haW50YWluZXJzIGVudHJ5IGZvciBBU1AgMi4wIEV0aGVybmV0IGRyaXZlci4KClJldmll d2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBjb3JpZ2luZS5jb20+ClNpZ25lZC1v ZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVsbGlAYnJvYWRjb20uY29tPgpT aWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgotLS0K djMKCS0gQ2hhbmdlIGZyb20gZ21haWwgdG8gYnJvYWRjb20gZW1haWxzCgogTUFJTlRBSU5FUlMg fCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggOTlmMThmNmU4YmM2Li5kYTlhYjdl ZGQ1MDcgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC00MjE1 LDYgKzQyMTUsMTUgQEAgRjoJZHJpdmVycy9uZXQvbWRpby9tZGlvLWJjbS11bmltYWMuYwogRjoJ aW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JjbWdlbmV0LmgKIEY6CWluY2x1ZGUvbGludXgv cGxhdGZvcm1fZGF0YS9tZGlvLWJjbS11bmltYWMuaAo9MjAKK0JST0FEQ09NIEFTUCAyLjAgRVRI RVJORVQgRFJJVkVSCitNOglKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgor TToJRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+CitMOgli Y20ta2VybmVsLWZlZWRiYWNrLWxpc3RAYnJvYWRjb20uY29tCitMOgluZXRkZXZAdmdlci5rZXJu ZWwub3JnCitTOglTdXBwb3J0ZWQKK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvYnJjbSxhc3AtdjIuMC55YW1sCitGOglkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyLworCiBCUk9BRENPTSBJUFJPQyBBUk0gQVJDSElURUNUVVJFCiBNOglSYXkgSnVpIDxy anVpQGJyb2FkY29tLmNvbT4KIE06CVNjb3R0IEJyYW5kZW4gPHNicmFuZGVuQGJyb2FkY29tLmNv bT4KLS09MjAKMi43LjQK --000000000000a25597060065baa1 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIGwZ7v2bOi6QSSxg1pEoNqfhAyLdmKui+vTI dlBMDlbUMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTk0M1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQA1HFDYsgHBTFnKGyeG3kmGivmbJFyAyUVPAlTl93VfV4biypn86/nt JtMJaRcHT+/p4jtGoNRPfoRH2/2Ek3brJgTFSNp6Vahk7VoWBNRMIYZyVEFb66K/rcHIm82Pydle SRXr4P3zsPnEeyvjYSJvDpbh+0AEsE7wCG5ZZC8g02yQjon2Ct4WEiqJbU5+bXJao5Rv8Pc/2iJF K2h29UwAN7IGEZGUWlHWp0cMaO1lDNKAPZdIeoAkDOL246zb/NFb51bmE1mOIyv35ov9wXON+mwn shwTs/S6CZTNLeitsL5KblQAFVB+/r0Z33vXrbXPKAAWh7tUW3dHrzmzaIAV --000000000000a25597060065baa1--