From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH v4 07/19] drm: Integrate VRAM MM into struct drm_device Date: Mon, 6 May 2019 10:26:37 +0200 Message-ID: <20190506082649.942-8-tzimmermann@suse.de> References: <20190506082649.942-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 49DD0895F5 for ; Mon, 6 May 2019 08:26:58 +0000 (UTC) In-Reply-To: <20190506082649.942-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, airlied@linux.ie, kraxel@redhat.com, christian.koenig@amd.com, ray.huang@amd.com, hdegoede@redhat.com, noralf@tronnes.org, sam@ravnborg.org, z.liuxinliang@hisilicon.com, zourongrong@gmail.com, kong.kongxinwei@hisilicon.com, puck.chen@hisilicon.com Cc: Thomas Zimmermann , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org List-Id: dri-devel@lists.freedesktop.org VGhlcmUncyBub3cgYSBwb2ludGVyIHRvIHN0cnVjdCBkcm1fdnJhbV9tbSBzdG9yZWQgaW4gc3Ry dWN0IGRybV9kZXZpY2UuCkRSTSBkcml2ZXJzIHRoYXQgdXNlIFZSQU0gTU0gc2hvdWxkIHVzZSB0 aGlzIGZpZWxkIHRvIHJlZmVyIHRvIHRoZWlyCmluc3RhbmNlIG9mIHRoZSBkYXRhIHN0cnVjdHVy ZS4gQXBwcm9wcmlhdGUgaGVscGVycyBhcmUgbm93IHByb3ZpZGVkIGFzCndlbGwuCgpBZGRpbmcg c3RydWN0IGRybV92cmFtX21tIHRvIHN0cnVjdCBkcm1fZGV2aWNlIGZ1cnRoZXIgYXZvaWRzIHdy YXBwZXJzCmFuZCBib2lsZXJwbGF0ZSBjb2RlIGluIGRyaXZlcnMuIFRoaXMgcGF0Y2ggaW1wbGVt ZW50cyBkZWZhdWx0IGZ1bmN0aW9ucwpmb3IgY2FsbGJhY2tzIGluIHN0cnVjdCBkcm1fZHJpdmVy IGFuZCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRoYXQgdXNlCnRoZSBzdHJ1Y3QgZHJtX3ZyYW1f bW0gc3RvcmVkIGluIHN0cnVjdCBkcm1fZGV2aWNlLiBEcml2ZXJzIHRoYXQgbmVlZCB0bwpwcm92 aWRlIHRoZWlyIG93biBpbXBsZW1lbnRhdGlvbnMgY2FuIHN0aWxsIGRvIHNvLgoKVGhlIHBhdGNo IGFsc28gYWRkcyBkb2N1bWVudGF0aW9uIGZvciB0aGUgVlJBTSBoZWxwZXIgbGlicmFyeSBpbiBn ZW5lcmFsLgoKdjQ6CgkqIGNsZWFudXBzIGZyb20gY2hlY2twYXRjaC5wbAoJKiBkb2N1bWVudCBW UkFNIGhlbHBlciBsaWJyYXJ5CgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgWmltbWVybWFubiA8dHpp bW1lcm1hbm5Ac3VzZS5kZT4KLS0tCiBEb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0ucnN0ICAgICAg ICAgICAgIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAg fCAyOCArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX2hlbHBlcl9jb21tb24uYyB8 IDkyICsrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX21t X2hlbHBlci5jICAgICB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2Ry bV9kZXZpY2UuaCAgICAgICAgICAgICAgICAgfCAgNCArKwogaW5jbHVkZS9kcm0vZHJtX2dlbV92 cmFtX2hlbHBlci5oICAgICAgICB8IDE4ICsrKystCiBpbmNsdWRlL2RybS9kcm1fdnJhbV9tbV9o ZWxwZXIuaCAgICAgICAgIHwgMzIgKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI2NCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLW1tLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKaW5kZXggZWJhNTBhZmJk YTQyLi5jOGViZDRmNjZhNmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5y c3QKKysrIGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdApAQCAtMzgyLDYgKzM4MiwxMiBA QCBHRU0gQ01BIEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlCiBWUkFNIEhlbHBlciBGdW5jdGlv biBSZWZlcmVuY2UKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCisuLiBrZXJuZWwt ZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX2hlbHBlcl9jb21tb24uYworICAgOmRvYzog b3ZlcnZpZXcKKworLi4ga2VybmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9nZW1fdnJhbV9oZWxw ZXIuaAorICAgOmludGVybmFsOgorCiBHRU0gVlJBTSBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5j ZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtX3ZyYW1faGVscGVyLmMKaW5kZXggMzMzMjEyOTE0NzVhLi43ZGVmNmNlZGM0YWUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwpAQCAtMSw2ICsxLDcgQEAKIC8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCiAKICNpbmNsdWRlIDxkcm0vZHJt X2dlbV92cmFtX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CiAjaW5jbHVk ZSA8ZHJtL2RybV9tb2RlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV92cmFtX21tX2hlbHBlci5oPgog I2luY2x1ZGUgPGRybS90dG0vdHRtX3BhZ2VfYWxsb2MuaD4KQEAgLTU1NCw2ICs1NTUsMzMgQEAg dm9pZCBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2dlbV9mcmVlX29iamVjdF91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2dlbV9vYmplY3QgKmdlbSkKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZl cl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQpOwogCisvKioKKyAqIGRybV9nZW1fdnJhbV9kcml2 ZXJfY3JlYXRlX2R1bWIoKSAtIFwKKwlJbXBsZW1lbnRzICZzdHJ1Y3QgZHJtX2RyaXZlci5kdW1i X2NyZWF0ZQorICogQGZpbGU6CQl0aGUgRFJNIGZpbGUKKyAqIEBkZXY6CQl0aGUgRFJNIGRldmlj ZQorICogQGFyZ3M6CQl0aGUgYXJndW1lbnRzIGFzIHByb3ZpZGVkIHRvIFwKKwkJCQkmc3RydWN0 IGRybV9kcml2ZXIuZHVtYl9jcmVhdGUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHRo ZSBkcml2ZXIgdG8gdXNlIEBkcm1fZGV2aWNlLnZyYW1fbW0gZm9yIGl0cworICogaW5zdGFuY2Ug b2YgVlJBTSBNTS4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBzdWNjZXNzLCBvcgorICogYSBu ZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4KKyAqLworaW50IGRybV9nZW1fdnJhbV9kcml2 ZXJfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAorCQkJCSAgICBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3Mp Cit7CisJaWYgKFdBUk5fT05DRSghZGV2LT52cmFtX21tLCAiVlJBTSBNTSBub3QgaW5pdGlhbGl6 ZWQiKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gZHJtX2dlbV92cmFtX2ZpbGxfY3Jl YXRlX2R1bWIoZmlsZSwgZGV2LCAmZGV2LT52cmFtX21tLT5iZGV2LCAwLAorCQkJCQkgICAgIGZh bHNlLCBhcmdzKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX2Ny ZWF0ZSk7CisKIC8qKgogICogZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0KCkg LSBcCiAJSW1wbGVtZW50cyAmc3RydWN0IGRybV9kcml2ZXIuZHVtYl9tbWFwX29mZnNldApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX2hlbHBlcl9jb21tb24uYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fdnJhbV9oZWxwZXJfY29tbW9uLmMKaW5kZXggN2MyNWRhY2ExOGQwLi4z YjQ3ZjcwMDIxMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdnJhbV9oZWxwZXJf Y29tbW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92cmFtX2hlbHBlcl9jb21tb24uYwpA QCAtMiw1ICsyLDk3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAorLyoqCisgKiBE T0M6IG92ZXJ2aWV3CisgKgorICogVGhpcyBsaWJyYXJ5IHByb3ZpZGVzICZzdHJ1Y3QgZHJtX2dl bV92cmFtX29iamVjdCAoR0VNIFZSQU0pLCBhIEdFTQorICogYnVmZmVyIG9iamVjdCB0aGF0IGlz IGJhY2tlZCBieSB2aWRlbyBSQU0uIEl0IGNhbiBiZSB1c2VkIGZvcgorICogZnJhbWVidWZmZXIg ZGV2aWNlcyB3aXRoIGRlZGljYXRlZCBtZW1vcnkuIFRoZSB2aWRlbyBSQU0gY2FuIGJlCisgKiBt YW5hZ2VkIHdpdGggJnN0cnVjdCBkcm1fdnJhbV9tbSAoVlJBTSBNTSkuIEJvdGggZGF0YSBzdHJ1 Y3R1cmVzIGFyZQorICogc3VwcG9zZWQgdG8gYmUgdXNlZCB0b2dldGhlciwgYnV0IGNhbiBhbHNv IGJlIHVzZWQgaW5kaXZpZHVhbGx5LgorICoKKyAqIFdpdGggdGhlIEdFTSBpbnRlcmZhY2UgdXNl cnNwYWNlIGFwcGxpY2F0aW9ucyBjcmVhdGUsIG1hbmFnZSBhbmQgZGVzdHJveQorICogZ3JhcGhp Y3MgYnVmZmVycywgc3VjaCBhcyBhbiBvbi1zY3JlZW4gZnJhbWVidWZmZXIuIEdFTSBkb2VzIG5v dCBwcm92aWRlCisgKiBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBpbnRlcmZhY2VzLiBJdCdz IHVwIHRvIHRoZSBEUk0gZHJpdmVyIHRvCisgKiBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIHRo YXQgc3VpdHMgdGhlIGhhcmR3YXJlLiBJZiB0aGUgaGFyZHdhcmUgZGV2aWNlCisgKiBjb250YWlu cyBkZWRpY2F0ZWQgdmlkZW8gbWVtb3J5LCB0aGUgRFJNIGRyaXZlciBjYW4gdXNlIHRoZSBWUkFN IGhlbHBlcgorICogbGlicmFyeS4gRWFjaCBhY3RpdmUgYnVmZmVyIG9iamVjdCBpcyBzdG9yZWQg aW4gdmlkZW8gUkFNLiBBY3RpdmUKKyAqIGJ1ZmZlciBhcmUgdXNlZCBmb3IgZHJhd2luZyB0aGUg Y3VycmVudCBmcmFtZSwgdHlwaWNhbGx5IHNvbWV0aGluZyBsaWtlCisgKiB0aGUgZnJhbWUncyBz Y2Fub3V0IGJ1ZmZlciBvciB0aGUgY3Vyc29yIGltYWdlLiBJZiB0aGVyZSdzIG5vIG1vcmUgc3Bh Y2UKKyAqIGxlZnQgaW4gVlJBTSwgaW5hY3RpdmUgR0VNIG9iamVjdHMgY2FuIGJlIG1vdmVkIHRv IHN5c3RlbSBtZW1vcnkuCisgKgorICogVGhlIGVhc2llc3Qgd2F5IHRvIHVzZSB0aGUgVlJBTSBo ZWxwZXIgbGlicmFyeSBpcyB0byBjYWxsCisgKiBkcm1fdnJhbV9oZWxwZXJfYWxsb2NfbW0oKS4g VGhlIGZ1bmN0aW9uIGFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgYW4KKyAqIGluc3RhbmNlIG9m ICZzdHJ1Y3QgZHJtX3ZyYW1fbW0gaW4gJnN0cnVjdCBkcm1fZGV2aWNlLnZyYW1fbW0gLiBVc2UK KyAqICZEUk1fR0VNX1ZSQU1fRFJJVkVSIHRvIGluaXRpYWxpemUgJnN0cnVjdCBkcm1fZHJpdmVy IGFuZAorICogJkRSTV9WUkFNX01NX0ZJTEVfT1BFUkFUSU9OUyB0byBpbml0aWFsaXplICZzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zOworICogYXMgaWxsdXN0cmF0ZWQgYmVsb3cuCisgKgorICogLi4g Y29kZS1ibG9jazo6IGMKKyAqCisgKglzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHMgPXsKKyAq CQkub3duZXIgPSBUSElTX01PRFVMRSwKKyAqCQlEUk1fVlJBTV9NTV9GSUxFX09QRVJBVElPTgor ICoJfTsKKyAqCXN0cnVjdCBkcm1fZHJpdmVyIGRydiA9IHsKKyAqCQkuZHJpdmVyX2ZlYXR1cmUg PSBEUk1fIC4uLiAsCisgKgkJLmZvcHMgPSAmZm9wcywKKyAqCQlEUk1fR0VNX1ZSQU1fRFJJVkVS CisgKgl9OworICoKKyAqCWludCBpbml0X2RybV9kcml2ZXIoKQorICoJeworICoJCXN0cnVjdCBk cm1fZGV2aWNlICpkZXY7CisgKgkJdWludDY0X3QgdnJhbV9iYXNlOworICoJCXVuc2lnbmVkIGxv bmcgdnJhbV9zaXplOworICoJCWludCByZXQ7CisgKgorICoJCS8vIHNldHVwIGRldmljZSwgdnJh bSBiYXNlIGFuZCBzaXplCisgKgkJLy8gLi4uCisgKgorICoJCXJldCA9IGRybV92cmFtX2hlbHBl cl9hbGxvY19tbShkZXYsIHZyYW1fYmFzZSwgdnJhbV9zaXplLAorICoJCQkJCSAgICAgICAmZHJt X2dlbV92cmFtX21tX2Z1bmNzKTsKKyAqCQlpZiAocmV0KQorICoJCQlyZXR1cm4gcmV0OworICoJ CXJldHVybiAwOworICoJfQorICoKKyAqIFRoaXMgY3JlYXRlcyBhbiBpbnN0YW5jZSBvZiAmc3Ry dWN0IGRybV92cmFtX21tLCBleHBvcnRzIERSTSB1c2Vyc3BhY2UKKyAqIGludGVyZmFjZXMgZm9y IEdFTSBidWZmZXIgbWFuYWdlbWVudCBhbmQgaW5pdGlhbGl6ZXMgZmlsZSBvcGVyYXRpb25zIHRv CisgKiBhbGxvdyBmb3IgYWNjZXNzaW5nIGNyZWF0ZWQgR0VNIGJ1ZmZlcnMuIFdpdGggdGhpcyBz ZXR1cCwgdGhlIERSTSBkcml2ZXIKKyAqIG1hbmFnZXMgYW4gYXJlYSBvZiB2aWRlbyBSQU0gd2l0 aCBWUkFNIE1NIGFuZCBwcm92aWRlcyBHRU0gVlJBTSBvYmplY3RzCisgKiB0byB1c2Vyc3BhY2Uu CisgKgorICogVG8gY2xlYW4gdXAgdGhlIFZSQU0gbWVtb3J5IG1hbmFnZW1lbnQsIGNhbGwgZHJt X3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oKQorICogaW4gdGhlIGRyaXZlcidzIGNsZWFuLXVwIGNv ZGUuCisgKgorICogLi4gY29kZS1ibG9jazo6IGMKKyAqCisgKgl2b2lkIGZpbmlfZHJtX2RyaXZl cigpCisgKgl7CisgKgkJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IC4uLjsKKyAqCisgKgkJZHJt X3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oZGV2KTsKKyAqCX0KKyAqCisgKiBGb3IgZHJhd2luZyBv ciBzY2Fub3V0IG9wZXJhdGlvbnMsIGJ1ZmZlciBvYmplY3QgaGF2ZSB0byBiZSBwaW5uZWQgaW4g dmlkZW8KKyAqIFJBTS4gQ2FsbCBkcm1fZ2VtX3ZyYW1fcGluKCkgd2l0aCAmRFJNX0dFTV9WUkFN X1BMX0ZMQUdfVlJBTSBvcgorICogJkRSTV9HRU1fVlJBTV9QTF9GTEFHX1NZU1RFTSB0byBwaW4g YSBidWZmZXIgb2JqZWN0IGluIHZpZGVvIFJBTSBvciBzeXN0ZW0KKyAqIG1lbW9yeS4gQ2FsbCBk cm1fZ2VtX3ZyYW1fdW5waW4oKSB0byByZWxlYXNlIHRoZSBwaW5uZWQgb2JqZWN0IGFmdGVyd2Fy ZHMuCisgKiBJZiB5b3UgaGF2ZSB0byBldmljdCBhIGJ1ZmZlciBvYmplY3QgZnJvbSB2aWRlbyBS QU0gKGUuZy4sIGZvciBmcmVlaW5nIHVwCisgKiBtZW1vcnkpLCB1bnBpbiB0aGUgYnVmZmVyIGFu ZCBjYWxsIGRybV9nZW1fdnJhbV9wdXNoX3RvX3N5c3RlbSgpLgorICoKKyAqIEEgYnVmZmVyIG9i amVjdCB0aGF0IGlzIHBpbm5lZCBpbiB2aWRlbyBSQU0gaGFzIGEgZml4ZWQgYWRkcmVzcyB3aXRo aW4gdGhhdAorICogbWVtb3J5IHJlZ2lvbi4gQ2FsbCBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KCkgdG8g cmV0cmlldmUgdGhpcyB2YWx1ZS4gVHlwaWNhbGx5CisgKiBpdCdzIHVzZWQgdG8gcHJvZ3JhbSB0 aGUgaGFyZHdhcmUncyBzY2Fub3V0IGVuZ2luZSBmb3IgZnJhbWVidWZmZXJzLCBzZXQKKyAqIHRo ZSBjdXJzb3Igb3ZlcmxheSdzIGltYWdlIGZvciBhIG1vdXNlIGN1cnNvciwgb3IgdXNlIGl0IGFz IGlucHV0IHRvIHRoZQorICogaGFyZHdhcmUncyBkcmFpbmcgZW5naW5lLgorICoKKyAqIFRvIGFj Y2VzcyBhIGJ1ZmZlciBvYmplY3QncyBtZW1vcnkgZnJvbSB0aGUgRFJNIGRyaXZlciwgY2FsbAor ICogZHJtX2dlbV92cmFtX2ttYXAoKS4gSXQgKG9wdGlvbmFsbHkpIG1hcHMgdGhlIGJ1ZmZlciBp bnRvIGtlcm5lbCBhZGRyZXNzCisgKiBzcGFjZSBhbmQgcmV0dXJucyB0aGUgbWVtb3J5IGFkZHJl c3MuIFVzZSBkcm1fZ2VtX3ZyYW1fa3VubWFwKCkgdG8KKyAqIHJlbGVhc2UgdGhlIG1hcHBpbmcu CisgKi8KKwogTU9EVUxFX0RFU0NSSVBUSU9OKCJEUk0gVlJBTSBtZW1vcnktbWFuYWdlbWVudCBo ZWxwZXJzIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX3ZyYW1fbW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZyYW1fbW1f aGVscGVyLmMKaW5kZXggZDE3YzUxNjliMDE4Li5jOTRhNmRjNWFkZTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fdnJhbV9tbV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX3ZyYW1fbW1faGVscGVyLmMKQEAgLTIwOCwzICsyMDgsODggQEAgaW50IGRybV92cmFtX21t X21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCXJl dHVybiB0dG1fYm9fbW1hcChmaWxwLCB2bWEsICZ2bW0tPmJkZXYpOwogfQogRVhQT1JUX1NZTUJP TChkcm1fdnJhbV9tbV9tbWFwKTsKKworLyoKKyAqIEhlbHBlcnMgZm9yIGludGVncmF0aW9uIHdp dGggc3RydWN0IGRybV9kZXZpY2UKKyAqLworCisvKioKKyAqIGRybV92cmFtX2hlbHBlcl9hbGxv Y19tbSAtIEFsbG9jYXRlcyBhIGRldmljZSdzIGluc3RhbmNlIG9mIFwKKwkmc3RydWN0IGRybV92 cmFtX21tCisgKiBAZGV2Ogl0aGUgRFJNIGRldmljZQorICogQHZyYW1fYmFzZToJdGhlIGJhc2Ug YWRkcmVzcyBvZiB0aGUgdmlkZW8gbWVtb3J5CisgKiBAdnJhbV9zaXplOgl0aGUgc2l6ZSBvZiB0 aGUgdmlkZW8gbWVtb3J5IGluIGJ5dGVzCisgKiBAZnVuY3M6CWNhbGxiYWNrIGZ1bmN0aW9ucyBm b3IgYnVmZmVyIG9iamVjdHMKKyAqCisgKiBSZXR1cm5zOgorICogVGhlIG5ldyBpbnN0YW5jZSBv ZiAmc3RydWN0IGRybV92cmFtX21tIG9uIHN1Y2Nlc3MsIG9yCisgKiBhbiBFUlJfUFRSKCktZW5j b2RlZCBlcnJubyBjb2RlIG90aGVyd2lzZS4KKyAqLworc3RydWN0IGRybV92cmFtX21tICpkcm1f dnJhbV9oZWxwZXJfYWxsb2NfbW0oCisJc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3Qg dnJhbV9iYXNlLCBzaXplX3QgdnJhbV9zaXplLAorCWNvbnN0IHN0cnVjdCBkcm1fdnJhbV9tbV9m dW5jcyAqZnVuY3MpCit7CisJaW50IHJldDsKKworCWlmIChXQVJOX09OKGRldi0+dnJhbV9tbSkp CisJCXJldHVybiBkZXYtPnZyYW1fbW07CisKKwlkZXYtPnZyYW1fbW0gPSBremFsbG9jKHNpemVv ZigqZGV2LT52cmFtX21tKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkZXYtPnZyYW1fbW0pCisJCXJl dHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJcmV0ID0gZHJtX3ZyYW1fbW1faW5pdChkZXYtPnZy YW1fbW0sIGRldiwgdnJhbV9iYXNlLCB2cmFtX3NpemUsIGZ1bmNzKTsKKwlpZiAocmV0KQorCQln b3RvIGVycl9rZnJlZTsKKworCXJldHVybiBkZXYtPnZyYW1fbW07CisKK2Vycl9rZnJlZToKKwlr ZnJlZShkZXYtPnZyYW1fbW0pOworCWRldi0+dnJhbV9tbSA9IE5VTEw7CisJcmV0dXJuIEVSUl9Q VFIocmV0KTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3ZyYW1faGVscGVyX2FsbG9jX21tKTsKKwor LyoqCisgKiBkcm1fdnJhbV9oZWxwZXJfcmVsZWFzZV9tbSAtIFJlbGVhc2VzIGEgZGV2aWNlJ3Mg aW5zdGFuY2Ugb2YgXAorCSZzdHJ1Y3QgZHJtX3ZyYW1fbW0KKyAqIEBkZXY6CXRoZSBEUk0gZGV2 aWNlCisgKi8KK3ZvaWQgZHJtX3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oc3RydWN0IGRybV9kZXZp Y2UgKmRldikKK3sKKwlpZiAoIWRldi0+dnJhbV9tbSkKKwkJcmV0dXJuOworCisJZHJtX3ZyYW1f bW1fY2xlYW51cChkZXYtPnZyYW1fbW0pOworCWtmcmVlKGRldi0+dnJhbV9tbSk7CisJZGV2LT52 cmFtX21tID0gTlVMTDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3ZyYW1faGVscGVyX3JlbGVhc2Vf bW0pOworCisvKgorICogSGVscGVycyBmb3IgJnN0cnVjdCBmaWxlX29wZXJhdGlvbnMKKyAqLwor CisvKioKKyAqIGRybV92cmFtX21tX2ZpbGVfb3BlcmF0aW9uc19tbWFwKCkgLSBcCisJSW1wbGVt ZW50cyAmc3RydWN0IGZpbGVfb3BlcmF0aW9ucy5tbWFwKCkKKyAqIEBmaWxwOgl0aGUgbWFwcGlu ZydzIGZpbGUgc3RydWN0dXJlCisgKiBAdm1hOgl0aGUgbWFwcGluZydzIG1lbW9yeSBhcmVhCisg KgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2Vzcywgb3IKKyAqIGEgbmVnYXRpdmUgZXJyb3Ig Y29kZSBvdGhlcndpc2UuCisgKi8KK2ludCBkcm1fdnJhbV9tbV9maWxlX29wZXJhdGlvbnNfbW1h cCgKKwlzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJ c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGZpbGVfcHJpdi0+bWlub3ItPmRldjsKKworCWlmIChXQVJOX09O Q0UoIWRldi0+dnJhbV9tbSwgIlZSQU0gTU0gbm90IGluaXRpYWxpemVkIikpCisJCXJldHVybiAt RUlOVkFMOworCisJcmV0dXJuIGRybV92cmFtX21tX21tYXAoZmlscCwgdm1hLCBkZXYtPnZyYW1f bW0pOworfQorRVhQT1JUX1NZTUJPTChkcm1fdnJhbV9tbV9maWxlX29wZXJhdGlvbnNfbW1hcCk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZGV2aWNlLmggYi9pbmNsdWRlL2RybS9kcm1f ZGV2aWNlLmgKaW5kZXggN2Y5ZWY3MDliMmI2Li4xYWNmYzNiYmQzZmIgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9kZXZpY2UuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZGV2aWNlLmgKQEAg LTE3LDYgKzE3LDcgQEAgc3RydWN0IGRybV92YmxhbmtfY3J0YzsKIHN0cnVjdCBkcm1fc2dfbWVt Owogc3RydWN0IGRybV9sb2NhbF9tYXA7CiBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbWFuYWdlcjsK K3N0cnVjdCBkcm1fdnJhbV9tbTsKIHN0cnVjdCBkcm1fZmJfaGVscGVyOwogCiBzdHJ1Y3QgaW5v ZGU7CkBAIC0yODYsNiArMjg3LDkgQEAgc3RydWN0IGRybV9kZXZpY2UgewogCS8qKiBAdm1hX29m ZnNldF9tYW5hZ2VyOiBHRU0gaW5mb3JtYXRpb24gKi8KIAlzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRf bWFuYWdlciAqdm1hX29mZnNldF9tYW5hZ2VyOwogCisJLyoqIEB2cmFtX21tOiBWUkFNIE1NIG1l bW9yeSBtYW5hZ2VyICovCisJc3RydWN0IGRybV92cmFtX21tICp2cmFtX21tOworCiAJLyoqCiAJ ICogQHN3aXRjaF9wb3dlcl9zdGF0ZToKIAkgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2dlbV92cmFtX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5oCmlu ZGV4IGYwOWYxNTk0YjRmOC4uNWVhNTMwMGYwNTc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9k cm1fZ2VtX3ZyYW1faGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV92cmFtX2hlbHBl ci5oCkBAIC0xMSw2ICsxMSw3IEBACiBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWI7CiBzdHJ1 Y3QgZHJtX3ZyYW1fbW1fZnVuY3M7CiBzdHJ1Y3QgZmlscDsKK3N0cnVjdCB2bV9hcmVhX3N0cnVj dDsKIAogI2RlZmluZSBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNCVRUTV9QTF9GTEFHX1ZSQU0K ICNkZWZpbmUgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfU1lTVEVNCVRUTV9QTF9GTEFHX1NZU1RFTQpA QCAtMTE1LDkgKzExNiwyNCBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGRybV92cmFtX21tX2Z1bmNz IGRybV9nZW1fdnJhbV9tbV9mdW5jczsKICAqLwogCiB2b2lkIGRybV9nZW1fdnJhbV9kcml2ZXJf Z2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtKTsKLQor aW50IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxl LAorCQkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICBzdHJ1Y3QgZHJtX21v ZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwogaW50IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVtYl9tbWFw X29mZnNldChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJCQkJCSBzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCQkgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCAqb2Zmc2V0KTsKIAorLyoqCisg KiBkZWZpbmUgRFJNX0dFTV9WUkFNX0RSSVZFUiAtIGRlZmF1bHQgY2FsbGJhY2sgZnVuY3Rpb25z IGZvciBcCisJJnN0cnVjdCBkcm1fZHJpdmVyCisgKgorICogRHJpdmVycyB0aGF0IHVzZSBWUkFN IE1NIGFuZCBHRU0gVlJBTSBjYW4gdXNlIHRoaXMgbWFjcm8gdG8gaW5pdGlhbGl6ZQorICogJnN0 cnVjdCBkcm1fZHJpdmVyIHdpdGggZGVmYXVsdCBmdW5jdGlvbnMuCisgKi8KKyNkZWZpbmUgRFJN X0dFTV9WUkFNX0RSSVZFUiBcCisJLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IFwKKwkJZHJt X2dlbV92cmFtX2RyaXZlcl9nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQsIFwKKwkuZHVtYl9jcmVh dGUJCSAgPSBkcm1fZ2VtX3ZyYW1fZHJpdmVyX2R1bWJfY3JlYXRlLCBcCisJLmR1bWJfbWFwX29m ZnNldAkgID0gZHJtX2dlbV92cmFtX2RyaXZlcl9kdW1iX21tYXBfb2Zmc2V0CisKICNlbmRpZgpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3ZyYW1fbW1faGVscGVyLmggYi9pbmNsdWRlL2Ry bS9kcm1fdnJhbV9tbV9oZWxwZXIuaAppbmRleCA1ZDQ1YzY0NDdmYTQuLjA1OTExY2MzZjRkMSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3ZyYW1fbW1faGVscGVyLmgKKysrIGIvaW5jbHVk ZS9kcm0vZHJtX3ZyYW1fbW1faGVscGVyLmgKQEAgLTY2LDQgKzY2LDM2IEBAIHZvaWQgZHJtX3Zy YW1fbW1fY2xlYW51cChzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSk7CiBpbnQgZHJtX3ZyYW1fbW1f bW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCSAg ICAgc3RydWN0IGRybV92cmFtX21tICp2bW0pOwogCisvKgorICogSGVscGVycyBmb3IgaW50ZWdy YXRpb24gd2l0aCBzdHJ1Y3QgZHJtX2RldmljZQorICovCisKK3N0cnVjdCBkcm1fdnJhbV9tbSAq ZHJtX3ZyYW1faGVscGVyX2FsbG9jX21tKAorCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQ2 NF90IHZyYW1fYmFzZSwgc2l6ZV90IHZyYW1fc2l6ZSwKKwljb25zdCBzdHJ1Y3QgZHJtX3ZyYW1f bW1fZnVuY3MgKmZ1bmNzKTsKK3ZvaWQgZHJtX3ZyYW1faGVscGVyX3JlbGVhc2VfbW0oc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CisKKy8qCisgKiBIZWxwZXJzIGZvciAmc3RydWN0IGZpbGVfb3Bl cmF0aW9ucworICovCisKK2ludCBkcm1fdnJhbV9tbV9maWxlX29wZXJhdGlvbnNfbW1hcCgKKwlz dHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOworCisvKioKKyAq IGRlZmluZSBEUk1fVlJBTV9NTV9GSUxFX09QRVJBVElPTlMgLSBkZWZhdWx0IGNhbGxiYWNrIGZ1 bmN0aW9ucyBmb3IgXAorCSZzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zCisgKgorICogRHJpdmVycyB0 aGF0IHVzZSBWUkFNIE1NIGNhbiB1c2UgdGhpcyBtYWNybyB0byBpbml0aWFsaXplCisgKiAmc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyB3aXRoIGRlZmF1bHQgZnVuY3Rpb25zLgorICovCisjZGVmaW5l IERSTV9WUkFNX01NX0ZJTEVfT1BFUkFUSU9OUyBcCisJLm9wZW4JCT0gZHJtX29wZW4sIFwKKwku cmVsZWFzZQk9IGRybV9yZWxlYXNlLCBcCisJLnVubG9ja2VkX2lvY3RsID0gZHJtX2lvY3RsLCBc CisJLm1tYXAJCT0gZHJtX3ZyYW1fbW1fZmlsZV9vcGVyYXRpb25zX21tYXAsIFwKKwkucG9sbAkJ PSBkcm1fcG9sbCwgXAorCS5jb21wYXRfaW9jdGwJPSBkcm1fY29tcGF0X2lvY3RsLCBcCisJLnJl YWQJCT0gZHJtX3JlYWQKKwogI2VuZGlmCi0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==