From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 2/2] drm/atomic-helper: Implement subsystem-level suspend/resume Date: Tue, 8 Sep 2015 15:13:57 +0200 Message-ID: <20150908131357.GD2767@phenom.ffwll.local> References: <1441717246-24484-1-git-send-email-thierry.reding@gmail.com> <1441717246-24484-2-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4D116E8F0 for ; Tue, 8 Sep 2015 06:11:15 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so119874005wic.0 for ; Tue, 08 Sep 2015 06:11:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1441717246-24484-2-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBTZXAgMDgsIDIwMTUgYXQgMDM6MDA6NDZQTSArMDIwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBQ cm92aWRlIHN1YnN5c3RlbS1sZXZlbCBzdXNwZW5kIGFuZCByZXN1bWUgaGVscGVycyB0aGF0IGNh biBiZSB1c2VkIHRvCj4gaW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIG9uIGF0b21pYyBtb2RlLXNl dHRpbmcgZW5hYmxlZCBkcml2ZXJzLgo+IAo+IHYyOiBzaW1wbGlmeSBsb2NraW5nLCBlbmhhbmNl IGtlcm5lbGRvYyBjb21tZW50cwo+IHYzOiBwYXNzIGxvY2sgYWNxdWlzaXRpb24gY29udGV4dCBi eSBwYXJhbWV0ZXIsIGltcHJvdmUga2VybmVsZG9jCj4gCj4gU2lnbmVkLW9mZi1ieTogVGhpZXJy eSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgfCAxNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyAgIHwgICA2ICsrCj4gIGlu Y2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgICA2ICsrCj4gIDMgZmlsZXMgY2hh bmdlZCwgMTc2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYwo+IGluZGV4IDMyMzJmNGI4MzhlNC4uMzE4MjNkYzhhNDA2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBAQCAtMTc0Miw2ICsxNzQyLDE2NCBA QCBiYWNrb2ZmOgo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcp Owo+ICAKPiAgLyoqCj4gKyAqIGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsIC0gZGlzYWJs ZSBhbGwgY3VycmVudGx5IGFjdGl2ZSBvdXRwdXRzCj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiAr ICogQGN0eDogbG9jayBhY3F1aXNpdGlvbiBjb250ZXh0Cj4gKyAqCj4gKyAqIExvb3BzIHRocm91 Z2ggYWxsIGNvbm5lY3RvcnMsIGZpbmRpbmcgdGhvc2UgdGhhdCBhcmVuJ3QgdHVybmVkIG9mZiBh bmQgdGhlbgo+ICsgKiB0dXJucyB0aGVtIG9mZiBieSBzZXR0aW5nIHRoZWlyIERQTVMgbW9kZSB0 byBPRkYgYW5kIGRlYWN0aXZhdGluZyB0aGUgQ1JUQwo+ICsgKiB0aGF0IHRoZXkgYXJlIGNvbm5l Y3RlZCB0by4KPiArICoKPiArICogVGhpcyBpcyB1c2VkIGZvciBleGFtcGxlIGluIHN1c3BlbmQv cmVzdW1lIHRvIGRpc2FibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUKPiArICogZnVuY3Rpb25zIHdo ZW4gc3VzcGVuZGluZy4KPiArICoKPiArICogTm90ZSB0aGF0IGlmIGNhbGxlcnMgaGF2ZW4ndCBh bHJlYWR5IGFjcXVpcmVkIGFsbCBtb2Rlc2V0IGxvY2tzIHRoaXMgbWlnaHQKPiArICogcmV0dXJu IC1FREVBRExLLCB3aGljaCBtdXN0IGJlIGhhbmRsZWQgYnkgY2FsbGluZyBkcm1fbW9kZXNldF9i YWNrb2ZmKCkuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIDAgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiArICoKPiArICogU2VlIGFsc286Cj4gKyAq IGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSwgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkK PiArICovCj4gK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICsJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkK PiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bjsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJaW50IGVycjsKPiArCj4gKwlzdGF0ZSA9IGRybV9h dG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKPiArCWlmICghc3RhdGUpCj4gKwkJcmV0dXJuIC1FTk9N RU07Cj4gKwo+ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ICsKPiArCWRybV9mb3JfZWFj aF9jb25uZWN0b3IoY29ubiwgZGV2KSB7Cj4gKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY29u bi0+c3RhdGUtPmNydGM7Cj4gKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ ICsKPiArCQlpZiAoIWNydGMgfHwgY29ubi0+ZHBtcyAhPSBEUk1fTU9ERV9EUE1TX09OKQo+ICsJ CQljb250aW51ZTsKPiArCj4gKwkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoc3RhdGUsIGNydGMpOwo+ICsJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKPiArCQkJZXJy ID0gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiArCQkJZ290byBmcmVlOwo+ICsJCX0KPiArCj4gKwkJ ZXJyID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwgY3J0Yyk7CgpK dXN0IGVsYWJvcmF0aW5nIG9uIHdoYXQgTWFhcnRlbiBzcG90dGVkIG9uIGlyYy4KCllvdSBkb24n dCBuZWVkIHRvIGRvIHRoaXMsIGF0b21pYyBoZWxwZXJzIHdpbGwgZG8gdGhpcyBmb3IgeW91LgoK PiArCQlpZiAoZXJyIDwgMCkKPiArCQkJZ290byBmcmVlOwo+ICsKPiArCQljb25uLT5kcG1zID0g RFJNX01PREVfRFBNU19PRkY7CgpObyBuZWVkIHRvIHRvdWNoIGxlZ2FjeSBkcG1zIHN0YXRlLCB0 aGF0J3MgYWdhaW4gdXBkYXRlZCBmb3IgeW91IGluCmRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9s ZWdhY3lfbW9kZXNldF9zdGF0ZS4KCj4gKwkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7Cj4g Kwl9Cj4gKwo+ICsJZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+ICsJaWYgKGVyciA8 IDApIHsKPiArCQkvKiByZXN0b3JlIERQTVMgbW9kZSAqLwo+ICsJCWZvcl9lYWNoX2Nvbm5lY3Rv cl9pbl9zdGF0ZShzdGF0ZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkKPiArCQkJY29ubi0+ZHBtcyA9 IERSTV9NT0RFX0RQTVNfT047CgpTYW1lIGhlcmUuCi1EYW5pZWwKCj4gKwo+ICsJCWdvdG8gZnJl ZTsKPiArCX0KPiArCj4gK2ZyZWU6Cj4gKwlpZiAoZXJyIDwgMCkKPiArCQlkcm1fYXRvbWljX3N0 YXRlX2ZyZWUoc3RhdGUpOwo+ICsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCk7Cj4gKwo+ICsvKioKPiArICogZHJtX2F0 b21pY19oZWxwZXJfc3VzcGVuZCAtIHN1YnN5c3RlbS1sZXZlbCBzdXNwZW5kIGhlbHBlcgo+ICsg KiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqCj4gKyAqIER1cGxpY2F0ZXMgdGhlIGN1cnJlbnQgYXRv bWljIHN0YXRlLCBkaXNhYmxlcyBhbGwgYWN0aXZlIG91dHB1dHMgYW5kIHRoZW4KPiArICogcmV0 dXJucyBhIHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIGF0b21pYyBzdGF0ZSB0byB0aGUgY2FsbGVy LiBEcml2ZXJzIGNhbgo+ICsgKiBwYXNzIHRoaXMgcG9pbnRlciB0byB0aGUgZHJtX2F0b21pY19o ZWxwZXJfcmVzdW1lKCkgaGVscGVyIHVwb24gcmVzdW1lIHRvCj4gKyAqIHJlc3RvcmUgdGhlIG91 dHB1dCBjb25maWd1cmF0aW9uIHRoYXQgd2FzIGFjdGl2ZSBhdCB0aGUgdGltZSB0aGUgc3lzdGVt Cj4gKyAqIGVudGVyZWQgc3VzcGVuZC4KPiArICoKPiArICogTm90ZSB0aGF0IGl0IGlzIHBvdGVu dGlhbGx5IHVuc2FmZSB0byB1c2UgdGhpcy4gVGhlIGF0b21pYyBzdGF0ZSBvYmplY3QKPiArICog cmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbiBpcyBhc3N1bWVkIHRvIGJlIHBlcnNpc3RlbnQuIERy aXZlcnMgbXVzdCBlbnN1cmUKPiArICogdGhhdCB0aGlzIGhvbGRzIHRydWUuIEJlZm9yZSBjYWxs aW5nIHRoaXMgZnVuY3Rpb24sIGRyaXZlcnMgbXVzdCBtYWtlIHN1cmUKPiArICogdG8gc3VzcGVu ZCBmYmRldiBlbXVsYXRpb24gc28gdGhhdCBub3RoaW5nIGNhbiBiZSB1c2luZyB0aGUgZGV2aWNl Lgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsgKiBBIHBvaW50ZXIgdG8gYSBjb3B5IG9mIHRoZSBz dGF0ZSBiZWZvcmUgc3VzcGVuZCBvbiBzdWNjZXNzIG9yIGFuIEVSUl9QVFIoKS0KPiArICogZW5j b2RlZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuIERyaXZlcnMgc2hvdWxkIHN0b3JlIHRoZSByZXR1 cm5lZCBhdG9taWMKPiArICogc3RhdGUgb2JqZWN0IGFuZCBwYXNzIGl0IHRvIHRoZSBkcm1fYXRv bWljX2hlbHBlcl9yZXN1bWUoKSBoZWxwZXIgdXBvbgo+ICsgKiByZXN1bWUuCj4gKyAqCj4gKyAq IFNlZSBhbHNvOgo+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoKSwgZHJt X2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoKSwKPiArICogZHJtX2F0b21pY19oZWxwZXJfcmVz dW1lKCkKPiArICovCj4gK3N0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpkcm1fYXRvbWljX2hlbHBl cl9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsK PiArCWRybV9tb2Rlc2V0X2xvY2tfYWxsX2N0eChkZXYsICZjdHgpOwo+ICsKPiArCXN0YXRlID0g ZHJtX2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKGRldiwgJmN0eCk7Cj4gKwlpZiAoSVNf RVJSKHN0YXRlKSkKPiArCQlnb3RvIHVubG9jazsKPiArCj4gKwllcnIgPSBkcm1fYXRvbWljX2hl bHBlcl9kaXNhYmxlX2FsbChkZXYsICZjdHgpOwo+ICsJaWYgKGVyciA8IDApIHsKPiArCQlkcm1f YXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICsJCXN0YXRlID0gRVJSX1BUUihlcnIpOwo+ICsJ CWdvdG8gdW5sb2NrOwo+ICsJfQo+ICsKPiArdW5sb2NrOgo+ICsJZHJtX21vZGVzZXRfdW5sb2Nr X2FsbF9jdHgoZGV2LCAmY3R4KTsKPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaSgmY3R4KTsK PiArCXJldHVybiBzdGF0ZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVy X3N1c3BlbmQpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSAtIHN1 YnN5c3RlbS1sZXZlbCByZXN1bWUgaGVscGVyCj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPiArICog QHN0YXRlOiBhdG9taWMgc3RhdGUgdG8gcmVzdW1lIHRvCj4gKyAqCj4gKyAqIENhbGxzIGRybV9t b2RlX2NvbmZpZ19yZXNldCgpIHRvIHN5bmNocm9uaXplIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBz dGF0ZXMsCj4gKyAqIGdyYWJzIGFsbCBtb2Rlc2V0IGxvY2tzIGFuZCBjb21taXRzIHRoZSBhdG9t aWMgc3RhdGUgb2JqZWN0LiBUaGlzIGNhbiBiZQo+ICsgKiB1c2VkIGluIGNvbmp1bmN0aW9uIHdp dGggdGhlIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSBoZWxwZXIgdG8KPiArICogaW1wbGVt ZW50IHN1c3BlbmQvcmVzdW1lIGZvciBkcml2ZXJzIHRoYXQgc3VwcG9ydCBhdG9taWMgbW9kZS1z ZXR0aW5nLgo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqCj4gKyAqIFNlZSBhbHNvOgo+ICsgKiBk cm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCkKPiArICovCj4gK2ludCBkcm1fYXRvbWljX2hlbHBl cl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZp ZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ICsJaW50IGVycjsKPiArCj4gKwlkcm1fbW9kZV9jb25m aWdfcmVzZXQoZGV2KTsKPiArCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4gKwlzdGF0ZS0+ YWNxdWlyZV9jdHggPSBjb25maWctPmFjcXVpcmVfY3R4Owo+ICsJZXJyID0gZHJtX2F0b21pY19j b21taXQoc3RhdGUpOwo+ICsJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+ICsKPiArCXJl dHVybiBlcnI7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUp Owo+ICsKPiArLyoqCj4gICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNfc2V0X3Byb3BlcnR5IC0g aGVscGVyIGZvciBjcnRjIHByb3BlcnRpZXMKPiAgICogQGNydGM6IERSTSBjcnRjCj4gICAqIEBw cm9wZXJ0eTogRFJNIHByb3BlcnR5Cj4gQEAgLTIzNTQsNyArMjUxMiw5IEBAIEVYUE9SVF9TWU1C T0woZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4gICAqIEBj dHg6IGxvY2sgYWNxdWlzaXRpb24gY29udGV4dAo+ICAgKgo+ICAgKiBNYWtlcyBhIGNvcHkgb2Yg dGhlIGN1cnJlbnQgYXRvbWljIHN0YXRlIGJ5IGxvb3Bpbmcgb3ZlciBhbGwgb2JqZWN0cyBhbmQK PiAtICogZHVwbGljYXRpbmcgdGhlaXIgcmVzcGVjdGl2ZSBzdGF0ZXMuCj4gKyAqIGR1cGxpY2F0 aW5nIHRoZWlyIHJlc3BlY3RpdmUgc3RhdGVzLiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgYnkg c3VzcGVuZC8KPiArICogcmVzdW1lIHN1cHBvcnQgY29kZSB0byBzYXZlIHRoZSBzdGF0ZSBwcmlv ciB0byBzdXNwZW5kIHN1Y2ggdGhhdCBpdCBjYW4KPiArICogYmUgcmVzdG9yZWQgdXBvbiByZXN1 bWUuCj4gICAqCj4gICAqIE5vdGUgdGhhdCB0aGlzIHRyZWF0cyBhdG9taWMgc3RhdGUgYXMgcGVy c2lzdGVudCBiZXR3ZWVuIHNhdmUgYW5kIHJlc3RvcmUuCj4gICAqIERyaXZlcnMgbXVzdCBtYWtl IHN1cmUgdGhhdCB0aGlzIGlzIHBvc3NpYmxlIGFuZCB3b24ndCByZXN1bHQgaW4gY29uZnVzaW9u Cj4gQEAgLTIzNjYsNiArMjUyNiw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4gICAqIFJldHVybnM6Cj4gICAqIEEgcG9pbnRl ciB0byB0aGUgY29weSBvZiB0aGUgYXRvbWljIHN0YXRlIG9iamVjdCBvbiBzdWNjZXNzIG9yIGFu Cj4gICAqIEVSUl9QVFIoKS1lbmNvZGVkIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiArICoKPiAr ICogU2VlIGFsc286Cj4gKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSwgZHJtX2F0b21p Y19oZWxwZXJfcmVzdW1lKCkKPiAgICovCj4gIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICoKPiAg ZHJtX2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+IGluZGV4IGVmNTM0NzU4YTAyYy4uMDg2MjBh MjVmZTA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwo+IEBAIC04NTUsNiArODU1 LDEyIEBAIEVYUE9SVF9TWU1CT0woZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KTsKPiAg ICogZHVlIHRvIHNsaWdodCBkaWZmZXJlbmNlcyBpbiBhbGxvY2F0aW5nIHNoYXJlZCByZXNvdXJj ZXMgd2hlbiB0aGUKPiAgICogY29uZmlndXJhdGlvbiBpcyByZXN0b3JlZCBpbiBhIGRpZmZlcmVu dCBvcmRlciB0aGFuIHdoZW4gdXNlcnNwYWNlIHNldCBpdCB1cCkKPiAgICogbmVlZCB0byB1c2Ug dGhlaXIgb3duIHJlc3RvcmUgbG9naWMuCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gaXMgZGVw cmVjYXRlZC4gTmV3IGRyaXZlcnMgc2hvdWxkIGltcGxlbWVudCBhdG9taWMgbW9kZS0KPiArICog c2V0dGluZyBhbmQgdXNlIHRoZSBhdG9taWMgc3VzcGVuZC9yZXN1bWUgaGVscGVycy4KPiArICoK PiArICogU2VlIGFsc286Cj4gKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoKSwgZHJtX2F0 b21pY19oZWxwZXJfcmVzdW1lKCkKPiAgICovCj4gIHZvaWQgZHJtX2hlbHBlcl9yZXN1bWVfZm9y Y2VfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBl ci5oCj4gaW5kZXggMTU0N2ViNDNjMTRhLi45OGZmY2IyMzEwNzkgMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmgKPiBAQCAtNzUsNiArNzUsMTIgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3Vw ZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgaW50IGRybV9hdG9taWNfaGVs cGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+ICBpbnQgZHJtX2F0 b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpOwo+ICAKPiAr aW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gKwkJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiArc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gK2ludCBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ ICsKPiAgaW50IGRybV9hdG9taWNfaGVscGVyX2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiAgCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAgCQkJ CQl1aW50NjRfdCB2YWwpOwo+IC0tIAo+IDIuNS4wCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK