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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham 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 AD1D9C4707F for ; Thu, 27 May 2021 07:33:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 44B4D6128D for ; Thu, 27 May 2021 07:33:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 44B4D6128D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=shipmail.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 066616ECBA; Thu, 27 May 2021 07:33:53 +0000 (UTC) Received: from ste-pvt-msa2.bahnhof.se (ste-pvt-msa2.bahnhof.se [213.80.101.71]) by gabe.freedesktop.org (Postfix) with ESMTPS id E5CF36E02B; Thu, 27 May 2021 07:33:50 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by ste-pvt-msa2.bahnhof.se (Postfix) with ESMTP id 2439D3F720; Thu, 27 May 2021 09:33:49 +0200 (CEST) Authentication-Results: ste-pvt-msa2.bahnhof.se; dkim=pass (1024-bit key; unprotected) header.d=shipmail.org header.i=@shipmail.org header.b="knt/+KdF"; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at bahnhof.se Authentication-Results: ste-ftg-msa2.bahnhof.se (amavisd-new); dkim=pass (1024-bit key) header.d=shipmail.org Received: from ste-pvt-msa2.bahnhof.se ([127.0.0.1]) by localhost (ste-ftg-msa2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bODBibBt7uqR; Thu, 27 May 2021 09:33:48 +0200 (CEST) Received: by ste-pvt-msa2.bahnhof.se (Postfix) with ESMTPA id 683853F4F4; Thu, 27 May 2021 09:33:47 +0200 (CEST) Received: from [192.168.0.209] (irdmzpr01-ext.ir.intel.com [192.198.151.36]) by mail1.shipmail.org (Postfix) with ESMTPSA id 76092360128; Thu, 27 May 2021 09:33:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=shipmail.org; s=mail; t=1622100826; bh=MCtIY73IFT7FJiv94ZC1aI3V8BMX4JKQINzqZF3OnJk=; h=Subject:To:References:From:Date:In-Reply-To:From; b=knt/+KdFiyYTM/eQbYNc1Ck10LFRxBkTP9PmN0Kut2B/JWKrd2iesqBySNHPZ6zQF nP5GSpbGw3UTpYMPPSM5my/Y6ZW1fdDO1IgX3tzmmQpx+Msx7W+GWmslfXYB50/wcQ YiUMkRyqul0Ehy16f/sN5LnoaVJxwGDnUkn8dWP0= To: =?UTF-8?Q?Christian_K=c3=b6nig?= , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20210526113259.1661914-1-thomas.hellstrom@linux.intel.com> <20210526113259.1661914-11-thomas.hellstrom@linux.intel.com> <9f49eb8e-8ec5-cb24-0ce1-3e63272628e8@amd.com> From: =?UTF-8?Q?Thomas_Hellstr=c3=b6m_=28Intel=29?= Message-ID: Date: Thu, 27 May 2021 09:33:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <9f49eb8e-8ec5-cb24-0ce1-3e63272628e8@amd.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH v4 10/15] drm/ttm, drm/amdgpu: Allow the driver some control over swapping X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SGksIENocmlzdGlhbiwKClRoYW5rcyBmb3IgcmV2aWV3aW5nLgoKT24gNS8yNi8yMSAzOjI2IFBN LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+IEFtIDI2LjA1LjIxIHVtIDEzOjMyIHNjaHJpZWIg VGhvbWFzIEhlbGxzdHLDtm06Cj4+IFdlIGFyZSBjYWxsaW5nIHRoZSBldmljdGlvbl92YWx1YWJs ZSBkcml2ZXIgY2FsbGJhY2sgYXQgZXZpY3Rpb24gdGltZSB0bwo+PiBkZXRlcm1pbmUgd2hldGhl ciB3ZSBhY3R1YWxseSBjYW4gZXZpY3QgYSBidWZmZXIgb2JqZWN0Lgo+PiBUaGUgdXBjb21pbmcg aTkxNSBUVE0gYmFja2VuZCBuZWVkcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGZvciBzd2Fwb3V0 LAo+PiBhbmQgdGhhdCBtaWdodCBhY3R1YWxseSBiZSBiZW5lZmljaWFsIHRvIG90aGVyIGRyaXZl cnMgYXMgd2VsbC4KPj4KPj4gQWRkIGFuIGV2aWN0aW9uX3ZhbHVhYmxlIGNhbGwgYWxzbyBpbiB0 aGUgc3dhcG91dCBwYXRoLiBUcnkgdG8ga2VlcCB0aGUKPj4gY3VycmVudCBiZWhhdmlvdXIgZm9y IGFsbCBkcml2ZXJzIGJ5IHJldHVybmluZyB0cnVlIGlmIHRoZSBidWZmZXIgb2JqZWN0Cj4+IGlz IGFscmVhZHkgaW4gdGhlIFRUTV9QTF9TWVNURU0gcGxhY2VtZW50LiBXZSBjaGFuZ2UgYmVoYXZp b3VyIGZvciB0aGUKPj4gY2FzZSB3aGVyZSBhIGJ1ZmZlciBvYmplY3QgaXMgaW4gYSBUVCBiYWNr ZWQgcGxhY2VtZW50IHdoZW4gc3dhcHBlZCBvdXQsCj4+IGluIHdoaWNoIGNhc2UgdGhlIGRyaXZl cnMgbm9ybWFsIGV2aWN0aW9uX3ZhbHVhYmxlIHBhdGggaXMgcnVuLgo+Pgo+PiBGaW5hbGx5IG1h a2Ugc3VyZSB3ZSBkb24ndCB0cnkgdG8gc3dhcG91dCBhIGJvIHRoYXQgd2FzIHJlY2VudGx5IHB1 cmdlZAo+PiBhbmQgdGhlcmVmb3JlIHVucG9wdWxhdGVkLgo+Pgo+PiBSZXZpZXdlZC1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6 IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4gU2lnbmVkLW9m Zi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29t Pgo+PiAtLS0KPj4gdjM6Cj4+IC0gRG9uJ3QgZXhwb3J0IHR0bV90dF91bnBvcHVsYXRlCj4+IC0g Rml4IGNvbmZ1c2lvbiByZWFkaW5nIHRoZSBsb2NrZWQgcG9pbnRlciBpbnN0ZWFkIG9mIHRoZSB2 YWx1ZQo+PiDCoMKgIHBvaW50ZWQgdG8gaW4gdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxl IChSZXBvcnRlZCBieQo+PiDCoMKgIE1hYXJ0ZW4gTGFua2hvcnN0KQo+PiAtLS0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jIHzCoCA0ICsrKwo+PiDCoCBkcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDQzICsrKysr KysrKysrKysrKystLS0tLS0tLS0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMgKysKPj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCAzNCBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmMKPj4gaW5kZXggM2JjM2FlYmZlZjdjLi40NWQxOTRiZmZjM2Yg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4gQEAgLTEz NDgsNiArMTM0OCwxMCBAQCBzdGF0aWMgYm9vbCAKPj4gYW1kZ3B1X3R0bV9ib19ldmljdGlvbl92 YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiDCoMKgwqDCoMKgIHN0cnVj dCBkbWFfZmVuY2UgKmY7Cj4+IMKgwqDCoMKgwqAgaW50IGk7Cj4+IMKgICvCoMKgwqAgLyogU3dh cG91dD8gKi8KPj4gK8KgwqDCoCBpZiAoYm8tPm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVN KQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7Cj4+ICsKPj4gwqDCoMKgwqDCoCBpZiAo Ym8tPnR5cGUgPT0gdHRtX2JvX3R5cGVfa2VybmVsICYmCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAh YW1kZ3B1X3ZtX2V2aWN0YWJsZSh0dG1fdG9fYW1kZ3B1X2JvKGJvKSkpCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiBpbmRleCBiZTA0MDY0 NjY0NjAuLjFiMmQwNjIyNjZlZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+IEBAIC01MzYs NiArNTM2LDEwIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2V2aWN0KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAKPj4gKmJvLAo+PiDCoCBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSkKPj4gwqAgewo+PiArwqDCoMKg IGRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwo+PiArwqDCoMKgIGlmIChiby0+ bWVtLm1lbV90eXBlID09IFRUTV9QTF9TWVNURU0pCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4g dHJ1ZTsKPj4gKwo+PiDCoMKgwqDCoMKgIC8qIERvbid0IGV2aWN0IHRoaXMgQk8gaWYgaXQncyBv dXRzaWRlIG9mIHRoZQo+PiDCoMKgwqDCoMKgwqAgKiByZXF1ZXN0ZWQgcGxhY2VtZW50IHJhbmdl Cj4+IMKgwqDCoMKgwqDCoCAqLwo+PiBAQCAtNTU4LDcgKzU2Miw5IEBAIEVYUE9SVF9TWU1CT0wo dHRtX2JvX2V2aWN0aW9uX3ZhbHVhYmxlKTsKPj4gwqDCoCAqIGIuIE90aGVyd2lzZSwgdHJ5bG9j ayBpdC4KPj4gwqDCoCAqLwo+PiDCoCBzdGF0aWMgYm9vbCB0dG1fYm9fZXZpY3Rfc3dhcG91dF9h bGxvd2FibGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IAo+PiAqYm8sCj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LCBib29sICpsb2NrZWQs IGJvb2wgKmJ1c3kpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNl LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm9vbCAq bG9ja2VkLCBib29sICpidXN5KQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgYm9vbCByZXQgPSBmYWxz ZTsKPj4gwqAgQEAgLTU3Niw2ICs1ODIsMTQgQEAgc3RhdGljIGJvb2wgCj4+IHR0bV9ib19ldmlj dF9zd2Fwb3V0X2FsbG93YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqYnVzeSA9ICFyZXQ7Cj4+IMKgwqDCoMKgwqAgfQo+PiDC oCArwqDCoMKgIGlmIChyZXQgJiYgcGxhY2UgJiYgIWJvLT5iZGV2LT5mdW5jcy0+ZXZpY3Rpb25f dmFsdWFibGUoYm8sIAo+PiBwbGFjZSkpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIHJldCA9IGZhbHNl Owo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCpsb2NrZWQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqbG9ja2VkID0gZmFsc2U7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAg fQo+PiArCj4+IMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gwqAgfQo+PiDCoCBAQCAtNjMwLDIw ICs2NDQsMTQgQEAgaW50IHR0bV9tZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXYsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbWFuLT5s cnVbaV0sIGxydSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGJ1c3k7Cj4+ IMKgIC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghdHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxs b3dhYmxlKGJvLCBjdHgsICZsb2NrZWQsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmYnVzeSkpIHsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKCF0dG1fYm9fZXZpY3Rfc3dhcG91dF9hbGxvd2FibGUoYm8sIGN0 eCwgcGxhY2UsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAmbG9ja2VkLCAmYnVzeSkpIHsKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoYnVzeSAmJiAhYnVzeV9ibyAmJiB0aWNrZXQgIT0KPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtYV9yZXN2X2xvY2tp bmdfY3R4KGJvLT5iYXNlLnJlc3YpKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYnVzeV9ibyA9IGJvOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGNvbnRpbnVlOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgIC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChwbGFjZSAmJiAhYmRldi0+ZnVuY3MtPmV2aWN0aW9u X3ZhbHVhYmxlKGJvLAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGxhY2UpKSB7Cj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGxvY2tlZCkKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIXR0bV9ib19n ZXRfdW5sZXNzX3plcm8oYm8pKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWYgKGxvY2tlZCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4gQEAgLTExNDAsMTAgKzExNDgs MTggQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fd2FpdCk7Cj4+IMKgIGludCB0dG1fYm9fc3dhcG91 dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgCj4+IHR0bV9vcGVyYXRpb25f Y3R4ICpjdHgsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnZnBfdCBnZnBfZmxhZ3MpCj4+ IMKgIHsKPj4gK8KgwqDCoCBzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlID0ge307Cj4+IMKgwqDCoMKg wqAgYm9vbCBsb2NrZWQ7Cj4+IMKgwqDCoMKgwqAgaW50IHJldDsKPj4gwqAgLcKgwqDCoCBpZiAo IXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAmbG9ja2VkLCBOVUxMKSkK Pj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBXaGlsZSB0aGUgYm8gbWF5IGFscmVhZHkgcmVz aWRlIGluIFNZU1RFTSBwbGFjZW1lbnQsIHNldAo+PiArwqDCoMKgwqAgKiBTWVNURU0gYXMgbmV3 IHBsYWNlbWVudCB0byBjb3ZlciBhbHNvIHRoZSBtb3ZlIGZ1cnRoZXIgYmVsb3cuCj4+ICvCoMKg wqDCoCAqIFRoZSBkcml2ZXIgbWF5IHVzZSB0aGUgZmFjdCB0aGF0IHdlJ3JlIG1vdmluZyBmcm9t IFNZU1RFTQo+PiArwqDCoMKgwqAgKiBhcyBhbiBpbmRpY2F0aW9uIHRoYXQgd2UncmUgYWJvdXQg dG8gc3dhcCBvdXQuCj4+ICvCoMKgwqDCoCAqLwo+PiArwqDCoMKgIHBsYWNlLm1lbV90eXBlID0g VFRNX1BMX1NZU1RFTTsKPj4gK8KgwqDCoCBpZiAoIXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93 YWJsZShibywgY3R4LCAmcGxhY2UsICZsb2NrZWQsIAo+PiBOVUxMKSkKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybiAtRUJVU1k7Cj4+IMKgIMKgwqDCoMKgwqAgaWYgKCF0dG1fYm9fZ2V0X3Vu bGVzc196ZXJvKGJvKSkgewo+PiBAQCAtMTE2OCwxMiArMTE4NCw3IEBAIGludCB0dG1fYm9fc3dh cG91dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgCj4+ICpibywgc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4ICpjdHgsCj4+IMKgwqDCoMKgwqAgaWYgKGJvLT5tZW0ubWVtX3R5cGUgIT0gVFRNX1BM X1NZU1RFTSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4 IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdHRt X3Jlc291cmNlIGV2aWN0X21lbTsKPj4gLcKgwqDCoMKgwqDCoMKgIHN0cnVjdCB0dG1fcGxhY2Ug cGxhY2UsIGhvcDsKPj4gLQo+PiAtwqDCoMKgwqDCoMKgwqAgbWVtc2V0KCZwbGFjZSwgMCwgc2l6 ZW9mKHBsYWNlKSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBtZW1zZXQoJmhvcCwgMCwgc2l6ZW9mKGhv cCkpOwo+PiAtCj4+IC3CoMKgwqDCoMKgwqDCoCBwbGFjZS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNU RU07Cj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdHRtX3BsYWNlIGhvcCA9IHt9Owo+Cj4gSSB3 b3VsZCBzdGljayB3aXRoIG1lbXNldCBiZWNhdXNlIG9mIHRoZSBwYWRkaW5nIHJlYXNvbnMuCj4K Pj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IHR0bV9yZXNvdXJjZV9hbGxvYyhibywgJnBs YWNlLCAmZXZpY3RfbWVtKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseShyZXQp KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX3R0LmMKPj4gaW5kZXggOTEzYjMzMGEyMzRiLi5kOTc5M2NiYjZkMTMg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYwo+PiBAQCAtMjYzLDYgKzI2Myw5IEBAIGludCB0dG1f dHRfc3dhcG91dChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgCj4+IHN0cnVjdCB0dG1fdHQgKnR0 bSwKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgcGFnZSAqdG9fcGFnZTsKPj4gwqDCoMKgwqDCoCBpbnQg aSwgcmV0Owo+PiDCoCArwqDCoMKgIGlmICghdHRtX3R0X2lzX3BvcHVsYXRlZCh0dG0pKQo+PiAr wqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+ICsKPgo+IFRoaXMgaGVyZSBpcyBqdXN0IGJlY2F1 c2Ugb2YgYSBidWcgaW4gdGhlIGhpZ2hlciBsZXZlbCBmdW5jdGlvbi4KPgo+IEkndmUganVzdCBw dXNoZWQgdGhlIGZpeCBmb3IgdGhhdCB0byBkcm0tbWlzYy1maXhlcywgc28gbWF5YmUgZHJvcCAK PiB0aGF0IGhlcmUgYXMgc29vbiBhcyB0aGlzIGlzIGJhY2ttZXJnZWQuCj4KVGhhdCBjb2RlIGRv ZXNuJ3QgbG9vayBjb3JyZWN0IHRvIG1lLiBJbiB0dG1fZGV2aWNlX3N3YXBvdXQgb25seSB0aGUg bHJ1IApsb2NrIGlzIGhlbGQsIGFuZCB0aGUgYm8tPnR0bSBwb2ludGVyIGlzIHByb3RlY3RlZCBi eSB0aGUgcmVzdiBsb2NrLCAKbWVhbmluZyB0aGF0IGJvLT50dG0gY2FuIGRpc2FwcGVhciBhdCBh bnkgdGltZSBpbiB0aGF0IGZ1bmN0aW9uLCBzbyAKd2hpbGUgYW4gYWR2aXNvcnkgcmVhZGluZyBi by0+dHRtIHVzaW5nIFJFQURfT05DRSgpIGlzIG9rLCBkZXJlZmVyZW5jaW5nIAp0aGUgYm8tPnR0 bSBwb2ludGVyIHdpdGhvdXQgcmVzZXJ2YXRpb24gaGVsZCBpcyBpbGxlZ2FsIGFuZCBtYXkgc2Vu ZCB5b3UgCmludG8gcmVjZW50bHkgZnJlZWQgbWVtb3J5LgoKRm9yIGFuIGV4YW1wbGUsIGNvbnNp ZGVyCgp0aHJlYWQgQS4gU2VsZWN0cyBibyBmb3IgZXZpY3Rpb24sIG1vdmVzIHRvIHN5c3RlbSBs cnUsIGNyZWF0ZXMgdHRtClRocmVhZCBCIGxvY2tzIGxydSBpbiBzd2Fwb3V0IGNvZGUuIGZpbmRz IGJvLT50dG0gTk9OX05VTEwsCnRocmVhZCBBIHRyaWVzIHRvIGV2aWN0IGJvLCBmYWlscywgZGVz dHJveXMgdGhlIHR0bS4KVGhyZWFkIEIgZGVyZWZzIGZyZWVkIG1lbW9yeS4KCkJ1dCBldmVuIHJl bHlpbmcgb24gdGhhdCB0aGVyZSB3ZXJlIG5vIHN1Y2ggZXhhbXBsZSBpbiB0aGUgdHRtIGNvcmUg Cml0c2VsZiwgbm90IGFkaGVyaW5nIHRvIHRoZSBwcm90ZWN0aW9uIG9mIGJvLT50dG0gbWFrZXMg dGhlIGNvZGUgCmV4dHJlbWVseSBmcmFnaWxlIGFuZCBJTUhPIG5lZWRzIGZpeGluZy4KCkFsc28g YXMgYSBzZWNvbmRhcnkgbm90ZSwgYSBkcml2ZXIgaXMgaW4gcHJpbmNpcGxlIGZyZWUgdG8gZG8g dGhpbmdzIGluIAp0aGUgc3dhcCBub3RpZmllciB0aGF0IG1heSByZXN1bHQgaW4gYW4gdW5wb3B1 bGF0ZWQgdHRtIHNvIElNSE8gYSBsYXRlIApjaGVjayBpcyBuZWVkZWQgaGVyZS4KClNvIGFjayB0 byBrZWVwIHRoZSBhYm92ZT8KClRoYW5rcywKClRob21hcwoKCj4KPiBDaHJpc3RpYW4uCj4KPgo+ PiDCoMKgwqDCoMKgIHN3YXBfc3RvcmFnZSA9IHNobWVtX2ZpbGVfc2V0dXAoInR0bSBzd2FwIiwg c2l6ZSwgMCk7Cj4+IMKgwqDCoMKgwqAgaWYgKElTX0VSUihzd2FwX3N0b3JhZ2UpKSB7Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBwcl9lcnIoIkZhaWxlZCBhbGxvY2F0aW5nIHN3YXAgc3RvcmFnZVxu Iik7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=