From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH] RFC: drm/nouveau: Make BAR1 support optional Date: Fri, 8 Nov 2019 17:02:07 +0100 Message-ID: <20191108160207.3251019-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ben Skeggs Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBwdXJwb3NlIG9m IEJBUjEgaXMgcHJpbWFyaWx5IHRvIG1ha2UgbWVtb3J5IGFjY2Vzc2VzIGNvaGVyZW50LgpIb3dl dmVyLCBzb21lIEdQVXMgZG8gbm90IGhhdmUgQkFSMSBmdW5jdGlvbmFsaXR5LiBGb3IgZXhhbXBs ZSwgdGhlCkdWMTFCIGZvdW5kIG9uIHRoZSBYYXZpZXIgU29DIGlzIERNQSBjb2hlcmVudCBhbmQg dGhlcmVmb3JlIGRvZXNuJ3QKbmVlZCBCQVIxLgoKSW1wbGVtZW50IGEgdmFyaWFudCBvZiBGSUZP IGNoYW5uZWxzIHRoYXQgd29yayB3aXRob3V0IGEgbWFwcGluZyBvZgppbnN0YW5jZSBtZW1vcnkg dGhyb3VnaCBCQVIxLgoKWFhYIGVuc3VyZSBtZW1vcnkgYmFycmllcnMgYXJlIGluIHBsYWNlIGZv ciB3cml0ZXMKClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5j b20+Ci0tLQpIaSBCZW4sCgpJJ20gc2VuZGluZyB0aGlzIGEgYml0IG91dCBvZiBjb250ZXh0IChp dCdzIHBhcnQgb2YgdGhlIGxhcmdlciBzZXJpZXMgdG8KZW5hYmxlIGJhc2ljIEdWMTFCIHN1cHBv cnQpIGJlY2F1c2UgSSB3YW50ZWQgdG8gZ2V0IHNvbWUgZWFybHkgZmVlZGJhY2sKZnJvbSB5b3Ug b24gdGhpcy4KCkZvciBhIGJpdCBvZiBiYWNrZ3JvdW5kOiBHVjExQiBhcyBpdCB0dXJucyBvdXQg ZG9lc24ndCByZWFsbHkgaGF2ZSBCQVIxCmFueW1vcmUuIFRoZSBTb0MgaGFzIGEgY29oZXJlbmN5 IGZhYnJpYyB3aGljaCBtZWFucyB0aGF0IGJhc2ljYWxseSB0aGUKR1BVJ3Mgc3lzdGVtIG1lbW9y eSBhY2Nlc3NlcyBhcmUgYWxyZWFkeSBjb2hlcmVudCBhbmQgaGVuY2Ugd2Ugbm8gbG9uZ2VyCm5l ZWQgdG8gZ28gdmlhIEJBUjEgdG8gZW5zdXJlIHRoYXQuIEZ1bmN0aW9uYWxseSB0aGUgc2FtZSBj YW4gYmUgZG9uZSBieQpqdXN0IHdyaXRpbmcgdG8gdGhlIG1lbW9yeSB2aWEgdGhlIENQVSdzIHZp cnR1YWwgbWFwcGluZy4KClNvIHRoaXMgcGF0Y2ggaW1wbGVtZW50IGJhc2ljYWxseSBhIHNlY29u ZCB2YXJpYW50IG9mIHRoZSBGSUZPIGNoYW5uZWwKd2hpY2gsIGluc3RlYWQgb2YgdGFraW5nIGEg cGh5c2ljYWwgYWRkcmVzcyBhbmQgdGhlbiBpb3JlbWFwcGluZyB0aGF0LAp0YWtlcyBhIHN0cnVj dCBudmttX21lbW9yeSBvYmplY3QuIFRoaXMgc2VlbXMgdG8gd29yaywgdGhvdWdoIHNpbmNlIEkn bQpub3QgcmVhbGx5IGRvaW5nIG11Y2ggeWV0IChmaXJtd2FyZSBsb2FkaW5nIGZhaWxzLCBldGMu KSBJIHdvdWxkbid0IGNhbGwKdGhpcyAiZG9uZSIganVzdCB5ZXQuCgpJbiBmYWN0IHRoZXJlIGFy ZSBhIGZldyB0aGluZ3MgdGhhdCBJJ20gbm90IGhhcHB5IGFib3V0LiBGb3IgZXhhbXBsZSBJCnRo aW5rIHdlJ2xsIGV2ZW50dWFsbHkgbmVlZCB0byBoYXZlIGJhcnJpZXJzIHRvIGVuc3VyZSB0aGF0 IHRoZSBDUFUKd3JpdGUgYnVmZmVycyBhcmUgZmx1c2hlZCwgZXRjLiBJdCBhbHNvIHNlZW1zIGxp a2UgbW9zdCB1c2VycyBvZiB0aGUKRklGTyBjaGFubmVsIG9iamVjdCB3aWxsIGp1c3QgZ28gYW5k IG1hcCBpdHMgYnVmZmVyIG9uY2UgYW5kIHRoZW4gb25seQphY2Nlc3MgaXQgdmlhIHRoZSB2aXJ0 dWFsIG1hcHBpbmcgb25seSwgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZQotPnJkMzIoKS8tPndy MzIoKSBjYWxsYmFja3Mgbm9yIHVubWFwcGluZyB2aWEgLT51bm1hcCgpLiBUaGF0IG1lYW5zIHdl CmVmZmVjdGl2ZWx5IGRvbid0IGhhdmUgYSBnb29kIHBvaW50IHdoZXJlIHdlIGNvdWxkIGVtaXQg dGhlIG1lbW9yeQpiYXJyaWVycy4KCkkgc2VlIHR3byBwb3NzaWJpbGl0aWVzIGhlcmU6IDEpIG1h a2UgYWxsIGFjY2Vzc2VzIGdvIHRocm91Z2ggdGhlCmFjY2Vzc29ycyBvciAyKSBndWFyZCBlYWNo IHNlcmllcyBvZiBhY2Nlc3NlcyB3aXRoIGEgcGFpciBvZiBudmttX21hcCgpCmFuZCBudmttX2Rv bmUoKSBjYWxscy4gQm90aCBvZiB0aG9zZSB3b3VsZCBtZWFuIHRoYXQgYWxsIGNvZGUgcGF0aHMg bmVlZAp0byBiZSBjYXJlZnVsbHkgYXVkaXRlZC4KCk9uZSBvdGhlciB0aGluZyBJJ20gd29uZGVy aW5nIGlzIGlmIGl0J3Mgb2theSB0byBwdXQgYWxsIG9mIHRoaXMgaW50bwp0aGUgZ2sxMDRfZmlm byBpbXBsZW1lbnRhdGlvbi4gSSB0aGluayB0aGUgcmVzdWx0IG9mIHBhcmFtZXRlcml6aW5nIG9u CmRldmljZS0+YmFyIGlzIHByZXR0eSBuZWF0LiBBbHNvLCBpdCBzZWVtcyBsaWtlIG1vc3Qgb2Yg dGhlIHJlc3Qgb2YgdGhlCmNvZGUgd291bGQgaGF2ZSB0byBiZSBkdXBsaWNhdGVkLCBvciBhIGxv dCBvZiB0aGUgZ2sxMDRfKigpIGZ1bmN0aW9uCmV4cG9ydGVkIHRvIGEgbmV3IGltcGxlbWVudGF0 aW9uLiBTbyBJJ20gbm90IHN1cmUgdGhhdCBpdCdzIHJlYWxseSB3b3J0aAppdC4KClRoaWVycnkK CiAuLi4vZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmggICAgfCAgIDcgKy0K IC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmMgICB8IDE1NyArKysr KysrKysrKysrKysrLS0KIC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFu LmggICB8ICAgNiArCiAuLi4vZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQu YyAgfCAgMjkgKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAxODAgaW5zZXJ0aW9ucygrKSwgMTkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9u dmttL2VuZ2luZS9maWZvLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20v ZW5naW5lL2ZpZm8uaAppbmRleCA0YmQ2ZTFlN2M0MTMuLmMwZmI1NDVlZmIyYiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmgKQEAg LTI1LDcgKzI1LDEyIEBAIHN0cnVjdCBudmttX2ZpZm9fY2hhbiB7CiAJc3RydWN0IG52a21fZ3B1 b2JqICppbnN0OwogCXN0cnVjdCBudmttX2dwdW9iaiAqcHVzaDsKIAlzdHJ1Y3QgbnZrbV92bW0g KnZtbTsKLQl2b2lkIF9faW9tZW0gKnVzZXI7CisKKwl1bmlvbiB7CisJCXN0cnVjdCBudmttX21l bW9yeSAqbWVtOworCQl2b2lkIF9faW9tZW0gKnVzZXI7CisJfTsKKwogCXU2NCBhZGRyOwogCXUz MiBzaXplOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2lu ZS9maWZvL2NoYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8v Y2hhbi5jCmluZGV4IGQ4MzQ4NTM4NTkzNC4uZjQ3YmM5NmJiYjZkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2NoYW4uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2NoYW4uYwpAQCAtMzEwLDcgKzMxMCw3 IEBAIG52a21fZmlmb19jaGFuX2luaXQoc3RydWN0IG52a21fb2JqZWN0ICpvYmplY3QpCiB9CiAK IHN0YXRpYyB2b2lkICoKLW52a21fZmlmb19jaGFuX2R0b3Ioc3RydWN0IG52a21fb2JqZWN0ICpv YmplY3QpCitfX252a21fZmlmb19jaGFuX2R0b3Ioc3RydWN0IG52a21fb2JqZWN0ICpvYmplY3Qp CiB7CiAJc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0 KTsKIAlzdHJ1Y3QgbnZrbV9maWZvICpmaWZvID0gY2hhbi0+ZmlmbzsKQEAgLTMyNCw5ICszMjQs NiBAQCBudmttX2ZpZm9fY2hhbl9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0KQogCX0K IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmaWZvLT5sb2NrLCBmbGFncyk7CiAKLQlpZiAoY2hh bi0+dXNlcikKLQkJaW91bm1hcChjaGFuLT51c2VyKTsKLQogCWlmIChjaGFuLT52bW0pIHsKIAkJ bnZrbV92bW1fcGFydChjaGFuLT52bW0sIGNoYW4tPmluc3QtPm1lbW9yeSk7CiAJCW52a21fdm1t X3VucmVmKCZjaGFuLT52bW0pOwpAQCAtMzM3LDYgKzMzNCwxNyBAQCBudmttX2ZpZm9fY2hhbl9k dG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0KQogCXJldHVybiBkYXRhOwogfQogCitzdGF0 aWMgdm9pZCAqCitudmttX2ZpZm9fY2hhbl9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0 KQoreworCXN0cnVjdCBudmttX2ZpZm9fY2hhbiAqY2hhbiA9IG52a21fZmlmb19jaGFuKG9iamVj dCk7CisKKwlpZiAoY2hhbi0+dXNlcikKKwkJaW91bm1hcChjaGFuLT51c2VyKTsKKworCXJldHVy biBfX252a21fZmlmb19jaGFuX2R0b3Iob2JqZWN0KTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVj dCBudmttX29iamVjdF9mdW5jCiBudmttX2ZpZm9fY2hhbl9mdW5jID0gewogCS5kdG9yID0gbnZr bV9maWZvX2NoYW5fZHRvciwKQEAgLTM0OSwxMiArMzU3LDk4IEBAIG52a21fZmlmb19jaGFuX2Z1 bmMgPSB7CiAJLnNjbGFzcyA9IG52a21fZmlmb19jaGFuX2NoaWxkX2dldCwKIH07CiAKK3N0YXRp YyB2b2lkICoKK252a21fZmlmb19jaGFuX21lbV9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2Jq ZWN0KQoreworCXJldHVybiBfX252a21fZmlmb19jaGFuX2R0b3Iob2JqZWN0KTsKK30KKworc3Rh dGljIGludAorbnZrbV9maWZvX2NoYW5fbWVtX21hcChzdHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVj dCwgdm9pZCAqYXJndiwgdTMyIGFyZ2MsCisJCSAgICAgICBlbnVtIG52a21fb2JqZWN0X21hcCAq dHlwZSwgdTY0ICphZGRyLCB1NjQgKnNpemUpCit7CisJc3RydWN0IG52a21fZmlmb19jaGFuICpj aGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0KTsKKworCXByX2luZm8oIj4gJXMob2JqZWN0PSVw eCwgYXJndj0lcHgsIGFyZ2M9JXUsIHR5cGU9JXB4LCBhZGRyPSVweCwgc2l6ZT0lcHgpXG4iLCBf X2Z1bmNfXywgb2JqZWN0LCBhcmd2LCBhcmdjLCB0eXBlLCBhZGRyLCBzaXplKTsKKworCSp0eXBl ID0gTlZLTV9PQkpFQ1RfTUFQX1ZBOworCSphZGRyID0gKHU2NCludmttX2ttYXAoY2hhbi0+bWVt KTsKKwkqc2l6ZSA9IGNoYW4tPnNpemU7CisKKwlwcl9pbmZvKCIgIHR5cGU6ICVkXG4iLCAqdHlw ZSk7CisJcHJfaW5mbygiICBhZGRyOiAlMDE2bGx4XG4iLCAqYWRkcik7CisJcHJfaW5mbygiICBz aXplOiAlMDE2bGx4XG4iLCAqc2l6ZSk7CisJcHJfaW5mbygiPCAlcygpXG4iLCBfX2Z1bmNfXyk7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK252a21fZmlmb19jaGFuX21lbV91bm1hcChz dHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVjdCkKK3sKKwlzdHJ1Y3QgbnZrbV9maWZvX2NoYW4gKmNo YW4gPSBudmttX2ZpZm9fY2hhbihvYmplY3QpOworCisJcHJfaW5mbygiPiAlcyhvYmplY3Q9JXB4 KVxuIiwgX19mdW5jX18sIG9iamVjdCk7CisKKwludmttX2RvbmUoY2hhbi0+bWVtKTsKKworCXBy X2luZm8oIjwgJXMoKVxuIiwgX19mdW5jX18pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 CitudmttX2ZpZm9fY2hhbl9tZW1fcmQzMihzdHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVjdCwgdTY0 IGFkZHIsIHUzMiAqZGF0YSkKK3sKKwlzdHJ1Y3QgbnZrbV9maWZvX2NoYW4gKmNoYW4gPSBudmtt X2ZpZm9fY2hhbihvYmplY3QpOworCisJcHJfaW5mbygiPiAlcyhvYmplY3Q9JXB4LCBhZGRyPSUw MTZsbHgsIGRhdGE9JXB4KVxuIiwgX19mdW5jX18sIG9iamVjdCwgYWRkciwgZGF0YSk7CisKKwlp ZiAodW5saWtlbHkoYWRkciArIDQgPiBjaGFuLT5zaXplKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwkqZGF0YSA9IG52a21fcm8zMihjaGFuLT5tZW0sIGFkZHIpOworCisJcHJfaW5mbygiICBkYXRh OiAlMDh4XG4iLCAqZGF0YSk7CisJcHJfaW5mbygiPCAlcygpXG4iLCBfX2Z1bmNfXyk7CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK252a21fZmlmb19jaGFuX21lbV93cjMyKHN0cnVjdCBu dmttX29iamVjdCAqb2JqZWN0LCB1NjQgYWRkciwgdTMyIGRhdGEpCit7CisJc3RydWN0IG52a21f Zmlmb19jaGFuICpjaGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0KTsKKworCXByX2luZm8oIj4g JXMob2JqZWN0PSVweCwgYWRkcj0lMDE2bGx4LCBkYXRhPSUwOHgpXG4iLCBfX2Z1bmNfXywgb2Jq ZWN0LCBhZGRyLCBkYXRhKTsKKworCWlmICh1bmxpa2VseShhZGRyICsgNCA+IGNoYW4tPnNpemUp KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW52a21fd28zMihjaGFuLT5tZW0sIGFkZHIsIGRhdGEp OworCisJLyogWFhYIGFkZCBiYXJyaWVyICovCisKKwlwcl9pbmZvKCI8ICVzKClcbiIsIF9fZnVu Y19fKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBudmttX29iamVjdF9m dW5jCitudmttX2ZpZm9fY2hhbl9tZW1fZnVuYyA9IHsKKwkuZHRvciA9IG52a21fZmlmb19jaGFu X21lbV9kdG9yLAorCS5pbml0ID0gbnZrbV9maWZvX2NoYW5faW5pdCwKKwkuZmluaSA9IG52a21f Zmlmb19jaGFuX2ZpbmksCisJLm50ZnkgPSBudmttX2ZpZm9fY2hhbl9udGZ5LAorCS5tYXAgPSBu dmttX2ZpZm9fY2hhbl9tZW1fbWFwLAorCS51bm1hcCA9IG52a21fZmlmb19jaGFuX21lbV91bm1h cCwKKwkucmQzMiA9IG52a21fZmlmb19jaGFuX21lbV9yZDMyLAorCS53cjMyID0gbnZrbV9maWZv X2NoYW5fbWVtX3dyMzIsCisJLnNjbGFzcyA9IG52a21fZmlmb19jaGFuX2NoaWxkX2dldCwKK307 CisKIGludAotbnZrbV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5f ZnVuYyAqZnVuYywKLQkJICAgIHN0cnVjdCBudmttX2ZpZm8gKmZpZm8sIHUzMiBzaXplLCB1MzIg YWxpZ24sIGJvb2wgemVybywKLQkJICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMs IGludCBiYXIsIHUzMiBiYXNlLAotCQkgICAgdTMyIHVzZXIsIGNvbnN0IHN0cnVjdCBudmttX29j bGFzcyAqb2NsYXNzLAotCQkgICAgc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuKQorX19udmtt X2ZpZm9fY2hhbl9jdG9yKGNvbnN0IHN0cnVjdCBudmttX2ZpZm9fY2hhbl9mdW5jICpmdW5jLAor CQkgICAgICBzdHJ1Y3QgbnZrbV9maWZvICpmaWZvLCB1MzIgc2l6ZSwgdTMyIGFsaWduLCBib29s IHplcm8sCisJCSAgICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMsCisJCSAgICAg IGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAorCQkgICAgICBzdHJ1Y3QgbnZrbV9m aWZvX2NoYW4gKmNoYW4pCiB7CiAJc3RydWN0IG52a21fY2xpZW50ICpjbGllbnQgPSBvY2xhc3Mt PmNsaWVudDsKIAlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGZpZm8tPmVuZ2luZS5zdWJk ZXYuZGV2aWNlOwpAQCAtMzYyLDcgKzQ1Niw2IEBAIG52a21fZmlmb19jaGFuX2N0b3IoY29uc3Qg c3RydWN0IG52a21fZmlmb19jaGFuX2Z1bmMgKmZ1bmMsCiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAlpbnQgcmV0OwogCi0JbnZrbV9vYmplY3RfY3RvcigmbnZrbV9maWZvX2NoYW5fZnVuYywgb2Ns YXNzLCAmY2hhbi0+b2JqZWN0KTsKIAljaGFuLT5mdW5jID0gZnVuYzsKIAljaGFuLT5maWZvID0g ZmlmbzsKIAljaGFuLT5lbmdpbmVzID0gZW5naW5lczsKQEAgLTQxMiw2ICs1MDUsMjYgQEAgbnZr bV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywK IAlfX3NldF9iaXQoY2hhbi0+Y2hpZCwgZmlmby0+bWFzayk7CiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZmlmby0+bG9jaywgZmxhZ3MpOwogCisJcmV0dXJuIDA7Cit9CisKK2ludAorbnZrbV9m aWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywKKwkJ ICAgIHN0cnVjdCBudmttX2ZpZm8gKmZpZm8sIHUzMiBzaXplLCB1MzIgYWxpZ24sIGJvb2wgemVy bywKKwkJICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMsIGludCBiYXIsIHUzMiBi YXNlLAorCQkgICAgdTMyIHVzZXIsIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAor CQkgICAgc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuKQoreworCXN0cnVjdCBudmttX2Rldmlj ZSAqZGV2aWNlID0gZmlmby0+ZW5naW5lLnN1YmRldi5kZXZpY2U7CisJaW50IHJldDsKKworCW52 a21fb2JqZWN0X2N0b3IoJm52a21fZmlmb19jaGFuX2Z1bmMsIG9jbGFzcywgJmNoYW4tPm9iamVj dCk7CisKKwlyZXQgPSBfX252a21fZmlmb19jaGFuX2N0b3IoZnVuYywgZmlmbywgc2l6ZSwgYWxp Z24sIHplcm8sIGh2bW0sIHB1c2gsCisJCQkJICAgIGVuZ2luZXMsIG9jbGFzcywgY2hhbik7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCS8qIGRldGVybWluZSBhZGRyZXNzIG9mIHRoaXMg Y2hhbm5lbCdzIHVzZXIgcmVnaXN0ZXJzICovCiAJY2hhbi0+YWRkciA9IGRldmljZS0+ZnVuYy0+ cmVzb3VyY2VfYWRkcihkZXZpY2UsIGJhcikgKwogCQkgICAgIGJhc2UgKyB1c2VyICogY2hhbi0+ Y2hpZDsKQEAgLTQyMCwzICs1MzMsMjcgQEAgbnZrbV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1 Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywKIAludmttX2ZpZm9fY2V2ZW50KGZpZm8pOwog CXJldHVybiAwOwogfQorCitpbnQgbnZrbV9maWZvX2NoYW5fbWVtX2N0b3IoY29uc3Qgc3RydWN0 IG52a21fZmlmb19jaGFuX2Z1bmMgKmZ1bmMsCisJCQkgICAgc3RydWN0IG52a21fZmlmbyAqZmlm bywgdTMyIHNpemUsIHUzMiBhbGlnbiwKKwkJCSAgICBib29sIHplcm8sIHU2NCBodm1tLCB1NjQg cHVzaCwgdTY0IGVuZ2luZXMsCisJCQkgICAgc3RydWN0IG52a21fbWVtb3J5ICptZW0sIHUzMiB1 c2VyLAorCQkJICAgIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAorCQkJICAgIHN0 cnVjdCBudmttX2ZpZm9fY2hhbiAqY2hhbikKK3sKKwlpbnQgcmV0OworCisJbnZrbV9vYmplY3Rf Y3RvcigmbnZrbV9maWZvX2NoYW5fbWVtX2Z1bmMsIG9jbGFzcywgJmNoYW4tPm9iamVjdCk7CisK KwlyZXQgPSBfX252a21fZmlmb19jaGFuX2N0b3IoZnVuYywgZmlmbywgc2l6ZSwgYWxpZ24sIHpl cm8sIGh2bW0sIHB1c2gsCisJCQkJICAgIGVuZ2luZXMsIG9jbGFzcywgY2hhbik7CisJaWYgKHJl dCkKKwkJcmV0dXJuIHJldDsKKworCWNoYW4tPm1lbSA9IG1lbTsKKwljaGFuLT5hZGRyID0gdXNl ciAqIGNoYW4tPmNoaWQ7CisJY2hhbi0+c2l6ZSA9IHVzZXI7CisKKwludmttX2ZpZm9fY2V2ZW50 KGZpZm8pOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmtt L2VuZ2luZS9maWZvL2NoYW4uaAppbmRleCAxNzdlMTA1NjI2MDAuLjcxZjMyYjFlYmJhMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmgKQEAg LTI0LDYgKzI0LDEyIEBAIGludCBudmttX2ZpZm9fY2hhbl9jdG9yKGNvbnN0IHN0cnVjdCBudmtt X2ZpZm9fY2hhbl9mdW5jICosIHN0cnVjdCBudmttX2ZpZm8gKiwKIAkJCXUzMiBzaXplLCB1MzIg YWxpZ24sIGJvb2wgemVybywgdTY0IHZtLCB1NjQgcHVzaCwKIAkJCXU2NCBlbmdpbmVzLCBpbnQg YmFyLCB1MzIgYmFzZSwgdTMyIHVzZXIsCiAJCQljb25zdCBzdHJ1Y3QgbnZrbV9vY2xhc3MgKiwg c3RydWN0IG52a21fZmlmb19jaGFuICopOworaW50IG52a21fZmlmb19jaGFuX21lbV9jdG9yKGNv bnN0IHN0cnVjdCBudmttX2ZpZm9fY2hhbl9mdW5jICosCisJCQkgICAgc3RydWN0IG52a21fZmlm byAqLCB1MzIgc2l6ZSwgdTMyIGFsaWduLAorCQkJICAgIGJvb2wgemVybywgdTY0IHZtLCB1NjQg cHVzaCwgdTY0IGVuZ2luZXMsCisJCQkgICAgc3RydWN0IG52a21fbWVtb3J5ICptZW0sIHUzMiB1 c2VyLAorCQkJICAgIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqLAorCQkJICAgIHN0cnVjdCBu dmttX2ZpZm9fY2hhbiAqKTsKIAogc3RydWN0IG52a21fZmlmb19jaGFuX29jbGFzcyB7CiAJaW50 ICgqY3Rvcikoc3RydWN0IG52a21fZmlmbyAqLCBjb25zdCBzdHJ1Y3QgbnZrbV9vY2xhc3MgKiwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sx MDQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuYwpp bmRleCA4MWNiZTFjYzQ4MDQuLjU0MDRhMTgyZWIwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazEwNC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuYwpAQCAtOTA2LDcgKzkwNiw2IEBAIGdr MTA0X2ZpZm9fb25laW5pdChzdHJ1Y3QgbnZrbV9maWZvICpiYXNlKQogCXN0cnVjdCBnazEwNF9m aWZvICpmaWZvID0gZ2sxMDRfZmlmbyhiYXNlKTsKIAlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRl diA9ICZmaWZvLT5iYXNlLmVuZ2luZS5zdWJkZXY7CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZp Y2UgPSBzdWJkZXYtPmRldmljZTsKLQlzdHJ1Y3QgbnZrbV92bW0gKmJhciA9IG52a21fYmFyX2Jh cjFfdm1tKGRldmljZSk7CiAJaW50IGVuZ24sIHJ1bmwsIHBiaWQsIHJldCwgaSwgajsKIAllbnVt IG52a21fZGV2aWR4IGVuZ2lkeDsKIAl1MzIgKm1hcDsKQEAgLTk2NywxMiArOTY2LDE5IEBAIGdr MTA0X2ZpZm9fb25laW5pdChzdHJ1Y3QgbnZrbV9maWZvICpiYXNlKQogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlyZXQgPSBudmttX3ZtbV9nZXQoYmFyLCAxMiwgbnZrbV9tZW1vcnlfc2l6 ZShmaWZvLT51c2VyLm1lbSksCi0JCQkgICAmZmlmby0+dXNlci5iYXIpOwotCWlmIChyZXQpCi0J CXJldHVybiByZXQ7CisJaWYgKGRldmljZS0+YmFyKSB7CisJCXN0cnVjdCBudmttX3ZtbSAqYmFy ID0gbnZrbV9iYXJfYmFyMV92bW0oZGV2aWNlKTsKKworCQlyZXQgPSBudmttX3ZtbV9nZXQoYmFy LCAxMiwgbnZrbV9tZW1vcnlfc2l6ZShmaWZvLT51c2VyLm1lbSksCisJCQkJICAgJmZpZm8tPnVz ZXIuYmFyKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIG52a21fbWVt b3J5X21hcChmaWZvLT51c2VyLm1lbSwgMCwgYmFyLCBmaWZvLT51c2VyLmJhciwKKwkJCQkgICAg ICAgTlVMTCwgMCk7CisJfQogCi0JcmV0dXJuIG52a21fbWVtb3J5X21hcChmaWZvLT51c2VyLm1l bSwgMCwgYmFyLCBmaWZvLT51c2VyLmJhciwgTlVMTCwgMCk7CisJcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyB2b2lkCkBAIC05OTgsNyArMTAwNCwxMiBAQCBnazEwNF9maWZvX2luaXQoc3RydWN0IG52 a21fZmlmbyAqYmFzZSkKIAkJbnZrbV93cjMyKGRldmljZSwgMHgwNDAxNGMgKyAoaSAqIDB4MjAw MCksIDB4ZmZmZmZmZmYpOyAvKiBJTlRSRU4gKi8KIAl9CiAKLQludmttX3dyMzIoZGV2aWNlLCAw eDAwMjI1NCwgMHgxMDAwMDAwMCB8IGZpZm8tPnVzZXIuYmFyLT5hZGRyID4+IDEyKTsKKwkvKiBv YnNvbGV0ZSBvbiBHVjEwMCBhbmQgbGF0ZXIgKi8KKwlpZiAoZmlmby0+dXNlci5iYXIpIHsKKwkJ dTMyIHZhbHVlID0gMHgxMDAwMDAwMCB8IGZpZm8tPnVzZXIuYmFyLT5hZGRyID4+IDEyOworCisJ CW52a21fd3IzMihkZXZpY2UsIDB4MDAyMjU0LCB2YWx1ZSk7CisJfQogCiAJaWYgKGZpZm8tPmZ1 bmMtPnBiZG1hLT5pbml0X3RpbWVvdXQpCiAJCWZpZm8tPmZ1bmMtPnBiZG1hLT5pbml0X3RpbWVv dXQoZmlmbyk7CkBAIC0xMDE0LDcgKzEwMjUsOSBAQCBnazEwNF9maWZvX2R0b3Ioc3RydWN0IG52 a21fZmlmbyAqYmFzZSkKIAlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGZpZm8tPmJhc2Uu ZW5naW5lLnN1YmRldi5kZXZpY2U7CiAJaW50IGk7CiAKLQludmttX3ZtbV9wdXQobnZrbV9iYXJf YmFyMV92bW0oZGV2aWNlKSwgJmZpZm8tPnVzZXIuYmFyKTsKKwlpZiAoZmlmby0+dXNlci5iYXIp CisJCW52a21fdm1tX3B1dChudmttX2Jhcl9iYXIxX3ZtbShkZXZpY2UpLCAmZmlmby0+dXNlci5i YXIpOworCiAJbnZrbV9tZW1vcnlfdW5yZWYoJmZpZm8tPnVzZXIubWVtKTsKIAogCWZvciAoaSA9 IDA7IGkgPCBmaWZvLT5ydW5saXN0X25yOyBpKyspIHsKLS0gCjIuMjMuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QK Tm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1 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=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 534EAFA372C for ; Fri, 8 Nov 2019 16:02:20 +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 313CA20679 for ; Fri, 8 Nov 2019 16:02:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 313CA20679 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 46F666F9E2; Fri, 8 Nov 2019 16:02:19 +0000 (UTC) Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id E5C7D6F9E2; Fri, 8 Nov 2019 16:02:17 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id a11so7639232wra.6; Fri, 08 Nov 2019 08:02:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=tRe8BuIhTzjKi6rU5sy2ha3fVp/1Le6t14PKl9vP2FE=; b=K824VAjxGVoboscy70U5FBTXqgphAcnheROUIQ3SMcNlKt8dcJuV16sCe17JNv49to 53NDzgZaYwUCKBTZdxuZ9cBKbAVOPR5R/XXqzaSx9bBJCynTLJdJptB4jmnraqKPJxFH ZlO8F5QJ0rWVb9A/DggSAe8/V84XTRSjGCGPUEqYL2EOg9D5HmRT+UfbM+2PyjPyYBTo bUFaS30xiVqfoLdBFuELFSxH6J5kDa9ctoSHzTcG0TA6Qyr2R1WZD7FKOahL1J5dXx+T /QL30ijuWWhPFZ1VmaD+8LWGVhy2ceqdKvcFjdl28j62ER2CpMXEsTkz6Jn/7srX/0k6 4hwQ== X-Gm-Message-State: APjAAAVKymPYJlkSyOfq7WeWrwxRVia2OwB7yyJx5or7WALQXOEHmY+U 1ooWNA1bYuyWQ/RhwK9/UiQ= X-Google-Smtp-Source: APXvYqwuX9MKBWfeB/yZc92Q8TUMpIfp0QZbcnUcxcv8a18EujaPwGBELnShZ20eW95ny3iEaJWTwA== X-Received: by 2002:a5d:6585:: with SMTP id q5mr8749895wru.158.1573228935550; Fri, 08 Nov 2019 08:02:15 -0800 (PST) Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206]) by smtp.gmail.com with ESMTPSA id u4sm6150887wrq.22.2019.11.08.08.02.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Nov 2019 08:02:14 -0800 (PST) From: Thierry Reding To: Ben Skeggs Subject: [PATCH] RFC: drm/nouveau: Make BAR1 support optional Date: Fri, 8 Nov 2019 17:02:07 +0100 Message-Id: <20191108160207.3251019-1-thierry.reding@gmail.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=tRe8BuIhTzjKi6rU5sy2ha3fVp/1Le6t14PKl9vP2FE=; b=Y7hCn2AWKsUEAGkNCVeJRTm8AnsRc7rJmoedGX5KyZ62xIxuZbh9I8GXqWaeuY5U8D JI+OuWY4FPRo+rajhXSYpwsHHXAo4BN11QkVaZTM0iz9a/k22+FQYENj52zVJdybQAEn 2fSnGve1P1to8L+p8e0Jzc2o6AiqJ9AUai87Om7QC/yxTme4LASCFr6RA6ZzC9L3JgCE 9VC0eN3BQ8PsbuoUBBRPTNeZJNXQt3hfELTlFN7/yvCV5mSthFbfq0bZyNH+L1C2ma8e pAmKFULsoYuCeMGazlNatH6GANsil+wdlY/LAutJwpmBlrKzU+rknkTFGbGm9LINKtSm NkYQ== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191108160207.5EADTvRuuxaFyAav1XVdUxdeOh8z-oSg7b6i0I5uJ4M@z> RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBwdXJwb3NlIG9m IEJBUjEgaXMgcHJpbWFyaWx5IHRvIG1ha2UgbWVtb3J5IGFjY2Vzc2VzIGNvaGVyZW50LgpIb3dl dmVyLCBzb21lIEdQVXMgZG8gbm90IGhhdmUgQkFSMSBmdW5jdGlvbmFsaXR5LiBGb3IgZXhhbXBs ZSwgdGhlCkdWMTFCIGZvdW5kIG9uIHRoZSBYYXZpZXIgU29DIGlzIERNQSBjb2hlcmVudCBhbmQg dGhlcmVmb3JlIGRvZXNuJ3QKbmVlZCBCQVIxLgoKSW1wbGVtZW50IGEgdmFyaWFudCBvZiBGSUZP IGNoYW5uZWxzIHRoYXQgd29yayB3aXRob3V0IGEgbWFwcGluZyBvZgppbnN0YW5jZSBtZW1vcnkg dGhyb3VnaCBCQVIxLgoKWFhYIGVuc3VyZSBtZW1vcnkgYmFycmllcnMgYXJlIGluIHBsYWNlIGZv ciB3cml0ZXMKClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5j b20+Ci0tLQpIaSBCZW4sCgpJJ20gc2VuZGluZyB0aGlzIGEgYml0IG91dCBvZiBjb250ZXh0IChp dCdzIHBhcnQgb2YgdGhlIGxhcmdlciBzZXJpZXMgdG8KZW5hYmxlIGJhc2ljIEdWMTFCIHN1cHBv cnQpIGJlY2F1c2UgSSB3YW50ZWQgdG8gZ2V0IHNvbWUgZWFybHkgZmVlZGJhY2sKZnJvbSB5b3Ug b24gdGhpcy4KCkZvciBhIGJpdCBvZiBiYWNrZ3JvdW5kOiBHVjExQiBhcyBpdCB0dXJucyBvdXQg ZG9lc24ndCByZWFsbHkgaGF2ZSBCQVIxCmFueW1vcmUuIFRoZSBTb0MgaGFzIGEgY29oZXJlbmN5 IGZhYnJpYyB3aGljaCBtZWFucyB0aGF0IGJhc2ljYWxseSB0aGUKR1BVJ3Mgc3lzdGVtIG1lbW9y eSBhY2Nlc3NlcyBhcmUgYWxyZWFkeSBjb2hlcmVudCBhbmQgaGVuY2Ugd2Ugbm8gbG9uZ2VyCm5l ZWQgdG8gZ28gdmlhIEJBUjEgdG8gZW5zdXJlIHRoYXQuIEZ1bmN0aW9uYWxseSB0aGUgc2FtZSBj YW4gYmUgZG9uZSBieQpqdXN0IHdyaXRpbmcgdG8gdGhlIG1lbW9yeSB2aWEgdGhlIENQVSdzIHZp cnR1YWwgbWFwcGluZy4KClNvIHRoaXMgcGF0Y2ggaW1wbGVtZW50IGJhc2ljYWxseSBhIHNlY29u ZCB2YXJpYW50IG9mIHRoZSBGSUZPIGNoYW5uZWwKd2hpY2gsIGluc3RlYWQgb2YgdGFraW5nIGEg cGh5c2ljYWwgYWRkcmVzcyBhbmQgdGhlbiBpb3JlbWFwcGluZyB0aGF0LAp0YWtlcyBhIHN0cnVj dCBudmttX21lbW9yeSBvYmplY3QuIFRoaXMgc2VlbXMgdG8gd29yaywgdGhvdWdoIHNpbmNlIEkn bQpub3QgcmVhbGx5IGRvaW5nIG11Y2ggeWV0IChmaXJtd2FyZSBsb2FkaW5nIGZhaWxzLCBldGMu KSBJIHdvdWxkbid0IGNhbGwKdGhpcyAiZG9uZSIganVzdCB5ZXQuCgpJbiBmYWN0IHRoZXJlIGFy ZSBhIGZldyB0aGluZ3MgdGhhdCBJJ20gbm90IGhhcHB5IGFib3V0LiBGb3IgZXhhbXBsZSBJCnRo aW5rIHdlJ2xsIGV2ZW50dWFsbHkgbmVlZCB0byBoYXZlIGJhcnJpZXJzIHRvIGVuc3VyZSB0aGF0 IHRoZSBDUFUKd3JpdGUgYnVmZmVycyBhcmUgZmx1c2hlZCwgZXRjLiBJdCBhbHNvIHNlZW1zIGxp a2UgbW9zdCB1c2VycyBvZiB0aGUKRklGTyBjaGFubmVsIG9iamVjdCB3aWxsIGp1c3QgZ28gYW5k IG1hcCBpdHMgYnVmZmVyIG9uY2UgYW5kIHRoZW4gb25seQphY2Nlc3MgaXQgdmlhIHRoZSB2aXJ0 dWFsIG1hcHBpbmcgb25seSwgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZQotPnJkMzIoKS8tPndy MzIoKSBjYWxsYmFja3Mgbm9yIHVubWFwcGluZyB2aWEgLT51bm1hcCgpLiBUaGF0IG1lYW5zIHdl CmVmZmVjdGl2ZWx5IGRvbid0IGhhdmUgYSBnb29kIHBvaW50IHdoZXJlIHdlIGNvdWxkIGVtaXQg dGhlIG1lbW9yeQpiYXJyaWVycy4KCkkgc2VlIHR3byBwb3NzaWJpbGl0aWVzIGhlcmU6IDEpIG1h a2UgYWxsIGFjY2Vzc2VzIGdvIHRocm91Z2ggdGhlCmFjY2Vzc29ycyBvciAyKSBndWFyZCBlYWNo IHNlcmllcyBvZiBhY2Nlc3NlcyB3aXRoIGEgcGFpciBvZiBudmttX21hcCgpCmFuZCBudmttX2Rv bmUoKSBjYWxscy4gQm90aCBvZiB0aG9zZSB3b3VsZCBtZWFuIHRoYXQgYWxsIGNvZGUgcGF0aHMg bmVlZAp0byBiZSBjYXJlZnVsbHkgYXVkaXRlZC4KCk9uZSBvdGhlciB0aGluZyBJJ20gd29uZGVy aW5nIGlzIGlmIGl0J3Mgb2theSB0byBwdXQgYWxsIG9mIHRoaXMgaW50bwp0aGUgZ2sxMDRfZmlm byBpbXBsZW1lbnRhdGlvbi4gSSB0aGluayB0aGUgcmVzdWx0IG9mIHBhcmFtZXRlcml6aW5nIG9u CmRldmljZS0+YmFyIGlzIHByZXR0eSBuZWF0LiBBbHNvLCBpdCBzZWVtcyBsaWtlIG1vc3Qgb2Yg dGhlIHJlc3Qgb2YgdGhlCmNvZGUgd291bGQgaGF2ZSB0byBiZSBkdXBsaWNhdGVkLCBvciBhIGxv dCBvZiB0aGUgZ2sxMDRfKigpIGZ1bmN0aW9uCmV4cG9ydGVkIHRvIGEgbmV3IGltcGxlbWVudGF0 aW9uLiBTbyBJJ20gbm90IHN1cmUgdGhhdCBpdCdzIHJlYWxseSB3b3J0aAppdC4KClRoaWVycnkK CiAuLi4vZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmggICAgfCAgIDcgKy0K IC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmMgICB8IDE1NyArKysr KysrKysrKysrKysrLS0KIC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFu LmggICB8ICAgNiArCiAuLi4vZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQu YyAgfCAgMjkgKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAxODAgaW5zZXJ0aW9ucygrKSwgMTkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9u dmttL2VuZ2luZS9maWZvLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20v ZW5naW5lL2ZpZm8uaAppbmRleCA0YmQ2ZTFlN2M0MTMuLmMwZmI1NDVlZmIyYiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL2VuZ2luZS9maWZvLmgKQEAg LTI1LDcgKzI1LDEyIEBAIHN0cnVjdCBudmttX2ZpZm9fY2hhbiB7CiAJc3RydWN0IG52a21fZ3B1 b2JqICppbnN0OwogCXN0cnVjdCBudmttX2dwdW9iaiAqcHVzaDsKIAlzdHJ1Y3QgbnZrbV92bW0g KnZtbTsKLQl2b2lkIF9faW9tZW0gKnVzZXI7CisKKwl1bmlvbiB7CisJCXN0cnVjdCBudmttX21l bW9yeSAqbWVtOworCQl2b2lkIF9faW9tZW0gKnVzZXI7CisJfTsKKwogCXU2NCBhZGRyOwogCXUz MiBzaXplOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2lu ZS9maWZvL2NoYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8v Y2hhbi5jCmluZGV4IGQ4MzQ4NTM4NTkzNC4uZjQ3YmM5NmJiYjZkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2NoYW4uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9udmttL2VuZ2luZS9maWZvL2NoYW4uYwpAQCAtMzEwLDcgKzMxMCw3 IEBAIG52a21fZmlmb19jaGFuX2luaXQoc3RydWN0IG52a21fb2JqZWN0ICpvYmplY3QpCiB9CiAK IHN0YXRpYyB2b2lkICoKLW52a21fZmlmb19jaGFuX2R0b3Ioc3RydWN0IG52a21fb2JqZWN0ICpv YmplY3QpCitfX252a21fZmlmb19jaGFuX2R0b3Ioc3RydWN0IG52a21fb2JqZWN0ICpvYmplY3Qp CiB7CiAJc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0 KTsKIAlzdHJ1Y3QgbnZrbV9maWZvICpmaWZvID0gY2hhbi0+ZmlmbzsKQEAgLTMyNCw5ICszMjQs NiBAQCBudmttX2ZpZm9fY2hhbl9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0KQogCX0K IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmaWZvLT5sb2NrLCBmbGFncyk7CiAKLQlpZiAoY2hh bi0+dXNlcikKLQkJaW91bm1hcChjaGFuLT51c2VyKTsKLQogCWlmIChjaGFuLT52bW0pIHsKIAkJ bnZrbV92bW1fcGFydChjaGFuLT52bW0sIGNoYW4tPmluc3QtPm1lbW9yeSk7CiAJCW52a21fdm1t X3VucmVmKCZjaGFuLT52bW0pOwpAQCAtMzM3LDYgKzMzNCwxNyBAQCBudmttX2ZpZm9fY2hhbl9k dG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0KQogCXJldHVybiBkYXRhOwogfQogCitzdGF0 aWMgdm9pZCAqCitudmttX2ZpZm9fY2hhbl9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2JqZWN0 KQoreworCXN0cnVjdCBudmttX2ZpZm9fY2hhbiAqY2hhbiA9IG52a21fZmlmb19jaGFuKG9iamVj dCk7CisKKwlpZiAoY2hhbi0+dXNlcikKKwkJaW91bm1hcChjaGFuLT51c2VyKTsKKworCXJldHVy biBfX252a21fZmlmb19jaGFuX2R0b3Iob2JqZWN0KTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVj dCBudmttX29iamVjdF9mdW5jCiBudmttX2ZpZm9fY2hhbl9mdW5jID0gewogCS5kdG9yID0gbnZr bV9maWZvX2NoYW5fZHRvciwKQEAgLTM0OSwxMiArMzU3LDk4IEBAIG52a21fZmlmb19jaGFuX2Z1 bmMgPSB7CiAJLnNjbGFzcyA9IG52a21fZmlmb19jaGFuX2NoaWxkX2dldCwKIH07CiAKK3N0YXRp YyB2b2lkICoKK252a21fZmlmb19jaGFuX21lbV9kdG9yKHN0cnVjdCBudmttX29iamVjdCAqb2Jq ZWN0KQoreworCXJldHVybiBfX252a21fZmlmb19jaGFuX2R0b3Iob2JqZWN0KTsKK30KKworc3Rh dGljIGludAorbnZrbV9maWZvX2NoYW5fbWVtX21hcChzdHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVj dCwgdm9pZCAqYXJndiwgdTMyIGFyZ2MsCisJCSAgICAgICBlbnVtIG52a21fb2JqZWN0X21hcCAq dHlwZSwgdTY0ICphZGRyLCB1NjQgKnNpemUpCit7CisJc3RydWN0IG52a21fZmlmb19jaGFuICpj aGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0KTsKKworCXByX2luZm8oIj4gJXMob2JqZWN0PSVw eCwgYXJndj0lcHgsIGFyZ2M9JXUsIHR5cGU9JXB4LCBhZGRyPSVweCwgc2l6ZT0lcHgpXG4iLCBf X2Z1bmNfXywgb2JqZWN0LCBhcmd2LCBhcmdjLCB0eXBlLCBhZGRyLCBzaXplKTsKKworCSp0eXBl ID0gTlZLTV9PQkpFQ1RfTUFQX1ZBOworCSphZGRyID0gKHU2NCludmttX2ttYXAoY2hhbi0+bWVt KTsKKwkqc2l6ZSA9IGNoYW4tPnNpemU7CisKKwlwcl9pbmZvKCIgIHR5cGU6ICVkXG4iLCAqdHlw ZSk7CisJcHJfaW5mbygiICBhZGRyOiAlMDE2bGx4XG4iLCAqYWRkcik7CisJcHJfaW5mbygiICBz aXplOiAlMDE2bGx4XG4iLCAqc2l6ZSk7CisJcHJfaW5mbygiPCAlcygpXG4iLCBfX2Z1bmNfXyk7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK252a21fZmlmb19jaGFuX21lbV91bm1hcChz dHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVjdCkKK3sKKwlzdHJ1Y3QgbnZrbV9maWZvX2NoYW4gKmNo YW4gPSBudmttX2ZpZm9fY2hhbihvYmplY3QpOworCisJcHJfaW5mbygiPiAlcyhvYmplY3Q9JXB4 KVxuIiwgX19mdW5jX18sIG9iamVjdCk7CisKKwludmttX2RvbmUoY2hhbi0+bWVtKTsKKworCXBy X2luZm8oIjwgJXMoKVxuIiwgX19mdW5jX18pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 CitudmttX2ZpZm9fY2hhbl9tZW1fcmQzMihzdHJ1Y3QgbnZrbV9vYmplY3QgKm9iamVjdCwgdTY0 IGFkZHIsIHUzMiAqZGF0YSkKK3sKKwlzdHJ1Y3QgbnZrbV9maWZvX2NoYW4gKmNoYW4gPSBudmtt X2ZpZm9fY2hhbihvYmplY3QpOworCisJcHJfaW5mbygiPiAlcyhvYmplY3Q9JXB4LCBhZGRyPSUw MTZsbHgsIGRhdGE9JXB4KVxuIiwgX19mdW5jX18sIG9iamVjdCwgYWRkciwgZGF0YSk7CisKKwlp ZiAodW5saWtlbHkoYWRkciArIDQgPiBjaGFuLT5zaXplKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwkqZGF0YSA9IG52a21fcm8zMihjaGFuLT5tZW0sIGFkZHIpOworCisJcHJfaW5mbygiICBkYXRh OiAlMDh4XG4iLCAqZGF0YSk7CisJcHJfaW5mbygiPCAlcygpXG4iLCBfX2Z1bmNfXyk7CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK252a21fZmlmb19jaGFuX21lbV93cjMyKHN0cnVjdCBu dmttX29iamVjdCAqb2JqZWN0LCB1NjQgYWRkciwgdTMyIGRhdGEpCit7CisJc3RydWN0IG52a21f Zmlmb19jaGFuICpjaGFuID0gbnZrbV9maWZvX2NoYW4ob2JqZWN0KTsKKworCXByX2luZm8oIj4g JXMob2JqZWN0PSVweCwgYWRkcj0lMDE2bGx4LCBkYXRhPSUwOHgpXG4iLCBfX2Z1bmNfXywgb2Jq ZWN0LCBhZGRyLCBkYXRhKTsKKworCWlmICh1bmxpa2VseShhZGRyICsgNCA+IGNoYW4tPnNpemUp KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW52a21fd28zMihjaGFuLT5tZW0sIGFkZHIsIGRhdGEp OworCisJLyogWFhYIGFkZCBiYXJyaWVyICovCisKKwlwcl9pbmZvKCI8ICVzKClcbiIsIF9fZnVu Y19fKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBudmttX29iamVjdF9m dW5jCitudmttX2ZpZm9fY2hhbl9tZW1fZnVuYyA9IHsKKwkuZHRvciA9IG52a21fZmlmb19jaGFu X21lbV9kdG9yLAorCS5pbml0ID0gbnZrbV9maWZvX2NoYW5faW5pdCwKKwkuZmluaSA9IG52a21f Zmlmb19jaGFuX2ZpbmksCisJLm50ZnkgPSBudmttX2ZpZm9fY2hhbl9udGZ5LAorCS5tYXAgPSBu dmttX2ZpZm9fY2hhbl9tZW1fbWFwLAorCS51bm1hcCA9IG52a21fZmlmb19jaGFuX21lbV91bm1h cCwKKwkucmQzMiA9IG52a21fZmlmb19jaGFuX21lbV9yZDMyLAorCS53cjMyID0gbnZrbV9maWZv X2NoYW5fbWVtX3dyMzIsCisJLnNjbGFzcyA9IG52a21fZmlmb19jaGFuX2NoaWxkX2dldCwKK307 CisKIGludAotbnZrbV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5f ZnVuYyAqZnVuYywKLQkJICAgIHN0cnVjdCBudmttX2ZpZm8gKmZpZm8sIHUzMiBzaXplLCB1MzIg YWxpZ24sIGJvb2wgemVybywKLQkJICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMs IGludCBiYXIsIHUzMiBiYXNlLAotCQkgICAgdTMyIHVzZXIsIGNvbnN0IHN0cnVjdCBudmttX29j bGFzcyAqb2NsYXNzLAotCQkgICAgc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuKQorX19udmtt X2ZpZm9fY2hhbl9jdG9yKGNvbnN0IHN0cnVjdCBudmttX2ZpZm9fY2hhbl9mdW5jICpmdW5jLAor CQkgICAgICBzdHJ1Y3QgbnZrbV9maWZvICpmaWZvLCB1MzIgc2l6ZSwgdTMyIGFsaWduLCBib29s IHplcm8sCisJCSAgICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMsCisJCSAgICAg IGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAorCQkgICAgICBzdHJ1Y3QgbnZrbV9m aWZvX2NoYW4gKmNoYW4pCiB7CiAJc3RydWN0IG52a21fY2xpZW50ICpjbGllbnQgPSBvY2xhc3Mt PmNsaWVudDsKIAlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGZpZm8tPmVuZ2luZS5zdWJk ZXYuZGV2aWNlOwpAQCAtMzYyLDcgKzQ1Niw2IEBAIG52a21fZmlmb19jaGFuX2N0b3IoY29uc3Qg c3RydWN0IG52a21fZmlmb19jaGFuX2Z1bmMgKmZ1bmMsCiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAlpbnQgcmV0OwogCi0JbnZrbV9vYmplY3RfY3RvcigmbnZrbV9maWZvX2NoYW5fZnVuYywgb2Ns YXNzLCAmY2hhbi0+b2JqZWN0KTsKIAljaGFuLT5mdW5jID0gZnVuYzsKIAljaGFuLT5maWZvID0g ZmlmbzsKIAljaGFuLT5lbmdpbmVzID0gZW5naW5lczsKQEAgLTQxMiw2ICs1MDUsMjYgQEAgbnZr bV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywK IAlfX3NldF9iaXQoY2hhbi0+Y2hpZCwgZmlmby0+bWFzayk7CiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZmlmby0+bG9jaywgZmxhZ3MpOwogCisJcmV0dXJuIDA7Cit9CisKK2ludAorbnZrbV9m aWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywKKwkJ ICAgIHN0cnVjdCBudmttX2ZpZm8gKmZpZm8sIHUzMiBzaXplLCB1MzIgYWxpZ24sIGJvb2wgemVy bywKKwkJICAgIHU2NCBodm1tLCB1NjQgcHVzaCwgdTY0IGVuZ2luZXMsIGludCBiYXIsIHUzMiBi YXNlLAorCQkgICAgdTMyIHVzZXIsIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAor CQkgICAgc3RydWN0IG52a21fZmlmb19jaGFuICpjaGFuKQoreworCXN0cnVjdCBudmttX2Rldmlj ZSAqZGV2aWNlID0gZmlmby0+ZW5naW5lLnN1YmRldi5kZXZpY2U7CisJaW50IHJldDsKKworCW52 a21fb2JqZWN0X2N0b3IoJm52a21fZmlmb19jaGFuX2Z1bmMsIG9jbGFzcywgJmNoYW4tPm9iamVj dCk7CisKKwlyZXQgPSBfX252a21fZmlmb19jaGFuX2N0b3IoZnVuYywgZmlmbywgc2l6ZSwgYWxp Z24sIHplcm8sIGh2bW0sIHB1c2gsCisJCQkJICAgIGVuZ2luZXMsIG9jbGFzcywgY2hhbik7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCS8qIGRldGVybWluZSBhZGRyZXNzIG9mIHRoaXMg Y2hhbm5lbCdzIHVzZXIgcmVnaXN0ZXJzICovCiAJY2hhbi0+YWRkciA9IGRldmljZS0+ZnVuYy0+ cmVzb3VyY2VfYWRkcihkZXZpY2UsIGJhcikgKwogCQkgICAgIGJhc2UgKyB1c2VyICogY2hhbi0+ Y2hpZDsKQEAgLTQyMCwzICs1MzMsMjcgQEAgbnZrbV9maWZvX2NoYW5fY3Rvcihjb25zdCBzdHJ1 Y3QgbnZrbV9maWZvX2NoYW5fZnVuYyAqZnVuYywKIAludmttX2ZpZm9fY2V2ZW50KGZpZm8pOwog CXJldHVybiAwOwogfQorCitpbnQgbnZrbV9maWZvX2NoYW5fbWVtX2N0b3IoY29uc3Qgc3RydWN0 IG52a21fZmlmb19jaGFuX2Z1bmMgKmZ1bmMsCisJCQkgICAgc3RydWN0IG52a21fZmlmbyAqZmlm bywgdTMyIHNpemUsIHUzMiBhbGlnbiwKKwkJCSAgICBib29sIHplcm8sIHU2NCBodm1tLCB1NjQg cHVzaCwgdTY0IGVuZ2luZXMsCisJCQkgICAgc3RydWN0IG52a21fbWVtb3J5ICptZW0sIHUzMiB1 c2VyLAorCQkJICAgIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqb2NsYXNzLAorCQkJICAgIHN0 cnVjdCBudmttX2ZpZm9fY2hhbiAqY2hhbikKK3sKKwlpbnQgcmV0OworCisJbnZrbV9vYmplY3Rf Y3RvcigmbnZrbV9maWZvX2NoYW5fbWVtX2Z1bmMsIG9jbGFzcywgJmNoYW4tPm9iamVjdCk7CisK KwlyZXQgPSBfX252a21fZmlmb19jaGFuX2N0b3IoZnVuYywgZmlmbywgc2l6ZSwgYWxpZ24sIHpl cm8sIGh2bW0sIHB1c2gsCisJCQkJICAgIGVuZ2luZXMsIG9jbGFzcywgY2hhbik7CisJaWYgKHJl dCkKKwkJcmV0dXJuIHJldDsKKworCWNoYW4tPm1lbSA9IG1lbTsKKwljaGFuLT5hZGRyID0gdXNl ciAqIGNoYW4tPmNoaWQ7CisJY2hhbi0+c2l6ZSA9IHVzZXI7CisKKwludmttX2ZpZm9fY2V2ZW50 KGZpZm8pOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmtt L2VuZ2luZS9maWZvL2NoYW4uaAppbmRleCAxNzdlMTA1NjI2MDAuLjcxZjMyYjFlYmJhMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9jaGFuLmgKQEAg LTI0LDYgKzI0LDEyIEBAIGludCBudmttX2ZpZm9fY2hhbl9jdG9yKGNvbnN0IHN0cnVjdCBudmtt X2ZpZm9fY2hhbl9mdW5jICosIHN0cnVjdCBudmttX2ZpZm8gKiwKIAkJCXUzMiBzaXplLCB1MzIg YWxpZ24sIGJvb2wgemVybywgdTY0IHZtLCB1NjQgcHVzaCwKIAkJCXU2NCBlbmdpbmVzLCBpbnQg YmFyLCB1MzIgYmFzZSwgdTMyIHVzZXIsCiAJCQljb25zdCBzdHJ1Y3QgbnZrbV9vY2xhc3MgKiwg c3RydWN0IG52a21fZmlmb19jaGFuICopOworaW50IG52a21fZmlmb19jaGFuX21lbV9jdG9yKGNv bnN0IHN0cnVjdCBudmttX2ZpZm9fY2hhbl9mdW5jICosCisJCQkgICAgc3RydWN0IG52a21fZmlm byAqLCB1MzIgc2l6ZSwgdTMyIGFsaWduLAorCQkJICAgIGJvb2wgemVybywgdTY0IHZtLCB1NjQg cHVzaCwgdTY0IGVuZ2luZXMsCisJCQkgICAgc3RydWN0IG52a21fbWVtb3J5ICptZW0sIHUzMiB1 c2VyLAorCQkJICAgIGNvbnN0IHN0cnVjdCBudmttX29jbGFzcyAqLAorCQkJICAgIHN0cnVjdCBu dmttX2ZpZm9fY2hhbiAqKTsKIAogc3RydWN0IG52a21fZmlmb19jaGFuX29jbGFzcyB7CiAJaW50 ICgqY3Rvcikoc3RydWN0IG52a21fZmlmbyAqLCBjb25zdCBzdHJ1Y3QgbnZrbV9vY2xhc3MgKiwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sx MDQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuYwpp bmRleCA4MWNiZTFjYzQ4MDQuLjU0MDRhMTgyZWIwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnZrbS9lbmdpbmUvZmlmby9nazEwNC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252a20vZW5naW5lL2ZpZm8vZ2sxMDQuYwpAQCAtOTA2LDcgKzkwNiw2IEBAIGdr MTA0X2ZpZm9fb25laW5pdChzdHJ1Y3QgbnZrbV9maWZvICpiYXNlKQogCXN0cnVjdCBnazEwNF9m aWZvICpmaWZvID0gZ2sxMDRfZmlmbyhiYXNlKTsKIAlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRl diA9ICZmaWZvLT5iYXNlLmVuZ2luZS5zdWJkZXY7CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZp Y2UgPSBzdWJkZXYtPmRldmljZTsKLQlzdHJ1Y3QgbnZrbV92bW0gKmJhciA9IG52a21fYmFyX2Jh cjFfdm1tKGRldmljZSk7CiAJaW50IGVuZ24sIHJ1bmwsIHBiaWQsIHJldCwgaSwgajsKIAllbnVt IG52a21fZGV2aWR4IGVuZ2lkeDsKIAl1MzIgKm1hcDsKQEAgLTk2NywxMiArOTY2LDE5IEBAIGdr MTA0X2ZpZm9fb25laW5pdChzdHJ1Y3QgbnZrbV9maWZvICpiYXNlKQogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlyZXQgPSBudmttX3ZtbV9nZXQoYmFyLCAxMiwgbnZrbV9tZW1vcnlfc2l6 ZShmaWZvLT51c2VyLm1lbSksCi0JCQkgICAmZmlmby0+dXNlci5iYXIpOwotCWlmIChyZXQpCi0J CXJldHVybiByZXQ7CisJaWYgKGRldmljZS0+YmFyKSB7CisJCXN0cnVjdCBudmttX3ZtbSAqYmFy ID0gbnZrbV9iYXJfYmFyMV92bW0oZGV2aWNlKTsKKworCQlyZXQgPSBudmttX3ZtbV9nZXQoYmFy LCAxMiwgbnZrbV9tZW1vcnlfc2l6ZShmaWZvLT51c2VyLm1lbSksCisJCQkJICAgJmZpZm8tPnVz ZXIuYmFyKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIG52a21fbWVt b3J5X21hcChmaWZvLT51c2VyLm1lbSwgMCwgYmFyLCBmaWZvLT51c2VyLmJhciwKKwkJCQkgICAg ICAgTlVMTCwgMCk7CisJfQogCi0JcmV0dXJuIG52a21fbWVtb3J5X21hcChmaWZvLT51c2VyLm1l bSwgMCwgYmFyLCBmaWZvLT51c2VyLmJhciwgTlVMTCwgMCk7CisJcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyB2b2lkCkBAIC05OTgsNyArMTAwNCwxMiBAQCBnazEwNF9maWZvX2luaXQoc3RydWN0IG52 a21fZmlmbyAqYmFzZSkKIAkJbnZrbV93cjMyKGRldmljZSwgMHgwNDAxNGMgKyAoaSAqIDB4MjAw MCksIDB4ZmZmZmZmZmYpOyAvKiBJTlRSRU4gKi8KIAl9CiAKLQludmttX3dyMzIoZGV2aWNlLCAw eDAwMjI1NCwgMHgxMDAwMDAwMCB8IGZpZm8tPnVzZXIuYmFyLT5hZGRyID4+IDEyKTsKKwkvKiBv YnNvbGV0ZSBvbiBHVjEwMCBhbmQgbGF0ZXIgKi8KKwlpZiAoZmlmby0+dXNlci5iYXIpIHsKKwkJ dTMyIHZhbHVlID0gMHgxMDAwMDAwMCB8IGZpZm8tPnVzZXIuYmFyLT5hZGRyID4+IDEyOworCisJ CW52a21fd3IzMihkZXZpY2UsIDB4MDAyMjU0LCB2YWx1ZSk7CisJfQogCiAJaWYgKGZpZm8tPmZ1 bmMtPnBiZG1hLT5pbml0X3RpbWVvdXQpCiAJCWZpZm8tPmZ1bmMtPnBiZG1hLT5pbml0X3RpbWVv dXQoZmlmbyk7CkBAIC0xMDE0LDcgKzEwMjUsOSBAQCBnazEwNF9maWZvX2R0b3Ioc3RydWN0IG52 a21fZmlmbyAqYmFzZSkKIAlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IGZpZm8tPmJhc2Uu ZW5naW5lLnN1YmRldi5kZXZpY2U7CiAJaW50IGk7CiAKLQludmttX3ZtbV9wdXQobnZrbV9iYXJf YmFyMV92bW0oZGV2aWNlKSwgJmZpZm8tPnVzZXIuYmFyKTsKKwlpZiAoZmlmby0+dXNlci5iYXIp CisJCW52a21fdm1tX3B1dChudmttX2Jhcl9iYXIxX3ZtbShkZXZpY2UpLCAmZmlmby0+dXNlci5i YXIpOworCiAJbnZrbV9tZW1vcnlfdW5yZWYoJmZpZm8tPnVzZXIubWVtKTsKIAogCWZvciAoaSA9 IDA7IGkgPCBmaWZvLT5ydW5saXN0X25yOyBpKyspIHsKLS0gCjIuMjMuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs