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.6 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 85D8BC49EA6 for ; Thu, 24 Jun 2021 21:32:44 +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 49AE5613A9 for ; Thu, 24 Jun 2021 21:32:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 49AE5613A9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lucaceresoli.net 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-Transfer-Encoding:Content-Type: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=5SedUVDk43HJJdRYjLGCiyXHX1HYypmrtNlR2ZwXjFk=; b=G9gaBFam+dOtRwOqRfizqvwiAG 0gDDzwiADV8dLzceotavDoB7aVJTgQZ+u9753g9Qy6bc8/BICVSkptHFwoZTESHWl6l4brhvDS0c/ avWF5dJ76ByYhAsHhpHmIq6JAHn6LtI7Vm49jHYwA2/kid/e9hQqHrdloneaiGX35NNkLyfunfkH5 J87cTo3/bgR70l/iZziLUhNj52RqvoRH7d1WOca5p44sIpBP2om6H4b9h+3shPVqCec5902Y9YVDP R2AYzqJfezzzEFHQ4rkbUwK8wDLwLYff+FawsXVOBvznfi7lhuKb6gaul/n+GfOMVQtkeyk/3c5n3 cbxYgWpw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwWwS-00GO0w-Vb; Thu, 24 Jun 2021 21:31:21 +0000 Received: from hostingweb31-40.netsons.net ([89.40.174.40]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lwWwO-00GNzB-1T for linux-arm-kernel@lists.infradead.org; Thu, 24 Jun 2021 21:31:18 +0000 Received: from [77.244.183.192] (port=63848 helo=[192.168.178.41]) by hostingweb31.netsons.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1lwWwI-000Dnu-Sg; Thu, 24 Jun 2021 23:31:10 +0200 Subject: Re: [PATCH v2] PCI: dra7xx: Fix reset behaviour To: =?UTF-8?Q?Pali_Roh=c3=a1r?= Cc: Kishon Vijay Abraham I , Lorenzo Pieralisi , linus.walleij@linaro.org, linux-pci@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Rob Herring , Bjorn Helgaas References: <8207a53c-4de9-d0e5-295a-c165e7237e36@lucaceresoli.net> <20210622110627.aqzxxtf2j3uxfeyl@pali> <20210622115604.GA25503@lpieralisi> <20210622121649.ouiaecdvwutgdyy5@pali> <18a104a9-2cb8-7535-a5b2-f5f049adff47@lucaceresoli.net> <4d4c0d4d-41b4-4756-5189-bffa15f88406@ti.com> <20210622205220.ypu22tuxhpdn2jwz@pali> <2873969e-ac56-a41f-0cc9-38e387542aa1@lucaceresoli.net> <20210622211901.ikulpy32d6qlr4yw@pali> <588741e4-b085-8ae2-3311-27037c040a57@lucaceresoli.net> <20210622222328.3lfgkrhsdy6izedv@pali> From: Luca Ceresoli Message-ID: <51be082a-ff10-8a19-5648-f279aabcac51@lucaceresoli.net> Date: Thu, 24 Jun 2021 23:31:10 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210622222328.3lfgkrhsdy6izedv@pali> Content-Language: it-IT X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hostingweb31.netsons.net X-AntiAbuse: Original Domain - lists.infradead.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lucaceresoli.net X-Get-Message-Sender-Via: hostingweb31.netsons.net: authenticated_id: luca@lucaceresoli.net X-Authenticated-Sender: hostingweb31.netsons.net: luca@lucaceresoli.net X-Source: X-Source-Args: X-Source-Dir: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210624_143116_292716_92D98F38 X-CRM114-Status: GOOD ( 34.47 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUGFsaSwKCk9uIDIzLzA2LzIxIDAwOjIzLCBQYWxpIFJvaMOhciB3cm90ZToKPiBPbiBUdWVz ZGF5IDIyIEp1bmUgMjAyMSAyMzozNjozNSBMdWNhIENlcmVzb2xpIHdyb3RlOgo+PiBIaSBQYWxp LAo+Pgo+PiBPbiAyMi8wNi8yMSAyMzoxOSwgUGFsaSBSb2jDoXIgd3JvdGU6Cj4+PiBPbiBUdWVz ZGF5IDIyIEp1bmUgMjAyMSAyMzowODowNyBMdWNhIENlcmVzb2xpIHdyb3RlOgo+Pj4+IE9uIDIy LzA2LzIxIDIyOjUyLCBQYWxpIFJvaMOhciB3cm90ZToKPj4+Pj4gT24gVHVlc2RheSAyMiBKdW5l IDIwMjEgMTk6Mjc6MzcgS2lzaG9uIFZpamF5IEFicmFoYW0gSSB3cm90ZToKPj4+Pj4+IEhpIEx1 Y2EsIFBhbGksCj4+Pj4+Pgo+Pj4+Pj4gT24gMjIvMDYvMjEgNzowMSBwbSwgTHVjYSBDZXJlc29s aSB3cm90ZToKPj4+Pj4+PiBIaSwKPj4+Pj4+Pgo+Pj4+Pj4+IE9uIDIyLzA2LzIxIDE0OjE2LCBQ YWxpIFJvaMOhciB3cm90ZToKPj4+Pj4+Pj4gT24gVHVlc2RheSAyMiBKdW5lIDIwMjEgMTI6NTY6 MDQgTG9yZW56byBQaWVyYWxpc2kgd3JvdGU6Cj4+Pj4+Pj4+PiBbQWRkaW5nIExpbnVzIGZvciBH UElPIGRpc2N1c3Npb24sIHRocmVhZDoKPj4+Pj4+Pj4+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2xpbnV4LXBjaS8yMDIxMDUzMTA5MDU0MC4yNjYzMTcxLTEtbHVjYUBsdWNhY2VyZXNvbGkubmV0 XQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9uIFR1ZSwgSnVuIDIyLCAyMDIxIGF0IDAxOjA2OjI3UE0g KzAyMDAsIFBhbGkgUm9ow6FyIHdyb3RlOgo+Pj4+Pj4+Pj4+IEhlbGxvIQo+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gT24gVHVlc2RheSAyMiBKdW5lIDIwMjEgMTI6NTc6MjIgTHVjYSBDZXJlc29saSB3 cm90ZToKPj4+Pj4+Pj4+Pj4gTm90aGluZyBoYXBwZW5lZCBhZnRlciBhIGZldyB3ZWVrcy4uLiBJ IHVuZGVyc3RhbmQgdGhhdCBrbm93aW5nIHRoZQo+Pj4+Pj4+Pj4+PiBjb3JyZWN0IHJlc2V0IHRp bWluZ3MgaXMgcmVsZXZhbnQsIGJ1dCB1bmZvcnR1bmF0ZWx5IEkgY2Fubm90IGhlbHAgbXVjaAo+ Pj4+Pj4+Pj4+PiBpbiBmaW5kaW5nIG91dCB0aGUgY29ycmVjdCB2YWx1ZXMuCj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+IEhvd2V2ZXIgSSdtIHdvbmRlcmluZyB3aGF0IHNob3VsZCBoYXBwZW4gdG8g dGhpcyBwYXRjaC4gSXQgKmRvZXMqIGZpeCBhCj4+Pj4+Pj4+Pj4+IHJlYWwgYnVnLCBidXQgcG90 ZW50aWFsbHkgd2l0aCBhbiBpbmNvcnJlY3Qgb3Igbm9uLW9wdGltYWwgdXNsZWVwIHJhbmdlLgo+ Pj4+Pj4+Pj4+PiBEbyB3ZSByZWFsbHkgd2FudCB0byBpZ25vcmUgYSBidWdmaXggYmVjYXVzZSB3 ZSBhcmUgbm90IHN1cmUgYWJvdXQgaG93Cj4+Pj4+Pj4+Pj4+IGxvbmcgdGhpcyBkZWxheSBzaG91 bGQgYmU/Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBBcyB0aGVyZSBpcyBubyBiZXR0ZXIgc29sdXRp b24gcmlnaHQgbm93LCBJJ20gZmluZSB3aXRoIHlvdXIgcGF0Y2guIEJ1dAo+Pj4+Pj4+Pj4+IHBh dGNoIG5lZWRzIHRvIGJlIGFwcHJvdmVkIGJ5IExvcmVuem8sIHNvIHBsZWFzZSB3YWl0IGZvciBo aXMgZmluYWwKPj4+Pj4+Pj4+PiBhbnN3ZXIuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSSBhbSBub3Qg YSBHUElPIGV4cGVydCBhbmQgSSBoYXZlIGEgZmVlbGluZyB0aGlzIGlzIHBsYXRmb3JtIHNwZWNp ZmljCj4+Pj4+Pj4+PiBiZXlvbmQgd2hhdCB0aGUgUENJIHNwZWNpZmljYXRpb24gY2FuIGFjdHVh bGx5IGRlZmluZSBhcmNoaXRlY3R1cmFsbHkuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEluIG15IG9waW5p b24gdGltZW91dCBpcyBub3QgcGxhdGZvcm0gc3BlY2lmaWMgYXMgSSB3cm90ZSBpbiBlbWFpbDoK Pj4+Pj4+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtcGNpLzIwMjEwMzEwMTEwNTM1 LnpoNHBubjR2cG12endsNXFAcGFsaS8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gTXkgZXhwZXJpbWVudHMg YWxyZWFkeSBwcm92ZWQgdGhhdCBzb21lIFBDSWUgY2FyZHMgbmVlZHMgdG8gYmUgaW4gcmVzZXQK Pj4+Pj4+Pj4gc3RhdGUgZm9yIHNvbWUgbWluaW1hbCB0aW1lIG90aGVyd2lzZSB0aGV5IGNhbm5v dCBiZSBlbnVtZXJhdGVkLiBBbmQgaXQKPj4+Pj4+Pj4gZG9lcyBub3QgbWF0dGVyIHRvIHdoaWNo IHBsYXRmb3JtIHlvdSBjb25uZWN0IHRob3NlIChlbmRwb2ludCkgY2FyZHMuCj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IEkgZG8gbm90IHRoaW5rIHRoYXQgdGltZW91dCBpdHNlbGYgaXMgcGxhdGZvcm0gc3Bl Y2lmaWMuIEdQSU8gY29udHJvbHMKPj4+Pj4+Pj4gUEVSU1QjIHBpbiBhbmQgdGhlcmVmb3JlIHNw ZWNpZmllZCBzbGVlcCB2YWx1ZSBkaXJlY3RseSBkcml2ZXMgaG93IGxvbmcKPj4+Pj4+Pj4gaXMg Y2FyZCBvbiB0aGUgb3RoZXIgZW5kIG9mIFBDSWUgc2xvdCBpbiBXYXJtIFJlc2V0IHN0YXRlLiBQ Q0llIENFTSBzcGVjCj4+Pj4+Pj4+IGRpcmVjdGx5IHNheXMgdGhhdCBQRVJTVCMgc2lnbmFsIGNv bnRyb2xzIFBDSWUgV2FybSBSZXNldC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gV2hhdCBpcyBoZXJlIHBs YXRmb3JtIHNwZWNpZmljIHRoaW5nIGlzIHRoYXQgUEVSU1QjIHNpZ25hbCBpcyBjb250cm9sbGVk Cj4+Pj4+Pj4+IGJ5IEdQSU8uIEJ1dCB2YWx1ZSBvZiBzaWduYWwgKGhpZ2ggLyBsb3cpIGFuZCBo b3cgbG9uZyBpcyBpbiBzaWduYWwgaW4KPj4+Pj4+Pj4gd2hpY2ggc3RhdGUgZm9yIG1lIHNvdW5k cyBsaWtlIG5vdCBhbiBwbGF0Zm9ybSBzcGVjaWZpYyB0aGluZywgYnV0IGFzCj4+Pj4+Pj4+IFBD SWUgLyBDRU0gcmVsYXRlZC4KPj4+Pj4+Pgo+Pj4+Pj4+IFRoYXQncyBleGFjdGx5IG15IHVuZGVy c3RhbmRpbmcgb2YgdGhpcyBtYXR0ZXIuIEF0IGxlYXN0IGZvciB0aGUgZHJhN3h4Cj4+Pj4+Pj4g Y29udHJvbGxlciBpdCB3b3JrcyBleGFjdGx5IGxpa2UgdGhpcywgUEVSU1RuIyBpcyBub3RoaW5n IGJ1dCBhIEdQSU8KPj4+Pj4+PiBvdXRwdXQgZnJvbSB0aGUgU29DIHRoYXQgZHJpdmVzIHRoZSBQ RVJTVG4jIGlucHV0IG9mIHRoZSBleHRlcm5hbCBjaGlwCj4+Pj4+Pj4gd2l0aG91dCBhZmZlY3Rp bmcgdGhlIGNvbnRyb2xsZXIgZGlyZWN0bHkuCj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBXaGlsZSB0 aGUgcGF0Y2ggaXRzZWxmIGlzIGNvcnJlY3QsIHRoaXMga2luZC1vZiBjaGFuZ2VzIHRoZSBiZWhh dmlvciBvbgo+Pj4+Pj4gYWxyZWFkeSB1cHN0cmVhbWVkIHBsYXRmb3Jtcy4gUHJldmlvdXNseSB0 aGUgZHJpdmVyIGV4cGVjdGVkICNQRVJTVCB0bwo+Pj4+Pj4gYmUgYXNzZXJ0ZWQgYmUgZXh0ZXJu YWwgbWVhbnMgKG9yIGRlZmF1bHQgcG93ZXItdXAgc3RhdGUpIGFuZCBvbmx5IHRha2VzCj4+Pj4+ PiBjYXJlIG9mIGRlLWFzc2VydGluZyB0aGUgI1BFUlNUIGxpbmUuCj4+Pj4+Pgo+Pj4+Pj4gVGhl cmUgYXJlIDIgcGxhdGZvcm1zIHRoYXQgd2lsbCBiZSBpbXBhY3RlZCBkdWUgdG8gdGhpcyBjaGFu Z2UKPj4+Pj4+IDEpIGFyY2gvYXJtL2Jvb3QvZHRzL2FtNTd4eC1iZWFnbGUteDE1LWNvbW1vbi5k dHNpIChoYXMgYW4gaW52ZXJ0ZXIgb24KPj4+Pj4+IEdQSU8gbGluZSkKPj4+Pj4+IDIpIGFyY2gv YXJtL2Jvb3QvZHRzL2FtNTcxeC1pZGsuZHRzIChkaXJlY3RseSBjb25uZWN0ZWQgdG8gI1BFUlNU KQo+Pj4+Pj4KPj4+Pj4+IEZvciAxKSwgZ3Bpb2Rfc2V0X3ZhbHVlKHJlc2V0LCAwKSB3aWxsIGFz c2VydCB0aGUgUEVSU1QgbGluZSBkdWUgdG8gdGhlCj4+Pj4+PiBpbnZlcnRlciAoYW5kIEdQSU9f QUNUSVZFX0xPVykKPj4+Pj4+IEZvciAyKSwgZ3Bpb2Rfc2V0X3ZhbHVlKHJlc2V0LCAwKSB3aWxs IGFzc2VydCB0aGUgUEVSU1QgbGluZSBiZWNhdXNlIHdlCj4+Pj4+PiBoYXZlIEdQSU9fQUNUSVZF X0hJR0gKPj4+Pj4KPj4+Pj4gT3UhIFRoaXMgaXMgYSBwcm9ibGVtIGluIERULiBJdCBuZWVkcyB0 byBiZSBkZWZpbmVkIGluIGEgd2F5IHRoYXQgc3RhdGUKPj4+Pj4gaXMgc2FtZSBmb3IgZXZlcnkg RFRTIGRldmljZSB3aGljaCB1c2VzIHRoaXMgZHJpdmVyLgo+Pj4+Cj4+Pj4gV2h5Pwo+Pj4KPj4+ IEknbSBzdGFydGluZyB0byBiZSBjb25mdXNlZCBieSB0cmlwbGUgb3IgbW9yZSBuZWdhdGlvbnMg KGFzc2VydGluZywKPj4+IHNpZ25hbCBpbnZlcnRlciwgYWN0aXZlIGxvdykuLi4KPj4+Cj4+PiBJ biB5b3VyIHBhdGNoIGlzIEdQSU8gc2V0IHZhbHVlIHRvIDAgYW5kIEtpc2hvbiB3cm90ZSB0aGF0 IEdQSU8gc2V0Cj4+PiB2YWx1ZSB0byAwIGZvciB0aG9zZSB0d28gYm9hcmRzIGFzc2VydCBQRVJT VCMgbGluZS4gQXNzZXJ0aW5nIFBFUlNUIwo+Pj4gbGluZSBjYXVzZSBlbmRwb2ludCBQQ0llIGNh cmQgdG8gYmUgaW4gcmVzZXQgc3RhdGUuIEFuZCBpbiBwY2ktZHJhN3h4LmMKPj4+IGRyaXZlciB0 aGVyZSBpcyBubyBvdGhlciBjb2RlIHdoaWNoIGRlLWFzc2VydHMgUEVSU1QjIGxpbmUuCj4+Pgo+ Pj4gU28gYmFzZWQgb24gYWxsIHRoaXMgaW5mb3JtYXRpb24gSSBkZWR1Y2VkIHRoYXQgeW91ciBw YXRjaCB3aWxsIGNhdXNlCj4+PiBwdXR0aW5nIFBDSWUgY2FyZHMgaW50byByZXNldCBzdGF0ZSAo Zm9yZXZlcikgYW5kIHRoZXJlZm9yZSB0aGV5IHdvdWxkCj4+PiBub3Qgd29yay4KPj4+Cj4+PiBP ciBkbyBJIGhhdmUgaGVyZSBzb21lIG1pc3Rha2U/Cj4+Cj4+IFVobSwgYXQgdGltZSB0aW1lIGlu IHRoZSBuaWdodCBJJ20gbm90IHN1cmUgSSBjYW4gZG8gbXVjaCBtb3JlIHRoYW4KPj4gYWRkaW5n IGEgZmV3IG5vdGVzIG9uIHRvcCBvZiB0aGUgY29tbWl0IG1lc3NhZ2UuIEkgaG9wZSBpdCBoZWxw cyBhbnl3YXkuCj4+Cj4+IFRoZSBQQ0llIFBFUlNUbiByZXNldCBwaW4gaXMgYWN0aXZlIGxvdyBh bmQgc2hvdWxkIGJlIGFzc2VydGVkLCB0aGVuCj4+IGRlYXNzZXJ0ZWQuCj4+Cj4+IFRoZSBjdXJy ZW50IGltcGxlbWVudGF0aW9uIG9ubHkgZHJpdmVzIHRoZSBwaW4gb25jZSBpbiAiSElHSCIgcG9z aXRpb24sCj4+IHRodXMgcHJlc3VtYWJseSBpdCB3YXMgaW50ZW5kZWQgdG8gZGVhc3NlcnQgdGhl IHBpbi4gVGhpcyBoYXMgdHdvIHByb2JsZW1zOgo+Pgo+PiAgIDEpIGl0IGFzc3VtZXMgdGhlIHBp biB3YXMgYXNzZXJ0ZWQgYnkgb3RoZXIgbWVhbnMgYmVmb3JlIGxvYWRpbmcgdGhlCj4+ICAgICAg ZHJpdmVyIFtOb3RlOiBLaXNob24gY29uZmlybWVkIHNvIGZhcl0KPiAKPiBUaGlzIGlzIGVhc2ls eSBzb2x2YWJsZS4gSnVzdCBhc3NlcnQgUEVSU1QjIHBpbiBleHBsaWNpdGx5IHZpYQo+IGdwaW9k X3NldF92YWx1ZSgpIGNhbGwgcHJpb3IgY2FsbGluZyB0aGF0IHNsZWVwIGZ1bmN0aW9uLiBBbmQg aXQgd291bGQKPiB3b3JrIHdoYXRldmVyIHN0YXRlIHRoYXQgcGluIGhhcyBhdCBpbml0IHRpbWUu IFRoaXMgaGFzIGFkdmFudGFnZSB0aGF0Cj4gcmVhZGVyIG9mIHRoYXQgY29kZSBkb2VzIG5vdCBu ZWVkIHRvIGRvIHRvbyBtdWNoIGludmVzdGlnYXRpb24gdG8gY2hlY2sKPiBhdCB3aGljaCBzdGF0 ZSBpcyBHUElPIGF0IHByb2JlIHRpbWUgYW5kIHdoYXQgaW1wbGljYXRpb24gaXQgaGFzLi4uCgpJ IGFncmVlLCBpdCdzIHdoYXQgbXkgcGF0Y2ggZG9lcy4KCj4gU29tZSBvdGhlciBkcml2ZXIgYXJl IGRvaW5nIGl0IHRvbywgZS5nLiBwY2ktYWFyZHZhcmsuYy4KPiAKPiBEdWUgdG8gZmFjdCB0aGF0 IGFsc28gYm9vdGxvYWRlciBtYXkgdXNlIFBDSWUgYnVzIChtYXliZSBub3Qgbm93LCBidXQgaW4K PiBmdXR1cmU7IGxpa2UgaXQgaGFwcGVuZWQgd2l0aCBwY2ktYWFyZHZhcmsgYWZ0ZXIgaW50cm9k dWNpbmcgYm9vdAo+IHN1cHBvcnQgZnJvbSBOVk1lIGRpc2tzKSwgaW5pdGlhbCBzdGF0ZSBtYXkg Y2hhbmdlLgo+IAo+PiAgIDIpIGl0IGhhcyB0aGUgd3JvbmcgcG9sYXJpdHksIHNpbmNlICJISUdI IiBtZWFucyAiYWN0aXZlIiwgYW5kIHRoZSBwaW4gaXMKPj4gICAgICBwcmVzdW1hYmx5IGNvbmZp Z3VyZWQgYXMgYWN0aXZlIGxvdyBjb2hlcmVudGx5IHdpdGggdGhlIFBDSWUKPj4gICAgICBjb252 ZW50aW9uLCB0aHVzIGl0IGlzIGRyaXZlbiBwaHlzaWNhbGx5IHRvIDAsIGtlZXBpbmcgdGhlIGRl dmljZQo+PiAgICAgIHVuZGVyIHJlc2V0IHVubGVzcyB0aGUgcGluIGlzIGNvbmZpZ3VyZWQgYXMg YWN0aXZlIGhpZ2guCj4+ICAgICAgW05vdGU6IHRoZSBjdXJyZW4gMiBEVFMgZmlsZXMgcG9pbnRl ZCB0byBieSBLaXNob24gaGF2ZSBkaWZmZXJlbnQKPj4gICAgICAgcG9sYXJpdGllc10KPj4KPj4g Rml4IGJvdGggcHJvYmxlbXMgYnk6Cj4+Cj4+ICAgMSkga2VlcGluZyBkZXZtX2dwaW9kX2dldF9v cHRpb25hbChkZXYsIE5VTEwsIEdQSU9EX09VVF9ISUdIKSBhcyBpcywgYnV0Cj4+ICAgICAgYXNz dW1pbmcgdGhlIHBpbiBpcyBjb3JyZWN0bHkgY29uZmlndXJlZCBhcyAiYWN0aXZlIGxvdyIgdGhp cyBub3cKPj4gICAgICBiZWNvbWVzIGEgcmVzZXQgYXNzZXJ0aW9uCj4+ICAgMikgYWRkaW5nIGdw aW9kX3NldF92YWx1ZShyZXNldCwgMCkgYWZ0ZXIgYSBkZWxheSB0byBkZWFzc2VydCByZXNldAo+ PiBbTm90ZTogdGhpcyBpcyBleGFjdGx5IHRoZSBjdXJyZW50IGlkZWEsIGJ1dCB3aXRoIHRoZSBh ZGRpdGlvbmFsIG5lZWQgdG8KPj4gZml4ICg9aW52ZXJ0KSB0aGUgY3VycmVudCBwb2xhcml0aWVz IGluIERUXQo+IAo+IExvcmVuem8gYXNrZWQgYSBnb29kIHF1ZXN0aW9uIGhvdyBHUElPIGRyaXZl cyBQRVJTVCMuIEFuZCBtYXliZSBpdCB3b3VsZAo+IGJlIGEgZ29vZCBpZGVhIHRvIHVuaWZ5IGFs bCBwY2kgY29udHJvbGxlciBkcml2ZXJzIHRvIHVzZSBzYW1lIEdQSU8KPiB2YWx1ZSBmb3IgYXNz ZXJ0aW5nIFBFUlNUIyBwaW4uIElmIGl0IGlzIHBvc3NpYmxlLiBBcyB3ZSBjYW4gc2VlIGl0IGlz IGEKPiBiaWcgbWVzcy4KCkkgbWlnaHQgYmUgc2hvcnQtcmlnaHRlZCwgYnV0IEkgY2FuIHRoaW5r IG9mIG9ubHkgb25lIHdheSB0aGUgY29kZQpzaG91bGQgbG9vayBsaWtlIGluIGNvbnRyb2xsZXIg ZHJpdmVycy4gV2hpY2ggaXMsIHVuc3VycHJpc2luZ2x5LCB3aGF0Cm15IHBhdGNoIGRvZXM6Cgog IC8qIDEgPT0gYXNzZXJ0IHJlc2V0ID09IHB1dCBkZXZpY2UgdW5kZXIgcmVzZXQgKi8KICBncGlv ZF9zZXRfdmFsdWUocmVzZXQsIDEpOwogIC8qIG9yOiBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCgu Li4sIEdQSU9EX09VVF9ISUdIKTsgKi8KCiAgdXNsZWVwX3JhbmdlKC8qIHZhbHVlcyB1bmRlciBk aXNjdXNzaW9uICovKTsKCiAgLyogMCA9PSBkZWFzc2VydCByZXNldCA9PSByZWxlYXNlIGRldmlj ZSBmcm9tIHJlc2V0ICovCiAgZ3Bpb2Rfc2V0X3ZhbHVlKHJlc2V0LCAwKTsKClRoZSBQQ0kgY29u dHJvbGxlciBkcml2ZXIgc2hvdWxkIGFuZCBjYW4ndCBjYXJlIGFib3V0IGFueSBsaW5lCmludmVy c2lvbi4gSXQncyBib2FyZC1kZXBlbmRlbnQsIGFuZCBhcyBzdWNoIGl0IHNob3VsZCBiZSBtYXJr ZWQgaW4KZGV2aWNlIHRyZWUgKG9yIEFDUEkgb3Igd2hhdGV2ZXIgLS0gSSdtIGFzc3VtaW5nIEFD UEkgY2FuIGRlc2NyaWJlIHRoaXMgaXQpLgoKQW0gSSBvdmVybG9va2luZyBhbnl0aGluZz8KLS0g Ckx1Y2EKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==