From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 08/22] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() Date: Wed, 14 Oct 2015 19:29:00 +0300 Message-ID: <1444840154-7804-9-git-send-email-ville.syrjala@linux.intel.com> References: <1444840154-7804-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 844B86ED2B for ; Wed, 14 Oct 2015 09:29:48 -0700 (PDT) In-Reply-To: <1444840154-7804-1-git-send-email-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBwYWdlIGFsaWduZWQgc3VyZmFjZSBhZGRyZXNzIGNhbGN1bGF0aW9uIG5lZWRzIHRvIGtub3cg d2hpY2ggd2F5CnRoaW5ncyBhcmUgcm90YXRlZC4gVGhlIGNvbnRyYWN0IG5vdyBzYXlzIHRoYXQg dGhlIGNhbGxlciBtdXN0IHBhc3MgdGhlCnJvdGF0ZSB4L3kgY29vcmRpbmF0ZXMsIGFzIHdlbGwg YXMgdGhlIHRpbGVfaGVpZ2h0IGFsaWduZWQgc3RyaWRlIGluCnRoZSB0aWxlX2hlaWdodCBkaXJl Y3Rpb24uIFRoaXMgd2lsbCBtYWtlIGl0IGZhaXJseSBzaW1wbGUgdG8gZGVhbCB3aXRoCjkwLzI3 MCBkZWdyZWUgcm90YXRpb24gb24gU0tMKyB3aGVyZSB3ZSBoYXZlIHRvIGRlYWwgd2l0aCB0aGUg cm90YXRlZAp2aWV3IGludG8gdGhlIEdUVC4KCnYyOiBQYXNzIHJvdGF0aW9uIGluc3RlYWQgb2Yg Ym9vbCBldmVuIHRob3VnaHdlIG9ubHkgY2FyZSBhYm91dCAwLzE4MCB2cy4gOTAvMjcwCgpTaWdu ZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDYyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8 IDE1ICsrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAxNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNzViZTY2Yi4u YmQ1NWQwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjQ1MSwxMyAr MjQ1MSw1MCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91bnBpbl9mYl9vYmooc3RydWN0IGRybV9mcmFt ZWJ1ZmZlciAqZmIsCiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlzcGxheV9wbGFuZShv YmosICZ2aWV3KTsKIH0KIAotLyogQ29tcHV0ZXMgdGhlIGxpbmVhciBvZmZzZXQgdG8gdGhlIGJh c2UgdGlsZSBhbmQgYWRqdXN0cyB4LCB5LiBieXRlcyBwZXIgcGl4ZWwKLSAqIGlzIGFzc3VtZWQg dG8gYmUgYSBwb3dlci1vZi10d28uICovCisvKgorICogUmV0dXJuIHRoZSB0aWxlIGRpbWVuc2lv bnMgaW4gcGl4ZWwgdW5pdHMgbWF0Y2hpbmcKKyAqIHRoZSBzcGVjaWZpZWQgcm90YXRpb24gYW5n bGUuCisgKi8KK3N0YXRpYyB2b2lkIGludGVsX3JvdGF0ZV90aWxlX2RpbXModW5zaWduZWQgaW50 ICp0aWxlX3dpZHRoLAorCQkJCSAgIHVuc2lnbmVkIGludCAqdGlsZV9oZWlnaHQsCisJCQkJICAg dW5zaWduZWQgaW50ICpwaXRjaCwKKwkJCQkgICB1bnNpZ25lZCBpbnQgY3BwLAorCQkJCSAgIHVu c2lnbmVkIGludCByb3RhdGlvbikKK3sKKwlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHJv dGF0aW9uKSkgeworCQlXQVJOX09OKCpwaXRjaCAlICp0aWxlX2hlaWdodCk7CisKKwkJLyogcGl4 ZWwgdW5pdHMgcGxlYXNlICovCisJCSp0aWxlX3dpZHRoIC89IGNwcDsKKworCQkvKgorCQkgKiBD b29yZGluYXRlIHNwYWNlIGlzIHJvdGF0ZWQsIG9yaWVudAorCQkgKiBvdXIgdGlsZSBkaW1lbnNp b25zIHRoZSBzYW1lIHdheQorCQkgKi8KKwkJc3dhcCgqdGlsZV93aWR0aCwgKnRpbGVfaGVpZ2h0 KTsKKwl9IGVsc2UgeworCQlXQVJOX09OKCpwaXRjaCAlICp0aWxlX3dpZHRoKTsKKworCQkvKiBw aXhlbCB1bml0cyBwbGVhc2UgKi8KKwkJKnRpbGVfd2lkdGggLz0gY3BwOworCQkqcGl0Y2ggLz0g Y3BwOworCX0KK30KKworLyoKKyAqIENvbXB1dGVzIHRoZSBsaW5lYXIgb2Zmc2V0IHRvIHRoZSBi YXNlIHRpbGUgYW5kIGFkanVzdHMKKyAqIHgsIHkuIGJ5dGVzIHBlciBwaXhlbCBpcyBhc3N1bWVk IHRvIGJlIGEgcG93ZXItb2YtdHdvLgorICoKKyAqIEluIHRoZSA5MC8yNzAgcm90YXRlZCBjYXNl LCB4IGFuZCB5IGFyZSBhc3N1bWVkCisgKiB0byBiZSBhbHJlYWR5IHJvdGF0ZWQgdG8gbWF0Y2gg dGhlIHJvdGF0ZWQgR1RUIHZpZXcsIGFuZAorICogcGl0Y2ggaXMgdGhlIHRpbGVfaGVpZ2h0IGFs aWduZWQgZnJhbWVidWZmZXIgaGVpZ2h0LgorICovCiB1bnNpZ25lZCBsb25nIGludGVsX2NvbXB1 dGVfcGFnZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQlp bnQgKngsIGludCAqeSwKIAkJCQkJdWludDY0X3QgZmJfbW9kaWZpZXIsCiAJCQkJCXVuc2lnbmVk IGludCBjcHAsCi0JCQkJCXVuc2lnbmVkIGludCBwaXRjaCkKKwkJCQkJdW5zaWduZWQgaW50IHBp dGNoLAorCQkJCQl1bnNpZ25lZCBpbnQgcm90YXRpb24pCiB7CiAJaWYgKGZiX21vZGlmaWVyICE9 IERSTV9GT1JNQVRfTU9EX05PTkUpIHsKIAkJdW5zaWduZWQgaW50IHRpbGVfc2l6ZSwgdGlsZV93 aWR0aCwgdGlsZV9oZWlnaHQ7CkBAIC0yNDY3LDEzICsyNTA0LDE2IEBAIHVuc2lnbmVkIGxvbmcg aW50ZWxfY29tcHV0ZV9wYWdlX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoKGRldl9wcml2LCBmYl9tb2RpZmll ciwgY3BwKTsKIAkJdGlsZV9oZWlnaHQgPSB0aWxlX3NpemUgLyB0aWxlX3dpZHRoOwogCisJCWlu dGVsX3JvdGF0ZV90aWxlX2RpbXMoJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCwKKwkJCQkgICAg ICAgJnBpdGNoLCBjcHAsIHJvdGF0aW9uKTsKKwogCQl0aWxlX3Jvd3MgPSAqeSAvIHRpbGVfaGVp Z2h0OwogCQkqeSAlPSB0aWxlX2hlaWdodDsKIAotCQl0aWxlcyA9ICp4IC8gKHRpbGVfd2lkdGgv Y3BwKTsKLQkJKnggJT0gdGlsZV93aWR0aC9jcHA7CisJCXRpbGVzID0gKnggLyB0aWxlX3dpZHRo OworCQkqeCAlPSB0aWxlX3dpZHRoOwogCi0JCXJldHVybiB0aWxlX3Jvd3MgKiBwaXRjaCAqIHRp bGVfaGVpZ2h0ICsgdGlsZXMgKiB0aWxlX3NpemU7CisJCXJldHVybiAodGlsZV9yb3dzICogKHBp dGNoIC8gdGlsZV93aWR0aCkgKyB0aWxlcykgKiB0aWxlX3NpemU7CiAJfSBlbHNlIHsKIAkJdW5z aWduZWQgaW50IGFsaWdubWVudCA9IGludGVsX2xpbmVhcl9hbGlnbm1lbnQoZGV2X3ByaXYpIC0g MTsKIAkJdW5zaWduZWQgaW50IG9mZnNldDsKQEAgLTI2ODUsNiArMjcyNSw3IEBAIHN0YXRpYyB2 b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWJv b2wgdmlzaWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPnN0YXRlKS0+dmlzaWJs ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCWludCBwbGFuZSA9IGludGVs X2NydGMtPnBsYW5lOworCXVuc2lnbmVkIGludCByb3RhdGlvbjsKIAl1bnNpZ25lZCBsb25nIGxp bmVhcl9vZmZzZXQ7CiAJdTMyIGRzcGNudHI7CiAJdTMyIHJlZyA9IERTUENOVFIocGxhbmUpOwpA QCAtMjcwNCw2ICsyNzQ1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaWYgKFdBUk5fT04ob2JqID09IE5VTEwpKQogCQly ZXR1cm47CiAKKwlyb3RhdGlvbiA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5yb3RhdGlvbjsKIAlw aXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7CiAK IAlkc3BjbnRyID0gRElTUFBMQU5FX0dBTU1BX0VOQUJMRTsKQEAgLTI3NjgsNyArMjgxMCw3IEBA IHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCQlpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldCA9CiAJCQlpbnRlbF9jb21wdXRlX3Bh Z2Vfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnksCiAJCQkJCQkgIGZiLT5tb2RpZmllclswXSwgcGl4 ZWxfc2l6ZSwKLQkJCQkJCSAgZmItPnBpdGNoZXNbMF0pOworCQkJCQkJICBmYi0+cGl0Y2hlc1sw XSwgcm90YXRpb24pOwogCQlsaW5lYXJfb2Zmc2V0IC09IGludGVsX2NydGMtPmRzcGFkZHJfb2Zm c2V0OwogCX0gZWxzZSB7CiAJCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0gbGluZWFyX29m ZnNldDsKQEAgLTI4MTQsNiArMjg1Niw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9w cmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlib29sIHZpc2libGUgPSB0b19p bnRlbF9wbGFuZV9zdGF0ZShwcmltYXJ5LT5zdGF0ZSktPnZpc2libGU7CiAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKIAlpbnQgcGxhbmUgPSBpbnRlbF9jcnRjLT5wbGFuZTsKKwl1 bnNpZ25lZCBpbnQgcm90YXRpb247CiAJdW5zaWduZWQgbG9uZyBsaW5lYXJfb2Zmc2V0OwogCXUz MiBkc3BjbnRyOwogCXUzMiByZWcgPSBEU1BDTlRSKHBsYW5lKTsKQEAgLTI4MzAsNiArMjg3Myw3 IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlpZiAoV0FSTl9PTihvYmogPT0gTlVMTCkpCiAJCXJldHVybjsKIAorCXJv dGF0aW9uID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnJvdGF0aW9uOwogCXBpeGVsX3NpemUgPSBk cm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKIAogCWRzcGNudHIgPSBE SVNQUExBTkVfR0FNTUFfRU5BQkxFOwpAQCAtMjg3Miw5ICsyOTE2LDkgQEAgc3RhdGljIHZvaWQg aXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlu dGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0KIAkJaW50ZWxfY29tcHV0ZV9wYWdlX29mZnNldChk ZXZfcHJpdiwgJngsICZ5LAogCQkJCQkgIGZiLT5tb2RpZmllclswXSwgcGl4ZWxfc2l6ZSwKLQkJ CQkJICBmYi0+cGl0Y2hlc1swXSk7CisJCQkJCSAgZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsK IAlsaW5lYXJfb2Zmc2V0IC09IGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0OwotCWlmIChjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgeworCWlm IChyb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7CiAJCWRzcGNudHIgfD0gRElTUFBM QU5FX1JPVEFURV8xODA7CiAKIAkJaWYgKCFJU19IQVNXRUxMKGRldikgJiYgIUlTX0JST0FEV0VM TChkZXYpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IGExMmFjOTUuLmVkNDdjYTMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMTM5LDcgKzExMzksOCBAQCB1bnNpZ25l ZCBsb25nIGludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJCQlpbnQgKngsIGludCAqeSwKIAkJCQkJdWludDY0X3QgZmJfbW9kaWZp ZXIsCiAJCQkJCXVuc2lnbmVkIGludCBjcHAsCi0JCQkJCXVuc2lnbmVkIGludCBwaXRjaCk7CisJ CQkJCXVuc2lnbmVkIGludCBwaXRjaCwKKwkJCQkJdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKIHZv aWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50 ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBoc3dfZW5hYmxl X3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwppbmRleCA2NjE0YWRiLi44ZWFlYmNlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zcHJpdGUuYwpAQCAtMzU0LDYgKzM1NCw3IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaW50IHBpcGUgPSBp bnRlbF9wbGFuZS0+cGlwZTsKIAlpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmU7CiAJdTMy IHNwcmN0bDsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBkcGxhbmUtPnN0YXRlLT5yb3RhdGlv bjsKIAl1bnNpZ25lZCBsb25nIHNwcnN1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCWludCBw aXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7CiAJ Y29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9CkBAIC00MjIsMTAg KzQyMywxMCBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCWxpbmVhcl9vZmZzZXQgPSB5ICogZmItPnBpdGNoZXNbMF0g KyB4ICogcGl4ZWxfc2l6ZTsKIAlzcHJzdXJmX29mZnNldCA9IGludGVsX2NvbXB1dGVfcGFnZV9v ZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKIAkJCQkJCSAgIGZiLT5tb2RpZmllclswXSwgcGl4ZWxf c2l6ZSwKLQkJCQkJCSAgIGZiLT5waXRjaGVzWzBdKTsKKwkJCQkJCSAgIGZiLT5waXRjaGVzWzBd LCByb3RhdGlvbik7CiAJbGluZWFyX29mZnNldCAtPSBzcHJzdXJmX29mZnNldDsKIAotCWlmIChk cGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7CisJaWYgKHJv dGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKIAkJc3ByY3RsIHw9IFNQX1JPVEFURV8x ODA7CiAKIAkJeCArPSBzcmNfdzsKQEAgLTQ5MSw2ICs0OTIsNyBAQCBpdmJfdXBkYXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKIAl1MzIgc3ByY3RsLCBzcHJzY2FsZSA9IDA7CisJ dW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKIAl1bnNpZ25l ZCBsb25nIHNwcnN1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCWludCBwaXhlbF9zaXplID0g ZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7CiAJY29uc3Qgc3RydWN0 IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9CkBAIC01NTQsMTAgKzU1NiwxMCBAQCBp dmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJbGluZWFyX29mZnNldCA9IHkgKiBmYi0+cGl0Y2hlc1swXSArIHggKiBwaXhlbF9z aXplOwogCXNwcnN1cmZfb2Zmc2V0ID0gaW50ZWxfY29tcHV0ZV9wYWdlX29mZnNldChkZXZfcHJp diwgJngsICZ5LAogCQkJCQkJICAgZmItPm1vZGlmaWVyWzBdLCBwaXhlbF9zaXplLAotCQkJCQkJ ICAgZmItPnBpdGNoZXNbMF0pOworCQkJCQkJICAgZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsK IAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0OwogCi0JaWYgKHBsYW5lLT5zdGF0ZS0+ cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgeworCWlmIChyb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7CiAJCXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKIAogCQkv KiBIU1cgYW5kIEJEVyBkb2VzIHRoaXMgYXV0b21hZ2ljYWxseSBpbiBoYXJkd2FyZSAqLwpAQCAt NjMxLDYgKzYzMyw3IEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs IHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5l ID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmogPSBpbnRlbF9mYl9vYmooZmIpOwogCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CisJ dW5zaWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmUtPnN0YXRlLT5yb3RhdGlvbjsKIAl1bnNpZ25l ZCBsb25nIGR2c3N1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCXUzMiBkdnNjbnRyLCBkdnNz Y2FsZTsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9m b3JtYXQsIDApOwpAQCAtNjkxLDEwICs2OTQsMTAgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWxpbmVhcl9vZmZzZXQg PSB5ICogZmItPnBpdGNoZXNbMF0gKyB4ICogcGl4ZWxfc2l6ZTsKIAlkdnNzdXJmX29mZnNldCA9 IGludGVsX2NvbXB1dGVfcGFnZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKIAkJCQkJCSAgIGZi LT5tb2RpZmllclswXSwgcGl4ZWxfc2l6ZSwKLQkJCQkJCSAgIGZiLT5waXRjaGVzWzBdKTsKKwkJ CQkJCSAgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7CiAJbGluZWFyX29mZnNldCAtPSBkdnNz dXJmX29mZnNldDsKIAotCWlmIChwbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9U QVRFXzE4MCkpIHsKKwlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewogCQlk dnNjbnRyIHw9IERWU19ST1RBVEVfMTgwOwogCiAJCXggKz0gc3JjX3c7Ci0tIAoyLjQuOQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK