From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno =?UTF-8?B?UHLDqW1vbnQ=?= Subject: [PATCH 2/2] x86, ia64: Merge common vga fixup code Date: Mon, 2 Jun 2014 20:19:13 +0200 Message-ID: <20140602201913.5ed28c1e@neptune.home> References: <20140514224339.7f8be3a9@neptune.home> <20140527234255.GJ11907@google.com> <20140602201650.35f0e936@neptune.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from hygieia.santi-shop.eu (hygieia.santi-shop.eu [78.46.175.2]) by gabe.freedesktop.org (Postfix) with ESMTP id 1B6476E62C for ; Mon, 2 Jun 2014 11:20:16 -0700 (PDT) In-Reply-To: <20140602201650.35f0e936@neptune.home> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Bjorn Helgaas Cc: Linux PCI , DRI mailing list List-Id: dri-devel@lists.freedesktop.org VGhlIGZpeHVwIGNvZGUgZm9yIFBDSSBWR0EgZGV2aWNlcyBpbiBpYTY0IGFuZCB4ODYgaXMgbW9z dGx5IGlkZW50aWNhbC4KCk1lcmdlIGl0IGludG8gYSBzaW5nbGUgZnVuY3Rpb24gY2FsbGVkIGZy b20gYm90aCBzaWRlcy4KClRoZSBjb21tb24gY29kZSBpcyBtb3ZlZCB0byB2Z2FhcmIuYyB3aGlj aCBtYWtlcyBpbiBkZXBlbmRhbnQgb24KQ09ORklHX1ZHQV9BUkIuCgpTaWduZWQtb2ZmLWJ5OiBC cnVubyBQcsOpbW9udCA8Ym9uYm9uc0BsaW51eC12c2VydmVyLm9yZz4KLS0tCiBhcmNoL2lhNjQv cGNpL2ZpeHVwLmMgICAgfCA3NyArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGFyY2gveDg2L3BjaS9maXh1cC5jICAgICB8IDc2ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS92Z2EvdmdhYXJi LmMgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBp bmNsdWRlL2xpbnV4L3ZnYWFyYi5oICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMTQ5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2FyY2gvaWE2NC9wY2kvZml4dXAuYyBiL2FyY2gvaWE2NC9wY2kvZml4dXAuYwppbmRl eCA5ZWQ1YmVmLi41ZGYyMmY5IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvcGNpL2ZpeHVwLmMKKysr IGIvYXJjaC9pYTY0L3BjaS9maXh1cC5jCkBAIC05LDg1ICs5LDE0IEBACiAKICNpbmNsdWRlIDxh c20vbWFjaHZlYy5oPgogCi0vKgotICogRml4dXAgdG8gbWFyayBib290IEJJT1MgdmlkZW8gc2Vs ZWN0ZWQgYnkgQklPUyBiZWZvcmUgaXQgY2hhbmdlcwotICoKLSAqIEZyb20gaW5mb3JtYXRpb24g cHJvdmlkZWQgYnkgIkpvbiBTbWlybCIgPGpvbnNtaXJsQGdtYWlsLmNvbT4KLSAqCi0gKiBUaGUg c3RhbmRhcmQgYm9vdCBST00gc2VxdWVuY2UgZm9yIGFuIHg4NiBtYWNoaW5lIHVzZXMgdGhlIEJJ T1MKLSAqIHRvIHNlbGVjdCBhbiBpbml0aWFsIHZpZGVvIGNhcmQgZm9yIGJvb3QgZGlzcGxheS4g VGhpcyBib290IHZpZGVvCi0gKiBjYXJkIHdpbGwgaGF2ZSBpdCdzIEJJT1MgY29waWVkIHRvIEMw MDAwIGluIHN5c3RlbSBSQU0uCi0gKiBJT1JFU09VUkNFX1JPTV9TSEFET1cgaXMgdXNlZCB0byBh c3NvY2lhdGUgdGhlIGJvb3QgdmlkZW8KLSAqIGNhcmQgd2l0aCB0aGlzIGNvcHkuIE9uIGxhcHRv cHMgdGhpcyBjb3B5IGhhcyB0byBiZSB1c2VkIHNpbmNlCi0gKiB0aGUgbWFpbiBST00gbWF5IGJl IGNvbXByZXNzZWQgb3IgY29tYmluZWQgd2l0aCBhbm90aGVyIGltYWdlLgotICogU2VlIHBjaV9t YXBfcm9tKCkgZm9yIHVzZSBvZiB0aGlzIGZsYWcuIEJlZm9yZSBtYXJraW5nIHRoZSBkZXZpY2UK LSAqIHdpdGggSU9SRVNPVVJDRV9ST01fU0hBRE9XIGNoZWNrIGlmIGEgdmdhX2RlZmF1bHRfZGV2 aWNlIGlzIGFscmVhZHkgc2V0Ci0gKiBieSBlaXRoZXIgYXJjaCBjZGUgb3IgdmdhLWFyYml0cmF0 aW9uLCBpZiBzbyBvbmx5IGFwcGx5IHRoZSBmaXh1cCB0byB0aGlzCi0gKiBhbHJlYWR5IGRldGVy bWluZWQgcHJpbWFyeSB2aWRlbyBjYXJkLgotICovCi0KLXN0YXRpYyB2b2lkIHBjaV9maXh1cF92 aWRlbyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3N0YXRpYyB2b2lkIHBjaV9pYTY0X2ZpeHVwX3Zp ZGVvKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewotCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2U7Ci0J c3RydWN0IHBjaV9idXMgKmJ1czsKLQl1MTYgY29uZmlnOwotCiAJaWYgKChzdHJjbXAoaWE2NF9w bGF0Zm9ybV9uYW1lLCAiZGlnIikgIT0gMCkKIAkgICAgJiYgKHN0cmNtcChpYTY0X3BsYXRmb3Jt X25hbWUsICJocHp4MSIpICAhPSAwKSkKIAkJcmV0dXJuOwogCS8qIE1heWJlLCB0aGlzIG1hY2hp bmUgc3VwcG9ydHMgbGVnYWN5IG1lbW9yeSBtYXAuICovCiAKLQlpZiAoIXZnYV9kZWZhdWx0X2Rl dmljZSgpKSB7Ci0JCXJlc291cmNlX3NpemVfdCBzdGFydCwgZW5kOwotCQlpbnQgaTsKLQotCQkv KiBEb2VzIGZpcm13YXJlIGZyYW1lYnVmZmVyIGJlbG9uZyB0byB1cz8gKi8KLQkJZm9yIChpPTA7 IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJaWYgKCEocGNpX3Jlc291cmNl X2ZsYWdzKHBkZXYsIGkpICYgSU9SRVNPVVJDRV9NRU0pKQotCQkJCWNvbnRpbnVlOwotCi0JCQlz dGFydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBpKTsKLQkJCWVuZCAgPSBwY2lfcmVzb3Vy Y2VfZW5kKHBkZXYsIGkpOwotCi0JCQlpZiAoIXN0YXJ0IHx8ICFlbmQpCi0JCQkJY29udGludWU7 Ci0KLQkJCWlmIChzY3JlZW5faW5mby5sZmJfYmFzZSA+PSBzdGFydCAmJgotCQkJCShzY3JlZW5f aW5mby5sZmJfYmFzZSArIHNjcmVlbl9pbmZvLmxmYl9zaXplKSA8IGVuZCkKLQkJCQl2Z2Ffc2V0 X2RlZmF1bHRfZGV2aWNlKHBkZXYpOwotCQl9Ci0JfQotCi0JLyogSXMgVkdBIHJvdXRlZCB0byB1 cz8gKi8KLQlidXMgPSBwZGV2LT5idXM7Ci0Jd2hpbGUgKGJ1cykgewotCQlicmlkZ2UgPSBidXMt PnNlbGY7Ci0KLQkJLyoKLQkJICogRnJvbSBpbmZvcm1hdGlvbiBwcm92aWRlZCBieQotCQkgKiAi RGF2aWQgTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLQkJICogVGhlIGJyaWRnZSBjb250 cm9sIHJlZ2lzdGVyIGlzIHZhbGlkIGZvciBQQ0kgaGVhZGVyCi0JCSAqIHR5cGUgQlJJREdFLCBv ciBDQVJEQlVTLiBIb3N0IHRvIFBDSSBjb250cm9sbGVycyB1c2UKLQkJICogUENJIGhlYWRlciB0 eXBlIE5PUk1BTC4KLQkJICovCi0JCWlmIChicmlkZ2UKLQkJICAgICYmKChicmlkZ2UtPmhkcl90 eXBlID09IFBDSV9IRUFERVJfVFlQRV9CUklER0UpCi0JCSAgICAgICB8fChicmlkZ2UtPmhkcl90 eXBlID09IFBDSV9IRUFERVJfVFlQRV9DQVJEQlVTKSkpIHsKLQkJCXBjaV9yZWFkX2NvbmZpZ193 b3JkKGJyaWRnZSwgUENJX0JSSURHRV9DT05UUk9MLAotCQkJCQkJJmNvbmZpZyk7Ci0JCQlpZiAo IShjb25maWcgJiBQQ0lfQlJJREdFX0NUTF9WR0EpKQotCQkJCXJldHVybjsKLQkJfQotCQlidXMg PSBidXMtPnBhcmVudDsKLQl9Ci0JaWYgKCF2Z2FfZGVmYXVsdF9kZXZpY2UoKSB8fCBwZGV2ID09 IHZnYV9kZWZhdWx0X2RldmljZSgpKSB7Ci0JCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIFBD SV9DT01NQU5ELCAmY29uZmlnKTsKLQkJaWYgKGNvbmZpZyAmIChQQ0lfQ09NTUFORF9JTyB8IFBD SV9DT01NQU5EX01FTU9SWSkpIHsKLQkJCXBkZXYtPnJlc291cmNlW1BDSV9ST01fUkVTT1VSQ0Vd LmZsYWdzIHw9IElPUkVTT1VSQ0VfUk9NX1NIQURPVzsKLQkJCWRldl9wcmludGsoS0VSTl9ERUJV RywgJnBkZXYtPmRldiwgIkJvb3QgdmlkZW8gZGV2aWNlXG4iKTsKLQkJCXZnYV9zZXRfZGVmYXVs dF9kZXZpY2UocGRldik7Ci0JCX0KLQl9CisJcGNpX2ZpeHVwX3ZpZGVvKHBkZXYpOwogfQogREVD TEFSRV9QQ0lfRklYVVBfQ0xBU1NfRklOQUwoUENJX0FOWV9JRCwgUENJX0FOWV9JRCwKLQkJCQlQ Q0lfQ0xBU1NfRElTUExBWV9WR0EsIDgsIHBjaV9maXh1cF92aWRlbyk7CisJCQkJUENJX0NMQVNT X0RJU1BMQVlfVkdBLCA4LCBwY2lfaWE2NF9maXh1cF92aWRlbyk7CmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9wY2kvZml4dXAuYyBiL2FyY2gveDg2L3BjaS9maXh1cC5jCmluZGV4IDcyNDZjZjIuLmI1 OTk4NDcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9maXh1cC5jCisrKyBiL2FyY2gveDg2L3Bj aS9maXh1cC5jCkBAIC0zMDIsODEgKzMwMiw3IEBAIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBD SV9WRU5ET1JfSURfSU5URUwsCVBDSV9ERVZJQ0VfSURfSU5URUxfTUNIX1BCMSwJcGNpZV9yCiBE RUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX0lOVEVMLAlQQ0lfREVWSUNFX0lE X0lOVEVMX01DSF9QQywJcGNpZV9yb290cG9ydF9hc3BtX3F1aXJrKTsKIERFQ0xBUkVfUENJX0ZJ WFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfSU5URUwsCVBDSV9ERVZJQ0VfSURfSU5URUxfTUNIX1BD MSwJcGNpZV9yb290cG9ydF9hc3BtX3F1aXJrKTsKIAotLyoKLSAqIEZpeHVwIHRvIG1hcmsgYm9v dCBCSU9TIHZpZGVvIHNlbGVjdGVkIGJ5IEJJT1MgYmVmb3JlIGl0IGNoYW5nZXMKLSAqCi0gKiBG cm9tIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5ICJKb24gU21pcmwiIDxqb25zbWlybEBnbWFpbC5j b20+Ci0gKgotICogVGhlIHN0YW5kYXJkIGJvb3QgUk9NIHNlcXVlbmNlIGZvciBhbiB4ODYgbWFj aGluZSB1c2VzIHRoZSBCSU9TCi0gKiB0byBzZWxlY3QgYW4gaW5pdGlhbCB2aWRlbyBjYXJkIGZv ciBib290IGRpc3BsYXkuIFRoaXMgYm9vdCB2aWRlbwotICogY2FyZCB3aWxsIGhhdmUgaXQncyBC SU9TIGNvcGllZCB0byBDMDAwMCBpbiBzeXN0ZW0gUkFNLgotICogSU9SRVNPVVJDRV9ST01fU0hB RE9XIGlzIHVzZWQgdG8gYXNzb2NpYXRlIHRoZSBib290IHZpZGVvCi0gKiBjYXJkIHdpdGggdGhp cyBjb3B5LiBPbiBsYXB0b3BzIHRoaXMgY29weSBoYXMgdG8gYmUgdXNlZCBzaW5jZQotICogdGhl IG1haW4gUk9NIG1heSBiZSBjb21wcmVzc2VkIG9yIGNvbWJpbmVkIHdpdGggYW5vdGhlciBpbWFn ZS4KLSAqIFNlZSBwY2lfbWFwX3JvbSgpIGZvciB1c2Ugb2YgdGhpcyBmbGFnLiBCZWZvcmUgbWFy a2luZyB0aGUgZGV2aWNlCi0gKiB3aXRoIElPUkVTT1VSQ0VfUk9NX1NIQURPVyBjaGVjayBpZiBh IHZnYV9kZWZhdWx0X2RldmljZSBpcyBhbHJlYWR5IHNldAotICogYnkgZWl0aGVyIGFyY2ggY2Rl IG9yIHZnYS1hcmJpdHJhdGlvbiwgaWYgc28gb25seSBhcHBseSB0aGUgZml4dXAgdG8gdGhpcwot ICogYWxyZWFkeSBkZXRlcm1pbmVkIHByaW1hcnkgdmlkZW8gY2FyZC4KLSAqLwotCi1zdGF0aWMg dm9pZCBwY2lfZml4dXBfdmlkZW8oc3RydWN0IHBjaV9kZXYgKnBkZXYpCi17Ci0Jc3RydWN0IHBj aV9kZXYgKmJyaWRnZTsKLQlzdHJ1Y3QgcGNpX2J1cyAqYnVzOwotCXUxNiBjb25maWc7Ci0KLQlp ZiAoIXZnYV9kZWZhdWx0X2RldmljZSgpKSB7Ci0JCXJlc291cmNlX3NpemVfdCBzdGFydCwgZW5k OwotCQlpbnQgaTsKLQotCQkvKiBEb2VzIGZpcm13YXJlIGZyYW1lYnVmZmVyIGJlbG9uZyB0byB1 cz8gKi8KLQkJZm9yIChpPTA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJ aWYgKCEocGNpX3Jlc291cmNlX2ZsYWdzKHBkZXYsIGkpICYgSU9SRVNPVVJDRV9NRU0pKQotCQkJ CWNvbnRpbnVlOwotCi0JCQlzdGFydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBpKTsKLQkJ CWVuZCAgPSBwY2lfcmVzb3VyY2VfZW5kKHBkZXYsIGkpOwotCi0JCQlpZiAoIXN0YXJ0IHx8ICFl bmQpCi0JCQkJY29udGludWU7Ci0KLQkJCWlmIChzY3JlZW5faW5mby5sZmJfYmFzZSA+PSBzdGFy dCAmJgotCQkJCShzY3JlZW5faW5mby5sZmJfYmFzZSArIHNjcmVlbl9pbmZvLmxmYl9zaXplKSA8 IGVuZCkKLQkJCQl2Z2Ffc2V0X2RlZmF1bHRfZGV2aWNlKHBkZXYpOwotCQl9Ci0JfQotCi0JLyog SXMgVkdBIHJvdXRlZCB0byB1cz8gKi8KLQlidXMgPSBwZGV2LT5idXM7Ci0Jd2hpbGUgKGJ1cykg ewotCQlicmlkZ2UgPSBidXMtPnNlbGY7Ci0KLQkJLyoKLQkJICogRnJvbSBpbmZvcm1hdGlvbiBw cm92aWRlZCBieQotCQkgKiAiRGF2aWQgTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLQkJ ICogVGhlIGJyaWRnZSBjb250cm9sIHJlZ2lzdGVyIGlzIHZhbGlkIGZvciBQQ0kgaGVhZGVyCi0J CSAqIHR5cGUgQlJJREdFLCBvciBDQVJEQlVTLiBIb3N0IHRvIFBDSSBjb250cm9sbGVycyB1c2UK LQkJICogUENJIGhlYWRlciB0eXBlIE5PUk1BTC4KLQkJICovCi0JCWlmIChicmlkZ2UKLQkJICAg ICYmICgoYnJpZGdlLT5oZHJfdHlwZSA9PSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFKQotCQkgICAg ICAgfHwgKGJyaWRnZS0+aGRyX3R5cGUgPT0gUENJX0hFQURFUl9UWVBFX0NBUkRCVVMpKSkgewot CQkJcGNpX3JlYWRfY29uZmlnX3dvcmQoYnJpZGdlLCBQQ0lfQlJJREdFX0NPTlRST0wsCi0JCQkJ CQkmY29uZmlnKTsKLQkJCWlmICghKGNvbmZpZyAmIFBDSV9CUklER0VfQ1RMX1ZHQSkpCi0JCQkJ cmV0dXJuOwotCQl9Ci0JCWJ1cyA9IGJ1cy0+cGFyZW50OwotCX0KLQlpZiAoIXZnYV9kZWZhdWx0 X2RldmljZSgpIHx8IHBkZXYgPT0gdmdhX2RlZmF1bHRfZGV2aWNlKCkpIHsKLQkJcGNpX3JlYWRf Y29uZmlnX3dvcmQocGRldiwgUENJX0NPTU1BTkQsICZjb25maWcpOwotCQlpZiAoY29uZmlnICYg KFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUVNT1JZKSkgewotCQkJcGRldi0+cmVzb3Vy Y2VbUENJX1JPTV9SRVNPVVJDRV0uZmxhZ3MgfD0gSU9SRVNPVVJDRV9ST01fU0hBRE9XOwotCQkJ ZGV2X3ByaW50ayhLRVJOX0RFQlVHLCAmcGRldi0+ZGV2LCAiQm9vdCB2aWRlbyBkZXZpY2VcbiIp OwotCQkJdmdhX3NldF9kZWZhdWx0X2RldmljZShwZGV2KTsKLQkJfQotCX0KLX0KKy8qIHBjaV9m aXh1cF92aWRlbyBzaGFyZWQgaW4gdmdhYXJiLmMgKi8KIERFQ0xBUkVfUENJX0ZJWFVQX0NMQVNT X0ZJTkFMKFBDSV9BTllfSUQsIFBDSV9BTllfSUQsCiAJCQkJUENJX0NMQVNTX0RJU1BMQVlfVkdB LCA4LCBwY2lfZml4dXBfdmlkZW8pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS92Z2Evdmdh YXJiLmMgYi9kcml2ZXJzL2dwdS92Z2EvdmdhYXJiLmMKaW5kZXggYWYwMjU5Ny4uZjBmYmRmNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvdmdhL3ZnYWFyYi5jCisrKyBiL2RyaXZlcnMvZ3B1L3Zn YS92Z2FhcmIuYwpAQCAtMTQ5LDYgKzE0OSw4MSBAQCB2b2lkIHZnYV9zZXRfZGVmYXVsdF9kZXZp Y2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB9CiAjZW5kaWYKIAorLyoKKyAqIEZpeHVwIHRvIG1h cmsgYm9vdCBCSU9TIHZpZGVvIHNlbGVjdGVkIGJ5IEJJT1MgYmVmb3JlIGl0IGNoYW5nZXMKKyAq CisgKiBGcm9tIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5ICJKb24gU21pcmwiIDxqb25zbWlybEBn bWFpbC5jb20+CisgKgorICogVGhlIHN0YW5kYXJkIGJvb3QgUk9NIHNlcXVlbmNlIGZvciBhbiB4 ODYgbWFjaGluZSB1c2VzIHRoZSBCSU9TCisgKiB0byBzZWxlY3QgYW4gaW5pdGlhbCB2aWRlbyBj YXJkIGZvciBib290IGRpc3BsYXkuIFRoaXMgYm9vdCB2aWRlbworICogY2FyZCB3aWxsIGhhdmUg aXQncyBCSU9TIGNvcGllZCB0byBDMDAwMCBpbiBzeXN0ZW0gUkFNLgorICogSU9SRVNPVVJDRV9S T01fU0hBRE9XIGlzIHVzZWQgdG8gYXNzb2NpYXRlIHRoZSBib290IHZpZGVvCisgKiBjYXJkIHdp dGggdGhpcyBjb3B5LiBPbiBsYXB0b3BzIHRoaXMgY29weSBoYXMgdG8gYmUgdXNlZCBzaW5jZQor ICogdGhlIG1haW4gUk9NIG1heSBiZSBjb21wcmVzc2VkIG9yIGNvbWJpbmVkIHdpdGggYW5vdGhl ciBpbWFnZS4KKyAqIFNlZSBwY2lfbWFwX3JvbSgpIGZvciB1c2Ugb2YgdGhpcyBmbGFnLiBCZWZv cmUgbWFya2luZyB0aGUgZGV2aWNlCisgKiB3aXRoIElPUkVTT1VSQ0VfUk9NX1NIQURPVyBjaGVj ayBpZiBhIHZnYV9kZWZhdWx0X2RldmljZSBpcyBhbHJlYWR5IHNldAorICogYnkgZWl0aGVyIGFy Y2ggY2RlIG9yIHZnYS1hcmJpdHJhdGlvbiwgaWYgc28gb25seSBhcHBseSB0aGUgZml4dXAgdG8g dGhpcworICogYWxyZWFkeSBkZXRlcm1pbmVkIHByaW1hcnkgdmlkZW8gY2FyZC4KKyAqLworCit2 b2lkIHBjaV9maXh1cF92aWRlbyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwlzdHJ1Y3QgcGNp X2RldiAqYnJpZGdlOworCXN0cnVjdCBwY2lfYnVzICpidXM7CisJdTE2IGNvbmZpZzsKKworCWlm ICghdmdhX2RlZmF1bHRfZGV2aWNlKCkpIHsKKwkJcmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCBlbmQ7 CisJCWludCBpOworCisJCWZvciAoaT0wOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKysp IHsKKwkJCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhwZGV2LCBpKSAmIElPUkVTT1VSQ0VfTUVN KSkKKwkJCQljb250aW51ZTsKKworCQkJc3RhcnQgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwg aSk7CisJCQllbmQgID0gcGNpX3Jlc291cmNlX2VuZChwZGV2LCBpKTsKKworCQkJaWYgKCFzdGFy dCB8fCAhZW5kKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoc2NyZWVuX2luZm8ubGZiX2Jhc2Ug Pj0gc3RhcnQgJiYKKwkJCQkoc2NyZWVuX2luZm8ubGZiX2Jhc2UgKyBzY3JlZW5faW5mby5sZmJf c2l6ZSkgPCBlbmQpCisJCQkJdmdhX3NldF9kZWZhdWx0X2RldmljZShwZGV2KTsKKwkJfQorCX0K KworCS8qIElzIFZHQSByb3V0ZWQgdG8gdXM/ICovCisJYnVzID0gcGRldi0+YnVzOworCXdoaWxl IChidXMpIHsKKwkJYnJpZGdlID0gYnVzLT5zZWxmOworCisJCS8qCisJCSAqIEZyb20gaW5mb3Jt YXRpb24gcHJvdmlkZWQgYnkKKwkJICogIkRhdmlkIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+CisJCSAqIFRoZSBicmlkZ2UgY29udHJvbCByZWdpc3RlciBpcyB2YWxpZCBmb3IgUENJIGhl YWRlcgorCQkgKiB0eXBlIEJSSURHRSwgb3IgQ0FSREJVUy4gSG9zdCB0byBQQ0kgY29udHJvbGxl cnMgdXNlCisJCSAqIFBDSSBoZWFkZXIgdHlwZSBOT1JNQUwuCisJCSAqLworCQlpZiAoYnJpZGdl CisJCSAgICAmJiAoKGJyaWRnZS0+aGRyX3R5cGUgPT0gUENJX0hFQURFUl9UWVBFX0JSSURHRSkK KwkJICAgICAgIHx8IChicmlkZ2UtPmhkcl90eXBlID09IFBDSV9IRUFERVJfVFlQRV9DQVJEQlVT KSkpIHsKKwkJCXBjaV9yZWFkX2NvbmZpZ193b3JkKGJyaWRnZSwgUENJX0JSSURHRV9DT05UUk9M LAorCQkJCQkJJmNvbmZpZyk7CisJCQlpZiAoIShjb25maWcgJiBQQ0lfQlJJREdFX0NUTF9WR0Ep KQorCQkJCXJldHVybjsKKwkJfQorCQlidXMgPSBidXMtPnBhcmVudDsKKwl9CisJaWYgKCF2Z2Ff ZGVmYXVsdF9kZXZpY2UoKSB8fCBwZGV2ID09IHZnYV9kZWZhdWx0X2RldmljZSgpKSB7CisJCXBj aV9yZWFkX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCAmY29uZmlnKTsKKwkJaWYgKGNv bmZpZyAmIChQQ0lfQ09NTUFORF9JTyB8IFBDSV9DT01NQU5EX01FTU9SWSkpIHsKKwkJCXBkZXYt PnJlc291cmNlW1BDSV9ST01fUkVTT1VSQ0VdLmZsYWdzIHw9IElPUkVTT1VSQ0VfUk9NX1NIQURP VzsKKwkJCWRldl9wcmludGsoS0VSTl9ERUJVRywgJnBkZXYtPmRldiwgIkJvb3QgdmlkZW8gZGV2 aWNlXG4iKTsKKwkJCXZnYV9zZXRfZGVmYXVsdF9kZXZpY2UocGRldik7CisJCX0KKwl9Cit9CisK IHN0YXRpYyBpbmxpbmUgdm9pZCB2Z2FfaXJxX3NldF9zdGF0ZShzdHJ1Y3QgdmdhX2RldmljZSAq dmdhZGV2LCBib29sIHN0YXRlKQogewogCWlmICh2Z2FkZXYtPmlycV9zZXRfc3RhdGUpCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZnYWFyYi5oIGIvaW5jbHVkZS9saW51eC92Z2FhcmIuaApp bmRleCAyYzAyZjNhLi42NTE4NDYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZnYWFyYi5o CisrKyBiL2luY2x1ZGUvbGludXgvdmdhYXJiLmgKQEAgLTE2Miw2ICsxNjIsNDMgQEAgZXh0ZXJu IHZvaWQgdmdhX3B1dChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJzcmMpOwog I2RlZmluZSB2Z2FfcHV0KHBkZXYsIHJzcmMpCiAjZW5kaWYKIAorLyoqCisgKiAgICAgcGNpX2Zp eHVwX3ZpZGVvCisgKgorICogICAgIFRoaXMgY2FuIGJlIGNhbGxlZCBieSBhcmNoIFBDSSB0byBm aXh1cCBib290IFZHQSB0YWdnaW5nCisgKiAgICAgb2YgVkdBIFBDSSBkZXZpY2VzIChlLmcuIGZv ciBYODYsIElBNjQpCisgKgorICogICAgIFRoaXMgY29kZSB3YXMgaW5pdGlhbGx5IHNwcmVhZC9k dXBsaWNhdGVkIGFjcm9zczoKKyAqICAgICAtIFg4NiBQQ0ktZml4dXAKKyAqICAgICAtIElBNjQg UENJLWZpeHVwCisgKiAgICAgLSBFRklfRkIKKyAqCisgKiAgICAgKiBQQ0ktZml4dXAgcGFydDoK KyAqICAgICBGaXh1cCB0byBtYXJrIGJvb3QgQklPUyB2aWRlbyBzZWxlY3RlZCBieSBCSU9TIGJl Zm9yZSBpdCBjaGFuZ2VzCisgKgorICogICAgIEZyb20gaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkg IkpvbiBTbWlybCIgPGpvbnNtaXJsQGdtYWlsLmNvbT4KKyAqCisgKiAgICAgVGhlIHN0YW5kYXJk IGJvb3QgUk9NIHNlcXVlbmNlIGZvciBhbiB4ODYgbWFjaGluZSB1c2VzIHRoZSBCSU9TCisgKiAg ICAgdG8gc2VsZWN0IGFuIGluaXRpYWwgdmlkZW8gY2FyZCBmb3IgYm9vdCBkaXNwbGF5LiBUaGlz IGJvb3QgdmlkZW8KKyAqICAgICBjYXJkIHdpbGwgaGF2ZSBpdCdzIEJJT1MgY29waWVkIHRvIEMw MDAwIGluIHN5c3RlbSBSQU0uCisgKiAgICAgSU9SRVNPVVJDRV9ST01fU0hBRE9XIGlzIHVzZWQg dG8gYXNzb2NpYXRlIHRoZSBib290IHZpZGVvCisgKiAgICAgY2FyZCB3aXRoIHRoaXMgY29weS4g T24gbGFwdG9wcyB0aGlzIGNvcHkgaGFzIHRvIGJlIHVzZWQgc2luY2UKKyAqICAgICB0aGUgbWFp biBST00gbWF5IGJlIGNvbXByZXNzZWQgb3IgY29tYmluZWQgd2l0aCBhbm90aGVyIGltYWdlLgor ICogICAgIFNlZSBwY2lfbWFwX3JvbSgpIGZvciB1c2Ugb2YgdGhpcyBmbGFnLiBJT1JFU09VUkNF X1JPTV9TSEFET1cKKyAqICAgICBpcyBtYXJrZWQgaGVyZSBzaW5jZSB0aGUgYm9vdCB2aWRlbyBk ZXZpY2Ugd2lsbCBiZSB0aGUgb25seSBlbmFibGVkCisgKiAgICAgdmlkZW8gZGV2aWNlIGF0IHRo aXMgcG9pbnQuCisgKgorICogICAgICogRUZJX0ZCIHBhcnQ6CisgKiAgICAgU29tZSBFRkktYmFz ZWQgc3lzdGVtIChlLmcuIEludGVsLU1hY3MgZnJvbSBBcHBsZSkgZG8gbm90IHNldHVwCisgKiAg ICAgc2hhZG93IFZpZGVvLUJJT1MgYW5kIHRodXMgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgYnkgZnJh bWVidWZmZXIKKyAqICAgICBJTyBtZW1vcnkgcmFuZ2UuIEZsYWcgdGhlIGNvcnJlc3BvbmRpbmcg R1BVIGFzIGJvb3RfdmdhLgorICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19WR0FfQVJCKQordm9p ZCBwY2lfZml4dXBfdmlkZW8oc3RydWN0IHBjaV9kZXYgKnBkZXYpOworI2Vsc2UKK3N0YXRpYyBp bmxpbmUgdm9pZCBwY2lfZml4dXBfdmlkZW8oc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsgfQorI2Vu ZGlmCiAKIC8qKgogICogICAgIHZnYV9kZWZhdWx0X2RldmljZQotLSAKMS44LjUuNQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK