From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 08/11] drm/atomic: atomic plane properties Date: Thu, 18 Dec 2014 16:01:53 -0500 Message-ID: <1418936516-10754-9-git-send-email-robdclark@gmail.com> References: <1418936516-10754-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qc0-f169.google.com (mail-qc0-f169.google.com [209.85.216.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 280856EA85 for ; Thu, 18 Dec 2014 13:02:21 -0800 (PST) Received: by mail-qc0-f169.google.com with SMTP id w7so1545916qcr.28 for ; Thu, 18 Dec 2014 13:02:20 -0800 (PST) In-Reply-To: <1418936516-10754-1-git-send-email-robdclark@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 List-Id: dri-devel@lists.freedesktop.org RXhwb3NlIHRoZSBjb3JlIHBsYW5lIHN0YXRlIGFzIHByb3BlcnRpZXMsIHNvIHRoZXkgY2FuIGJl IHVwZGF0ZWQgdmlhCmF0b21pYyBpb2N0bC4KCnYyOiBhdG9taWMgcHJvcGVydHkgZmxhZwoKU2ln bmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog U2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+ClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0KIERvY3VtZW50YXRpb24vRG9jQm9vay9k cm0udG1wbCB8ICA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYyAgIHwgIDY5ICsrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICAgIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgfCAgMTAg KysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsIGIvRG9jdW1lbnRh dGlvbi9Eb2NCb29rL2RybS50bXBsCmluZGV4IDdmYTRmOTguLjhkOGRjNzEgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jv b2svZHJtLnRtcGwKQEAgLTI1NzIsNyArMjU3Miw3IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAk8dGQgdmFsaWduPSJ0b3AiID5EZXNjcmlwdGlvbi9SZXN0 cmljdGlvbnM8L3RkPgogCTwvdHI+CiAJPHRyPgotCTx0ZCByb3dzcGFuPSIyNSIgdmFsaWduPSJ0 b3AiID5EUk08L3RkPgorCTx0ZCByb3dzcGFuPSIzNSIgdmFsaWduPSJ0b3AiID5EUk08L3RkPgog CTx0ZCByb3dzcGFuPSI0IiB2YWxpZ249InRvcCIgPkdlbmVyaWM8L3RkPgogCTx0ZCB2YWxpZ249 InRvcCIgPuKAnEVESUTigJ08L3RkPgogCTx0ZCB2YWxpZ249InRvcCIgPkJMT0IgfCBJTU1VVEFC TEU8L3RkPgpAQCAtMjYwMiw3ICsyNjAyLDcgQEAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCTx0ZCB2YWxpZ249InRvcCIgPkNvbnRhaW5zIHRpbGluZyBpbmZv cm1hdGlvbiBmb3IgYSBjb25uZWN0b3IuPC90ZD4KIAk8L3RyPgogCTx0cj4KLQk8dGQgcm93c3Bh bj0iMSIgdmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+CisJPHRkIHJvd3NwYW49IjExIiB2YWxpZ249 InRvcCIgPlBsYW5lPC90ZD4KIAk8dGQgdmFsaWduPSJ0b3AiID7igJx0eXBl4oCdPC90ZD4KIAk8 dGQgdmFsaWduPSJ0b3AiID5FTlVNIHwgSU1NVVRBQkxFPC90ZD4KIAk8dGQgdmFsaWduPSJ0b3Ai ID57ICJPdmVybGF5IiwgIlByaW1hcnkiLCAiQ3Vyc29yIiB9PC90ZD4KQEAgLTI2MTAsNiArMjYx MCw3NiBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJPHRk IHZhbGlnbj0idG9wIiA+UGxhbmUgdHlwZTwvdGQ+CiAJPC90cj4KIAk8dHI+CisJPHRkIHZhbGln bj0idG9wIiA+4oCcU1JDX1jigJ08L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlJBTkdFPC90ZD4K Kwk8dGQgdmFsaWduPSJ0b3AiID5NaW49MCwgTWF4PVVJTlRfTUFYPC90ZD4KKwk8dGQgdmFsaWdu PSJ0b3AiID5QbGFuZTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+U2Nhbm91dCBzb3VyY2UgeCBj b29yZGluYXRlIGluIDE2LjE2IGZpeGVkIHBvaW50IChhdG9taWMpPC90ZD4KKwk8L3RyPgorCTx0 cj4KKwk8dGQgdmFsaWduPSJ0b3AiID7igJxTUkNfWeKAnTwvdGQ+CisJPHRkIHZhbGlnbj0idG9w IiA+UkFOR0U8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPk1pbj0wLCBNYXg9VUlOVF9NQVg8L3Rk PgorCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5TY2Fu b3V0IHNvdXJjZSB5IGNvb3JkaW5hdGUgaW4gMTYuMTYgZml4ZWQgcG9pbnQgKGF0b21pYyk8L3Rk PgorCTwvdHI+CisJPHRyPgorCTx0ZCB2YWxpZ249InRvcCIgPuKAnFNSQ19X4oCdPC90ZD4KKwk8 dGQgdmFsaWduPSJ0b3AiID5SQU5HRTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+TWluPTAsIE1h eD1VSU5UX01BWDwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgorCTx0ZCB2YWxp Z249InRvcCIgPlNjYW5vdXQgc291cmNlIHdpZHRoIGluIDE2LjE2IGZpeGVkIHBvaW50IChhdG9t aWMpPC90ZD4KKwk8L3RyPgorCTx0cj4KKwk8dGQgdmFsaWduPSJ0b3AiID7igJxTUkNfSOKAnTwv dGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+UkFOR0U8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPk1p bj0wLCBNYXg9VUlOVF9NQVg8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KKwk8 dGQgdmFsaWduPSJ0b3AiID5TY2Fub3V0IHNvdXJjZSBoZWlnaHQgaW4gMTYuMTYgZml4ZWQgcG9p bnQgKGF0b21pYyk8L3RkPgorCTwvdHI+CisJPHRyPgorCTx0ZCB2YWxpZ249InRvcCIgPuKAnENS VENfWOKAnTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+U0lHTkVEX1JBTkdFPC90ZD4KKwk8dGQg dmFsaWduPSJ0b3AiID5NaW49SU5UX01JTiwgTWF4PUlOVF9NQVg8L3RkPgorCTx0ZCB2YWxpZ249 InRvcCIgPlBsYW5lPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5TY2Fub3V0IENSVEMgKGRlc3Rp bmF0aW9uKSB4IGNvb3JkaW5hdGUgKGF0b21pYyk8L3RkPgorCTwvdHI+CisJPHRyPgorCTx0ZCB2 YWxpZ249InRvcCIgPuKAnENSVENfWeKAnTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+U0lHTkVE X1JBTkdFPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49SU5UX01JTiwgTWF4PUlOVF9NQVg8 L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5T Y2Fub3V0IENSVEMgKGRlc3RpbmF0aW9uKSB5IGNvb3JkaW5hdGUgKGF0b21pYyk8L3RkPgorCTwv dHI+CisJPHRyPgorCTx0ZCB2YWxpZ249InRvcCIgPuKAnENSVENfV+KAnTwvdGQ+CisJPHRkIHZh bGlnbj0idG9wIiA+UkFOR0U8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPk1pbj0wLCBNYXg9VUlO VF9NQVg8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlBsYW5lPC90ZD4KKwk8dGQgdmFsaWduPSJ0 b3AiID5TY2Fub3V0IENSVEMgKGRlc3RpbmF0aW9uKSB3aWR0aCAoYXRvbWljKTwvdGQ+CisJPC90 cj4KKwk8dHI+CisJPHRkIHZhbGlnbj0idG9wIiA+4oCcQ1JUQ19I4oCdPC90ZD4KKwk8dGQgdmFs aWduPSJ0b3AiID5SQU5HRTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+TWluPTAsIE1heD1VSU5U X01BWDwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgorCTx0ZCB2YWxpZ249InRv cCIgPlNjYW5vdXQgQ1JUQyAoZGVzdGluYXRpb24pIGhlaWdodCAoYXRvbWljKTwvdGQ+CisJPC90 cj4KKwk8dHI+CisJPHRkIHZhbGlnbj0idG9wIiA+4oCcRkJfSUTigJ08L3RkPgorCTx0ZCB2YWxp Z249InRvcCIgPk9CSkVDVDwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+RFJNX01PREVfT0JKRUNU X0ZCPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFuZTwvdGQ+CisJPHRkIHZhbGlnbj0idG9w IiA+U2Nhbm91dCBmcmFtZWJ1ZmZlciAoYXRvbWljKTwvdGQ+CisJPC90cj4KKwk8dHI+CisJPHRk IHZhbGlnbj0idG9wIiA+4oCcQ1JUQ19JROKAnTwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+T0JK RUNUPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5EUk1fTU9ERV9PQkpFQ1RfQ1JUQzwvdGQ+CisJ PHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPkNSVEMgdGhh dCBwbGFuZSBpcyBhdHRhY2hlZCB0byAoYXRvbWljKTwvdGQ+CisJPC90cj4KKwk8dHI+CiAJPHRk IHJvd3NwYW49IjIiIHZhbGlnbj0idG9wIiA+RFZJLUk8L3RkPgogCTx0ZCB2YWxpZ249InRvcCIg PuKAnHN1YmNvbm5lY3RvcuKAnTwvdGQ+CiAJPHRkIHZhbGlnbj0idG9wIiA+RU5VTTwvdGQ+CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwppbmRleCAxYzQ3MmIxLi4xMzFkNDdmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK QEAgLTM2Niw5ICszNjYsNDEgQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwg c3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCiAJCXVpbnQ2NF90IHZhbCkKIHsKLQlpZiAo cGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KQotCQlyZXR1cm4gcGxhbmUtPmZ1bmNz LT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Ci0JcmV0 dXJuIC1FSU5WQUw7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisJc3Ry dWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisKKwlpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2lkKSB7CisJCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIHZhbCk7CisJCWRybV9hdG9taWNf c2V0X2ZiX2Zvcl9wbGFuZShzdGF0ZSwgZmIpOworCQlpZiAoZmIpCisJCQlkcm1fZnJhbWVidWZm ZXJfdW5yZWZlcmVuY2UoZmIpOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9w X2NydGNfaWQpIHsKKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZHJtX2NydGNfZmluZChkZXYs IHZhbCk7CisJCXJldHVybiBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShzdGF0ZSwgY3J0 Yyk7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y194KSB7CisJCXN0 YXRlLT5jcnRjX3ggPSBVNjQySTY0KHZhbCk7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25m aWctPnByb3BfY3J0Y195KSB7CisJCXN0YXRlLT5jcnRjX3kgPSBVNjQySTY0KHZhbCk7CisJfSBl bHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y193KSB7CisJCXN0YXRlLT5jcnRj X3cgPSB2YWw7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y19oKSB7 CisJCXN0YXRlLT5jcnRjX2ggPSB2YWw7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWct PnByb3Bfc3JjX3gpIHsKKwkJc3RhdGUtPnNyY194ID0gdmFsOworCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5wcm9wX3NyY195KSB7CisJCXN0YXRlLT5zcmNfeSA9IHZhbDsKKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9zcmNfdykgeworCQlzdGF0ZS0+c3JjX3cg PSB2YWw7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3JjX2gpIHsKKwkJ c3RhdGUtPnNyY19oID0gdmFsOworCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0 X3Byb3BlcnR5KSB7CisJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHko cGxhbmUsIHN0YXRlLAorCQkJCXByb3BlcnR5LCB2YWwpOworCX0gZWxzZSB7CisJCXJldHVybiAt RUlOVkFMOworCX0KKworCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3Bs YW5lX3NldF9wcm9wZXJ0eSk7CiAKQEAgLTM5Miw5ICs0MjQsMzYgQEAgaW50IGRybV9hdG9taWNf cGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQljb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwKIAkJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVy dHksIHVpbnQ2NF90ICp2YWwpCiB7Ci0JaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9w ZXJ0eSkKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJt X21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKworCWlmIChwcm9wZXJ0 eSA9PSBjb25maWctPnByb3BfZmJfaWQpIHsKKwkJKnZhbCA9IChzdGF0ZS0+ZmIpID8gc3RhdGUt PmZiLT5iYXNlLmlkIDogMDsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9j cnRjX2lkKSB7CisJCSp2YWwgPSAoc3RhdGUtPmNydGMpID8gc3RhdGUtPmNydGMtPmJhc2UuaWQg OiAwOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNfeCkgeworCQkq dmFsID0gSTY0MlU2NChzdGF0ZS0+Y3J0Y194KTsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+cHJvcF9jcnRjX3kpIHsKKwkJKnZhbCA9IEk2NDJVNjQoc3RhdGUtPmNydGNfeSk7CisJ fSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y193KSB7CisJCSp2YWwgPSBz dGF0ZS0+Y3J0Y193OworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2NydGNf aCkgeworCQkqdmFsID0gc3RhdGUtPmNydGNfaDsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+cHJvcF9zcmNfeCkgeworCQkqdmFsID0gc3RhdGUtPnNyY194OworCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX3NyY195KSB7CisJCSp2YWwgPSBzdGF0ZS0+c3JjX3k7 CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3JjX3cpIHsKKwkJKnZhbCA9 IHN0YXRlLT5zcmNfdzsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9zcmNf aCkgeworCQkqdmFsID0gc3RhdGUtPnNyY19oOworCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5h dG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRf cHJvcGVydHkocGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKLQlyZXR1cm4gLUVJTlZBTDsK Kwl9IGVsc2UgeworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmlu ZGV4IDZhYWUzNWEuLmE1NGQ0ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC0xMTY5LDYgKzExNjksNyBA QCBpbnQgZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICAgICBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywg dWludDMyX3QgZm9ybWF0X2NvdW50LAogCQkJICAgICBlbnVtIGRybV9wbGFuZV90eXBlIHR5cGUp CiB7CisJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7 CiAJaW50IHJldDsKIAogCXJldCA9IGRybV9tb2RlX29iamVjdF9nZXQoZGV2LCAmcGxhbmUtPmJh c2UsIERSTV9NT0RFX09CSkVDVF9QTEFORSk7CkBAIC0xMTkzLDE1ICsxMTk0LDI4IEBAIGludCBk cm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJcGxhbmUtPnBvc3NpYmxlX2NydGNzID0gcG9zc2libGVfY3J0Y3M7 CiAJcGxhbmUtPnR5cGUgPSB0eXBlOwogCi0JbGlzdF9hZGRfdGFpbCgmcGxhbmUtPmhlYWQsICZk ZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpOwotCWRldi0+bW9kZV9jb25maWcubnVtX3RvdGFs X3BsYW5lKys7CisJbGlzdF9hZGRfdGFpbCgmcGxhbmUtPmhlYWQsICZjb25maWctPnBsYW5lX2xp c3QpOworCWNvbmZpZy0+bnVtX3RvdGFsX3BsYW5lKys7CiAJaWYgKHBsYW5lLT50eXBlID09IERS TV9QTEFORV9UWVBFX09WRVJMQVkpCi0JCWRldi0+bW9kZV9jb25maWcubnVtX292ZXJsYXlfcGxh bmUrKzsKKwkJY29uZmlnLT5udW1fb3ZlcmxheV9wbGFuZSsrOwogCiAJZHJtX29iamVjdF9hdHRh Y2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLAotCQkJCSAgIGRldi0+bW9kZV9jb25maWcucGxhbmVf dHlwZV9wcm9wZXJ0eSwKKwkJCQkgICBjb25maWctPnBsYW5lX3R5cGVfcHJvcGVydHksCiAJCQkJ ICAgcGxhbmUtPnR5cGUpOwogCisJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklW RVJfQVRPTUlDKSkgeworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2Us IGNvbmZpZy0+cHJvcF9mYl9pZCwgMCk7CisJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZw bGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX2NydGNfaWQsIDApOworCQlkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9jcnRjX3gsIDApOworCQlkcm1f b2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9jcnRjX3ks IDApOworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+ cHJvcF9jcnRjX3csIDApOworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJh c2UsIGNvbmZpZy0+cHJvcF9jcnRjX2gsIDApOworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+cHJvcF9zcmNfeCwgMCk7CisJCWRybV9vYmplY3RfYXR0 YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX3NyY195LCAwKTsKKwkJZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3Bfc3JjX3cs IDApOworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0+ cHJvcF9zcmNfaCwgMCk7CisJfQorCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV91 bml2ZXJzYWxfcGxhbmVfaW5pdCk7CkBAIC0xMzIzLDcgKzEzMzcsNyBAQCB2b2lkIGRybV9wbGFu ZV9mb3JjZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogfQogRVhQT1JUX1NZTUJP TChkcm1fcGxhbmVfZm9yY2VfZGlzYWJsZSk7CiAKLXN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRl X3N0YW5kYXJkX2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitz dGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKIApAQCAtMTM2MCwy MCArMTM3NCw3MiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9jb25uZWN0 b3JfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gLUVOT01FTTsK IAlkZXYtPm1vZGVfY29uZmlnLnRpbGVfcHJvcGVydHkgPSBwcm9wOwogCi0JcmV0dXJuIDA7Ci19 Ci0KLXN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3BsYW5lX3Byb3BlcnRpZXMo c3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp0eXBlOwot Ci0JLyoKLQkgKiBTdGFuZGFyZCBwcm9wZXJ0aWVzIChhcHBseSB0byBhbGwgcGxhbmVzKQotCSAq LwotCXR5cGUgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LCBEUk1fTU9ERV9QUk9QX0lN TVVUQUJMRSwKKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgRFJNX01PREVf UFJPUF9JTU1VVEFCTEUsCiAJCQkJCSJ0eXBlIiwgZHJtX3BsYW5lX3R5cGVfZW51bV9saXN0LAog CQkJCQlBUlJBWV9TSVpFKGRybV9wbGFuZV90eXBlX2VudW1fbGlzdCkpOwotCWRldi0+bW9kZV9j b25maWcucGxhbmVfdHlwZV9wcm9wZXJ0eSA9IHR5cGU7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4g LUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLnBsYW5lX3R5cGVfcHJvcGVydHkgPSBwcm9wOwor CisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LCBEUk1fTU9ERV9QUk9QX0FU T01JQywKKwkJCSJTUkNfWCIsIDAsIFVJTlRfTUFYKTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAt RU5PTUVNOworCWRldi0+bW9kZV9jb25maWcucHJvcF9zcmNfeCA9IHByb3A7CisKKwlwcm9wID0g ZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAorCQkJ IlNSQ19ZIiwgMCwgVUlOVF9NQVgpOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJ ZGV2LT5tb2RlX2NvbmZpZy5wcm9wX3NyY195ID0gcHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVy dHlfY3JlYXRlX3JhbmdlKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMsCisJCQkiU1JDX1ciLCAw LCBVSU5UX01BWCk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVf Y29uZmlnLnByb3Bfc3JjX3cgPSBwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVf cmFuZ2UoZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywKKwkJCSJTUkNfSCIsIDAsIFVJTlRfTUFY KTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAtRU5PTUVNOworCWRldi0+bW9kZV9jb25maWcucHJv cF9zcmNfaCA9IHByb3A7CisKKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9zaWduZWRfcmFu Z2UoZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywKKwkJCSJDUlRDX1giLCBJTlRfTUlOLCBJTlRf TUFYKTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAtRU5PTUVNOworCWRldi0+bW9kZV9jb25maWcu cHJvcF9jcnRjX3ggPSBwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfc2lnbmVk X3JhbmdlKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMsCisJCQkiQ1JUQ19ZIiwgSU5UX01JTiwg SU5UX01BWCk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29u ZmlnLnByb3BfY3J0Y195ID0gcHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3Jh bmdlKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMsCisJCQkiQ1JUQ19XIiwgMCwgSU5UX01BWCk7 CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLnByb3Bf Y3J0Y193ID0gcHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwg RFJNX01PREVfUFJPUF9BVE9NSUMsCisJCQkiQ1JUQ19IIiwgMCwgSU5UX01BWCk7CisJaWYgKCFw cm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLnByb3BfY3J0Y19oID0g cHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX29iamVjdChkZXYsIERSTV9NT0RF X1BST1BfQVRPTUlDLAorCQkJIkZCX0lEIiwgRFJNX01PREVfT0JKRUNUX0ZCKTsKKwlpZiAoIXBy b3ApCisJCXJldHVybiAtRU5PTUVNOworCWRldi0+bW9kZV9jb25maWcucHJvcF9mYl9pZCA9IHBy b3A7CisKKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9vYmplY3QoZGV2LCBEUk1fTU9ERV9Q Uk9QX0FUT01JQywKKwkJCSJDUlRDX0lEIiwgRFJNX01PREVfT0JKRUNUX0NSVEMpOworCWlmICgh cHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJZGV2LT5tb2RlX2NvbmZpZy5wcm9wX2NydGNfaWQg PSBwcm9wOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01MjY0LDggKzUzMzAsNyBAQCB2b2lkIGRybV9t b2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWRyX2luaXQoJmRldi0+ bW9kZV9jb25maWcudGlsZV9pZHIpOwogCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKLQlk cm1fbW9kZV9jcmVhdGVfc3RhbmRhcmRfY29ubmVjdG9yX3Byb3BlcnRpZXMoZGV2KTsKLQlkcm1f bW9kZV9jcmVhdGVfc3RhbmRhcmRfcGxhbmVfcHJvcGVydGllcyhkZXYpOworCWRybV9tb2RlX2Ny ZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKGRldik7CiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChk ZXYpOwogCiAJLyogSnVzdCB0byBiZSBzdXJlICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCBiNWFiNjczLi5mYzQ3Njdm IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKQEAgLTEwOTksNiArMTA5OSwxNiBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsK IAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp0aWxlX3Byb3BlcnR5OwogCXN0cnVjdCBkcm1fcHJvcGVy dHkgKnBsYW5lX3R5cGVfcHJvcGVydHk7CiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcm90YXRpb25f cHJvcGVydHk7CisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9zcmNfeDsKKwlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wX3NyY195OworCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3Bfc3JjX3c7 CisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9zcmNfaDsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wX2NydGNfeDsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2NydGNfeTsKKwlzdHJ1 Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2NydGNfdzsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w X2NydGNfaDsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2ZiX2lkOworCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3BfY3J0Y19pZDsKIAogCS8qIERWSS1JIHByb3BlcnRpZXMgKi8KIAlzdHJ1 Y3QgZHJtX3Byb3BlcnR5ICpkdmlfaV9zdWJjb25uZWN0b3JfcHJvcGVydHk7Ci0tIAoyLjEuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK