From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fritz Koenig Subject: [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Date: Tue, 11 Dec 2018 10:42:21 -0800 Message-ID: <20181211184224.131478-2-frkoenig@google.com> References: <20181211184224.131478-1-frkoenig@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x74a.google.com (mail-qk1-x74a.google.com [IPv6:2607:f8b0:4864:20::74a]) by gabe.freedesktop.org (Postfix) with ESMTPS id 59F916E3AF for ; Tue, 11 Dec 2018 18:42:39 +0000 (UTC) Received: by mail-qk1-x74a.google.com with SMTP id y83so13675572qka.7 for ; Tue, 11 Dec 2018 10:42:39 -0800 (PST) In-Reply-To: <20181211184224.131478-1-frkoenig@google.com> 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: Fritz Koenig , sean@poorly.run List-Id: dri-devel@lists.freedesktop.org U2ltcGxpZnkgdGhlIGluaXRpbGl6YXRpb24gb2YgYSBsaXN0IG9mIGZvcm1hdHMKYnkgcGFzc2lu ZyB0aGUgbGlzdCBpbiBkaXJlY3RseSBpbnN0ZWFkIG9mIGNvcHlpbmcKaXQgZnJvbSBvbmUgc3Ry dWN0dXJlIHRvIGFub3RoZXIuCgpTaWduZWQtb2ZmLWJ5OiBGcml0eiBLb2VuaWcgPGZya29lbmln QGdvb2dsZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Zvcm1h dHMuYyAgIHwgIDMzIC0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9mb3Jt YXRzLmggICB8ICAxNCAtLQogLi4uL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxv Zy5jICAgIHwgICA0ICsKIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cu aCAgICB8ICAxOSArLS0KIC4uLi9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZ19mb3Jt YXQuaCB8IDE1MSArKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9od191dGlsLmggICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfcGxhbmUuYyAgICAgfCAgMjUgKystCiA3IGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlv bnMoKyksIDE1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2Zvcm1hdHMuYwppbmRleCAwODc0ZjBhNTNiZjkuLmQ1M2FiYzhjZTY3MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Zvcm1hdHMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5jCkBAIC0xMTM3LDM2ICsxMTM3 LDMgQEAgY29uc3Qgc3RydWN0IG1zbV9mb3JtYXQgKmRwdV9nZXRfbXNtX2Zvcm1hdCgKIAkJcmV0 dXJuICZmbXQtPmJhc2U7CiAJcmV0dXJuIE5VTEw7CiB9Ci0KLXVpbnQzMl90IGRwdV9wb3B1bGF0 ZV9mb3JtYXRzKAotCQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdF9leHRlbmRlZCAqZm9ybWF0X2xp c3QsCi0JCXVpbnQzMl90ICpwaXhlbF9mb3JtYXRzLAotCQl1aW50NjRfdCAqcGl4ZWxfbW9kaWZp ZXJzLAotCQl1aW50MzJfdCBwaXhlbF9mb3JtYXRzX21heCkKLXsKLQl1aW50MzJfdCBpLCBmb3Vy Y2NfZm9ybWF0OwotCi0JaWYgKCFmb3JtYXRfbGlzdCB8fCAhcGl4ZWxfZm9ybWF0cykKLQkJcmV0 dXJuIDA7Ci0KLQlmb3IgKGkgPSAwLCBmb3VyY2NfZm9ybWF0ID0gMDsKLQkJCWZvcm1hdF9saXN0 LT5mb3VyY2NfZm9ybWF0ICYmIGkgPCBwaXhlbF9mb3JtYXRzX21heDsKLQkJCSsrZm9ybWF0X2xp c3QpIHsKLQkJLyogdmVyaWZ5IGlmIGxpc3RlZCBmb3JtYXQgaXMgaW4gZHB1X2Zvcm1hdF9tYXA/ ICovCi0KLQkJLyogb3B0aW9uYWxseSByZXR1cm4gbW9kaWZpZWQgZm9ybWF0cyAqLwotCQlpZiAo cGl4ZWxfbW9kaWZpZXJzKSB7Ci0JCQkvKiBhc3N1bWUgc2FtZSBtb2RpZmllciBmb3IgYWxsIGZi IHBsYW5lcyAqLwotCQkJcGl4ZWxfZm9ybWF0c1tpXSA9IGZvcm1hdF9saXN0LT5mb3VyY2NfZm9y bWF0OwotCQkJcGl4ZWxfbW9kaWZpZXJzW2krK10gPSBmb3JtYXRfbGlzdC0+bW9kaWZpZXI7Ci0J CX0gZWxzZSB7Ci0JCQkvKiBhc3N1bWUgYmFzZSBmb3JtYXRzIGdyb3VwZWQgdG9nZXRoZXIgKi8K LQkJCWlmIChmb3VyY2NfZm9ybWF0ICE9IGZvcm1hdF9saXN0LT5mb3VyY2NfZm9ybWF0KSB7Ci0J CQkJZm91cmNjX2Zvcm1hdCA9IGZvcm1hdF9saXN0LT5mb3VyY2NfZm9ybWF0OwotCQkJCXBpeGVs X2Zvcm1hdHNbaSsrXSA9IGZvdXJjY19mb3JtYXQ7Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlyZXR1cm4g aTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9mb3Jt YXRzLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5oCmluZGV4 IGE1NDQ1MWQ4ZDAxMS4uYzAyYzgxZTdhNjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZm9ybWF0cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9mb3JtYXRzLmgKQEAgLTQwLDIwICs0MCw2IEBAIGNvbnN0IHN0cnVjdCBtc21f Zm9ybWF0ICpkcHVfZ2V0X21zbV9mb3JtYXQoCiAJCWNvbnN0IHVpbnQzMl90IGZvcm1hdCwKIAkJ Y29uc3QgdWludDY0X3QgbW9kaWZpZXJzKTsKIAotLyoqCi0gKiBkcHVfcG9wdWxhdGVfZm9ybWF0 cyAtIHBvcHVsYXRlIHRoZSBnaXZlbiBhcnJheSB3aXRoIGZvdXJjYyBjb2RlcyBzdXBwb3J0ZWQK LSAqIEBmb3JtYXRfbGlzdDogICAgICAgcG9pbnRlciB0byBsaXN0IG9mIHBvc3NpYmxlIGZvcm1h dHMKLSAqIEBwaXhlbF9mb3JtYXRzOiAgICAgYXJyYXkgdG8gcG9wdWxhdGUgd2l0aCBmb3VyY2Mg Y29kZXMKLSAqIEBwaXhlbF9tb2RpZmllcnM6ICAgYXJyYXkgdG8gcG9wdWxhdGUgd2l0aCBkcm0g bW9kaWZpZXJzLCBjYW4gYmUgTlVMTAotICogQHBpeGVsX2Zvcm1hdHNfbWF4OiBsZW5ndGggb2Yg cGl4ZWwgZm9ybWF0cyBhcnJheQotICogUmV0dXJuOiBudW1iZXIgb2YgZWxlbWVudHMgcG9wdWxh dGVkCi0gKi8KLXVpbnQzMl90IGRwdV9wb3B1bGF0ZV9mb3JtYXRzKAotCQljb25zdCBzdHJ1Y3Qg ZHB1X2Zvcm1hdF9leHRlbmRlZCAqZm9ybWF0X2xpc3QsCi0JCXVpbnQzMl90ICpwaXhlbF9mb3Jt YXRzLAotCQl1aW50NjRfdCAqcGl4ZWxfbW9kaWZpZXJzLAotCQl1aW50MzJfdCBwaXhlbF9mb3Jt YXRzX21heCk7Ci0KIC8qKgogICogZHB1X2Zvcm1hdF9jaGVja19tb2RpZmllZF9mb3JtYXQgLSB2 YWxpZGF0ZSBmb3JtYXQgYW5kIGJ1ZmZlcnMgZm9yCiAgKiAgICAgICAgICAgICAgICAgICBkcHUg bm9uLXN0YW5kYXJkLCBpLmUuIG1vZGlmaWVkIGZvcm1hdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMKaW5kZXggNTEyYWMwODM0ZDJiLi5kZjY4NTJj Yzk4YjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19j YXRhbG9nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFs b2cuYwpAQCAtMTUxLDcgKzE1MSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfYmxr c19jb21tb24gc2RtODQ1X3NzcHBfY29tbW9uID0gewogCQkuaWQgPSBEUFVfU1NQUF9DU0NfMTBC SVQsIFwKIAkJLmJhc2UgPSAweDFhMDAsIC5sZW4gPSAweDEwMCx9LCBcCiAJLmZvcm1hdF9saXN0 ID0gcGxhbmVfZm9ybWF0c195dXYsIFwKKwkubnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHBsYW5l X2Zvcm1hdHNfeXV2KSwgXAogCS52aXJ0X2Zvcm1hdF9saXN0ID0gcGxhbmVfZm9ybWF0cywgXAor CS52aXJ0X251bV9mb3JtYXRzID0gQVJSQVlfU0laRShwbGFuZV9mb3JtYXRzKSwgXAogCX0KIAog I2RlZmluZSBfRE1BX1NCTEsobnVtLCBzZG1hX3ByaSkgXApAQCAtMTYzLDcgKzE2NSw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfYmxrc19jb21tb24gc2RtODQ1X3NzcHBfY29tbW9u ID0gewogCS5zcmNfYmxrID0gey5uYW1lID0gU1RSQ0FUKCJzc3BwX3NyY18iLCBudW0pLCBcCiAJ CS5pZCA9IERQVV9TU1BQX1NSQywgLmJhc2UgPSAweDAwLCAubGVuID0gMHgxNTAsfSwgXAogCS5m b3JtYXRfbGlzdCA9IHBsYW5lX2Zvcm1hdHMsIFwKKwkubnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpF KHBsYW5lX2Zvcm1hdHMpLCBcCiAJLnZpcnRfZm9ybWF0X2xpc3QgPSBwbGFuZV9mb3JtYXRzLCBc CisJLnZpcnRfbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHBsYW5lX2Zvcm1hdHMpLCBcCiAJfQog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Jsa18w ID0gX1ZJR19TQkxLKCIwIiwgNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2NhdGFsb2cuaAppbmRleCAxNDQzNThhM2QwZmIuLmE1NTY1M2IyZTQ2NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oCkBAIC0yNTEs MTcgKzI1MSw2IEBAIHN0cnVjdCBkcHVfcHBfYmxrIHsKIAl1MzIgdmVyc2lvbjsKIH07CiAKLS8q KgotICogc3RydWN0IGRwdV9mb3JtYXRfZXh0ZW5kZWQgLSBkZWZpbmUgZHB1IHNwZWNpZmljIHBp eGVsIGZvcm1hdCttb2RpZmllcgotICogQGZvdXJjY19mb3JtYXQ6IEJhc2UgRk9VUkNDIHBpeGVs IGZvcm1hdCBjb2RlCi0gKiBAbW9kaWZpZXI6IDY0LWJpdCBkcm0gZm9ybWF0IG1vZGlmaWVyLCBz YW1lIG1vZGlmaWVyIG11c3QgYmUgYXBwbGllZCB0byBhbGwKLSAqICAgICAgICAgICAgZnJhbWVi dWZmZXIgcGxhbmVzCi0gKi8KLXN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkIHsKLQl1aW50MzJf dCBmb3VyY2NfZm9ybWF0OwotCXVpbnQ2NF90IG1vZGlmaWVyOwotfTsKLQogLyoqCiAgKiBlbnVt IGRwdV9xb3NfbHV0X3VzYWdlIC0gZGVmaW5lIFFvUyBMVVQgdXNlIGNhc2VzCiAgKi8KQEAgLTM0 OCw3ICszMzcsOSBAQCBzdHJ1Y3QgZHB1X3NzcHBfYmxrc19jb21tb24gewogICogQHBjY19ibGs6 CiAgKiBAaWdjX2JsazoKICAqIEBmb3JtYXRfbGlzdDogUG9pbnRlciB0byBsaXN0IG9mIHN1cHBv cnRlZCBmb3JtYXRzCisgKiBAbnVtX2Zvcm1hdHM6IE51bWJlciBvZiBzdXBwb3J0ZWQgZm9ybWF0 cwogICogQHZpcnRfZm9ybWF0X2xpc3Q6IFBvaW50ZXIgdG8gbGlzdCBvZiBzdXBwb3J0ZWQgZm9y bWF0cyBmb3IgdmlydHVhbCBwbGFuZXMKKyAqIEB2aXJ0X251bV9mb3JtYXRzOiBOdW1iZXIgb2Yg c3VwcG9ydGVkIGZvcm1hdHMgZm9yIHZpcnR1YWwgcGxhbmVzCiAgKi8KIHN0cnVjdCBkcHVfc3Nw cF9zdWJfYmxrcyB7CiAJY29uc3Qgc3RydWN0IGRwdV9zc3BwX2Jsa3NfY29tbW9uICpjb21tb247 CkBAIC0zNjYsOCArMzU3LDEwIEBAIHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyB7CiAJc3RydWN0 IGRwdV9wcF9ibGsgcGNjX2JsazsKIAlzdHJ1Y3QgZHB1X3BwX2JsayBpZ2NfYmxrOwogCi0JY29u c3Qgc3RydWN0IGRwdV9mb3JtYXRfZXh0ZW5kZWQgKmZvcm1hdF9saXN0OwotCWNvbnN0IHN0cnVj dCBkcHVfZm9ybWF0X2V4dGVuZGVkICp2aXJ0X2Zvcm1hdF9saXN0OworCWNvbnN0IHUzMiAqZm9y bWF0X2xpc3Q7CisJdTMyIG51bV9mb3JtYXRzOworCWNvbnN0IHUzMiAqdmlydF9mb3JtYXRfbGlz dDsKKwl1MzIgdmlydF9udW1fZm9ybWF0czsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2dfZm9ybWF0LmggYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZ19mb3JtYXQuaAppbmRleCBjMzdi YTM4YWM4M2QuLmQwOTczMDk4NTk1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2h3X2NhdGFsb2dfZm9ybWF0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2dfZm9ybWF0LmgKQEAgLTEyLDg0ICsxMiw4MSBAQAog CiAjaW5jbHVkZSAiZHB1X2h3X21kc3MuaCIKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVfZm9y bWF0X2V4dGVuZGVkIHBsYW5lX2Zvcm1hdHNbXSA9IHsKLQl7RFJNX0ZPUk1BVF9BUkdCODg4OCwg MH0sCi0Je0RSTV9GT1JNQVRfQUJHUjg4ODgsIDB9LAotCXtEUk1fRk9STUFUX1JHQkE4ODg4LCAw fSwKLQl7RFJNX0ZPUk1BVF9BQkdSODg4OCwgRFJNX0ZPUk1BVF9NT0RfUUNPTV9DT01QUkVTU0VE fSwKLQl7RFJNX0ZPUk1BVF9CR1JBODg4OCwgMH0sCi0Je0RSTV9GT1JNQVRfWFJHQjg4ODgsIDB9 LAotCXtEUk1fRk9STUFUX1JHQlg4ODg4LCAwfSwKLQl7RFJNX0ZPUk1BVF9CR1JYODg4OCwgMH0s Ci0Je0RSTV9GT1JNQVRfWEJHUjg4ODgsIDB9LAotCXtEUk1fRk9STUFUX1hCR1I4ODg4LCBEUk1f Rk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUR9LAotCXtEUk1fRk9STUFUX1JHQjg4OCwgMH0sCi0J e0RSTV9GT1JNQVRfQkdSODg4LCAwfSwKLQl7RFJNX0ZPUk1BVF9SR0I1NjUsIDB9LAotCXtEUk1f Rk9STUFUX0JHUjU2NSwgRFJNX0ZPUk1BVF9NT0RfUUNPTV9DT01QUkVTU0VEfSwKLQl7RFJNX0ZP Uk1BVF9CR1I1NjUsIDB9LAotCXtEUk1fRk9STUFUX0FSR0IxNTU1LCAwfSwKLQl7RFJNX0ZPUk1B VF9BQkdSMTU1NSwgMH0sCi0Je0RSTV9GT1JNQVRfUkdCQTU1NTEsIDB9LAotCXtEUk1fRk9STUFU X0JHUkE1NTUxLCAwfSwKLQl7RFJNX0ZPUk1BVF9YUkdCMTU1NSwgMH0sCi0Je0RSTV9GT1JNQVRf WEJHUjE1NTUsIDB9LAotCXtEUk1fRk9STUFUX1JHQlg1NTUxLCAwfSwKLQl7RFJNX0ZPUk1BVF9C R1JYNTU1MSwgMH0sCi0Je0RSTV9GT1JNQVRfQVJHQjQ0NDQsIDB9LAotCXtEUk1fRk9STUFUX0FC R1I0NDQ0LCAwfSwKLQl7RFJNX0ZPUk1BVF9SR0JBNDQ0NCwgMH0sCi0Je0RSTV9GT1JNQVRfQkdS QTQ0NDQsIDB9LAotCXtEUk1fRk9STUFUX1hSR0I0NDQ0LCAwfSwKLQl7RFJNX0ZPUk1BVF9YQkdS NDQ0NCwgMH0sCi0Je0RSTV9GT1JNQVRfUkdCWDQ0NDQsIDB9LAotCXtEUk1fRk9STUFUX0JHUlg0 NDQ0LCAwfSwKLQl7MCwgMH0sCitzdGF0aWMgY29uc3QgdWludDMyX3QgcWNvbV9jb21wcmVzc2Vk X3N1cHBvcnRlZF9mb3JtYXRzW10gPSB7CisJRFJNX0ZPUk1BVF9BQkdSODg4OCwKKwlEUk1fRk9S TUFUX1hCR1I4ODg4LAorCURSTV9GT1JNQVRfQkdSNTY1LAogfTsKIAotc3RhdGljIGNvbnN0IHN0 cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkIHBsYW5lX2Zvcm1hdHNfeXV2W10gPSB7Ci0Je0RSTV9G T1JNQVRfQVJHQjg4ODgsIDB9LAotCXtEUk1fRk9STUFUX0FCR1I4ODg4LCAwfSwKLQl7RFJNX0ZP Uk1BVF9SR0JBODg4OCwgMH0sCi0Je0RSTV9GT1JNQVRfQkdSWDg4ODgsIDB9LAotCXtEUk1fRk9S TUFUX0FCR1I4ODg4LCBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUR9LAotCXtEUk1fRk9S TUFUX0JHUkE4ODg4LCAwfSwKLQl7RFJNX0ZPUk1BVF9YUkdCODg4OCwgMH0sCi0Je0RSTV9GT1JN QVRfWEJHUjg4ODgsIDB9LAotCXtEUk1fRk9STUFUX1JHQlg4ODg4LCAwfSwKLQl7RFJNX0ZPUk1B VF9YQkdSODg4OCwgRFJNX0ZPUk1BVF9NT0RfUUNPTV9DT01QUkVTU0VEfSwKLQl7RFJNX0ZPUk1B VF9SR0I4ODgsIDB9LAotCXtEUk1fRk9STUFUX0JHUjg4OCwgMH0sCi0Je0RSTV9GT1JNQVRfUkdC NTY1LCAwfSwKLQl7RFJNX0ZPUk1BVF9CR1I1NjUsIERSTV9GT1JNQVRfTU9EX1FDT01fQ09NUFJF U1NFRH0sCi0Je0RSTV9GT1JNQVRfQkdSNTY1LCAwfSwKLQl7RFJNX0ZPUk1BVF9BUkdCMTU1NSwg MH0sCi0Je0RSTV9GT1JNQVRfQUJHUjE1NTUsIDB9LAotCXtEUk1fRk9STUFUX1JHQkE1NTUxLCAw fSwKLQl7RFJNX0ZPUk1BVF9CR1JBNTU1MSwgMH0sCi0Je0RSTV9GT1JNQVRfWFJHQjE1NTUsIDB9 LAotCXtEUk1fRk9STUFUX1hCR1IxNTU1LCAwfSwKLQl7RFJNX0ZPUk1BVF9SR0JYNTU1MSwgMH0s Ci0Je0RSTV9GT1JNQVRfQkdSWDU1NTEsIDB9LAotCXtEUk1fRk9STUFUX0FSR0I0NDQ0LCAwfSwK LQl7RFJNX0ZPUk1BVF9BQkdSNDQ0NCwgMH0sCi0Je0RSTV9GT1JNQVRfUkdCQTQ0NDQsIDB9LAot CXtEUk1fRk9STUFUX0JHUkE0NDQ0LCAwfSwKLQl7RFJNX0ZPUk1BVF9YUkdCNDQ0NCwgMH0sCi0J e0RSTV9GT1JNQVRfWEJHUjQ0NDQsIDB9LAotCXtEUk1fRk9STUFUX1JHQlg0NDQ0LCAwfSwKLQl7 RFJNX0ZPUk1BVF9CR1JYNDQ0NCwgMH0sCitzdGF0aWMgY29uc3QgdWludDMyX3QgcGxhbmVfZm9y bWF0c1tdID0geworCURSTV9GT1JNQVRfQVJHQjg4ODgsCisJRFJNX0ZPUk1BVF9BQkdSODg4OCwK KwlEUk1fRk9STUFUX1JHQkE4ODg4LAorCURSTV9GT1JNQVRfQkdSQTg4ODgsCisJRFJNX0ZPUk1B VF9YUkdCODg4OCwKKwlEUk1fRk9STUFUX1JHQlg4ODg4LAorCURSTV9GT1JNQVRfQkdSWDg4ODgs CisJRFJNX0ZPUk1BVF9YQkdSODg4OCwKKwlEUk1fRk9STUFUX1JHQjg4OCwKKwlEUk1fRk9STUFU X0JHUjg4OCwKKwlEUk1fRk9STUFUX1JHQjU2NSwKKwlEUk1fRk9STUFUX0JHUjU2NSwKKwlEUk1f Rk9STUFUX0FSR0IxNTU1LAorCURSTV9GT1JNQVRfQUJHUjE1NTUsCisJRFJNX0ZPUk1BVF9SR0JB NTU1MSwKKwlEUk1fRk9STUFUX0JHUkE1NTUxLAorCURSTV9GT1JNQVRfWFJHQjE1NTUsCisJRFJN X0ZPUk1BVF9YQkdSMTU1NSwKKwlEUk1fRk9STUFUX1JHQlg1NTUxLAorCURSTV9GT1JNQVRfQkdS WDU1NTEsCisJRFJNX0ZPUk1BVF9BUkdCNDQ0NCwKKwlEUk1fRk9STUFUX0FCR1I0NDQ0LAorCURS TV9GT1JNQVRfUkdCQTQ0NDQsCisJRFJNX0ZPUk1BVF9CR1JBNDQ0NCwKKwlEUk1fRk9STUFUX1hS R0I0NDQ0LAorCURSTV9GT1JNQVRfWEJHUjQ0NDQsCisJRFJNX0ZPUk1BVF9SR0JYNDQ0NCwKKwlE Uk1fRk9STUFUX0JHUlg0NDQ0LAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IHBsYW5lX2Zv cm1hdHNfeXV2W10gPSB7CisJRFJNX0ZPUk1BVF9BUkdCODg4OCwKKwlEUk1fRk9STUFUX0FCR1I4 ODg4LAorCURSTV9GT1JNQVRfUkdCQTg4ODgsCisJRFJNX0ZPUk1BVF9CR1JYODg4OCwKKwlEUk1f Rk9STUFUX0JHUkE4ODg4LAorCURSTV9GT1JNQVRfWFJHQjg4ODgsCisJRFJNX0ZPUk1BVF9YQkdS ODg4OCwKKwlEUk1fRk9STUFUX1JHQlg4ODg4LAorCURSTV9GT1JNQVRfUkdCODg4LAorCURSTV9G T1JNQVRfQkdSODg4LAorCURSTV9GT1JNQVRfUkdCNTY1LAorCURSTV9GT1JNQVRfQkdSNTY1LAor CURSTV9GT1JNQVRfQVJHQjE1NTUsCisJRFJNX0ZPUk1BVF9BQkdSMTU1NSwKKwlEUk1fRk9STUFU X1JHQkE1NTUxLAorCURSTV9GT1JNQVRfQkdSQTU1NTEsCisJRFJNX0ZPUk1BVF9YUkdCMTU1NSwK KwlEUk1fRk9STUFUX1hCR1IxNTU1LAorCURSTV9GT1JNQVRfUkdCWDU1NTEsCisJRFJNX0ZPUk1B VF9CR1JYNTU1MSwKKwlEUk1fRk9STUFUX0FSR0I0NDQ0LAorCURSTV9GT1JNQVRfQUJHUjQ0NDQs CisJRFJNX0ZPUk1BVF9SR0JBNDQ0NCwKKwlEUk1fRk9STUFUX0JHUkE0NDQ0LAorCURSTV9GT1JN QVRfWFJHQjQ0NDQsCisJRFJNX0ZPUk1BVF9YQkdSNDQ0NCwKKwlEUk1fRk9STUFUX1JHQlg0NDQ0 LAorCURSTV9GT1JNQVRfQkdSWDQ0NDQsCiAKLQl7RFJNX0ZPUk1BVF9OVjEyLCAwfSwKLQl7RFJN X0ZPUk1BVF9OVjEyLCBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUR9LAotCXtEUk1fRk9S TUFUX05WMjEsIDB9LAotCXtEUk1fRk9STUFUX05WMTYsIDB9LAotCXtEUk1fRk9STUFUX05WNjEs IDB9LAotCXtEUk1fRk9STUFUX1ZZVVksIDB9LAotCXtEUk1fRk9STUFUX1VZVlksIDB9LAotCXtE Uk1fRk9STUFUX1lVWVYsIDB9LAotCXtEUk1fRk9STUFUX1lWWVUsIDB9LAotCXtEUk1fRk9STUFU X1lVVjQyMCwgMH0sCi0Je0RSTV9GT1JNQVRfWVZVNDIwLCAwfSwKLQl7MCwgMH0sCisJRFJNX0ZP Uk1BVF9OVjEyLAorCURSTV9GT1JNQVRfTlYyMSwKKwlEUk1fRk9STUFUX05WMTYsCisJRFJNX0ZP Uk1BVF9OVjYxLAorCURSTV9GT1JNQVRfVllVWSwKKwlEUk1fRk9STUFUX1VZVlksCisJRFJNX0ZP Uk1BVF9ZVVlWLAorCURSTV9GT1JNQVRfWVZZVSwKKwlEUk1fRk9STUFUX1lVVjQyMCwKKwlEUk1f Rk9STUFUX1lWVTQyMCwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfdXRpbC5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3 X3V0aWwuaAppbmRleCAzMjFmYzY0ZGRkMGUuLmVmZTcwYzUwOGVlMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5oCkBAIC0xOCw3ICsxOCw2IEBACiAjaW5j bHVkZSAiZHB1X2h3X21kc3MuaCIKIAogI2RlZmluZSBSRUdfTUFTSyhuKSAgICAgICAgICAgICAg ICAgICAgICgoQklUKG4pKSAtIDEpCi1zdHJ1Y3QgZHB1X2Zvcm1hdF9leHRlbmRlZDsKIAogLyoK ICAqIFRoaXMgaXMgdGhlIGNvbW1vbiBzdHJ1Y3QgbWFpbnRhaW5lZCBieSBlYWNoIHN1YiBibG9j awpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwppbmRleCA2ODgyMzNk YmQ1OTcuLjZhNDljMjUzYmJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3BsYW5lLmMKQEAgLTk1LDggKzk1LDYgQEAgc3RydWN0IGRwdV9wbGFuZSB7CiAKIAllbnVtIGRw dV9zc3BwIHBpcGU7CiAJdWludDMyX3QgZmVhdHVyZXM7ICAgICAgLyogY2FwYWJpbGl0aWVzIGZy b20gY2F0YWxvZyAqLwotCXVpbnQzMl90IG5mb3JtYXRzOwotCXVpbnQzMl90IGZvcm1hdHNbNjRd OwogCiAJc3RydWN0IGRwdV9od19waXBlICpwaXBlX2h3OwogCXN0cnVjdCBkcHVfaHdfcGlwZV9j ZmcgcGlwZV9jZmc7CkBAIC0xNDQ2LDExICsxNDQ0LDEyIEBAIHN0cnVjdCBkcm1fcGxhbmUgKmRw dV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXVuc2lnbmVkIGxvbmcgcG9z c2libGVfY3J0Y3MsIHUzMiBtYXN0ZXJfcGxhbmVfaWQpCiB7CiAJc3RydWN0IGRybV9wbGFuZSAq cGxhbmUgPSBOVUxMLCAqbWFzdGVyX3BsYW5lID0gTlVMTDsKLQljb25zdCBzdHJ1Y3QgZHB1X2Zv cm1hdF9leHRlbmRlZCAqZm9ybWF0X2xpc3Q7CisJY29uc3QgdWludDMyX3QgKmZvcm1hdF9saXN0 OwogCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHU7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRwdV9rbXMgKmttcyA9IHRvX2RwdV9rbXMo cHJpdi0+a21zKTsKIAlpbnQgenBvc19tYXggPSBEUFVfWlBPU19NQVg7CisJdWludDMyX3QgbnVt X2Zvcm1hdHM7CiAJaW50IHJldCA9IC1FSU5WQUw7CiAKIAkvKiBjcmVhdGUgYW5kIHplcm8gbG9j YWwgc3RydWN0dXJlICovCkBAIC0xNDkzLDIzICsxNDkyLDE3IEBAIHN0cnVjdCBkcm1fcGxhbmUg KmRwdV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWdvdG8gY2xlYW5fc3Nw cDsKIAl9CiAKLQlpZiAoIW1hc3Rlcl9wbGFuZV9pZCkKLQkJZm9ybWF0X2xpc3QgPSBwZHB1LT5w aXBlX3NibGstPmZvcm1hdF9saXN0OwotCWVsc2UKKwlpZiAocGRwdS0+aXNfdmlydHVhbCkgewog CQlmb3JtYXRfbGlzdCA9IHBkcHUtPnBpcGVfc2Jsay0+dmlydF9mb3JtYXRfbGlzdDsKLQotCXBk cHUtPm5mb3JtYXRzID0gZHB1X3BvcHVsYXRlX2Zvcm1hdHMoZm9ybWF0X2xpc3QsCi0JCQkJcGRw dS0+Zm9ybWF0cywKLQkJCQkwLAotCQkJCUFSUkFZX1NJWkUocGRwdS0+Zm9ybWF0cykpOwotCi0J aWYgKCFwZHB1LT5uZm9ybWF0cykgewotCQlEUFVfRVJST1IoIlsldV1ubyB2YWxpZCBmb3JtYXRz IGZvciBwbGFuZVxuIiwgcGlwZSk7Ci0JCWdvdG8gY2xlYW5fc3NwcDsKKwkJbnVtX2Zvcm1hdHMg PSBwZHB1LT5waXBlX3NibGstPnZpcnRfbnVtX2Zvcm1hdHM7CisJfQorCWVsc2UgeworCQlmb3Jt YXRfbGlzdCA9IHBkcHUtPnBpcGVfc2Jsay0+Zm9ybWF0X2xpc3Q7CisJCW51bV9mb3JtYXRzID0g cGRwdS0+cGlwZV9zYmxrLT5udW1fZm9ybWF0czsKIAl9CiAKIAlyZXQgPSBkcm1fdW5pdmVyc2Fs X3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMHhmZiwgJmRwdV9wbGFuZV9mdW5jcywKLQkJCQlwZHB1 LT5mb3JtYXRzLCBwZHB1LT5uZm9ybWF0cywKKwkJCQlmb3JtYXRfbGlzdCwgbnVtX2Zvcm1hdHMs CiAJCQkJTlVMTCwgdHlwZSwgTlVMTCk7CiAJaWYgKHJldCkKIAkJZ290byBjbGVhbl9zc3BwOwot LSAKMi4yMC4wLnJjMi40MDMuZ2RiYzNiMjk4MDUtZ29vZwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==