From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/7] drm/doc: Add GEM/CMA helpers to kerneldoc Date: Wed, 5 Nov 2014 15:34:40 +0100 Message-ID: <20141105143440.GO26941@phenom.ffwll.local> References: <1415193919-1687-1-git-send-email-thierry.reding@gmail.com> <1415193919-1687-4-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-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 7AAD96E144 for ; Wed, 5 Nov 2014 06:34:27 -0800 (PST) Received: by mail-wg0-f51.google.com with SMTP id l18so1045084wgh.24 for ; Wed, 05 Nov 2014 06:34:26 -0800 (PST) Content-Disposition: inline In-Reply-To: <1415193919-1687-4-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: Benjamin Gaignard , Daniel Vetter , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Archit Taneja , Laurent Pinchart , Russell King , Dave Airlie List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBOb3YgMDUsIDIwMTQgYXQgMDI6MjU6MTVQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBN b3N0IG9mIHRoZSBmdW5jdGlvbnMgYWxyZWFkeSBoYXZlIHRoZSBiZWdpbm5pbmdzIG9mIGtlcm5l bGRvYyBjb21tZW50cwo+IGJ1dCBhcmUgdXNpbmcgdGhlIHdyb25nIG9wZW5pbmcgbWFya2VyLiBV c2UgdGhlIGNvcnJlY3Qgb3BlbmluZyBtYXJrZXIKPiBhbmQgZmxlc2ggb3V0IHRoZSBjb21tZW50 cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGludGVncmF0ZWQgd2l0aCB0aGUgRFJNCj4gRG9jQm9vayBk b2N1bWVudC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0Budmlk aWEuY29tPgoKQnVuY2ggb2YgY29tbWVudHMgaW5saW5lIGJlbG93LgotRGFuaWVsCgo+IC0tLQo+ ICBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgICAgICAgfCAgIDYgKysKPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jIHwgMTU1ICsrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oICAgICB8 ICAyNSArKysrLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgNDcgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1w bCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+IGluZGV4IDE4MDI1NDk2YTczNi4u NjY2YTIxMGFmMTIxIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1w bAo+ICsrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+IEBAIC05NjMsNiArOTYz LDEyIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqICgqZ2VtX3ByaW1lX2ltcG9ydCkoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgIUVkcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKPiAgIUlpbmNs dWRlL2RybS9kcm1fbW0uaAo+ICAgICAgPC9zZWN0Mj4KPiArICAgIDxzZWN0Mj4KPiArICAgICAg PHRpdGxlPkNNQSBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5jZTwvdGl0bGU+Cj4gKyFQZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jIGNtYSBoZWxwZXJzCj4gKyFFZHJpdmVycy9n cHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jCj4gKyFJaW5jbHVkZS9kcm0vZHJtX2dlbV9jbWFf aGVscGVyLmgKPiArICAgIDwvc2VjdDI+Cj4gICAgPC9zZWN0MT4KPiAgCj4gICAgPCEtLSBJbnRl cm5hbHM6IG1vZGUgc2V0dGluZyAtLT4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fY21hX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5j Cj4gaW5kZXggMDMxNjMxMGUyY2M0Li41NTMwNmJlMWY4ZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fY21hX2hlbHBlci5jCj4gQEAgLTI5LDE4ICsyOSwzMCBAQAo+ICAjaW5jbHVkZSA8ZHJt L2RybV9nZW1fY21hX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdlci5o Pgo+ICAKPiAtLyoKPiArLyoqCj4gKyAqIERPQzogY21hIGhlbHBlcnMKPiArICoKPiArICogVGhl IENvbnRpZ3VvdXMgTWVtb3J5IEFsbG9jYXRvciByZXNlcnZlcyBhIHBvb2wgb2YgbWVtb3J5IGF0 IGVhcmx5IGJvb3QKPiArICogdGhhdCBpcyB1c2VkIHRvIHNlcnZpY2UgcmVxdWVzdHMgZm9yIGxh cmdlIGJsb2NrcyBvZiBjb250aWd1b3VzIG1lbW9yeS4KPiArICoKPiArICogVGhlIERSTSBHRU0v Q01BIGhlbHBlcnMgdXNlIHRoaXMgYWxsb2NhdG9yIGFzIGEgbWVhbnMgdG8gcHJvdmlkZSBidWZm ZXIKPiArICogb2JqZWN0cyB0aGF0IGFyZSBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgaW4gbWVtb3J5 LiBUaGlzIGlzIHVzZWZ1bCBmb3IKPiArICogZGlzcGxheSBkcml2ZXJzIHRoYXQgYXJlIHVuYWJs ZSB0byBtYXAgc2NhdHRlcmVkIGJ1ZmZlcnMgdmlhIGFuIElPTU1VLgo+ICsgKi8KPiArCj4gKy8q Kgo+ICAgKiBfX2RybV9nZW1fY21hX2NyZWF0ZSAtIENyZWF0ZSBhIEdFTSBDTUEgb2JqZWN0IHdp dGhvdXQgYWxsb2NhdGluZyBtZW1vcnkKPiAtICogQGRybTogVGhlIGRybSBkZXZpY2UKPiAtICog QHNpemU6IFRoZSBHRU0gb2JqZWN0IHNpemUKPiArICogQGRybTogRFJNIGRldmljZQo+ICsgKiBA c2l6ZTogc2l6ZSBvZiB0aGUgb2JqZWN0IHRvIGFsbG9jYXRlCj4gICAqCj4gLSAqIFRoaXMgZnVu Y3Rpb24gY3JlYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYSBHRU0gQ01BIG9iamVjdCBvZiB0aGUgZ2l2 ZW4gc2l6ZSwgYnV0Cj4gLSAqIGRvZXNuJ3QgYWxsb2NhdGUgYW55IG1lbW9yeSB0byBiYWNrIHRo ZSBvYmplY3QuCj4gKyAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYSBH RU0gQ01BIG9iamVjdCBvZiB0aGUgZ2l2ZW4gc2l6ZSwKPiArICogYnV0IGRvZXNuJ3QgYWxsb2Nh dGUgYW55IG1lbW9yeSB0byBiYWNrIHRoZSBvYmplY3QuCj4gICAqCj4gLSAqIFJldHVybiBhIHN0 cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QqIG9uIHN1Y2Nlc3Mgb3IgRVJSX1BUUiB2YWx1ZXMgb24g ZmFpbHVyZS4KPiArICogUmV0dXJuOiBBIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKiBvbiBz dWNjZXNzIG9yIGFuIEVSUl9QVFIoKS1lbmNvZGVkCgpTYW1lIGJpa2VzaGVkIGFib3V0ICJSZXR1 cm5zOlxuIiBhcyB3aXRoIHRoZSBwYW5lbCBrZXJuZWxkb2MgcGF0Y2guCgo+ICsgKiBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gICAqLwo+ICBzdGF0aWMgc3RydWN0IGRybV9nZW1f Y21hX29iamVjdCAqCj4gLV9fZHJtX2dlbV9jbWFfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sIHVuc2lnbmVkIGludCBzaXplKQo+ICtfX2RybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZHJtLCBzaXplX3Qgc2l6ZSkKPiAgewo+ICAJc3RydWN0IGRybV9nZW1fY21hX29i amVjdCAqY21hX29iajsKPiAgCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iajsKPiBAQCAt NjksMTQgKzgxLDE2IEBAIGVycm9yOgo+ICAJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgfQo+ICAK PiAtLyoKPiArLyoqCj4gICAqIGRybV9nZW1fY21hX2NyZWF0ZSAtIGFsbG9jYXRlIGFuIG9iamVj dCB3aXRoIHRoZSBnaXZlbiBzaXplCj4gKyAqIEBkcm06IERSTSBkZXZpY2UKPiArICogQHNpemU6 IHNpemUgb2YgdGhlIG9iamVjdCB0byBhbGxvY2F0ZQo+ICAgKgo+IC0gKiByZXR1cm5zIGEgc3Ry dWN0IGRybV9nZW1fY21hX29iamVjdCogb24gc3VjY2VzcyBvciBFUlJfUFRSIHZhbHVlcwo+IC0g KiBvbiBmYWlsdXJlLgo+ICsgKiBSZXR1cm46IEEgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAq IG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29kZWQKPiArICogbmVnYXRpdmUgZXJyb3Ig Y29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqZHJt X2dlbV9jbWFfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gLQkJdW5zaWduZWQgaW50 IHNpemUpCj4gKwkJCQkJICAgICAgc2l6ZV90IHNpemUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2Vt X2NtYV9vYmplY3QgKmNtYV9vYmo7Cj4gIAlpbnQgcmV0Owo+IEBAIC0xMDQsMTcgKzExOCwyMSBA QCBlcnJvcjoKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9jcmVhdGUpOwo+ ICAKPiAtLyoKPiAtICogZHJtX2dlbV9jbWFfY3JlYXRlX3dpdGhfaGFuZGxlIC0gYWxsb2NhdGUg YW4gb2JqZWN0IHdpdGggdGhlIGdpdmVuCj4gLSAqIHNpemUgYW5kIGNyZWF0ZSBhIGdlbSBoYW5k bGUgb24gaXQKPiArLyoqCj4gKyAqIGRybV9nZW1fY21hX2NyZWF0ZV93aXRoX2hhbmRsZSAtIGFs bG9jYXRlIGFuIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBzaXplIGFuZAo+ICsgKiAgICAgcmV0dXJu IGEgR0VNIGhhbmRsZSB0byBpdAo+ICsgKiBAZmlsZV9wcml2OiBEUk0gZmlsZS1wcml2YXRlIHN0 cnVjdHVyZSB0byByZWdpc3RlciB0aGUgaGFuZGxlIGZvcgo+ICsgKiBAZHJtOiBEUk0gZGV2aWNl Cj4gKyAqIEBzaXplOiBzaXplIG9mIHRoZSBvYmplY3QgdG8gYWxsb2NhdGUKPiArICogQGhhbmRs ZTogcmV0dXJuIGxvY2F0aW9uIGZvciB0aGUgR0VNIGhhbmRsZQo+ICAgKgo+IC0gKiByZXR1cm5z IGEgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCogb24gc3VjY2VzcyBvciBFUlJfUFRSIHZhbHVl cwo+IC0gKiBvbiBmYWlsdXJlLgo+ICsgKiBSZXR1cm46IEEgc3RydWN0IGRybV9nZW1fY21hX29i amVjdCAqIG9uIHN1Y2Nlc3Mgb3IgYW4gRVJSX1BUUigpLWVuY29kZWQKPiArICogbmVnYXRpdmUg ZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAtc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKmRybV9nZW1fY21hX2NyZWF0ZV93aXRoX2hhbmRsZSgKPiAtCQlzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25lZCBp bnQgc2l6ZSwKPiAtCQl1bnNpZ25lZCBpbnQgKmhhbmRsZSkKPiArc3RhdGljIHN0cnVjdCBkcm1f Z2VtX2NtYV9vYmplY3QgKgo+ICtkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUoc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJt LCBzaXplX3Qgc2l6ZSwKPiArCQkJICAgICAgIHVpbnQzMl90ICpoYW5kbGUpCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmo7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbV9vYmo7Cj4gQEAgLTE0NSw5ICsxNjMsOSBAQCBlcnJfaGFuZGxlX2NyZWF0ZToKPiAg CXJldHVybiBFUlJfUFRSKHJldCk7Cj4gIH0KPiAgCj4gLS8qCj4gLSAqIGRybV9nZW1fY21hX2Zy ZWVfb2JqZWN0IC0gKHN0cnVjdCBkcm1fZHJpdmVyKS0+Z2VtX2ZyZWVfb2JqZWN0IGNhbGxiYWNr Cj4gLSAqIGZ1bmN0aW9uCj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9mcmVlX29iamVjdCAtIGZy ZWUgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIENNQSBHRU0gb2JqZWN0Cj4gKyAqIEBnZW1f b2JqOiBHRU0gb2JqZWN0IHRvIGZyZWUKPiAgICovCj4gIHZvaWQgZHJtX2dlbV9jbWFfZnJlZV9v YmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQo+ICB7Cj4gQEAgLTE3MCwxNSAr MTg4LDIwIEBAIHZvaWQgZHJtX2dlbV9jbWFfZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpnZW1fb2JqKQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX2ZyZWVf b2JqZWN0KTsKPiAgCj4gLS8qCj4gLSAqIGRybV9nZW1fY21hX2R1bWJfY3JlYXRlIC0gKHN0cnVj dCBkcm1fZHJpdmVyKS0+ZHVtYl9jcmVhdGUgY2FsbGJhY2sKPiAtICogZnVuY3Rpb24KPiArLyoq Cj4gKyAqIGRybV9nZW1fY21hX2R1bWJfY3JlYXRlIC0gY3JlYXRlIGEgZHVtYiBidWZmZXIgb2Jq ZWN0Cj4gKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlLXByaXZhdGUgc3RydWN0dXJlIHRvIGNyZWF0 ZSB0aGUgZHVtYiBidWZmZXIgZm9yCj4gKyAqIEBkcm06IERSTSBkZXZpY2UKPiArICogQGFyZ3M6 IElPQ1RMIGRhdGEKPiAgICoKPiAtICogVGhpcyBhbGlnbnMgdGhlIHBpdGNoIGFuZCBzaXplIGFy Z3VtZW50cyB0byB0aGUgbWluaW11bSByZXF1aXJlZC4gd3JhcAo+ICsgKiBUaGlzIGFsaWducyB0 aGUgcGl0Y2ggYW5kIHNpemUgYXJndW1lbnRzIHRvIHRoZSBtaW5pbXVtIHJlcXVpcmVkLiBXcmFw Cj4gICAqIHRoaXMgaW50byB5b3VyIG93biBmdW5jdGlvbiBpZiB5b3UgbmVlZCBiaWdnZXIgYWxp Z25tZW50LgoKSSB0aGluayB3ZSBzaG91bGQgYXVnbWVudCB0aGlzIHNsaWdodGx5IHdpdGggc29t ZXRoaW5nIGxpa2UKCiJEcml2ZXJzIHdpdGhvdXQgc3BlY2lhbCBuZWVkcyBjYW4gZGlyZWN0bHkg dXNlIHRoaXMgYXMgdGhlaXIKLT5kdW1iX2NyZWF0ZSBjYWxsYmFjay4iCgpTaW1pbGFyIGZvciBk dW1iX21tYXBfb2Zmc2V0IGJlbG93LgoKPiArICoKPiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mg b3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gICAqLwo+ICBpbnQgZHJtX2dl bV9jbWFfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gLQkJc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQo+ICsJ CQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiArCQkJICAgIHN0cnVjdCBkcm1fbW9kZV9j cmVhdGVfZHVtYiAqYXJncykKPiAgewo+ICAJc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21h X29iajsKPiAgCWludCBtaW5fcGl0Y2ggPSBESVZfUk9VTkRfVVAoYXJncy0+d2lkdGggKiBhcmdz LT5icHAsIDgpOwo+IEBAIC0xODksMTggKzIxMiwyNSBAQCBpbnQgZHJtX2dlbV9jbWFfZHVtYl9j cmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gIAlpZiAoYXJncy0+c2l6ZSA8IGFy Z3MtPnBpdGNoICogYXJncy0+aGVpZ2h0KQo+ICAJCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAq IGFyZ3MtPmhlaWdodDsKPiAgCj4gLQljbWFfb2JqID0gZHJtX2dlbV9jbWFfY3JlYXRlX3dpdGhf aGFuZGxlKGZpbGVfcHJpdiwgZGV2LAo+IC0JCQlhcmdzLT5zaXplLCAmYXJncy0+aGFuZGxlKTsK PiArCWNtYV9vYmogPSBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9oYW5kbGUoZmlsZV9wcml2LCBk cm0sIGFyZ3MtPnNpemUsCj4gKwkJCQkJCSAmYXJncy0+aGFuZGxlKTsKPiAgCXJldHVybiBQVFJf RVJSX09SX1pFUk8oY21hX29iaik7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9j bWFfZHVtYl9jcmVhdGUpOwo+ICAKPiAtLyoKPiAtICogZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zm c2V0IC0gKHN0cnVjdCBkcm1fZHJpdmVyKS0+ZHVtYl9tYXBfb2Zmc2V0IGNhbGxiYWNrCj4gLSAq IGZ1bmN0aW9uCj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9kdW1iX21hcF9vZmZzZXQgLSByZXR1 cm4gdGhlIGZha2UgbW1hcCBvZmZzZXQgZm9yIGEgQ01BIEdFTQo+ICsgKiAgICAgb2JqZWN0Cj4g KyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlLXByaXZhdGUgc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhl IEdFTSBvYmplY3QKPiArICogQGRybTogRFJNIGRldmljZQo+ICsgKiBAaGFuZGxlOiBHRU0gb2Jq ZWN0IGhhbmRsZQo+ICsgKiBAb2Zmc2V0OiByZXR1cm4gbG9jYXRpb24gZm9yIHRoZSBmYWtlIG1t YXAgb2Zmc2V0Cj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUg ZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgaW50IGRybV9nZW1fY21hX2R1bWJfbWFw X29mZnNldChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90ICpvZmZzZXQpCj4gKwkJCQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtLCB1MzIgaGFuZGxlLAo+ICsJCQkJdTY0ICpvZmZzZXQpCj4gIHsKPiAg CXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iajsKPiAgCj4gQEAgLTIwOCw3ICsyMzgsNyBA QCBpbnQgZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LAo+ICAKPiAgCWdlbV9vYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZHJtLCBmaWxlX3By aXYsIGhhbmRsZSk7Cj4gIAlpZiAoIWdlbV9vYmopIHsKPiAtCQlkZXZfZXJyKGRybS0+ZGV2LCAi ZmFpbGVkIHRvIGxvb2t1cCBnZW0gb2JqZWN0XG4iKTsKPiArCQlkZXZfZXJyKGRybS0+ZGV2LCAi ZmFpbGVkIHRvIGxvb2t1cCBHRU0gb2JqZWN0XG4iKTsKPiAgCQltdXRleF91bmxvY2soJmRybS0+ c3RydWN0X211dGV4KTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiBAQCAtMjUxLDggKzI4 MSwxMiBAQCBzdGF0aWMgaW50IGRybV9nZW1fY21hX21tYXBfb2JqKHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKmNtYV9vYmosCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC0vKgo+IC0gKiBk cm1fZ2VtX2NtYV9tbWFwIC0gKHN0cnVjdCBmaWxlX29wZXJhdGlvbiktPm1tYXAgY2FsbGJhY2sg ZnVuY3Rpb24KPiArLyoqCj4gKyAqIGRybV9nZW1fY21hX21tYXAgLSBtZW1vcnktbWFwIGEgQ01B IEdFTSBvYmplY3QKPiArICogQGZpbHA6IGZpbGUgb2JqZWN0Cj4gKyAqIEB2bWE6IFZNQSBmb3Ig dGhlIGFyZWEgdG8gYmUgbWFwcGVkCgpJbW8gdGhlIHJlYWwgdmFsdWUgb2Yga2VybmVsZG9jIGlz IHRoZSBibGFibGEgaGVyZSB0aGF0IGRlc2NyaWJlcyB3aGF0CnRoaXMgc2hvdWxkIGJlIHVzZWQg Zm9yIGFuZCB3aGVuLiBFLmcuIGhlcmUKCiJUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgYW4gYXVn bWVudGVkIHZlcnNpb24gb2YgdGhlIGdlbSBEUk0gZmlsZSBtbWFwCm9wZXJhdGlvbiBmb3IgY21h IG9iamVjdHM6IEluIGFkZGl0aW9uIHRvIHRoZSB1c3VhbCBnZW0gdm1hIHNldHVwIGl0CmltbWVk aWF0ZWx5IGZhdWx0cyBpbiB0aGUgZW50aXJlIG9iamVjdCBpbnN0ZWFkIG9mIHVzaW5nIG9uLWRl bWFuZApmYXVsdGluZy4gRHJpdmVycyB3aGljaCBlbXBsb3kgdGhlIGNtYSBoZWxwZXJzIHNob3Vs ZCB1c2UgdGhpcyBmdW5jdGlvbiBhcwp0aGVpciAtPm1tYXAgaGFuZGxlciBmb3IgdGhlIERSTSBk ZXZpY2UgZmlsZSdzIGZpbGVfb3BlcmF0aW9uIHN0cnVjdHVyZS4iCgpTbyByZXF1aXJlcyBncmVw cGluZyBlYWNoIGZ1bmN0aW9uIGFuZCBodW50aW5nIGZvciB0aGUgdXN1YWwgcGF0dGVybiAoYW5k Cm5vdGljaW5nIHRvbnMgb2YgY3Jhenkgc3R1ZmYsIHVzdWFsbHkpLgoKU2FtZSBmb3IgYWxsIHRo ZSBmdW5jdGlvbnMgYmVsb3cuCgo+ICsgKgo+ICsgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBh IG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gIGludCBkcm1fZ2VtX2Nt YV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiAg ewo+IEBAIC0yNzIsNyArMzA2LDEzIEBAIGludCBkcm1fZ2VtX2NtYV9tbWFwKHN0cnVjdCBmaWxl ICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiAgRVhQT1JUX1NZTUJPTF9HUEwo ZHJtX2dlbV9jbWFfbW1hcCk7Cj4gIAo+ICAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gLXZvaWQg ZHJtX2dlbV9jbWFfZGVzY3JpYmUoc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqY21hX29iaiwg c3RydWN0IHNlcV9maWxlICptKQo+ICsvKioKPiArICogZHJtX2dlbV9jbWFfZGVzY3JpYmUgLSBk ZXNjcmliZSBhIENNQSBHRU0gb2JqZWN0IGZvciBkZWJ1Z2ZzCj4gKyAqIEBjbWFfb2JqOiBDTUEg R0VNIG9iamVjdAo+ICsgKiBAbTogZGVidWdmcyBmaWxlIGhhbmRsZQo+ICsgKi8KPiArdm9pZCBk cm1fZ2VtX2NtYV9kZXNjcmliZShzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqLAo+ ICsJCQkgIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAgewo+ICAJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmogPSAmY21hX29iai0+YmFzZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmot PmRldjsKPiBAQCAtMjkxLDcgKzMzMSwxNCBAQCB2b2lkIGRybV9nZW1fY21hX2Rlc2NyaWJlKHN0 cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmosIHN0cnVjdCBzZXFfZmlsZSAqbQo+ICBF WFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kZXNjcmliZSk7Cj4gICNlbmRpZgo+ICAKPiAt LyogbG93LWxldmVsIGludGVyZmFjZSBwcmltZSBoZWxwZXJzICovCj4gKy8qKgo+ICsgKiBkcm1f Z2VtX2NtYV9wcmltZV9nZXRfc2dfdGFibGUgLSBwcm92aWRlIGEgc2NhdHRlci9nYXRoZXIgdGFi bGUgb2YgcGlubmVkCj4gKyAqICAgICBwYWdlcyBmb3IgYSBDTUEgR0VNIG9iamVjdAo+ICsgKiBA b2JqOiBHRU0gb2JqZWN0Cj4gKyAqCj4gKyAqIFJldHVybjogQSBwb2ludGVyIHRvIHRoZSBzY2F0 dGVyL2dhdGhlciB0YWJsZSBvZiBwaW5uZWQgcGFnZXMgb3IgTlVMTCBvbgo+ICsgKiBmYWlsdXJl Lgo+ICsgKi8KPiAgc3RydWN0IHNnX3RhYmxlICpkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFi bGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKmNtYV9vYmogPSB0b19kcm1fZ2VtX2NtYV9vYmoob2JqKTsKPiBAQCAtMzE1LDYg KzM2MiwxNiBAQCBvdXQ6Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfcHJp bWVfZ2V0X3NnX3RhYmxlKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9wcmltZV9pbXBv cnRfc2dfdGFibGUgLSBwcm9kdWNlIGEgQ01BIEdFTSBvYmplY3QgZnJvbSBhbm90aGVyCj4gKyAq ICAgICBkcml2ZXIncyBzY2F0dGVyL2dhdGhlciB0YWJsZSBvZiBwaW5uZWQgcGFnZXMKPiArICog QGRldjogZGV2aWNlIHRvIGltcG9ydCBpbnRvCj4gKyAqIEBhdHRhY2g6IERNQS1CVUYgYXR0YWNo bWVudAo+ICsgKiBAc2d0OiBzY2F0dGVyL2dhdGhlciB0YWJsZSBvZiBwaW5uZWQgcGFnZXMKPiAr ICoKPiArICogUmV0dXJuOiBBIHBvaW50ZXIgdG8gYSBuZXdseSBjcmVhdGVkIEdFTSBvYmplY3Qg b3IgYW4gRVJSX1BUUi1lbmNvZGVkCj4gKyAqIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZS4KPiArICovCj4gIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqCj4gIGRybV9nZW1fY21hX3ByaW1l X2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICBzdHJ1Y3Qg ZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCj4gQEAgLTMzOSw2ICszOTYsMTMgQEAgZHJtX2dl bV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIH0K PiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfcHJpbWVfaW1wb3J0X3NnX3RhYmxlKTsK PiAgCj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2NtYV9wcmltZV9tbWFwIC0gbWVtb3J5LW1hcCBhbiBl eHBvcnRlZCBDTUEgR0VNIG9iamVjdAo+ICsgKiBAb2JqOiBHRU0gb2JqZWN0Cj4gKyAqIEB2bWE6 IFZNQSBmb3IgdGhlIGFyZWEgdG8gYmUgbWFwcGVkCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAgaW50 IGRybV9nZW1fY21hX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCj4gIAkJ CSAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ICB7Cj4gQEAgLTM1Nyw2ICs0MjEsMTMg QEAgaW50IGRybV9nZW1fY21hX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmos Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9jbWFfcHJpbWVfbW1hcCk7Cj4gIAo+ ICsvKioKPiArICogZHJtX2dlbV9jbWFfcHJpbWVfdm1hcCAtIG1hcCBhIENNQSBHRU0gb2JqZWN0 IGludG8gdGhlIGtlcm5lbCdzIHZpcnR1YWwKPiArICogICAgIGFkZHJlc3Mgc3BhY2UKPiArICog QG9iajogR0VNIG9iamVjdAo+ICsgKgo+ICsgKiBSZXR1cm46IFRoZSBrZXJuZWwgdmlydHVhbCBh ZGRyZXNzIG9mIHRoZSBDTUEgR0VNIG9iamVjdCdzIGJhY2tpbmcgc3RvcmUuCj4gKyAqLwo+ICB2 b2lkICpkcm1fZ2VtX2NtYV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqID0gdG9fZHJtX2dlbV9j bWFfb2JqKG9iaik7Cj4gQEAgLTM2NSw2ICs0MzYsMTIgQEAgdm9pZCAqZHJtX2dlbV9jbWFfcHJp bWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgfQo+ICBFWFBPUlRfU1lNQk9M X0dQTChkcm1fZ2VtX2NtYV9wcmltZV92bWFwKTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fZ2VtX2Nt YV9wcmltZV92dW5tYXAgLSB1bm1hcCBhIENNQSBHRU0gb2JqZWN0IGZyb20gdGhlIGtlcm5lbCdz IHZpcnR1YWwKPiArICogICAgIGFkZHJlc3Mgc3BhY2UKPiArICogQG9iajogR0VNIG9iamVjdAo+ ICsgKiBAdmFkZHI6IGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgd2hlcmUgdGhlIENNQSBHRU0gb2Jq ZWN0IHdhcyBtYXBwZWQKPiArICovCj4gIHZvaWQgZHJtX2dlbV9jbWFfcHJpbWVfdnVubWFwKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcikKPiAgewo+ICAJLyogTm90aGlu ZyB0byBkbyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIu aCBiL2luY2x1ZGUvZHJtL2RybV9nZW1fY21hX2hlbHBlci5oCj4gaW5kZXggMmZmMzVmM2RlOWM1 Li44NzNkNGViN2YxMjUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2dlbV9jbWFfaGVs cGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaAo+IEBAIC00LDYg KzQsMTMgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2dl bS5oPgo+ICAKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgLSBHRU0gb2Jq ZWN0IGJhY2tlZCBieSBDTUEgbWVtb3J5IGFsbG9jYXRpb25zCj4gKyAqIEBiYXNlOiBiYXNlIEdF TSBvYmplY3QKPiArICogQHBhZGRyOiBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBiYWNraW5nIG1l bW9yeQo+ICsgKiBAc2d0OiBzY2F0dGVyL2dhdGhlciB0YWJsZSBmb3IgaW1wb3J0ZWQgUFJJTUUg YnVmZmVycwo+ICsgKiBAdmFkZHI6IGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGJhY2tp bmcgbWVtb3J5Cj4gKyAqLwo+ICBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0IHsKPiAgCXN0cnVj dCBkcm1fZ2VtX29iamVjdCBiYXNlOwo+ICAJZG1hX2FkZHJfdCBwYWRkcjsKPiBAQCAtMTksMjMg KzI2LDI1IEBAIHRvX2RybV9nZW1fY21hX29iaihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9v YmopCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGdlbV9vYmosIHN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QsIGJhc2UpOwo+ICB9Cj4gIAo+IC0vKiBmcmVlIGdlbSBvYmplY3QuICovCj4gKy8qIGZy ZWUgR0VNIG9iamVjdCAqLwo+ICB2b2lkIGRybV9nZW1fY21hX2ZyZWVfb2JqZWN0KHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqZ2VtX29iaik7Cj4gIAo+IC0vKiBjcmVhdGUgbWVtb3J5IHJlZ2lvbiBm b3IgZHJtIGZyYW1lYnVmZmVyLiAqLwo+ICsvKiBjcmVhdGUgbWVtb3J5IHJlZ2lvbiBmb3IgRFJN IGZyYW1lYnVmZmVyICovCj4gIGludCBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgZHJt X21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwo+ICsJCQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRy bSwKPiArCQkJICAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Cj4gIAo+IC0v KiBtYXAgbWVtb3J5IHJlZ2lvbiBmb3IgZHJtIGZyYW1lYnVmZmVyIHRvIHVzZXIgc3BhY2UuICov Cj4gKy8qIG1hcCBtZW1vcnkgcmVnaW9uIGZvciBEUk0gZnJhbWVidWZmZXIgdG8gdXNlciBzcGFj ZSAqLwo+ICBpbnQgZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2LAo+IC0JCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVpbnQzMl90IGhhbmRsZSwg dWludDY0X3QgKm9mZnNldCk7Cj4gKwkJCQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1MzIgaGFu ZGxlLAo+ICsJCQkJdTY0ICpvZmZzZXQpOwo+ICAKPiAtLyogc2V0IHZtX2ZsYWdzIGFuZCB3ZSBj YW4gY2hhbmdlIHRoZSB2bSBhdHRyaWJ1dGUgdG8gb3RoZXIgb25lIGF0IGhlcmUuICovCj4gKy8q IHNldCB2bV9mbGFncyBhbmQgd2UgY2FuIGNoYW5nZSB0aGUgVk0gYXR0cmlidXRlIHRvIG90aGVy IG9uZSBhdCBoZXJlICovCj4gIGludCBkcm1fZ2VtX2NtYV9tbWFwKHN0cnVjdCBmaWxlICpmaWxw LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gIAo+IC0vKiBhbGxvY2F0ZSBwaHlzaWNh bCBtZW1vcnkuICovCj4gKy8qIGFsbG9jYXRlIHBoeXNpY2FsIG1lbW9yeSAqLwo+ICBzdHJ1Y3Qg ZHJtX2dlbV9jbWFfb2JqZWN0ICpkcm1fZ2VtX2NtYV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKPiAtCQl1bnNpZ25lZCBpbnQgc2l6ZSk7Cj4gKwkJCQkJICAgICAgc2l6ZV90IHNpemUp Owo+ICAKPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBkcm1fZ2Vt X2NtYV92bV9vcHM7Cj4gIAo+IC0tIAo+IDIuMS4zCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQxICgwKSA3OSAzNjUgNTcgNDggLSBo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=