From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liu Ying Subject: [PATCH v2 02/10] gpu: ipu-v3: ipu-dmfc: Use static DMFC FIFO allocation mechanism Date: Tue, 31 May 2016 17:24:23 +0800 Message-ID: <1464686671-20299-3-git-send-email-gnuiyl@gmail.com> References: <1464686671-20299-1-git-send-email-gnuiyl@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0066.outbound.protection.outlook.com [65.55.169.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C6616E35A for ; Tue, 31 May 2016 09:39:27 +0000 (UTC) In-Reply-To: <1464686671-20299-1-git-send-email-gnuiyl@gmail.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: Russell King , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org Rm9yIGFsbCB2aWRlbyBtb2RlcyB3ZSBzdXBwb3J0IGN1cnJlbnRseSwgd2UgYWx3YXlzIGdldCAy IHNsb3RzIGZvcgphIHBsYW5lIGJ5IHVzaW5nIHRoZSBjdXJyZW50IGV4aXN0aW5nIGR5bmFtaWMg RE1GQyBGSUZPIGFsbG9jYXRpb24KbWVjaGFuaXNtLiAgU28sIGxldCdzIGNoYW5nZSB0byB1c2Ug dGhlIHN0YXRpYyBvbmUgdG8gc2ltcGxpZnkgdGhlCmNvZGUuICBUaGlzIGFsc28gbWFrZXMgaXQg ZWFzaWVyIHRvIGltcGxlbWVudCB0aGUgYXRvbWljIG1vZGUgc2V0dGluZwphcyB3ZSBkb24ndCBu ZWVkIHRvIGhhbmRsZSBhbGxvY2F0aW9uIGZhaWx1cmUgY2FzZXMgdGhlbi4KClNpZ25lZC1vZmYt Ynk6IExpdSBZaW5nIDxnbnVpeWxAZ21haWwuY29tPgotLS0KdjEtPnYyOgoqIEltcHJvdmUgdGhl IGNvbW1pdCBtZXNzYWdlIHRvIGJldHRlciBleHBsYWluIHdoeSB0aGUgc3RhdGljIGFsbG9jYXRp b24KICBtZWNoYW5pc20gY2FuIHJlcGxhY2UgdGhlIGR5bmFtaWMgb25lLgoKIGRyaXZlcnMvZ3B1 L2RybS9pbXgvaXB1djMtcGxhbmUuYyB8ICAyNiAtLS0tLQogZHJpdmVycy9ncHUvaXB1LXYzL2lw dS1kbWZjLmMgICAgIHwgMjEzICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBpbmNsdWRlL3ZpZGVvL2lteC1pcHUtdjMuaCAgICAgICAgfCAgIDMgLQogMyBmaWxlcyBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDIzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaW14L2lwdXYzLXBsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYz LXBsYW5lLmMKaW5kZXggY2Q3ZWIyNi4uMDI3MDFkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2lteC9pcHV2My1wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxh bmUuYwpAQCAtNTMsMjQgKzUzLDYgQEAgaW50IGlwdV9wbGFuZV9pcnEoc3RydWN0IGlwdV9wbGFu ZSAqaXB1X3BsYW5lKQogCQkJCSAgICAgSVBVX0lSUV9FT0YpOwogfQogCi1zdGF0aWMgaW50IGNh bGNfdnJlZihzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25n IGh0b3RhbCwgdnRvdGFsOwotCi0JaHRvdGFsID0gbW9kZS0+aHRvdGFsOwotCXZ0b3RhbCA9IG1v ZGUtPnZ0b3RhbDsKLQotCWlmICghaHRvdGFsIHx8ICF2dG90YWwpCi0JCXJldHVybiA2MDsKLQot CXJldHVybiBESVZfUk9VTkRfVVAobW9kZS0+Y2xvY2sgKiAxMDAwLCB2dG90YWwgKiBodG90YWwp OwotfQotCi1zdGF0aWMgaW5saW5lIGludCBjYWxjX2JhbmR3aWR0aChpbnQgd2lkdGgsIGludCBo ZWlnaHQsIHVuc2lnbmVkIGludCB2cmVmKQotewotCXJldHVybiB3aWR0aCAqIGhlaWdodCAqIHZy ZWY7Ci19Ci0KIGludCBpcHVfcGxhbmVfc2V0X2Jhc2Uoc3RydWN0IGlwdV9wbGFuZSAqaXB1X3Bs YW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJICAgICAgIGludCB4LCBpbnQgeSkK IHsKQEAgLTI5MSwxNCArMjczLDYgQEAgaW50IGlwdV9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgaXB1 X3BsYW5lICppcHVfcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJfQogCX0KIAotCXJl dCA9IGlwdV9kbWZjX2FsbG9jX2JhbmR3aWR0aChpcHVfcGxhbmUtPmRtZmMsCi0JCQljYWxjX2Jh bmR3aWR0aChjcnRjX3csIGNydGNfaCwKLQkJCQkgICAgICAgY2FsY192cmVmKG1vZGUpKSwgNjQp OwotCWlmIChyZXQpIHsKLQkJZGV2X2VycihkZXYsICJhbGxvY2F0aW5nIGRtZmMgYmFuZHdpZHRo IGZhaWxlZCB3aXRoICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KLQogCWlwdV9kbWZj X2NvbmZpZ193YWl0NGVvdChpcHVfcGxhbmUtPmRtZmMsIGNydGNfdyk7CiAKIAlpcHVfY3BtZW1f emVybyhpcHVfcGxhbmUtPmlwdV9jaCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMv aXB1LWRtZmMuYyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtZG1mYy5jCmluZGV4IDgzN2IxZWMy Li40MjcwNWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWRtZmMuYworKysg Yi9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWRtZmMuYwpAQCAtNDUsMTcgKzQ1LDYgQEAKICNkZWZp bmUgRE1GQ19EUF9DSEFOXzZCXzI0CQkxNgogI2RlZmluZSBETUZDX0RQX0NIQU5fNkZfMjkJCTI0 CiAKLSNkZWZpbmUgRE1GQ19GSUZPX1NJWkVfNjQJCSgzIDw8IDMpCi0jZGVmaW5lIERNRkNfRklG T19TSVpFXzEyOAkJKDIgPDwgMykKLSNkZWZpbmUgRE1GQ19GSUZPX1NJWkVfMjU2CQkoMSA8PCAz KQotI2RlZmluZSBETUZDX0ZJRk9fU0laRV81MTIJCSgwIDw8IDMpCi0KLSNkZWZpbmUgRE1GQ19T RUdNRU5UKHgpCQkJKCh4ICYgMHg3KSA8PCAwKQotI2RlZmluZSBETUZDX0JVUlNUU0laRV8xMjgJ CSgwIDw8IDYpCi0jZGVmaW5lIERNRkNfQlVSU1RTSVpFXzY0CQkoMSA8PCA2KQotI2RlZmluZSBE TUZDX0JVUlNUU0laRV8zMgkJKDIgPDwgNikKLSNkZWZpbmUgRE1GQ19CVVJTVFNJWkVfMTYJCSgz IDw8IDYpCi0KIHN0cnVjdCBkbWZjX2NoYW5uZWxfZGF0YSB7CiAJaW50CQlpcHVfY2hhbm5lbDsK IAl1bnNpZ25lZCBsb25nCWNoYW5uZWxfcmVnOwpAQCAtMTA0LDkgKzkzLDYgQEAgc3RydWN0IGlw dV9kbWZjX3ByaXY7CiAKIHN0cnVjdCBkbWZjX2NoYW5uZWwgewogCXVuc2lnbmVkCQkJc2xvdHM7 Ci0JdW5zaWduZWQJCQlzbG90bWFzazsKLQl1bnNpZ25lZAkJCXNlZ21lbnQ7Ci0JaW50CQkJCWJ1 cnN0c2l6ZTsKIAlzdHJ1Y3QgaXB1X3NvYwkJCSppcHU7CiAJc3RydWN0IGlwdV9kbWZjX3ByaXYJ CSpwcml2OwogCWNvbnN0IHN0cnVjdCBkbWZjX2NoYW5uZWxfZGF0YQkqZGF0YTsKQEAgLTExNyw3 ICsxMDMsNiBAQCBzdHJ1Y3QgaXB1X2RtZmNfcHJpdiB7CiAJc3RydWN0IGRldmljZSAqZGV2Owog CXN0cnVjdCBkbWZjX2NoYW5uZWwgY2hhbm5lbHNbRE1GQ19OVU1fQ0hBTk5FTFNdOwogCXN0cnVj dCBtdXRleCBtdXRleDsKLQl1bnNpZ25lZCBsb25nIGJhbmR3aWR0aF9wZXJfc2xvdDsKIAl2b2lk IF9faW9tZW0gKmJhc2U7CiAJaW50IHVzZV9jb3VudDsKIH07CkBAIC0xNzIsMTg0ICsxNTcsNiBA QCB2b2lkIGlwdV9kbWZjX2Rpc2FibGVfY2hhbm5lbChzdHJ1Y3QgZG1mY19jaGFubmVsICpkbWZj KQogfQogRVhQT1JUX1NZTUJPTF9HUEwoaXB1X2RtZmNfZGlzYWJsZV9jaGFubmVsKTsKIAotc3Rh dGljIGludCBpcHVfZG1mY19zZXR1cF9jaGFubmVsKHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRtZmMs IGludCBzbG90cywKLQkJaW50IHNlZ21lbnQsIGludCBidXJzdHNpemUpCi17Ci0Jc3RydWN0IGlw dV9kbWZjX3ByaXYgKnByaXYgPSBkbWZjLT5wcml2OwotCXUzMiB2YWwsIGZpZWxkOwotCi0JZGV2 X2RiZyhwcml2LT5kZXYsCi0JCQkiZG1mYzogdXNpbmcgJWQgc2xvdHMgc3RhcnRpbmcgZnJvbSBz ZWdtZW50ICVkIGZvciBJUFUgY2hhbm5lbCAlZFxuIiwKLQkJCXNsb3RzLCBzZWdtZW50LCBkbWZj LT5kYXRhLT5pcHVfY2hhbm5lbCk7Ci0KLQlzd2l0Y2ggKHNsb3RzKSB7Ci0JY2FzZSAxOgotCQlm aWVsZCA9IERNRkNfRklGT19TSVpFXzY0OwotCQlicmVhazsKLQljYXNlIDI6Ci0JCWZpZWxkID0g RE1GQ19GSUZPX1NJWkVfMTI4OwotCQlicmVhazsKLQljYXNlIDQ6Ci0JCWZpZWxkID0gRE1GQ19G SUZPX1NJWkVfMjU2OwotCQlicmVhazsKLQljYXNlIDg6Ci0JCWZpZWxkID0gRE1GQ19GSUZPX1NJ WkVfNTEyOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlz d2l0Y2ggKGJ1cnN0c2l6ZSkgewotCWNhc2UgMTY6Ci0JCWZpZWxkIHw9IERNRkNfQlVSU1RTSVpF XzE2OwotCQlicmVhazsKLQljYXNlIDMyOgotCQlmaWVsZCB8PSBETUZDX0JVUlNUU0laRV8zMjsK LQkJYnJlYWs7Ci0JY2FzZSA2NDoKLQkJZmllbGQgfD0gRE1GQ19CVVJTVFNJWkVfNjQ7Ci0JCWJy ZWFrOwotCWNhc2UgMTI4OgotCQlmaWVsZCB8PSBETUZDX0JVUlNUU0laRV8xMjg7Ci0JCWJyZWFr OwotCX0KLQotCWZpZWxkIHw9IERNRkNfU0VHTUVOVChzZWdtZW50KTsKLQotCXZhbCA9IHJlYWRs KHByaXYtPmJhc2UgKyBkbWZjLT5kYXRhLT5jaGFubmVsX3JlZyk7Ci0KLQl2YWwgJj0gfigweGZm IDw8IGRtZmMtPmRhdGEtPnNoaWZ0KTsKLQl2YWwgfD0gZmllbGQgPDwgZG1mYy0+ZGF0YS0+c2hp ZnQ7Ci0KLQl3cml0ZWwodmFsLCBwcml2LT5iYXNlICsgZG1mYy0+ZGF0YS0+Y2hhbm5lbF9yZWcp OwotCi0JZG1mYy0+c2xvdHMgPSBzbG90czsKLQlkbWZjLT5zZWdtZW50ID0gc2VnbWVudDsKLQlk bWZjLT5idXJzdHNpemUgPSBidXJzdHNpemU7Ci0JZG1mYy0+c2xvdG1hc2sgPSAoKDEgPDwgc2xv dHMpIC0gMSkgPDwgc2VnbWVudDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGRtZmNf YmFuZHdpZHRoX3RvX3Nsb3RzKHN0cnVjdCBpcHVfZG1mY19wcml2ICpwcml2LAotCQl1bnNpZ25l ZCBsb25nIGJhbmR3aWR0aCkKLXsKLQlpbnQgc2xvdHMgPSAxOwotCi0Jd2hpbGUgKHNsb3RzICog cHJpdi0+YmFuZHdpZHRoX3Blcl9zbG90IDwgYmFuZHdpZHRoKQotCQlzbG90cyAqPSAyOwotCi0J cmV0dXJuIHNsb3RzOwotfQotCi1zdGF0aWMgaW50IGRtZmNfZmluZF9zbG90cyhzdHJ1Y3QgaXB1 X2RtZmNfcHJpdiAqcHJpdiwgaW50IHNsb3RzKQotewotCXVuc2lnbmVkIHNsb3RtYXNrX25lZWQs IHNsb3RtYXNrX3VzZWQgPSAwOwotCWludCBpLCBzZWdtZW50ID0gMDsKLQotCXNsb3RtYXNrX25l ZWQgPSAoMSA8PCBzbG90cykgLSAxOwotCi0JZm9yIChpID0gMDsgaSA8IERNRkNfTlVNX0NIQU5O RUxTOyBpKyspCi0JCXNsb3RtYXNrX3VzZWQgfD0gcHJpdi0+Y2hhbm5lbHNbaV0uc2xvdG1hc2s7 Ci0KLQl3aGlsZSAoc2xvdG1hc2tfbmVlZCA8PSAweGZmKSB7Ci0JCWlmICghKHNsb3RtYXNrX3Vz ZWQgJiBzbG90bWFza19uZWVkKSkKLQkJCXJldHVybiBzZWdtZW50OwotCi0JCXNsb3RtYXNrX25l ZWQgPDw9IDE7Ci0JCXNlZ21lbnQrKzsKLQl9Ci0KLQlyZXR1cm4gLUVCVVNZOwotfQotCi12b2lk IGlwdV9kbWZjX2ZyZWVfYmFuZHdpZHRoKHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRtZmMpCi17Ci0J c3RydWN0IGlwdV9kbWZjX3ByaXYgKnByaXYgPSBkbWZjLT5wcml2OwotCWludCBpOwotCi0JZGV2 X2RiZyhwcml2LT5kZXYsICJkbWZjOiBmcmVlaW5nICVkIHNsb3RzIHN0YXJ0aW5nIGZyb20gc2Vn bWVudCAlZFxuIiwKLQkJCWRtZmMtPnNsb3RzLCBkbWZjLT5zZWdtZW50KTsKLQotCW11dGV4X2xv Y2soJnByaXYtPm11dGV4KTsKLQotCWlmICghZG1mYy0+c2xvdHMpCi0JCWdvdG8gb3V0OwotCi0J ZG1mYy0+c2xvdG1hc2sgPSAwOwotCWRtZmMtPnNsb3RzID0gMDsKLQlkbWZjLT5zZWdtZW50ID0g MDsKLQotCWZvciAoaSA9IDA7IGkgPCBETUZDX05VTV9DSEFOTkVMUzsgaSsrKQotCQlwcml2LT5j aGFubmVsc1tpXS5zbG90bWFzayA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgRE1GQ19OVU1fQ0hB Tk5FTFM7IGkrKykgewotCQlpZiAocHJpdi0+Y2hhbm5lbHNbaV0uc2xvdHMgPiAwKSB7Ci0JCQlw cml2LT5jaGFubmVsc1tpXS5zZWdtZW50ID0KLQkJCQlkbWZjX2ZpbmRfc2xvdHMocHJpdiwgcHJp di0+Y2hhbm5lbHNbaV0uc2xvdHMpOwotCQkJcHJpdi0+Y2hhbm5lbHNbaV0uc2xvdG1hc2sgPQot CQkJCSgoMSA8PCBwcml2LT5jaGFubmVsc1tpXS5zbG90cykgLSAxKSA8PAotCQkJCXByaXYtPmNo YW5uZWxzW2ldLnNlZ21lbnQ7Ci0JCX0KLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgRE1GQ19OVU1f Q0hBTk5FTFM7IGkrKykgewotCQlpZiAocHJpdi0+Y2hhbm5lbHNbaV0uc2xvdHMgPiAwKQotCQkJ aXB1X2RtZmNfc2V0dXBfY2hhbm5lbCgmcHJpdi0+Y2hhbm5lbHNbaV0sCi0JCQkJCXByaXYtPmNo YW5uZWxzW2ldLnNsb3RzLAotCQkJCQlwcml2LT5jaGFubmVsc1tpXS5zZWdtZW50LAotCQkJCQlw cml2LT5jaGFubmVsc1tpXS5idXJzdHNpemUpOwotCX0KLW91dDoKLQltdXRleF91bmxvY2soJnBy aXYtPm11dGV4KTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGlwdV9kbWZjX2ZyZWVfYmFuZHdpZHRo KTsKLQotaW50IGlwdV9kbWZjX2FsbG9jX2JhbmR3aWR0aChzdHJ1Y3QgZG1mY19jaGFubmVsICpk bWZjLAotCQl1bnNpZ25lZCBsb25nIGJhbmR3aWR0aF9waXhlbF9wZXJfc2Vjb25kLCBpbnQgYnVy c3RzaXplKQotewotCXN0cnVjdCBpcHVfZG1mY19wcml2ICpwcml2ID0gZG1mYy0+cHJpdjsKLQlp bnQgc2xvdHMgPSBkbWZjX2JhbmR3aWR0aF90b19zbG90cyhwcml2LCBiYW5kd2lkdGhfcGl4ZWxf cGVyX3NlY29uZCk7Ci0JaW50IHNlZ21lbnQgPSAtMSwgcmV0ID0gMDsKLQotCWRldl9kYmcocHJp di0+ZGV2LCAiZG1mYzogdHJ5aW5nIHRvIGFsbG9jYXRlICVsZE1waXhlbC9zIGZvciBJUFUgY2hh bm5lbCAlZFxuIiwKLQkJCWJhbmR3aWR0aF9waXhlbF9wZXJfc2Vjb25kIC8gMTAwMDAwMCwKLQkJ CWRtZmMtPmRhdGEtPmlwdV9jaGFubmVsKTsKLQotCWlwdV9kbWZjX2ZyZWVfYmFuZHdpZHRoKGRt ZmMpOwotCi0JbXV0ZXhfbG9jaygmcHJpdi0+bXV0ZXgpOwotCi0JaWYgKHNsb3RzID4gOCkgewot CQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gb3V0OwotCX0KLQotCS8qIEZvciB0aGUgTUVNX0JHIGNo YW5uZWwsIGZpcnN0IHRyeSB0byBhbGxvY2F0ZSB0d2ljZSB0aGUgc2xvdHMgKi8KLQlpZiAoZG1m Yy0+ZGF0YS0+aXB1X2NoYW5uZWwgPT0gSVBVVjNfQ0hBTk5FTF9NRU1fQkdfU1lOQykKLQkJc2Vn bWVudCA9IGRtZmNfZmluZF9zbG90cyhwcml2LCBzbG90cyAqIDIpOwotCWVsc2UgaWYgKHNsb3Rz IDwgMikKLQkJLyogQWx3YXlzIGFsbG9jYXRlIGF0IGxlYXN0IDEyOCo0IGJ5dGVzICgyIHNsb3Rz KSAqLwotCQlzbG90cyA9IDI7Ci0KLQlpZiAoc2VnbWVudCA+PSAwKQotCQlzbG90cyAqPSAyOwot CWVsc2UKLQkJc2VnbWVudCA9IGRtZmNfZmluZF9zbG90cyhwcml2LCBzbG90cyk7Ci0JaWYgKHNl Z21lbnQgPCAwKSB7Ci0JCXJldCA9IC1FQlVTWTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JaXB1X2Rt ZmNfc2V0dXBfY2hhbm5lbChkbWZjLCBzbG90cywgc2VnbWVudCwgYnVyc3RzaXplKTsKLQotb3V0 OgotCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOwotCi0JcmV0dXJuIHJldDsKLX0KLUVYUE9S VF9TWU1CT0xfR1BMKGlwdV9kbWZjX2FsbG9jX2JhbmR3aWR0aCk7Ci0KIHZvaWQgaXB1X2RtZmNf Y29uZmlnX3dhaXQ0ZW90KHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRtZmMsIGludCB3aWR0aCkKIHsK IAlzdHJ1Y3QgaXB1X2RtZmNfcHJpdiAqcHJpdiA9IGRtZmMtPnByaXY7CkBAIC0zODQsNyArMTkx LDYgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaXB1X2RtZmNfZ2V0KTsKIAogdm9pZCBpcHVfZG1mY19w dXQoc3RydWN0IGRtZmNfY2hhbm5lbCAqZG1mYykKIHsKLQlpcHVfZG1mY19mcmVlX2JhbmR3aWR0 aChkbWZjKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGlwdV9kbWZjX3B1dCk7CiAKQEAgLTQxMiwy MCArMjE4LDE1IEBAIGludCBpcHVfZG1mY19pbml0KHN0cnVjdCBpcHVfc29jICppcHUsIHN0cnVj dCBkZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBiYXNlLAogCQlwcml2LT5jaGFubmVsc1tpXS5w cml2ID0gcHJpdjsKIAkJcHJpdi0+Y2hhbm5lbHNbaV0uaXB1ID0gaXB1OwogCQlwcml2LT5jaGFu bmVsc1tpXS5kYXRhID0gJmRtZmNkYXRhW2ldOwotCX0KLQotCXdyaXRlbCgweDAsIHByaXYtPmJh c2UgKyBETUZDX1dSX0NIQU4pOwotCXdyaXRlbCgweDAsIHByaXYtPmJhc2UgKyBETUZDX0RQX0NI QU4pOwogCi0JLyoKLQkgKiBXZSBoYXZlIGEgdG90YWwgYmFuZHdpZHRoIG9mIGNsa3JhdGUgKiA0 cGl4ZWwgZGl2aWRlZAotCSAqIGludG8gOCBzbG90cy4KLQkgKi8KLQlwcml2LT5iYW5kd2lkdGhf cGVyX3Nsb3QgPSBjbGtfZ2V0X3JhdGUoaXB1X2NsaykgKiA0IC8gODsKLQotCWRldl9kYmcoZGV2 LCAiZG1mYzogOCBzbG90cyB3aXRoICVsZE1waXhlbC9zIGJhbmR3aWR0aCBlYWNoXG4iLAotCQkJ cHJpdi0+YmFuZHdpZHRoX3Blcl9zbG90IC8gMTAwMDAwMCk7CisJCWlmIChkbWZjZGF0YVtpXS5p cHVfY2hhbm5lbCA9PSBJUFVWM19DSEFOTkVMX01FTV9CR19TWU5DIHx8CisJCSAgICBkbWZjZGF0 YVtpXS5pcHVfY2hhbm5lbCA9PSBJUFVWM19DSEFOTkVMX01FTV9GR19TWU5DIHx8CisJCSAgICBk bWZjZGF0YVtpXS5pcHVfY2hhbm5lbCA9PSBJUFVWM19DSEFOTkVMX01FTV9EQ19TWU5DKQorCQkJ cHJpdi0+Y2hhbm5lbHNbaV0uc2xvdHMgPSAyOworCX0KIAorCXdyaXRlbCgweDAwMDAwMDUwLCBw cml2LT5iYXNlICsgRE1GQ19XUl9DSEFOKTsKKwl3cml0ZWwoMHgwMDAwNTY1NCwgcHJpdi0+YmFz ZSArIERNRkNfRFBfQ0hBTik7CiAJd3JpdGVsKDB4MjAyMDIwZjYsIHByaXYtPmJhc2UgKyBETUZD X1dSX0NIQU5fREVGKTsKIAl3cml0ZWwoMHgyMDIwZjZmNiwgcHJpdi0+YmFzZSArIERNRkNfRFBf Q0hBTl9ERUYpOwogCXdyaXRlbCgweDAwMDAwMDAzLCBwcml2LT5iYXNlICsgRE1GQ19HRU5FUkFM MSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3ZpZGVvL2lteC1pcHUtdjMuaCBiL2luY2x1ZGUvdmlk ZW8vaW14LWlwdS12My5oCmluZGV4IDNhMmE3OTQuLjdhZGVhYWUgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvdmlkZW8vaW14LWlwdS12My5oCisrKyBiL2luY2x1ZGUvdmlkZW8vaW14LWlwdS12My5oCkBA IC0yMzUsOSArMjM1LDYgQEAgaW50IGlwdV9kaV9pbml0X3N5bmNfcGFuZWwoc3RydWN0IGlwdV9k aSAqLCBzdHJ1Y3QgaXB1X2RpX3NpZ25hbF9jZmcgKnNpZyk7CiBzdHJ1Y3QgZG1mY19jaGFubmVs OwogaW50IGlwdV9kbWZjX2VuYWJsZV9jaGFubmVsKHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRtZmMp Owogdm9pZCBpcHVfZG1mY19kaXNhYmxlX2NoYW5uZWwoc3RydWN0IGRtZmNfY2hhbm5lbCAqZG1m Yyk7Ci1pbnQgaXB1X2RtZmNfYWxsb2NfYmFuZHdpZHRoKHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRt ZmMsCi0JCXVuc2lnbmVkIGxvbmcgYmFuZHdpZHRoX21icywgaW50IGJ1cnN0c2l6ZSk7Ci12b2lk IGlwdV9kbWZjX2ZyZWVfYmFuZHdpZHRoKHN0cnVjdCBkbWZjX2NoYW5uZWwgKmRtZmMpOwogdm9p ZCBpcHVfZG1mY19jb25maWdfd2FpdDRlb3Qoc3RydWN0IGRtZmNfY2hhbm5lbCAqZG1mYywgaW50 IHdpZHRoKTsKIHN0cnVjdCBkbWZjX2NoYW5uZWwgKmlwdV9kbWZjX2dldChzdHJ1Y3QgaXB1X3Nv YyAqaXB1LCBpbnQgaXB1djNfY2hhbm5lbCk7CiB2b2lkIGlwdV9kbWZjX3B1dChzdHJ1Y3QgZG1m Y19jaGFubmVsICpkbWZjKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK