From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6195EC48BE5 for ; Wed, 16 Jun 2021 01:11:40 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 21EB260724 for ; Wed, 16 Jun 2021 01:11:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 21EB260724 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:CC:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CQ7W1ghbysjSOgkH4dIo6x0NiD1COOVhlnuaZln7iww=; b=vzy0WgB6CbJznYe4eKLrOMDTbO N2vURv6R9UTgb2trIOTD6mYVGh9Hj/W0vE6phc5SQ49+BsFayKlpQ58YR0FCc0/rh0p7pFTYxLCZq /Z6TbPG5yfHcaR5+v6ateP02QekuhWaeQI86Z1qiio1vUTavcsZhFCEhVaGiH7ORUygXJA3hqvPma X1FY6dNV0TzRvHQF2dEIMnxfH/7iLRz8rQntPXE8GGj7z2mIst0ZTYOehHl9nL9LfvZ42pDNKYTEt IdzwwuHLsTTWErxSa2J6kywioT3wfPG0QdB1ehNWxemmXhp1RAAred9pQsioTMj+b+YivmFp3eIK3 vTnoPeMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltK41-004KLw-EJ; Wed, 16 Jun 2021 01:09:53 +0000 Received: from szxga03-in.huawei.com ([45.249.212.189]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ltK3w-004KKi-Hc for linux-arm-kernel@lists.infradead.org; Wed, 16 Jun 2021 01:09:51 +0000 Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.54]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4G4Rng2YF3z6y5N; Wed, 16 Jun 2021 09:05:43 +0800 (CST) Received: from dggema757-chm.china.huawei.com (10.1.198.199) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2176.2; Wed, 16 Jun 2021 09:09:41 +0800 Received: from [127.0.0.1] (10.69.38.203) by dggema757-chm.china.huawei.com (10.1.198.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Wed, 16 Jun 2021 09:09:41 +0800 Subject: Re: [PATCH v6 2/2] drivers/perf: hisi: Add driver for HiSilicon PCIe PMU To: =?UTF-8?Q?Krzysztof_Wilczy=c5=84ski?= , Linuxarm CC: , , , , , , References: <1622467951-32114-1-git-send-email-liuqi115@huawei.com> <1622467951-32114-3-git-send-email-liuqi115@huawei.com> <20210611233355.GA183580@rocinante> From: "liuqi (BA)" Message-ID: Date: Wed, 16 Jun 2021 09:09:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <20210611233355.GA183580@rocinante> Content-Language: en-GB X-Originating-IP: [10.69.38.203] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggema757-chm.china.huawei.com (10.1.198.199) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210615_180948_969158_C44FCA74 X-CRM114-Status: GOOD ( 43.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkhpIEtyenlzenRvZiwKT24gMjAyMS82LzEyIDc6MzMsIEtyenlzenRvZiBXaWxjennFhHNraSB3 cm90ZToKPiBIaSBRaSwKPiAKPiBUaGFuayB5b3UgZm9yIHNlbmRpbmcgdGhlIHBhdGNoIG92ZXIh Cj4gCj4gWy4uLl0KPj4gKy8qCj4+ICsgKiBUaGlzIGRyaXZlciBhZGRzIHN1cHBvcnQgZm9yIFBD SWUgUE1VIFJDaUVQIGRldmljZS4gUmVsYXRlZAo+PiArICogcGVyZiBldmVudHMgYXJlIGJhbmR3 aWR0aCwgYmFuZHdpZHRoIHV0aWxpemF0aW9uLCBsYXRlbmN5Cj4+ICsgKiBldGMuCj4+ICsgKgo+ PiArICogQ29weXJpZ2h0IChDKSAyMDIxIEhpU2lsaWNvbiBMaW1pdGVkCj4+ICsgKiBBdXRob3I6 IFFpIExpdTxsaXVxaTExNUBodWF3ZWkuY29tPgo+PiArICovCj4gCj4gQSBzbWFsbCBuaXRwaWNr OiBtaXNzaW5nIHNwYWNlIGJldHdlZW4geW91ciBuYW1lIGFuZCB0aGUgZS1tYWlsIGFkZHJlc3Mu Cj4gCnRoYW5rcywgd2lsbCBmaXggdGhpcy4KPiBbLi4uXQo+PiArc3RhdGljIHNzaXplX3QgaGlz aV9wY2llX2V2ZW50X3N5c2ZzX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAo+PiArCQkJCSAgIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCj4+ICt7Cj4+ICsJc3RydWN0 IGRldl9leHRfYXR0cmlidXRlICplYXR0cjsKPj4gKwo+PiArCWVhdHRyID0gY29udGFpbmVyX29m KGF0dHIsIHN0cnVjdCBkZXZfZXh0X2F0dHJpYnV0ZSwgYXR0cik7Cj4+ICsKPj4gKwlyZXR1cm4g c3lzZnNfZW1pdChidWYsICJjb25maWc9MHglbHhcbiIsICh1bnNpZ25lZCBsb25nKWVhdHRyLT52 YXIpOwo+PiArfQo+IAo+IEkgYW0gbm90IHRoYXQgZmFtaWxpYXIgd2l0aCB0aGUgcGVyZiBkcml2 ZXJzLCB0aHVzIEkgbWlnaHQgYmUgY29tcGxldGVseQo+IHdyb25nIGhlcmUsIGJ1dCB1c3VhbGx5 IGZvciBzeXNmcyBvYmplY3RzIGEgc2luZ2xlIHZhbHVlIGlzIHByZWZlcnJlZCwKPiBzbyB0aGF0 IHRoaXMgImNvbmZpZz0iIHRlY2huaWNhbGx5IHdvdWxkIG5vdCBiZSBuZWVkZWQsIHVubGVzcyB0 aGlzIGlzCj4gc29tZXdoYXQgZXNzZW50aWFsIHRvIHRoZSBjb25zdW1lcnMgb2YgdGhpcyBhdHRy aWJ1dGUgdG8ga25vdyB3aGF0IHRoZQo+IHZhbHVlIGlzPyDCoFdoYXQgZG8geW91IHRoaW5rPwoi Y29uZmlnPSIgaXMgYSBzdXBwb3J0ZWQgZm9yIHVzZXJzcGFjZSB0b29sLCBpdCBpcyBhIGtpbmQg b2YgYWxpYXMsIHNvIApjYW5ub3QgYmUgcmVtb3ZlciBoZXJlLCB0aGFua3MuCj4gCj4gWy4uLl0K Pj4gK3N0YXRpYyBzc2l6ZV90IGhpc2lfcGNpZV9pZGVudGlmaWVyX3Nob3coc3RydWN0IGRldmlj ZSAqZGV2LAo+PiArCQkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4+ICsJCQkJ CSBjaGFyICpidWYpCj4+ICt7Cj4+ICsJc3RydWN0IGhpc2lfcGNpZV9wbXUgKnBjaWVfcG11ID0g dG9fcGNpZV9wbXUoZGV2X2dldF9kcnZkYXRhKGRldikpOwo+PiArCj4+ICsJcmV0dXJuIHN5c2Zz X2VtaXQoYnVmLCAiMHgleFxuIiwgcGNpZV9wbXUtPmlkZW50aWZpZXIpOwo+PiArfQo+IAo+IFdo YXQgYWJvdXQgdXNpbmcgdGhlICIlI3giIGZvcm1hdHRpbmcgZmxhZz8gIEl0IHdvdWxkIGF1dG9t YXRpY2FsbHkKPiBhZGRlZCB0aGUgIjB4IiBwcmVmaXgsIGV0Yy4KPiAKdGhhbmtzLCB3aWxsIGZp eCB0aGlzLgo+PiArc3RhdGljIHNzaXplX3QgaGlzaV9wY2llX2J1c19zaG93KHN0cnVjdCBkZXZp Y2UgKmRldiwKPj4gKwkJCQkgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCj4+ICt7Cj4+ICsJc3RydWN0IGhpc2lfcGNpZV9wbXUgKnBjaWVfcG11ID0gdG9fcGNpZV9w bXUoZGV2X2dldF9kcnZkYXRhKGRldikpOwo+PiArCj4+ICsJcmV0dXJuIHN5c2ZzX2VtaXQoYnVm LCAiMHglMDJ4XG4iLCBQQ0lfQlVTX05VTShwY2llX3BtdS0+YmRmX21pbikpOwo+PiArfQo+IAo+ IFNhbWUgYXMgYWJvdmUsIHdoYXQgYWJvdXQgIiUjMDJ4Ij8KPiAKdGhhbmtzLCB3aWxsIGZpeCB0 aGlzLgo+IFsuLi5dCj4+ICtzdGF0aWMgYm9vbCBoaXNpX3BjaWVfcG11X3ZhbGlkX2ZpbHRlcihz dHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsCj4+ICsJCQkJICAgICAgIHN0cnVjdCBoaXNpX3BjaWVf cG11ICpwY2llX3BtdSkKPj4gK3sKPj4gKwl1MzIgc3ViZXZfaWR4ID0gaGlzaV9wY2llX2dldF9z dWJldmVudChldmVudCk7Cj4+ICsJdTMyIGV2ZW50X2lkeCA9IGhpc2lfcGNpZV9nZXRfZXZlbnQo ZXZlbnQpOwo+PiArCXUzMiByZXF1ZXN0ZXJfaWQgPSBoaXNpX3BjaWVfZ2V0X2JkZihldmVudCk7 Cj4+ICsKPj4gKwlpZiAoc3ViZXZfaWR4ID4gSElTSV9QQ0lFX1NVQkVWRU5UX01BWCB8fAo+PiAr CSAgICBldmVudF9pZHggPiBISVNJX1BDSUVfRVZFTlRfTUFYKSB7Cj4+ICsJCXBjaV9lcnIocGNp ZV9wbXUtPnBkZXYsCj4+ICsJCQkiTWF4IGV2ZW50IGluZGV4IGFuZCBtYXggc3ViZXZlbnQgaW5k ZXggaXM6ICVkLCAlZC5cbiIsCj4+ICsJCQlISVNJX1BDSUVfRVZFTlRfTUFYLCBISVNJX1BDSUVf U1VCRVZFTlRfTUFYKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPiAKPiBXYXMgdGhpcyBl cnJvciBtZXNzYWdlIGFib3ZlIGludGVuZGVkIHRvIGJlIGEgZGVidWcgbWVzc2FnZT8gIEl0J3Mg YSBiaXQKPiBvcGFxdWUgaW4gdGVybXMgd2hhdCB0aGUgZXJyb3IgYWN0dWFsbHkgaXMgaGVyZS4g IFdlIG1pZ2h0IG5lZWQgdG8gY2xlYXIKPiBpdCB1cCBhIGxpdHRsZS4KPiAKdGhhbmtzLCB3aWxs IGNoYW5nZSB0aGlzIG1lc3NhZ2UgdG8gcGNpX2RiZyBuZXh0IHRpbWUuCj4gWy4uLl0KPj4gK3N0 YXRpYyBib29sIGhpc2lfcGNpZV9wbXVfdmFsaWRhdGVfZXZlbnRfZ3JvdXAoc3RydWN0IHBlcmZf ZXZlbnQgKmV2ZW50KQo+PiArewo+PiArCXN0cnVjdCBwZXJmX2V2ZW50ICpzaWJsaW5nLCAqbGVh ZGVyID0gZXZlbnQtPmdyb3VwX2xlYWRlcjsKPj4gKwlpbnQgY291bnRlcnMgPSAxOwo+IAo+IEhv dyBiaWcgdGhpcyBjb3VudGVyIGNvdWxkIGJlY29tZT8KPiAKPiBXb3VsZCBpdCBldmVyIGJlIGdy ZWF0ZXIgdGhhbiBISVNJX1BDSUVfTUFYX0NPVU5URVJTPyAgSSBhbSBhc2tpbmcsIGFzCj4gaWYg aXQgd291bGQgYmUgZXZlciBncmVhdGVyLCB0aGVuIHBlcmhhcHMgdW5zaWduZWQgaW50IHdvdWxk IGJlIGJldHRlcgo+IHRvIHVzZSwgYW5kIGlmIG5vdCwgdGhlbiBwZXJoYXBzIHNvbWV0aGluZyBz bWFsbGVyIHRoYW4gaW50PyAgV2hhdCBkbwo+IHlvdSB0aGluaywgZG9lcyB0aGlzIGV2ZW4gbWFr ZSBzZW5zZSB0byBjaGFuZ2U/Cj4gCkkgdGhpbmsgdGhpcyAiY291bnRlciIgaXMgdXNlZCB0byBj YWN1bGF0ZSBob3cgbWFueSBldmVudHMgaGF2ZSBiZWVuIHNldCAKaW4gY21kbGluZSwgc28gaXQg d2lsbCBhbHdheXMgYmlnZ2VyIHRoYW4gemVyby4gU28gaW50IGFuZCB1MzIgc2VlbXMgCnNhbWUg aGVyZS5UaGFua3MsCgo+IFsuLi5dCj4+ICtzdGF0aWMgaW50IGhpc2lfcGNpZV9wbXVfZXZlbnRf aW5pdChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQpCj4+ICt7Cj4+ICsJc3RydWN0IGhpc2lfcGNp ZV9wbXUgKnBjaWVfcG11ID0gdG9fcGNpZV9wbXUoZXZlbnQtPnBtdSk7Cj4+ICsKPj4gKwlldmVu dC0+Y3B1ID0gcGNpZV9wbXUtPm9uX2NwdTsKPj4gKwo+PiArCWlmIChldmVudC0+YXR0ci50eXBl ICE9IGV2ZW50LT5wbXUtPnR5cGUpCj4+ICsJCXJldHVybiAtRU5PRU5UOwo+PiArCj4+ICsJLyog U2FtcGxpbmcgaXMgbm90IHN1cHBvcnRlZC4gKi8KPj4gKwlpZiAoaXNfc2FtcGxpbmdfZXZlbnQo ZXZlbnQpIHx8IGV2ZW50LT5hdHRhY2hfc3RhdGUgJiBQRVJGX0FUVEFDSF9UQVNLKQo+PiArCQly ZXR1cm4gLUVPUE5PVFNVUFA7Cj4+ICsKPj4gKwlpZiAoIWhpc2lfcGNpZV9wbXVfdmFsaWRfZmls dGVyKGV2ZW50LCBwY2llX3BtdSkpIHsKPj4gKwkJcGNpX2VycihwY2llX3BtdS0+cGRldiwgIklu dmFsaWQgZmlsdGVyIVxuIik7Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCX0KPiAKPiBbLi4u XQo+PiArLyoKPj4gKyAqIFRoZSBiYW5kd2lkdGgsIGxhdGVuY3ksIGJ1cyB1dGlsaXphdGlvbiBh bmQgYnVmZmVyIG9jY3VwYW5jeSBmZWF0dXJlcyBhcmUKPj4gKyAqIGNhbGN1bGF0ZWQgZnJvbSBk YXRhIGluIEhJU0lfUENJRV9DTlQgYW5kIGV4dGVuZGVkIGRhdGEgaW4gSElTSV9QQ0lFX0VYVF9D TlQuCj4+ICsgKiBPdGhlciBmZWF0dXJlcyBhcmUgb2J0YWluZWQgb25seSBieSBISVNJX1BDSUVf Q05ULgo+PiArICogU28gZGF0YSBhbmQgZGF0YV9leHQgYXJlIHByb2Nlc3NlZCBpbiB0aGlzIGZ1 bmN0aW9uIHRvIGdldCBwZXJmb3JtYW5hY2UKPj4gKyAqIHZhbHVlIGxpa2UsIGJhbmR3aWR0aCwg bGF0ZW5jeSwgZXRjLgo+PiArICovCj4gCj4gQSBzbWFsbCB0eXBvIGluIHRoZSB3b3JsZCAicGVy Zm9ybWFuY2UiIGFib3ZlLgo+IAp0aGFua3MsIHdpbGwgZml4IHRoaXMuCj4gWy4uLl0KPj4gK3N0 YXRpYyB1NjQgaGlzaV9wY2llX3BtdV9nZXRfcGVyZm9ybWFuY2Uoc3RydWN0IHBlcmZfZXZlbnQg KmV2ZW50LCB1NjQgZGF0YSwKPj4gKwkJCQkJIHU2NCBkYXRhX2V4dCkKPj4gK3sKPj4gKyNkZWZp bmUgQ09OVkVSVF9EV19UT19CWVRFKHgpCShzaXplb2YodTMyKSAqICh4KSkKPiAKPiBJIHdvdWxk IG1vdmUgdGhpcyBtYWNybyBhdCB0aGUgdG9wIGFsb25nc2lkZSBvdGhlciBjb25zdGFudHMgYW5k IG1hY3JvcywKPiBhcyBoZXJlIGl0IG1ha2VzIHRoZSBjb2RlIGhhcmRlciB0byByZWFkLiAgV2hh dCBkbyB5b3UgdGhpbms/Cj4gCj4gWy4uLl0KPj4gK3N0YXRpYyBpbnQgaGlzaV9wY2llX3BtdV9p cnFfcmVnaXN0ZXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4+ICsJCQkJICAgICAgc3RydWN0IGhp c2lfcGNpZV9wbXUgKnBjaWVfcG11KQo+PiArewo+PiArCWludCBpcnEsIHJldDsKPj4gKwo+PiAr CXJldCA9IHBjaV9hbGxvY19pcnFfdmVjdG9ycyhwZGV2LCAxLCAxLCBQQ0lfSVJRX01TSSk7Cj4+ ICsJaWYgKHJldCA8IDApIHsKPj4gKwkJcGNpX2VycihwZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBN U0kgdmVjdG9ycywgcmV0ID0gJWQhXG4iLCByZXQpOwo+PiArCQlyZXR1cm4gcmV0Owo+PiArCX0K PiAKPiBUaGlzIGlzIGEgbml0cGljaywgc28gZmVlbCBmcmVlIHRvIGlnbm9yZSBpdCwgYnV0IHdo YXQgZG8geW91IHRoaW5rIG9mCj4gY2hhbmdpbmcgdGhpcyAoYW5kIGFsc28gb3RoZXIgbWVzc2Fn ZXMgYWxpa2UpIG1lc3NhZ2UgdG8gYmUsIGZvcgo+IGV4YW1wbGU6Cj4gCj4gICAgcGNpX2Vycihw ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBNU0kgdmVjdG9yczogJWRcbiIsIHJldCk7Cj4gCj4gV2h5 PyAgSSBwZXJzb25hbGx5IGRvbid0IGZpbmQgZGlzcGxheWluZyBhIHJldHVybiBjb2RlL3ZhbHVl IGZvbGxvd2VkIGJ5Cj4gYSBwdW5jdHVhdGlvbiBlYXN5IHRvIHJlYWQsIGVzcGVjaWFsbHkgd2hl biBsb29raW5nIHRocm91Z2ggYSBsb3Qgb2YKPiBsaW5lcyBhbmQgb3RoZXIgbWVzc2FnZXMgaW4g dGhlIGtlcm5lbCByaW5nIGJ1ZmZlci4KPiAKCmdvdCBpdCwgd2lsbCBmaXggdGhpcyBuZXh0IHRp bWUuCj4gWy4uLl0KPj4gKwo+PiArCWlycSA9IHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApOwo+PiAr CXJldCA9IHJlcXVlc3RfaXJxKGlycSwgaGlzaV9wY2llX3BtdV9pcnEsCj4+ICsJCQkgIElSUUZf Tk9CQUxBTkNJTkcgfCBJUlFGX05PX1RIUkVBRCwgImhpc2lfcGNpZV9wbXUiLAo+PiArCQkJICBw Y2llX3BtdSk7Cj4+ICsJaWYgKHJldCkgewo+PiArCQlwY2lfZXJyKHBkZXYsICJGYWlsZWQgdG8g cmVnaXN0ZXIgaXJxLCByZXQgPSAlZCFcbiIsIHJldCk7Cj4+ICsJCXBjaV9mcmVlX2lycV92ZWN0 b3JzKHBkZXYpOwo+PiArCQlyZXR1cm4gcmV0Owo+PiArCX0KPiAKPiBJdCB3b3VsZCBiZSAiSVJR IiBpbiB0aGUgZXJyb3IgbWVzc2FnZSBhYm92ZS4KPiAKb2ssIHdpbGwgY2hhbmdlIHRoaXMsIHRo YW5rcy4KPiBbLi4uXQo+PiArc3RhdGljIGludCBoaXNpX3BjaWVfcG11X29mZmxpbmVfY3B1KHVu c2lnbmVkIGludCBjcHUsIHN0cnVjdCBobGlzdF9ub2RlICpub2RlKQo+PiArewo+PiArCXN0cnVj dCBoaXNpX3BjaWVfcG11ICpwY2llX3BtdSA9IGhsaXN0X2VudHJ5X3NhZmUobm9kZSwKPj4gKwkJ CQkJIHN0cnVjdCBoaXNpX3BjaWVfcG11LCBub2RlKTsKPj4gKwl1bnNpZ25lZCBpbnQgdGFyZ2V0 Owo+PiArCj4+ICsJLyogTm90aGluZyB0byBkbyBpZiB0aGlzIENQVSBkb2Vzbid0IG93biB0aGUg UE1VICovCj4+ICsJaWYgKHBjaWVfcG11LT5vbl9jcHUgIT0gY3B1KQo+PiArCQlyZXR1cm4gMDsK Pj4gKwo+PiArCS8qIENob29zZSBhIG5ldyBDUFUgZnJvbSBhbGwgb25saW5lIGNwdXMuICovCj4+ ICsJdGFyZ2V0ID0gY3B1bWFza19maXJzdChjcHVfb25saW5lX21hc2spOwo+PiArCWlmICh0YXJn ZXQgPj0gbnJfY3B1X2lkcykgewo+PiArCQlwY2lfZXJyKHBjaWVfcG11LT5wZGV2LCAiVGhlcmUg aXMgbm8gY3B1IHRvIHNldCFcbiIpOwo+PiArCQlyZXR1cm4gMDsKPj4gKwl9Cj4gCj4gVG8gYmUg Y29uc2lzdGVudCwgaXQgd291bGQgYmUgIkNQVXMiIGFuZCAiQ1BVIiBpbiB0aGUgYWJvdmUuCj4g Cj4gWy4uLl0KPj4gK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSBoaXNpX3BjaWVfcG11 X2J1c19hdHRyID0KPj4gKwlfX0FUVFIoYnVzLCAwNDQ0LCBoaXNpX3BjaWVfYnVzX3Nob3csIE5V TEwpOwo+IFsuLi5dCj4+ICtzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgaGlzaV9wY2ll X3BtdV9jcHVtYXNrX2F0dHIgPQo+PiArCV9fQVRUUihjcHVtYXNrLCAwNDQ0LCBoaXNpX3BjaWVf Y3B1bWFza19zaG93LCBOVUxMKTsKPiBbLi4uXQo+PiArc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlIGhpc2lfcGNpZV9wbXVfaWRlbnRpZmllcl9hdHRyID0KPj4gKwlfX0FUVFIoaWRlbnRp ZmllciwgMDQ0NCwgaGlzaV9wY2llX2lkZW50aWZpZXJfc2hvdywgTlVMTCk7Cj4gCj4gV291bGQg aXQgYmUgYXQgcG9zc2libGUgZm9yIGFueSBvZiB0aGUgYWJvdmUgX19BVFRSKCkgbWFjcm9zIHRv IGJlCj4gcmVwbGFjZWQgd2l0aCB0aGUgREVWSUNFX0FUVFJfUk8oKSBtYWNybz8gIE9yIHBlcmhh cHMgd2l0aCBfX0FUVFJfUk8oKQo+IGlmIHRoZSBvdGhlciBvbmUgd291bGQgYmUgYSBnb29kIGZp dD8KPiAKeWVz77yMIERFVklDRV9BVFRSX1JPKCkgbWFjcm8gY291bGQgYmUgdXNlZCBoZXJlLCB0 aGFua3MuCj4gWy4uLl0KPj4gK3N0YXRpYyBpbnQgaGlzaV9wY2llX2luaXRfZGV2KHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQo+PiArewo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlyZXQgPSBwY2lfZW5h YmxlX2RldmljZShwZGV2KTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJCXBjaV9lcnIocGRldiwgIkZh aWxlZCB0byBlbmFibGUgcGNpIGRldmljZSwgcmV0ID0gJWQuXG4iLCByZXQpOwo+PiArCQlyZXR1 cm4gcmV0Owo+PiArCX0KPj4gKwo+PiArCXJldCA9IHBjaV9yZXF1ZXN0X21lbV9yZWdpb25zKHBk ZXYsICJoaXNpX3BjaWVfcG11Iik7Cj4+ICsJaWYgKHJldCA8IDApIHsKPj4gKwkJcGNpX2Vycihw ZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3QgcGNpIG1lbSByZWdpb25zLCByZXQgPSAlZC5cbiIsCj4+ ICsJCQlyZXQpOwo+PiArCQlwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7Cj4+ICsJCXJldHVybiBy ZXQ7Cj4+ICsJfQo+IAo+IEl0IHdvdWxkIGJlICJQQ0kiIGluIGJvdGggZXJyb3IgbWVzc2FnZXMg YWJvdmUuCj4gCndpbGwgZml4IGl0LgoKPiBbLi4uXQo+PiArc3RhdGljIGludCBfX2luaXQgaGlz aV9wY2llX21vZHVsZV9pbml0KHZvaWQpCj4+ICt7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCXJl dCA9IGNwdWhwX3NldHVwX3N0YXRlX211bHRpKENQVUhQX0FQX1BFUkZfQVJNX0hJU0lfUENJRV9Q TVVfT05MSU5FLAo+PiArCQkJCSAgICAgICJBUF9QRVJGX0FSTV9ISVNJX1BDSUVfUE1VX09OTElO RSIsCj4+ICsJCQkJICAgICAgaGlzaV9wY2llX3BtdV9vbmxpbmVfY3B1LAo+PiArCQkJCSAgICAg IGhpc2lfcGNpZV9wbXVfb2ZmbGluZV9jcHUpOwo+PiArCWlmIChyZXQpIHsKPj4gKwkJcHJfZXJy KCJGYWlsZWQgdG8gc2V0dXAgUENJRSBQTVUgaG90cGx1ZywgcmV0ID0gJWQuXG4iLCByZXQpOwo+ PiArCQlyZXR1cm4gcmV0Owo+PiArCX0KPiAKPiBJdCB3b3VsZCBiZSAiUENJZSIgaW4gdGhlIGVy cm9yIG1lc3NhZ2UgYWJvdmUuCj4gCndpbGwgZml4IGl0LgpUaGFua3MsClFpCj4gCUtyenlzenRv Zgo+IC4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==