From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 8/8] drm/i915: Pipeline PDP updates for Braswell Date: Mon, 3 Dec 2018 11:37:01 +0000 Message-ID: <20181203113701.12106-8-chris@chris-wilson.co.uk> References: <20181203113701.12106-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9AA7089CF7 for ; Mon, 3 Dec 2018 11:38:56 +0000 (UTC) In-Reply-To: <20181203113701.12106-1-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHdlIGZhY2UgYSBzZXZlcmUgcHJvYmxlbSBvbiBCcmFzd2VsbCB0aGF0IG1hbmlm ZXN0cyBhcyBpbnZhbGlkCnBwR1RUIGFjY2Vzc2VzLiBUaGUgY29kZSB0cmllcyB0byBtYWludGFp biB0aGUgUERQIChwYWdlIGRpcmVjdG9yeQpwb2ludGVycykgaW5zaWRlIHRoZSBjb250ZXh0IGlu IHR3byB3YXlzLCBkaXJlY3Qgd3JpdGUgaW50byB0aGUgY29udGV4dAphbmQgYSBwaXBlbGluZWQg TFJJIHVwZGF0ZS4gVGhlIGRpcmVjdCB3cml0ZSBpbnRvIHRoZSBjb250ZXh0IGlzCmZ1bmRhbWVu dGFsbHkgcmFjeSBhcyBpdCBpcyB1bnNlcmlhbGlzZWQgd2l0aCBhbnkgYWNjZXNzIChyZWFkIG9y IHdyaXRlKQp0aGUgR1BVIGlzIGRvaW5nLiBCeSBhc3NlcnRpbmcgdGhhdCBCcmFzd2VsbCBpcyBu b3QgdXNlZCB3aXRoIHZHUFUKKGN1cnJlbnRseSBhbiB1bnN1cHBvcnRlZCBwbGF0Zm9ybSkgd2Ug Y2FuIGVsaW1pbmF0ZSB0aGUgZGFuZ2Vyb3VzCmRpcmVjdCB3cml0ZSBpbnRvIHRoZSBjb250ZXh0 IGltYWdlIGFuZCBzb2xlbHkgdXNlIHRoZSBwaXBlbGluZWQgdXBkYXRlLgoKSG93ZXZlciwgdGhl IExSSSBvZiB0aGUgUERQIGZvdWxzIHVwIHRoZSBHUFUsIGNhdXNpbmcgaXQgdG8gZnJlZXplIGFu ZAp0YWtlIG91dCB0aGUgbWFjaGluZSB3aXRoICJmb3JjZXdha2UgYWNrIHRpbWVvdXRzIi4gVGhp cyBzZWVtcyBwb3NzaWJsZQp0byB3b3JrYXJvdW5kIGJ5IHByZXZlbnRpbmcgdGhlIEdQVSBmcm9t IHNsZWVwaW5nICh2aWEgbWVhbnMgb2YKZGlzYWJsaW5nIHRoZSBwb3dlci1zdGF0ZSBtYW5hZ2Vt ZW50IGludGVyZmFjZSwgaS5lLiBmb3JjaW5nIGVhY2ggcmluZwp0byByZW1haW4gYXdha2UpIGFy b3VuZCB0aGUgdXBkYXRlLgoKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcv c2hvd19idWcuY2dpP2lkPTEwODY1NgpSZWZlcmVuY2VzOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3MTQKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j ICAgICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgfCAg IDUgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMTM3ICsrKysr KysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jIHwgICA1ICstCiA0IGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDgxIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggYWRkMWZlN2FlYjkz Li42MmJkZTUxN2QzODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xNDIz LDggKzE0MjMsNiBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGRwKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJZ2VuOF9pbml0aWFsaXplX3BkKHZtLCBwZCk7CiAJCQln ZW44X3BwZ3R0X3NldF9wZHBlKHZtLCBwZHAsIHBkLCBwZHBlKTsKIAkJCUdFTV9CVUdfT04ocGRw LT51c2VkX3BkcGVzID4gaTkxNV9wZHBlc19wZXJfcGRwKHZtKSk7Ci0KLQkJCW1hcmtfdGxic19k aXJ0eShpOTE1X3ZtX3RvX3BwZ3R0KHZtKSk7CiAJCX0KIAogCQlyZXQgPSBnZW44X3BwZ3R0X2Fs bG9jX3BkKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVz dC5jCmluZGV4IGNhOTVhYjJmNGNmYS4uOGFiOGU4ZTZhMDg2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuYwpAQCAtNzE5LDExICs3MTksNiBAQCBpOTE1X3JlcXVlc3RfYWxsb2Moc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 KQogCSAqLwogCXJxLT5oZWFkID0gcnEtPnJpbmctPmVtaXQ7CiAKLQkvKiBVbmNvbmRpdGlvbmFs bHkgaW52YWxpZGF0ZSBHUFUgY2FjaGVzIGFuZCBUTEJzLiAqLwotCXJldCA9IGVuZ2luZS0+ZW1p dF9mbHVzaChycSwgRU1JVF9JTlZBTElEQVRFKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91bndp bmQ7Ci0KIAlyZXQgPSBlbmdpbmUtPnJlcXVlc3RfYWxsb2MocnEpOwogCWlmIChyZXQpCiAJCWdv dG8gZXJyX3Vud2luZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggZGUwNzBkY2E0MDMz Li4xZWMzZjgwYTQ0NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0zNjMsMzEgKzM2 MywxMiBAQCBleGVjbGlzdHNfY29udGV4dF9zY2hlZHVsZV9vdXQoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsIHVuc2lnbmVkIGxvbmcgc3RhdHVzKQogCXRyYWNlX2k5MTVfcmVxdWVzdF9vdXQocnEp OwogfQogCi1zdGF0aWMgdm9pZAotZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0X3BkcHMoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1MzIgKnJlZ19zdGF0ZSkKLXsKLQlBU1NJR05fQ1RYX1BE UChwcGd0dCwgcmVnX3N0YXRlLCAzKTsKLQlBU1NJR05fQ1RYX1BEUChwcGd0dCwgcmVnX3N0YXRl LCAyKTsKLQlBU1NJR05fQ1RYX1BEUChwcGd0dCwgcmVnX3N0YXRlLCAxKTsKLQlBU1NJR05fQ1RY X1BEUChwcGd0dCwgcmVnX3N0YXRlLCAwKTsKLX0KLQogc3RhdGljIHU2NCBleGVjbGlzdHNfdXBk YXRlX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGk5MTVfaHdf cHBndHQgKnBwZ3R0ID0gcnEtPmdlbV9jb250ZXh0LT5wcGd0dDsKIAlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY2UgPSBycS0+aHdfY29udGV4dDsKLQl1MzIgKnJlZ19zdGF0ZSA9IGNlLT5scmNfcmVn X3N0YXRlOwotCi0JcmVnX3N0YXRlW0NUWF9SSU5HX1RBSUwrMV0gPSBpbnRlbF9yaW5nX3NldF90 YWlsKHJxLT5yaW5nLCBycS0+dGFpbCk7CiAKLQkvKgotCSAqIFRydWUgMzJiIFBQR1RUIHdpdGgg ZHluYW1pYyBwYWdlIGFsbG9jYXRpb246IHVwZGF0ZSBQRFAKLQkgKiByZWdpc3RlcnMgYW5kIHBv aW50IHRoZSB1bmFsbG9jYXRlZCBQRFBzIHRvIHNjcmF0Y2ggcGFnZS4KLQkgKiBQTUw0IGlzIGFs bG9jYXRlZCBkdXJpbmcgcHBndHQgaW5pdCwgc28gdGhpcyBpcyBub3QgbmVlZGVkCi0JICogaW4g NDgtYml0IG1vZGUuCi0JICovCi0JaWYgKCFpOTE1X3ZtX2lzXzQ4Yml0KCZwcGd0dC0+dm0pKQot CQlleGVjbGlzdHNfdXBkYXRlX2NvbnRleHRfcGRwcyhwcGd0dCwgcmVnX3N0YXRlKTsKKwljZS0+ bHJjX3JlZ19zdGF0ZVtDVFhfUklOR19UQUlMICsgMV0gPQorCQlpbnRlbF9yaW5nX3NldF90YWls KHJxLT5yaW5nLCBycS0+dGFpbCk7CiAKIAkvKgogCSAqIE1ha2Ugc3VyZSB0aGUgY29udGV4dCBp bWFnZSBpcyBjb21wbGV0ZSBiZWZvcmUgd2Ugc3VibWl0IGl0IHRvIEhXLgpAQCAtMTI0MCwyOSAr MTIyMSw4MCBAQCBleGVjbGlzdHNfY29udGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAogCXJldHVybiBfX2V4ZWNsaXN0c19jb250ZXh0X3BpbihlbmdpbmUsIGN0eCwgY2Up OwogfQogCitzdGF0aWMgaW50IGVtaXRfcGRwcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKK3sK Kwljb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lID0gcnEtPmVuZ2lu ZTsKKwlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqIGNvbnN0IHBwZ3R0ID0gcnEtPmdlbV9jb250ZXh0 LT5wcGd0dDsKKwlpbnQgZXJyLCBpOworCXUzMiAqY3M7CisKKwllcnIgPSBlbmdpbmUtPmVtaXRf Zmx1c2gocnEsIEVNSVRfSU5WQUxJREFURSk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwor CWNzID0gaW50ZWxfcmluZ19iZWdpbihycSwgNCAqIEdFTjhfM0xWTF9QRFBFUyArIDIpOworCWlm IChJU19FUlIoY3MpKQorCQlyZXR1cm4gUFRSX0VSUihjcyk7CisKKwkvKgorCSAqIEZvcmNlIHRo ZSBHUFUgKG5vdCBqdXN0IHRoZSBsb2NhbCBlbmdpbmUvcG93ZXJ3ZWxsISkgdG8gcmVtYWluIGF3 YWtlLAorCSAqIG9yIGVsc2Ugd2UgbWF5IGtpbGwgdGhlIG1hY2hpbmUgd2l0aCAidGltZWQgb3V0 IHdhaXRpbmcgZm9yCisJICogZm9yY2V3YWtlIGFjayByZXF1ZXN0Ii4KKwkgKi8KKworCSpjcysr ID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMiAqIEdFTjhfM0xWTF9QRFBFUykgfCBNSV9MUklfRk9S Q0VfUE9TVEVEOworCWZvciAoaSA9IEdFTjhfM0xWTF9QRFBFUzsgaS0tOyApIHsKKwkJY29uc3Qg ZG1hX2FkZHJfdCBwZF9kYWRkciA9IGk5MTVfcGFnZV9kaXJfZG1hX2FkZHIocHBndHQsIGkpOwor CisJCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOF9SSU5HX1BEUF9VRFcoZW5naW5l LCBpKSk7CisJCSpjcysrID0gdXBwZXJfMzJfYml0cyhwZF9kYWRkcik7CisJCSpjcysrID0gaTkx NV9tbWlvX3JlZ19vZmZzZXQoR0VOOF9SSU5HX1BEUF9MRFcoZW5naW5lLCBpKSk7CisJCSpjcysr ID0gbG93ZXJfMzJfYml0cyhwZF9kYWRkcik7CisJfQorCSpjcysrID0gTUlfTk9PUDsKKworCWlu dGVsX3JpbmdfYWR2YW5jZShycSwgY3MpOworCisJZXJyID0gZW5naW5lLT5lbWl0X2ZsdXNoKHJx LCBFTUlUX0lOVkFMSURBVEUpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4g MDsKK30KKwogc3RhdGljIGludCBleGVjbGlzdHNfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpyZXF1ZXN0KQogewogCWludCByZXQ7CiAKIAlHRU1fQlVHX09OKCFyZXF1ZXN0LT5o d19jb250ZXh0LT5waW5fY291bnQpOwogCi0JLyogRmx1c2ggZW5vdWdoIHNwYWNlIHRvIHJlZHVj ZSB0aGUgbGlrZWxpaG9vZCBvZiB3YWl0aW5nIGFmdGVyCisJLyoKKwkgKiBGbHVzaCBlbm91Z2gg c3BhY2UgdG8gcmVkdWNlIHRoZSBsaWtlbGlob29kIG9mIHdhaXRpbmcgYWZ0ZXIKIAkgKiB3ZSBz dGFydCBidWlsZGluZyB0aGUgcmVxdWVzdCAtIGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBqdXN0CiAJ ICogaGF2ZSB0byByZXBlYXQgd29yay4KIAkgKi8KIAlyZXF1ZXN0LT5yZXNlcnZlZF9zcGFjZSAr PSBFWEVDTElTVFNfUkVRVUVTVF9TSVpFOwogCi0JcmV0ID0gaW50ZWxfcmluZ193YWl0X2Zvcl9z cGFjZShyZXF1ZXN0LT5yaW5nLCByZXF1ZXN0LT5yZXNlcnZlZF9zcGFjZSk7Ci0JaWYgKHJldCkK LQkJcmV0dXJuIHJldDsKLQotCS8qIE5vdGUgdGhhdCBhZnRlciB0aGlzIHBvaW50LCB3ZSBoYXZl IGNvbW1pdHRlZCB0byB1c2luZworCS8qCisJICogTm90ZSB0aGF0IGFmdGVyIHRoaXMgcG9pbnQs IHdlIGhhdmUgY29tbWl0dGVkIHRvIHVzaW5nCiAJICogdGhpcyByZXF1ZXN0IGFzIGl0IGlzIGJl aW5nIHVzZWQgdG8gYm90aCB0cmFjayB0aGUKIAkgKiBzdGF0ZSBvZiBlbmdpbmUgaW5pdGlhbGlz YXRpb24gYW5kIGxpdmVuZXNzIG9mIHRoZQogCSAqIGdvbGRlbiByZW5kZXJzdGF0ZSBhYm92ZS4g VGhpbmsgdHdpY2UgYmVmb3JlIHlvdSB0cnkKIAkgKiB0byBjYW5jZWwvdW53aW5kIHRoaXMgcmVx dWVzdCBub3cuCiAJICovCiAKKwkvKiBVbmNvbmRpdGlvbmFsbHkgaW52YWxpZGF0ZSBHUFUgY2Fj aGVzIGFuZCBUTEJzLiAqLworCWlmIChpOTE1X3ZtX2lzXzQ4Yml0KCZyZXF1ZXN0LT5nZW1fY29u dGV4dC0+cHBndHQtPnZtKSkgeworCQlyZXQgPSByZXF1ZXN0LT5lbmdpbmUtPmVtaXRfZmx1c2go cmVxdWVzdCwgRU1JVF9JTlZBTElEQVRFKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJ fSBlbHNlIHsKKwkJR0VNX0JVR19PTihpbnRlbF92Z3B1X2FjdGl2ZShyZXF1ZXN0LT5pOTE1KSk7 CisJCXJldCA9IGVtaXRfcGRwcyhyZXF1ZXN0KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7 CisJfQorCiAJcmVxdWVzdC0+cmVzZXJ2ZWRfc3BhY2UgLT0gRVhFQ0xJU1RTX1JFUVVFU1RfU0la RTsKIAlyZXR1cm4gMDsKIH0KQEAgLTE4MzIsNTYgKzE4NjQsMTEgQEAgc3RhdGljIHZvaWQgZXhl Y2xpc3RzX3Jlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCSAg YXRvbWljX3JlYWQoJmV4ZWNsaXN0cy0+dGFza2xldC5jb3VudCkpOwogfQogCi1zdGF0aWMgaW50 IGludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3BkcHMoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCi17 Ci0Jc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gcnEtPmdlbV9jb250ZXh0LT5wcGd0dDsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwotCWNvbnN0IGlu dCBudW1fbHJpX2NtZHMgPSBHRU44XzNMVkxfUERQRVMgKiAyOwotCXUzMiAqY3M7Ci0JaW50IGk7 Ci0KLQljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIG51bV9scmlfY21kcyAqIDIgKyAyKTsKLQlp ZiAoSVNfRVJSKGNzKSkKLQkJcmV0dXJuIFBUUl9FUlIoY3MpOwotCi0JKmNzKysgPSBNSV9MT0FE X1JFR0lTVEVSX0lNTShudW1fbHJpX2NtZHMpOwotCWZvciAoaSA9IEdFTjhfM0xWTF9QRFBFUyAt IDE7IGkgPj0gMDsgaS0tKSB7Ci0JCWNvbnN0IGRtYV9hZGRyX3QgcGRfZGFkZHIgPSBpOTE1X3Bh Z2VfZGlyX2RtYV9hZGRyKHBwZ3R0LCBpKTsKLQotCQkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zm c2V0KEdFTjhfUklOR19QRFBfVURXKGVuZ2luZSwgaSkpOwotCQkqY3MrKyA9IHVwcGVyXzMyX2Jp dHMocGRfZGFkZHIpOwotCQkqY3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KEdFTjhfUklOR19Q RFBfTERXKGVuZ2luZSwgaSkpOwotCQkqY3MrKyA9IGxvd2VyXzMyX2JpdHMocGRfZGFkZHIpOwot CX0KLQotCSpjcysrID0gTUlfTk9PUDsKLQlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKLQot CXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSwKIAkJCSAgICAgIHU2NCBvZmZzZXQsIHUzMiBsZW4sCiAJCQkgICAgICBj b25zdCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJdTMyICpjczsKLQlpbnQgcmV0OwotCi0JLyog RG9uJ3QgcmVseSBpbiBodyB1cGRhdGluZyBQRFBzLCBzcGVjaWFsbHkgaW4gbGl0ZS1yZXN0b3Jl LgotCSAqIElkZWFsbHksIHdlIHNob3VsZCBzZXQgRm9yY2UgUEQgUmVzdG9yZSBpbiBjdHggZGVz Y3JpcHRvciwKLQkgKiBidXQgd2UgY2FuJ3QuIEZvcmNlIFJlc3RvcmUgd291bGQgYmUgYSBzZWNv bmQgb3B0aW9uLCBidXQKLQkgKiBpdCBpcyB1bnNhZmUgaW4gY2FzZSBvZiBsaXRlLXJlc3RvcmUg KGJlY2F1c2UgdGhlIGN0eCBpcwotCSAqIG5vdCBpZGxlKS4gUE1MNCBpcyBhbGxvY2F0ZWQgZHVy aW5nIHBwZ3R0IGluaXQgc28gdGhpcyBpcwotCSAqIG5vdCBuZWVkZWQgaW4gNDgtYml0LiovCi0J aWYgKChpbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKSAmIHJxLT5nZW1fY29udGV4dC0+cHBn dHQtPnBkX2RpcnR5X3JpbmdzKSAmJgotCSAgICAhaTkxNV92bV9pc180OGJpdCgmcnEtPmdlbV9j b250ZXh0LT5wcGd0dC0+dm0pICYmCi0JICAgICFpbnRlbF92Z3B1X2FjdGl2ZShycS0+aTkxNSkp IHsKLQkJcmV0ID0gaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhycSk7Ci0JCWlmIChyZXQp Ci0JCQlyZXR1cm4gcmV0OwotCi0JCXJxLT5nZW1fY29udGV4dC0+cHBndHQtPnBkX2RpcnR5X3Jp bmdzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhycS0+ZW5naW5lKTsKLQl9CiAKIAljcyA9IGludGVs X3JpbmdfYmVnaW4ocnEsIDYpOwogCWlmIChJU19FUlIoY3MpKQpAQCAtMTkxNCw2ICsxOTAxLDcg QEAgc3RhdGljIGludCBnZW44X2VtaXRfYmJfc3RhcnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs CiAKIAkqY3MrKyA9IE1JX0FSQl9PTl9PRkYgfCBNSV9BUkJfRElTQUJMRTsKIAkqY3MrKyA9IE1J X05PT1A7CisKIAlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKIAogCXJldHVybiAwOwpAQCAt MjU0NCw2ICsyNTMyLDExIEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZSh1 MzIgKnJlZ3MsCiAJCSAqIG90aGVyIFBEUCBEZXNjcmlwdG9ycyBhcmUgaWdub3JlZC4KIAkJICov CiAJCUFTU0lHTl9DVFhfUE1MNChjdHgtPnBwZ3R0LCByZWdzKTsKKwl9IGVsc2UgeworCQlBU1NJ R05fQ1RYX1BEUChjdHgtPnBwZ3R0LCByZWdzLCAzKTsKKwkJQVNTSUdOX0NUWF9QRFAoY3R4LT5w cGd0dCwgcmVncywgMik7CisJCUFTU0lHTl9DVFhfUERQKGN0eC0+cHBndHQsIHJlZ3MsIDEpOwor CQlBU1NJR05fQ1RYX1BEUChjdHgtPnBwZ3R0LCByZWdzLCAwKTsKIAl9CiAKIAlpZiAocmNzKSB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggMzdiZDA1Y2VmMGU5 Li40NTkxZjU2ODU0N2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK QEAgLTE4MzMsMTEgKzE4MzMsMTIgQEAgc3RhdGljIGludCByaW5nX3JlcXVlc3RfYWxsb2Moc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKIAkgKi8KIAlyZXF1ZXN0LT5yZXNlcnZlZF9zcGFj ZSArPSBMRUdBQ1lfUkVRVUVTVF9TSVpFOwogCi0JcmV0ID0gaW50ZWxfcmluZ193YWl0X2Zvcl9z cGFjZShyZXF1ZXN0LT5yaW5nLCByZXF1ZXN0LT5yZXNlcnZlZF9zcGFjZSk7CisJcmV0ID0gc3dp dGNoX2NvbnRleHQocmVxdWVzdCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9 IHN3aXRjaF9jb250ZXh0KHJlcXVlc3QpOworCS8qIFVuY29uZGl0aW9uYWxseSBpbnZhbGlkYXRl IEdQVSBjYWNoZXMgYW5kIFRMQnMuICovCisJcmV0ID0gcmVxdWVzdC0+ZW5naW5lLT5lbWl0X2Zs dXNoKHJlcXVlc3QsIEVNSVRfSU5WQUxJREFURSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAotLSAKMi4yMC4wLnJjMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==