From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH] drm/virtio: switch to generic fbdev emulation Date: Thu, 13 Dec 2018 14:49:15 +0100 Message-ID: <20181213134915.24722-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8F4466EE43 for ; Thu, 13 Dec 2018 13:49:17 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: David Airlie , open list , Gerd Hoffmann , "open list:VIRTIO GPU DRIVER" List-Id: dri-devel@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oICAgICB8ICAxNCAtLS0KIGRyaXZlcnMv Z3B1L2RybS92aXJ0aW8vdmlydGdwdV9kaXNwbGF5LmMgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJt L3ZpcnRpby92aXJ0Z3B1X2Rydi5jICAgICB8ICAgOSArLQogZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2ZiLmMgICAgICB8IDE5MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21zLmMgICAgIHwgICA4IC0tCiA1IGZp bGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMjE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS92aXJ0aW8vdmlydGdwdV9kcnYuaAppbmRleCAxZGViNDFkNDJlLi42MzcwNDkxNWY4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5oCkBAIC0xMzcsMTkgKzEzNywxMCBAQCBzdHJ1 Y3QgdmlydGlvX2dwdV9mcmFtZWJ1ZmZlciB7CiAjZGVmaW5lIHRvX3ZpcnRpb19ncHVfZnJhbWVi dWZmZXIoeCkgXAogCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgdmlydGlvX2dwdV9mcmFtZWJ1ZmZl ciwgYmFzZSkKIAotc3RydWN0IHZpcnRpb19ncHVfZmJkZXYgewotCXN0cnVjdCBkcm1fZmJfaGVs cGVyICAgICAgICAgICBoZWxwZXI7Ci0Jc3RydWN0IHZpcnRpb19ncHVfZnJhbWVidWZmZXIgIHZn ZmI7Ci0Jc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICAgICAgICp2Z2RldjsKLQlzdHJ1Y3QgZGVs YXllZF93b3JrICAgICAgICAgICAgd29yazsKLX07Ci0KIHN0cnVjdCB2aXJ0aW9fZ3B1X21tYW4g ewogCXN0cnVjdCB0dG1fYm9fZGV2aWNlCQliZGV2OwogfTsKIAotc3RydWN0IHZpcnRpb19ncHVf ZmJkZXY7Ci0KIHN0cnVjdCB2aXJ0aW9fZ3B1X3F1ZXVlIHsKIAlzdHJ1Y3QgdmlydHF1ZXVlICp2 cTsKIAlzcGlubG9ja190IHFsb2NrOwpAQCAtMTgwLDggKzE3MSw2IEBAIHN0cnVjdCB2aXJ0aW9f Z3B1X2RldmljZSB7CiAKIAlzdHJ1Y3QgdmlydGlvX2dwdV9tbWFuIG1tYW47CiAKLQkvKiBwb2lu dGVyIHRvIGZiZGV2IGluZm8gc3RydWN0dXJlICovCi0Jc3RydWN0IHZpcnRpb19ncHVfZmJkZXYg KnZnZmJkZXY7CiAJc3RydWN0IHZpcnRpb19ncHVfb3V0cHV0IG91dHB1dHNbVklSVElPX0dQVV9N QVhfU0NBTk9VVFNdOwogCXVpbnQzMl90IG51bV9zY2Fub3V0czsKIApAQCAtMjQ5LDkgKzIzOCw2 IEBAIGludCB2aXJ0aW9fZ3B1X21vZGVfZHVtYl9tbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LAogCQkJICAgICAgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCAqb2Zmc2V0X3ApOwogCiAv KiB2aXJ0aW9fZmIgKi8KLSNkZWZpbmUgVklSVElPX0dQVUZCX0NPTk5fTElNSVQgMQotaW50IHZp cnRpb19ncHVfZmJkZXZfaW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2KTsKLXZv aWQgdmlydGlvX2dwdV9mYmRldl9maW5pKHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYp OwogaW50IHZpcnRpb19ncHVfc3VyZmFjZV9kaXJ0eShzdHJ1Y3QgdmlydGlvX2dwdV9mcmFtZWJ1 ZmZlciAqcWZiLAogCQkJICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCiAJCQkgICAg IHVuc2lnbmVkIGludCBudW1fY2xpcHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zp cnRpby92aXJ0Z3B1X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9k aXNwbGF5LmMKaW5kZXggYjU1ODBiMTFhMC4uZTFjMjIzZTE4ZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfZGlzcGxheS5jCkBAIC0zOTAsNiArMzkwLDUgQEAgdm9pZCB2aXJ0aW9f Z3B1X21vZGVzZXRfZmluaShzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2KQogCiAJZm9y IChpID0gMCA7IGkgPCB2Z2Rldi0+bnVtX3NjYW5vdXRzOyArK2kpCiAJCWtmcmVlKHZnZGV2LT5v dXRwdXRzW2ldLmVkaWQpOwotCXZpcnRpb19ncHVfZmJkZXZfZmluaSh2Z2Rldik7CiAJZHJtX21v ZGVfY29uZmlnX2NsZWFudXAodmdkZXYtPmRkZXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0 Z3B1X2Rydi5jCmluZGV4IGY3ZjMyYTg4NWEuLjdkZjUwOTIwYzEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmly dGlvL3ZpcnRncHVfZHJ2LmMKQEAgLTQyLDEzICs0MiwyMCBAQCBtb2R1bGVfcGFyYW1fbmFtZWQo bW9kZXNldCwgdmlydGlvX2dwdV9tb2Rlc2V0LCBpbnQsIDA0MDApOwogCiBzdGF0aWMgaW50IHZp cnRpb19ncHVfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiB7CisJaW50IHJldDsK KwogCWlmICh2Z2Fjb25fdGV4dF9mb3JjZSgpICYmIHZpcnRpb19ncHVfbW9kZXNldCA9PSAtMSkK IAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAodmlydGlvX2dwdV9tb2Rlc2V0ID09IDApCiAJCXJl dHVybiAtRUlOVkFMOwogCi0JcmV0dXJuIGRybV92aXJ0aW9faW5pdCgmZHJpdmVyLCB2ZGV2KTsK KwlyZXQgPSBkcm1fdmlydGlvX2luaXQoJmRyaXZlciwgdmRldik7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCWRybV9mYmRldl9nZW5lcmljX3NldHVwKHZkZXYtPnByaXYsIDMyKTsKKwly ZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgdmlydGlvX2dwdV9yZW1vdmUoc3RydWN0IHZpcnRp b19kZXZpY2UgKnZkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRn cHVfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mYi5jCmluZGV4IGZiMWNj OGIyZjEuLmIwNzU4NGIxYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmly dGdwdV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9mYi5jCkBAIC0y Nyw4ICsyNyw2IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlICJ2 aXJ0Z3B1X2Rydi5oIgogCi0jZGVmaW5lIFZJUlRJT19HUFVfRkJDT05fUE9MTF9QRVJJT0QgKEha IC8gNjApCi0KIHN0YXRpYyBpbnQgdmlydGlvX2dwdV9kaXJ0eV91cGRhdGUoc3RydWN0IHZpcnRp b19ncHVfZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgIGJvb2wgc3RvcmUsIGludCB4LCBpbnQgeSwK IAkJCQkgICBpbnQgd2lkdGgsIGludCBoZWlnaHQpCkBAIC0xNTAsMTkyICsxNDgsMyBAQCBpbnQg dmlydGlvX2dwdV9zdXJmYWNlX2RpcnR5KHN0cnVjdCB2aXJ0aW9fZ3B1X2ZyYW1lYnVmZmVyICp2 Z2ZiLAogCQkJCSAgICAgIGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApOwog CXJldHVybiAwOwogfQotCi1zdGF0aWMgdm9pZCB2aXJ0aW9fZ3B1X2ZiX2RpcnR5X3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBkZWxheWVkX3dvcmsgKmRlbGF5ZWRf d29yayA9IHRvX2RlbGF5ZWRfd29yayh3b3JrKTsKLQlzdHJ1Y3QgdmlydGlvX2dwdV9mYmRldiAq dmZiZGV2ID0KLQkJY29udGFpbmVyX29mKGRlbGF5ZWRfd29yaywgc3RydWN0IHZpcnRpb19ncHVf ZmJkZXYsIHdvcmspOwotCXN0cnVjdCB2aXJ0aW9fZ3B1X2ZyYW1lYnVmZmVyICp2Z2ZiID0gJnZm YmRldi0+dmdmYjsKLQotCXZpcnRpb19ncHVfZGlydHlfdXBkYXRlKCZ2ZmJkZXYtPnZnZmIsIGZh bHNlLCB2Z2ZiLT54MSwgdmdmYi0+eTEsCi0JCQkJdmdmYi0+eDIgLSB2Z2ZiLT54MSwgdmdmYi0+ eTIgLSB2Z2ZiLT55MSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHZpcnRpb19ncHVfM2RfZmlsbHJlY3Qo c3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkJICAgY29uc3Qgc3RydWN0IGZiX2ZpbGxyZWN0ICpy ZWN0KQotewotCXN0cnVjdCB2aXJ0aW9fZ3B1X2ZiZGV2ICp2ZmJkZXYgPSBpbmZvLT5wYXI7Ci0K LQlkcm1fZmJfaGVscGVyX3N5c19maWxscmVjdChpbmZvLCByZWN0KTsKLQl2aXJ0aW9fZ3B1X2Rp cnR5X3VwZGF0ZSgmdmZiZGV2LT52Z2ZiLCB0cnVlLCByZWN0LT5keCwgcmVjdC0+ZHksCi0JCQkg ICAgIHJlY3QtPndpZHRoLCByZWN0LT5oZWlnaHQpOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm dmZiZGV2LT53b3JrLCBWSVJUSU9fR1BVX0ZCQ09OX1BPTExfUEVSSU9EKTsKLX0KLQotc3RhdGlj IHZvaWQgdmlydGlvX2dwdV8zZF9jb3B5YXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKLQkJCQkg ICBjb25zdCBzdHJ1Y3QgZmJfY29weWFyZWEgKmFyZWEpCi17Ci0Jc3RydWN0IHZpcnRpb19ncHVf ZmJkZXYgKnZmYmRldiA9IGluZm8tPnBhcjsKLQotCWRybV9mYl9oZWxwZXJfc3lzX2NvcHlhcmVh KGluZm8sIGFyZWEpOwotCXZpcnRpb19ncHVfZGlydHlfdXBkYXRlKCZ2ZmJkZXYtPnZnZmIsIHRy dWUsIGFyZWEtPmR4LCBhcmVhLT5keSwKLQkJCSAgIGFyZWEtPndpZHRoLCBhcmVhLT5oZWlnaHQp OwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdmZiZGV2LT53b3JrLCBWSVJUSU9fR1BVX0ZCQ09O X1BPTExfUEVSSU9EKTsKLX0KLQotc3RhdGljIHZvaWQgdmlydGlvX2dwdV8zZF9pbWFnZWJsaXQo c3RydWN0IGZiX2luZm8gKmluZm8sCi0JCQkJICAgIGNvbnN0IHN0cnVjdCBmYl9pbWFnZSAqaW1h Z2UpCi17Ci0Jc3RydWN0IHZpcnRpb19ncHVfZmJkZXYgKnZmYmRldiA9IGluZm8tPnBhcjsKLQot CWRybV9mYl9oZWxwZXJfc3lzX2ltYWdlYmxpdChpbmZvLCBpbWFnZSk7Ci0JdmlydGlvX2dwdV9k aXJ0eV91cGRhdGUoJnZmYmRldi0+dmdmYiwgdHJ1ZSwgaW1hZ2UtPmR4LCBpbWFnZS0+ZHksCi0J CQkgICAgIGltYWdlLT53aWR0aCwgaW1hZ2UtPmhlaWdodCk7Ci0Jc2NoZWR1bGVfZGVsYXllZF93 b3JrKCZ2ZmJkZXYtPndvcmssIFZJUlRJT19HUFVfRkJDT05fUE9MTF9QRVJJT0QpOwotfQotCi1z dGF0aWMgc3RydWN0IGZiX29wcyB2aXJ0aW9fZ3B1ZmJfb3BzID0gewotCS5vd25lciA9IFRISVNf TU9EVUxFLAotCURSTV9GQl9IRUxQRVJfREVGQVVMVF9PUFMsCi0JLmZiX2ZpbGxyZWN0ID0gdmly dGlvX2dwdV8zZF9maWxscmVjdCwKLQkuZmJfY29weWFyZWEgPSB2aXJ0aW9fZ3B1XzNkX2NvcHlh cmVhLAotCS5mYl9pbWFnZWJsaXQgPSB2aXJ0aW9fZ3B1XzNkX2ltYWdlYmxpdCwKLX07Ci0KLXN0 YXRpYyBpbnQgdmlydGlvX2dwdWZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVy LAotCQkJICAgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpCi17 Ci0Jc3RydWN0IHZpcnRpb19ncHVfZmJkZXYgKnZmYmRldiA9Ci0JCWNvbnRhaW5lcl9vZihoZWxw ZXIsIHN0cnVjdCB2aXJ0aW9fZ3B1X2ZiZGV2LCBoZWxwZXIpOwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBoZWxwZXItPmRldjsKLQlzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKLQlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYjsKLQlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2NtZCA9IHt9Owot CXN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCAqb2JqOwotCXVpbnQzMl90IGZvcm1hdCwgc2l6ZTsK LQlpbnQgcmV0OwotCi0JbW9kZV9jbWQud2lkdGggPSBzaXplcy0+c3VyZmFjZV93aWR0aDsKLQlt b2RlX2NtZC5oZWlnaHQgPSBzaXplcy0+c3VyZmFjZV9oZWlnaHQ7Ci0JbW9kZV9jbWQucGl0Y2hl c1swXSA9IG1vZGVfY21kLndpZHRoICogNDsKLQltb2RlX2NtZC5waXhlbF9mb3JtYXQgPSBEUk1f Rk9STUFUX0hPU1RfWFJHQjg4ODg7Ci0KLQlmb3JtYXQgPSB2aXJ0aW9fZ3B1X3RyYW5zbGF0ZV9m b3JtYXQobW9kZV9jbWQucGl4ZWxfZm9ybWF0KTsKLQlpZiAoZm9ybWF0ID09IDApCi0JCXJldHVy biAtRUlOVkFMOwotCi0Jc2l6ZSA9IG1vZGVfY21kLnBpdGNoZXNbMF0gKiBtb2RlX2NtZC5oZWln aHQ7Ci0Jb2JqID0gdmlydGlvX2dwdV9hbGxvY19vYmplY3QoZGV2LCBzaXplLCBmYWxzZSwgdHJ1 ZSk7Ci0JaWYgKElTX0VSUihvYmopKQotCQlyZXR1cm4gUFRSX0VSUihvYmopOwotCi0JdmlydGlv X2dwdV9jbWRfY3JlYXRlX3Jlc291cmNlKHZnZGV2LCBvYmosIGZvcm1hdCwKLQkJCQkgICAgICAg bW9kZV9jbWQud2lkdGgsIG1vZGVfY21kLmhlaWdodCk7Ci0KLQlyZXQgPSB2aXJ0aW9fZ3B1X29i amVjdF9rbWFwKG9iaik7Ci0JaWYgKHJldCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byBrbWFw IGZiICVkXG4iLCByZXQpOwotCQlnb3RvIGVycl9vYmpfdm1hcDsKLQl9Ci0KLQkvKiBhdHRhY2gg dGhlIG9iamVjdCB0byB0aGUgcmVzb3VyY2UgKi8KLQlyZXQgPSB2aXJ0aW9fZ3B1X29iamVjdF9h dHRhY2godmdkZXYsIG9iaiwgTlVMTCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfb2JqX2F0dGFj aDsKLQotCWluZm8gPSBkcm1fZmJfaGVscGVyX2FsbG9jX2ZiaShoZWxwZXIpOwotCWlmIChJU19F UlIoaW5mbykpIHsKLQkJcmV0ID0gUFRSX0VSUihpbmZvKTsKLQkJZ290byBlcnJfZmJfYWxsb2M7 Ci0JfQotCi0JaW5mby0+cGFyID0gaGVscGVyOwotCi0JcmV0ID0gdmlydGlvX2dwdV9mcmFtZWJ1 ZmZlcl9pbml0KGRldiwgJnZmYmRldi0+dmdmYiwKLQkJCQkJICAmbW9kZV9jbWQsICZvYmotPmdl bV9iYXNlKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9mYl9hbGxvYzsKLQotCWZiID0gJnZmYmRl di0+dmdmYi5iYXNlOwotCi0JdmZiZGV2LT5oZWxwZXIuZmIgPSBmYjsKLQotCXN0cmNweShpbmZv LT5maXguaWQsICJ2aXJ0aW9kcm1mYiIpOwotCWluZm8tPmZib3BzID0gJnZpcnRpb19ncHVmYl9v cHM7Ci0JaW5mby0+cGl4bWFwLmZsYWdzID0gRkJfUElYTUFQX1NZU1RFTTsKLQotCWluZm8tPnNj cmVlbl9idWZmZXIgPSBvYmotPnZtYXA7Ci0JaW5mby0+c2NyZWVuX3NpemUgPSBvYmotPmdlbV9i YXNlLnNpemU7Ci0JZHJtX2ZiX2hlbHBlcl9maWxsX2ZpeChpbmZvLCBmYi0+cGl0Y2hlc1swXSwg ZmItPmZvcm1hdC0+ZGVwdGgpOwotCWRybV9mYl9oZWxwZXJfZmlsbF92YXIoaW5mbywgJnZmYmRl di0+aGVscGVyLAotCQkJICAgICAgIHNpemVzLT5mYl93aWR0aCwgc2l6ZXMtPmZiX2hlaWdodCk7 Ci0KLQlpbmZvLT5maXgubW1pb19zdGFydCA9IDA7Ci0JaW5mby0+Zml4Lm1taW9fbGVuID0gMDsK LQlyZXR1cm4gMDsKLQotZXJyX2ZiX2FsbG9jOgotCXZpcnRpb19ncHVfb2JqZWN0X2RldGFjaCh2 Z2Rldiwgb2JqKTsKLWVycl9vYmpfYXR0YWNoOgotZXJyX29ial92bWFwOgotCXZpcnRpb19ncHVf Z2VtX2ZyZWVfb2JqZWN0KCZvYmotPmdlbV9iYXNlKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0 aWMgaW50IHZpcnRpb19ncHVfZmJkZXZfZGVzdHJveShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAot CQkJCSAgICBzdHJ1Y3QgdmlydGlvX2dwdV9mYmRldiAqdmdmYmRldikKLXsKLQlzdHJ1Y3Qgdmly dGlvX2dwdV9mcmFtZWJ1ZmZlciAqdmdmYiA9ICZ2Z2ZiZGV2LT52Z2ZiOwotCi0JZHJtX2ZiX2hl bHBlcl91bnJlZ2lzdGVyX2ZiaSgmdmdmYmRldi0+aGVscGVyKTsKLQotCWlmICh2Z2ZiLT5iYXNl Lm9ialswXSkKLQkJdmdmYi0+YmFzZS5vYmpbMF0gPSBOVUxMOwotCWRybV9mYl9oZWxwZXJfZmlu aSgmdmdmYmRldi0+aGVscGVyKTsKLQlkcm1fZnJhbWVidWZmZXJfY2xlYW51cCgmdmdmYi0+YmFz ZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9m dW5jcyB2aXJ0aW9fZ3B1X2ZiX2hlbHBlcl9mdW5jcyA9IHsKLQkuZmJfcHJvYmUgPSB2aXJ0aW9f Z3B1ZmJfY3JlYXRlLAotfTsKLQotaW50IHZpcnRpb19ncHVfZmJkZXZfaW5pdChzdHJ1Y3Qgdmly dGlvX2dwdV9kZXZpY2UgKnZnZGV2KQotewotCXN0cnVjdCB2aXJ0aW9fZ3B1X2ZiZGV2ICp2Z2Zi ZGV2OwotCWludCBicHBfc2VsID0gMzI7IC8qIFRPRE86IHBhcmFtZXRlciBmcm9tIHNvbWV3aGVy ZT8gKi8KLQlpbnQgcmV0OwotCi0JdmdmYmRldiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB2aXJ0 aW9fZ3B1X2ZiZGV2KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCF2Z2ZiZGV2KQotCQlyZXR1cm4gLUVO T01FTTsKLQotCXZnZmJkZXYtPnZnZGV2ID0gdmdkZXY7Ci0JdmdkZXYtPnZnZmJkZXYgPSB2Z2Zi ZGV2OwotCUlOSVRfREVMQVlFRF9XT1JLKCZ2Z2ZiZGV2LT53b3JrLCB2aXJ0aW9fZ3B1X2ZiX2Rp cnR5X3dvcmspOwotCi0JZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKHZnZGV2LT5kZGV2LCAmdmdmYmRl di0+aGVscGVyLAotCQkJICAgICAgJnZpcnRpb19ncHVfZmJfaGVscGVyX2Z1bmNzKTsKLQlyZXQg PSBkcm1fZmJfaGVscGVyX2luaXQodmdkZXYtPmRkZXYsICZ2Z2ZiZGV2LT5oZWxwZXIsCi0JCQkJ IFZJUlRJT19HUFVGQl9DT05OX0xJTUlUKTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVlKHZnZmJkZXYp OwotCQlyZXR1cm4gcmV0OwotCX0KLQotCWRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29u bmVjdG9ycygmdmdmYmRldi0+aGVscGVyKTsKLQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmln KCZ2Z2ZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwotCXJldHVybiAwOwotfQotCi12b2lkIHZpcnRp b19ncHVfZmJkZXZfZmluaShzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2KQotewotCWlm ICghdmdkZXYtPnZnZmJkZXYpCi0JCXJldHVybjsKLQotCXZpcnRpb19ncHVfZmJkZXZfZGVzdHJv eSh2Z2Rldi0+ZGRldiwgdmdkZXYtPnZnZmJkZXYpOwotCWtmcmVlKHZnZGV2LT52Z2ZiZGV2KTsK LQl2Z2Rldi0+dmdmYmRldiA9IE5VTEw7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmlydGlvL3ZpcnRncHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfa21z LmMKaW5kZXggM2FmNjE4MWMwNS4uMTA3MjA2NGEwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmly dGdwdV9rbXMuYwpAQCAtMjgsMTEgKzI4LDYgQEAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2lu Y2x1ZGUgInZpcnRncHVfZHJ2LmgiCiAKLXN0YXRpYyBpbnQgdmlydGlvX2dwdV9mYmRldiA9IDE7 Ci0KLU1PRFVMRV9QQVJNX0RFU0MoZmJkZXYsICJEaXNhYmxlL0VuYWJsZSBmcmFtZWJ1ZmZlciBk ZXZpY2UgJiBjb25zb2xlIik7Ci1tb2R1bGVfcGFyYW1fbmFtZWQoZmJkZXYsIHZpcnRpb19ncHVf ZmJkZXYsIGludCwgMDQwMCk7Ci0KIHN0YXRpYyB2b2lkIHZpcnRpb19ncHVfY29uZmlnX2NoYW5n ZWRfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgdmlydGlv X2dwdV9kZXZpY2UgKnZnZGV2ID0KQEAgLTIxMiw5ICsyMDcsNiBAQCBpbnQgdmlydGlvX2dwdV9k cml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQog CXZpcnRpb19ncHVfY21kX2dldF9kaXNwbGF5X2luZm8odmdkZXYpOwogCXdhaXRfZXZlbnRfdGlt ZW91dCh2Z2Rldi0+cmVzcF93cSwgIXZnZGV2LT5kaXNwbGF5X2luZm9fcGVuZGluZywKIAkJCSAg IDUgKiBIWik7Ci0JaWYgKHZpcnRpb19ncHVfZmJkZXYpCi0JCXZpcnRpb19ncHVfZmJkZXZfaW5p dCh2Z2Rldik7Ci0KIAlyZXR1cm4gMDsKIAogZXJyX21vZGVzZXQ6Ci0tIAoyLjkuMwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==