From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 3/4] drm/i915: opt-out CPU and WC mmaps from FBC Date: Thu, 24 Mar 2016 16:16:11 -0300 Message-ID: <1458846972-20338-5-git-send-email-paulo.r.zanoni@intel.com> References: <1458846972-20338-1-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id C70216EA02 for ; Thu, 24 Mar 2016 19:16:22 +0000 (UTC) In-Reply-To: <1458846972-20338-1-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org RkJDIGFuZCB0aGUgZnJvbnRidWZmZXIgdHJhY2tpbmcgaW5mcmFzdHJ1Y3R1cmUgd2VyZSBkZXNp Z25lZCBhc3N1bWluZwp0aGF0IHVzZXIgc3BhY2UgYXBwbGljYXRpb25zIHdvdWxkIGZvbGxvdyBh IHNwZWNpZmljIHNldCBvZiBydWxlcwpyZWdhcmRpbmcgZnJvbnRidWZmZXIgbWFuYWdlbWVudCBh bmQgbW1hcHBpbmcuIEkgcmVjZW50bHkgZGlzY292ZXJlZAp0aGF0IGN1cnJlbnQgdXNlciBzcGFj ZSBpcyBub3QgZXhhY3RseSBmb2xsb3dpbmcgdGhlc2UgcnVsZXM6IG15CmludmVzdGlnYXRpb24g bGVkIG1lIHRvIHRoZSBjb25jbHVzaW9uIHRoYXQgdGhlIGdlbmVyaWMgYmFja2VuZCBmcm9tClNO QSAtIHVzZWQgYnkgU0tMIGFuZCB0aGUgb3RoZXIgbmV3IHBsYXRmb3JtcyB3aXRob3V0IGEgc3Bl Y2lmaWMKYmFja2VuZCAtIGlzIG5vdCBpc3N1aW5nIHN3X2ZpbmlzaC9kaXJ0eV9mYiBJT0NUTHMg d2hlbiB1c2luZyB0aGUgQ1BVCmFuZCBXQyBtbWFwcy4gSSBkaXNjb3ZlcmVkIHRoaXMgd2hlbiBy dW5uaW5nIGxpZ2h0ZG06IEkgd291bGQgdHlwZSB0aGUKcGFzc3dvcmQgYW5kIG5vdGhpbmcgd291 bGQgYXBwZWFyIG9uIHRoZSBzY3JlZW4gdW5sZXNzIEkgbW92ZWQgdGhlCm1vdXNlIG92ZXIgdGhl IHBsYWNlIHdoZXJlIHRoZSBsZXR0ZXJzIHdlcmUgc3VwcG9zZWQgdG8gYXBwZWFyLgoKU2luY2Ug d2UgY2FuJ3QgZGV0ZWN0IHdoZXRoZXIgdGhlIGN1cnJlbnQgRFJNIG1hc3RlciBpcyBhIHdlbGwt YmVoYXZlZAphcHBsaWNhdGlvbiBvciBub3QsIGxldCdzIHVzZSB0aGUgc2xlZGdlaGFtbWVyIGFw cHJvYWNoIGFuZCBhc3N1bWUKdGhhdCBldmVyeSB1c2VyIHNwYWNlIGNsaWVudCBvbiBldmVyeSBn ZW4gaXMgYmFkIGJ5IGRpc2FibGluZyBGQkMgd2hlbgp0aGUgZnJvbnRidWZmZXIgaXMgQ1BVL1dD IG1tYXBwZWQuICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gZW5hYmxlIEZCQwpvbiBTS0wsIG1vdmlu ZyBpdHMgRkJDLXJlbGF0ZWQgcG93ZXIgc2F2aW5ncyBmcm9tICJhbHdheXMgMCUiIHRvICI+IDAl CmluIHNvbWUgY2FzZXMiLgoKVGhlcmUncyBhbHNvIHNvbWUgYWRkaXRpb25hbCBjb2RlIHRvIGRp c2FibGUgdGhlIHdvcmthcm91bmQgZm9yCmZyb250YnVmZmVycyB0aGF0IGV2ZXIgcmVjZWl2ZWQg YSBzd19maW5pc2ggb3IgZGlydHlfZmIgSU9DVEwsIHNpbmNlCnRoZSBjdXJyZW50IGJhZCB1c2Vy IHNwYWNlIG5ldmVyIGlzc3VlcyB0aG9zZSBjYWxscy4gVGhpcyBzaG91bGQgaGVscApmb3Igc29t ZSBzcGVjaWZpYyBjYXNlcyBhbmQgb3VyIElHVCB0ZXN0cywgYnV0IHdvbid0IGJlIGVub3VnaCBm b3IgYQpuZXcgeGY4Ni12aWRlby1pbnRlbCB1c2luZyBUZWFyRnJlZS4KCk5vdGljZSB0aGF0IHdl IG1heSBuZWVkIGFuIGVxdWl2YWxlbnQgY29tbWl0IGZvciBQU1IgdG9vLiBXZSBhbHNvIG5lZWQK dG8gaW52ZXN0aWdhdGUgd2hldGhlciBQU1IgbmVlZHMgdG8gYmUgZGlzYWJsZWQgb24gR1RUIG1t YXBzOiBpZgp0aGF0J3MgdGhlIGNhc2UsIHdlJ2xsIGhhdmUgcHJvYmxlbXMgc2luY2Ugd2Ugc2Vl bSB0byBhbHdheXMgaGF2ZSBHVFQKbW1hcHMgb24gb3VyIGN1cnJlbnQgdXNlciBzcGFjZSwgc28g d2Ugd291bGQgZW5kIHVwIGtlZXBpbmcgUFNSCmRpc2FibGVkIGZvcmV2ZXIuCgp2MjoKICAtIFJl bmFtZSBzb21lIHRoaW5ncy4KICAtIERpc2FibGUgdGhlIFdBIG9uIHN3X2ZpbmlzaC9kaXJ0eV9m YiAoRGFuaWVsKS4KICAtIEZpeCBOVUxMIG9iaiBjaGVja2luZy4KICAtIFJlc3RyaWMgdG8gR2Vu IDkuCnYzOgogIC0gQWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvY3VtZW50YXRpb24gKGtidWlsZCB0 ZXN0IHJvYm90KS4KICAtIENvbnZlcnQgZmxhZ3MgZnJvbSBlbnVtIHRvIGRlZmluZXMgKEphbmkp LgogIC0gTWFrZSBpdCBTS0wtb25seSAoRGFuaWVsKS4KCkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkFja2VkLWJ5 OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ICh2MikKU2lnbmVkLW9mZi1i eTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICA4ICsrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgIHwgMTkgKysrKysrKysrKystLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICB8ICAzICsrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jIHwgMzIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGI5M2Vm NzAuLmNmYjgwNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODYzLDYgKzg2MywxMiBA QCBlbnVtIGZiX29wX29yaWdpbiB7CiAJT1JJR0lOX0RJUlRZRkIsCiB9OwogCisvKiBGbGFncyBm b3IgdGhlIGZyb250YnVmZmVyIHdvcmthcm91bmQgZm9yIG9sZCB1c2VyIHNwYWNlLiAqLworI2Rl ZmluZSBGQl9NTUFQX1dBX0NQVQkJKDEgPDwgMCkKKyNkZWZpbmUgRkJfTU1BUF9XQV9HVFQJCSgx IDw8IDEpCisjZGVmaW5lIEZCX01NQVBfV0FfRElTQUJMRQkoMSA8PCAyKQorI2RlZmluZSBGQl9N TUFQX1dBX0ZMQUdfQ09VTlQJMworCiBzdHJ1Y3QgaW50ZWxfZmJjIHsKIAkvKiBUaGlzIGlzIGFs d2F5cyB0aGUgaW5uZXIgbG9jayB3aGVuIG92ZXJsYXBwaW5nIHdpdGggc3RydWN0X211dGV4IGFu ZAogCSAqIGl0J3MgdGhlIG91dGVyIGxvY2sgd2hlbiBvdmVybGFwcGluZyB3aXRoIHN0b2xlbl9s b2NrLiAqLwpAQCAtOTAwLDYgKzkwNiw3IEBAIHN0cnVjdCBpbnRlbF9mYmMgewogCQkJdW5zaWdu ZWQgaW50IHN0cmlkZTsKIAkJCWludCBmZW5jZV9yZWc7CiAJCQl1bnNpZ25lZCBpbnQgdGlsaW5n X21vZGU7CisJCQl1bnNpZ25lZCBpbnQgbW1hcF93YV9mbGFnczsKIAkJfSBmYjsKIAl9IHN0YXRl X2NhY2hlOwogCkBAIC0yMTQ3LDYgKzIxNTQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCB7CiAJdW5zaWduZWQgaW50IGNhY2hlX2RpcnR5OjE7CiAKIAl1bnNpZ25lZCBpbnQgZnJvbnRi dWZmZXJfYml0czpJTlRFTF9GUk9OVEJVRkZFUl9CSVRTOworCXVuc2lnbmVkIGludCBmYl9tbWFw X3dhX2ZsYWdzOkZCX01NQVBfV0FfRkxBR19DT1VOVDsKIAogCXVuc2lnbmVkIGludCBwaW5fZGlz cGxheTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYzdhOTk3YS4uOTIwNDA1NCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xNjkyLDYgKzE2OTIsOCBAQCBpOTE1X2dlbV9zd19m aW5pc2hfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJZ290byB1 bmxvY2s7CiAJfQogCisJaW50ZWxfZmJfb2JqX21tYXBfd2Eob2JqLCBGQl9NTUFQX1dBX0RJU0FC TEUpOworCiAJLyogUGlubmVkIGJ1ZmZlcnMgbWF5IGJlIHNjYW5vdXQsIHNvIGZsdXNoIHRoZSBj YWNoZSAqLwogCWlmIChvYmotPnBpbl9kaXNwbGF5KQogCQlpOTE1X2dlbV9vYmplY3RfZmx1c2hf Y3B1X3dyaXRlX2RvbWFpbihvYmopOwpAQCAtMTcyNCw3ICsxNzI2LDcgQEAgaTkxNV9nZW1fbW1h cF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkgICAgc3RydWN0 IGRybV9maWxlICpmaWxlKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcCAqYXJncyA9IGRh dGE7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iajsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAKIAlpZiAoYXJncy0+ZmxhZ3MgJiB+ KEk5MTVfTU1BUF9XQykpCkBAIC0xNzMzLDE5ICsxNzM1LDE5IEBAIGk5MTVfZ2VtX21tYXBfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoYXJncy0+ZmxhZ3Mg JiBJOTE1X01NQVBfV0MgJiYgIWNwdV9oYXNfcGF0KQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCW9i aiA9IGRybV9nZW1fb2JqZWN0X2xvb2t1cChkZXYsIGZpbGUsIGFyZ3MtPmhhbmRsZSk7Ci0JaWYg KG9iaiA9PSBOVUxMKQorCW9iaiA9IHRvX2ludGVsX2JvKGRybV9nZW1fb2JqZWN0X2xvb2t1cChk ZXYsIGZpbGUsIGFyZ3MtPmhhbmRsZSkpOworCWlmICgmb2JqLT5iYXNlID09IE5VTEwpCiAJCXJl dHVybiAtRU5PRU5UOwogCiAJLyogcHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0 byBHRU0gbW1hcAogCSAqIHBhZ2VzIGZyb20uCiAJICovCi0JaWYgKCFvYmotPmZpbHApIHsKLQkJ ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKKwlpZiAoIW9iai0+YmFz ZS5maWxwKSB7CisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZvYmotPmJh c2UpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlhZGRyID0gdm1fbW1hcChvYmotPmZpbHAs IDAsIGFyZ3MtPnNpemUsCisJYWRkciA9IHZtX21tYXAob2JqLT5iYXNlLmZpbHAsIDAsIGFyZ3Mt PnNpemUsCiAJCSAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAogCQkg ICAgICAgYXJncy0+b2Zmc2V0KTsKIAlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X01NQVBfV0MpIHsK QEAgLTE3NjEsMTAgKzE3NjMsMTIgQEAgaTkxNV9nZW1fbW1hcF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJYWRkciA9IC1FTk9NRU07CiAJCXVwX3dyaXRlKCZt bS0+bW1hcF9zZW0pOwogCX0KLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChv YmopOworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKCZvYmotPmJhc2UpOwog CWlmIChJU19FUlIoKHZvaWQgKilhZGRyKSkKIAkJcmV0dXJuIGFkZHI7CiAKKwlpbnRlbF9mYl9v YmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfQ1BVKTsKKwogCWFyZ3MtPmFkZHJfcHRyID0gKHVp bnQ2NF90KSBhZGRyOwogCiAJcmV0dXJuIDA7CkBAIC0yMDk5LDYgKzIxMDMsNyBAQCBpOTE1X2dl bV9tbWFwX2d0dChzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJCWdvdG8gb3V0OwogCiAJKm9mZnNl dCA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmb2JqLT5iYXNlLnZtYV9ub2RlKTsKKwlpbnRl bF9mYl9vYmpfbW1hcF93YShvYmosIEZCX01NQVBfV0FfR1RUKTsKIAogb3V0OgogCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IDI5YWE2NGIuLmRhNzc4MjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKQEAgLTE0NTk3LDYgKzE0NTk3LDcgQEAgc3RhdGljIGludCBpbnRlbF91c2VyX2Zy YW1lYnVmZmVyX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYi0+b2JqOwogCiAJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOworCWludGVsX2ZiX29ial9tbWFwX3dhKG9iaiwgRkJfTU1BUF9XQV9E SVNBQkxFKTsKIAlpbnRlbF9mYl9vYmpfZmx1c2gob2JqLCBmYWxzZSwgT1JJR0lOX0RJUlRZRkIp OwogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCmluZGV4IGM4N2I0NTAuLmEwYjQ5ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CkBAIC0xMDg1LDYgKzEwODUsNyBAQCB2b2lkIGludGVsX2Zyb250YnVmZmVyX2ZsaXBfY29tcGxl dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICAgIHVuc2lnbmVkIGZyb250YnVmZmVy X2JpdHMpOwogdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCQkgICAgdW5zaWduZWQgZnJvbnRidWZmZXJfYml0cyk7Cit2b2lkIGludGVsX2ZiX29i al9tbWFwX3dhKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVuc2lnbmVkIGludCBm bGFncyk7CiB1bnNpZ25lZCBpbnQgaW50ZWxfZmJfYWxpZ25faGVpZ2h0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJICAgdW5zaWduZWQgaW50IGhlaWdodCwKIAkJCQkgICB1aW50MzJfdCBw aXhlbF9mb3JtYXQsCkBAIC0xMzc3LDYgKzEzNzgsOCBAQCB2b2lkIGludGVsX2ZiY19pbnZhbGlk YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgZW51bSBmYl9vcF9v cmlnaW4gb3JpZ2luKTsKIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51 bSBmYl9vcF9vcmlnaW4gb3JpZ2luKTsKK3ZvaWQgaW50ZWxfZmJjX21tYXBfd2Eoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgICAgICAgdW5zaWduZWQgaW50IGZyb250YnVm ZmVyX2JpdHMsIHVuc2lnbmVkIGludCBmbGFncyk7CiB2b2lkIGludGVsX2ZiY19jbGVhbnVwX2Nm YihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogCiAvKiBpbnRlbF9oZG1pLmMg Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKaW5kZXggNzEwMTg4MC4uNzE4YWMzOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJjLmMKQEAgLTc0NSw2ICs3NDUsMTQgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAljYWNo ZS0+ZmIuc3RyaWRlID0gZmItPnBpdGNoZXNbMF07CiAJY2FjaGUtPmZiLmZlbmNlX3JlZyA9IG9i ai0+ZmVuY2VfcmVnOwogCWNhY2hlLT5mYi50aWxpbmdfbW9kZSA9IG9iai0+dGlsaW5nX21vZGU7 CisJY2FjaGUtPmZiLm1tYXBfd2FfZmxhZ3MgPSBvYmotPmZiX21tYXBfd2FfZmxhZ3M7Cit9CisK K3N0YXRpYyBib29sIG5lZWRfbW1hcF9kaXNhYmxlX3dvcmthcm91bmQoc3RydWN0IGludGVsX2Zi YyAqZmJjKQoreworCXVuc2lnbmVkIGludCBmbGFncyA9IGZiYy0+c3RhdGVfY2FjaGUuZmIubW1h cF93YV9mbGFnczsKKworCXJldHVybiAoZmxhZ3MgJiBGQl9NTUFQX1dBX0NQVSkgJiYgIShmbGFn cyAmIEZCX01NQVBfV0FfRElTQUJMRSk7CiB9CiAKIHN0YXRpYyBib29sIGludGVsX2ZiY19jYW5f YWN0aXZhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCkBAIC04MTYsNiArODI0LDExIEBAIHN0 YXRpYyBib29sIGludGVsX2ZiY19jYW5fYWN0aXZhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMp CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKKwlpZiAobmVlZF9tbWFwX2Rpc2FibGVfd29ya2Fyb3Vu ZChmYmMpKSB7CisJCWZiYy0+bm9fZmJjX3JlYXNvbiA9ICJGQiBpcyBDUFUgb3IgV0MgbW1hcHBl ZCI7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTAwOCw2 ICsxMDIxLDI2IEBAIG91dDoKIAltdXRleF91bmxvY2soJmZiYy0+bG9jayk7CiB9CiAKK3ZvaWQg aW50ZWxfZmJjX21tYXBfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkg ICAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsIHVuc2lnbmVkIGludCBmbGFncykK K3sKKwlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2X3ByaXYtPmZiYzsKKworCWlmICghZmJj X3N1cHBvcnRlZChkZXZfcHJpdikpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZiYy0+bG9j ayk7CisKKwlpZiAoZmJjLT5lbmFibGVkICYmCisJICAgIChpbnRlbF9mYmNfZ2V0X2Zyb250YnVm ZmVyX2JpdChmYmMpICYgZnJvbnRidWZmZXJfYml0cykpIHsKKwkJZmJjLT5zdGF0ZV9jYWNoZS5m Yi5tbWFwX3dhX2ZsYWdzID0gZmxhZ3M7CisJCWlmIChuZWVkX21tYXBfZGlzYWJsZV93b3JrYXJv dW5kKGZiYykpCisJCQlpbnRlbF9mYmNfZGVhY3RpdmF0ZShkZXZfcHJpdik7CisJfQorCisJbXV0 ZXhfdW5sb2NrKCZmYmMtPmxvY2spOworfQorCiAvKioKICAqIGludGVsX2ZiY19jaG9vc2VfY3J0 YyAtIHNlbGVjdCBhIENSVEMgdG8gZW5hYmxlIEZCQyBvbgogICogQGRldl9wcml2OiBpOTE1IGRl dmljZSBpbnN0YW5jZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJv bnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMKaW5k ZXggYWM4NTM1Ny4uMDE0ODNlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZnJvbnRidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1 ZmZlci5jCkBAIC0yNDEsMyArMjQxLDM1IEBAIHZvaWQgaW50ZWxfZnJvbnRidWZmZXJfZmxpcChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJaW50ZWxfZnJvbnRidWZmZXJfZmx1c2goZGV2LCBm cm9udGJ1ZmZlcl9iaXRzLCBPUklHSU5fRkxJUCk7CiB9CisKKy8qKgorICogaW50ZWxfZmJfb2Jq X21tYXBfd2EgLSBub3RpZmllcyBhYm91dCBvYmplY3RzIGJlaW5nIG1tYXBwZWQKKyAqIEBvYmo6 IEdFTSBvYmplY3QgYmVpbmcgbW1hcHBlZAorICogQGZsYWdzOiBuZXcgZmxhZ3MgdG8gYmUgc2V0 IHRvIEBvYmoKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW5ldmVyIGFuIG9i amVjdCBnZXRzIG1tYXBwZWQuIE5vdCBldmVyeSB1c2VyCisgKiBzcGFjZSBhcHBsaWNhdGlvbiBm b2xsb3dzIHRoZSBwcm90b2NvbCBhc3N1bWVkIGJ5IHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZwor ICogc3Vic3lzdGVtIHdoZW4gaXQgd2FzIGNyZWF0ZWQsIHNvIHRoaXMgbW1hcCBub3RpZnkgY2Fs bGJhY2sgY2FuIGJlIHVzZWQgdG8KKyAqIGNvbXBsZXRlbHkgZGlzYWJsZSBmcm9udGJ1ZmZlciBm ZWF0dXJlcyBzdWNoIGFzIEZCQyBhbmQgUFNSLiBFdmVuIGlmIGF0IHNvbWUKKyAqIHBvaW50IHdl IGZpeCBldmVyIHVzZXIgc3BhY2UgYXBwbGljYXRpb24sIHRoZXJlJ3Mgc3RpbGwgdGhlIHBvc3Np YmlsaXR5IHRoYXQKKyAqIHRoZSB1c2VyIG1heSBoYXZlIGEgbmV3IEtlcm5lbCB3aXRoIHRoZSBv bGQgdXNlciBzcGFjZS4KKyAqCisgKiBBbHNvIG5vdGljZSB0aGF0IHRoZXJlJ3Mgbm8gbXVubWFw IEFQSSBiZWNhdXNlIHVzZXIgc3BhY2UgY2FsbHMgbXVubWFwKCkKKyAqIGRpcmVjdGx5LiBFdmVu IGlmIHdlIGhhZCwgaXQgcHJvYmFibHkgd291bGRuJ3QgaGVscCBzaW5jZSBtdW5tYXAoKSBjYWxs cyBhcmUKKyAqIG5vdCBjb21tb24uCisgKi8KK3ZvaWQgaW50ZWxfZmJfb2JqX21tYXBfd2Eoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+YmFzZS5kZXYtPmRldl9wcml2 YXRlOworCisJaWYgKCFJU19TS1lMQUtFKGRldl9wcml2KSkKKwkJcmV0dXJuOworCisJb2JqLT5m Yl9tbWFwX3dhX2ZsYWdzIHw9IGZsYWdzOworCisJaWYgKCFvYmotPmZyb250YnVmZmVyX2JpdHMp CisJCXJldHVybjsKKworCWludGVsX2ZiY19tbWFwX3dhKGRldl9wcml2LCBvYmotPmZyb250YnVm ZmVyX2JpdHMsCisJCQkgIG9iai0+ZmJfbW1hcF93YV9mbGFncyk7Cit9Ci0tIAoyLjcuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==