From mboxrd@z Thu Jan 1 00:00:00 1970 From: chix.ding@intel.com Subject: [RFC 5/5] Add intermediate field in intel_crtc_wm_state and handlers for two-level watermark for VLV/CHV Date: Wed, 1 Jun 2016 08:10:21 +0100 Message-ID: <1464765021-16206-6-git-send-email-chix.ding@intel.com> References: <1464765021-16206-1-git-send-email-chix.ding@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2A2966E87E for ; Wed, 1 Jun 2016 07:10:44 +0000 (UTC) In-Reply-To: <1464765021-16206-1-git-send-email-chix.ding@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 Cc: yetundex.adebisi@intel.com, Chi Ding List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KClJlbmFtZSB2bHZfY29tcHV0ZV93bSB0byB2bHZfY29tcHV0ZV9waXBlX3dtIHRvIGNvbXB1 dGUgb3B0aW1hbCB3YXRlcm1hcmsKQWRkIHZsdl9jb21wdXRlX2ludGVybWVkaWF0ZV93bSB0byBj b21wdXRlciBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrCkFkZCB2bHZfaW5pdGlhbF93YXRlcm1hcmtz IHRvIHdyaXRlIGludGVybWVkaWF0ZSB3YXRlcm1hcmsgaW50byBoYXJkd2FyZQpBZGQgdmx2X29w dGltaXplX3dhdGVybWFya3MgdG8gd3JpdGUgb3B0aW1hbCB3YXRlcm1hcmsgaW50byBoYXJkd2Fy ZQpDaGFuZ2UgdmFsbGV5dmlld19jcnRjX2VuYWJsZSB0byBjYWxsIC5pbml0aWFsX3dhdGVybWFy a3MgaGFuZGxlcgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBoYW5kbGVycyBmb3IgdHdvLWxldmVsIGF0 b21pYyB3YXRlcm1hcmsgZm9yIFZMVi9DSFYuCkl0IG1ha2VzIHVzZSBvZiB0aGUgb3B0aW1hbCBh bmQgaW50ZXJtZWRpYXRlIHdhdGVybWFyayBmaWVsZHMgYWRkZWQgaW4KdGhlIHByZXZpb3VzIGNv bW1pdHMgdG8gY2FsY3VsYXRlIHRoZSBvcHRpbWFsIGFuZCBpbnRlcm1lZGlhdGUgc3RhdGUuCkl0 IHNldHMgdGhlIGludGVybWVkaWF0ZSB3YXRlcm1hcmsgd2hpY2ggaXMgdGhlIHNhZmVyIHZhbHVl IG9mIHRoZQpjdXJyZW50bHkgYWN0aXZlIGFuZCB0aGUgb3B0aW1hbCB3YXRlcm1hcmsgcHJlLXZi bGFuay4gVGhlbiBpdCBzZXRzIHRoZQpvcHRpbWFsIHdhdGVybWFyayBhZnRlci12YmxhbmsuCgpU aGUgcGF0Y2ggaXMgYmFzZWQgb24gTWFhcnRlbiBMYW5raG9yc3QncyBjb2RlIGFuZCBjcmVhdGVk IGJ5IENoaSBEaW5nLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4u bGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ2hpIERpbmcgPGNoaXgu ZGluZ0BpbnRlbC5jb20+CgoKY2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+CmNjOiBtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tCmNjOiB5ZXR1bmRleC5h ZGViaXNpQGludGVsLmNvbQotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAzICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAxMzQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRl eCBlNzc1ZDA4Li42NmI4NjI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBA IC00NTk5LDggKzQ1OTksNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiAKIAlpbnRlbF9mcm9udGJ1 ZmZlcl9mbGlwKGRldiwgcGlwZV9jb25maWctPmZiX2JpdHMpOwogCi0JY3J0Yy0+d20uY3hzcl9h bGxvd2VkID0gdHJ1ZTsKLQogCWlmIChwaXBlX2NvbmZpZy0+dXBkYXRlX3dtX3Bvc3QgJiYgcGlw ZV9jb25maWctPmJhc2UuYWN0aXZlKQogCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygmY3J0Yy0+ YmFzZSk7CiAKQEAgLTQ2NDYsNyArNDY0NCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFu ZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCX0KIAog CWlmIChwaXBlX2NvbmZpZy0+ZGlzYWJsZV9jeHNyKSB7Ci0JCWNydGMtPndtLmN4c3JfYWxsb3dl ZCA9IGZhbHNlOwogCiAJCS8qCiAJCSAqIFZibGFuayB0aW1lIHVwZGF0ZXMgZnJvbSB0aGUgc2hh ZG93IHRvIGxpdmUgcGxhbmUgY29udHJvbCByZWdpc3RlcgpAQCAtNjE3Myw3ICs2MTcwLDcgQEAg c3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAKIAlpbnRlbF9jb2xvcl9sb2FkX2x1dHMoJnBpcGVfY29uZmlnLT5iYXNlKTsKIAotCWludGVs X3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOworCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0 ZXJtYXJrcyhwaXBlX2NvbmZpZyk7CiAJaW50ZWxfZW5hYmxlX3BpcGUoaW50ZWxfY3J0Yyk7CiAK IAlhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKGNydGMpOwpAQCAtMTQ0ODYsOCArMTQ0ODMsNiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBp cGUpCiAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2NudGwgPSB+MDsKIAlpbnRlbF9jcnRjLT5jdXJzb3Jf c2l6ZSA9IH4wOwogCi0JaW50ZWxfY3J0Yy0+d20uY3hzcl9hbGxvd2VkID0gdHJ1ZTsKLQogCUJV R19PTihwaXBlID49IEFSUkFZX1NJWkUoZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZykg fHwKIAkgICAgICAgZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZ1tpbnRlbF9jcnRjLT5w bGFuZV0gIT0gTlVMTCk7CiAJZGV2X3ByaXYtPnBsYW5lX3RvX2NydGNfbWFwcGluZ1tpbnRlbF9j cnRjLT5wbGFuZV0gPSAmaW50ZWxfY3J0Yy0+YmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggNmQyZTYyOC4uNjVjMDdiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTQ1 MCw2ICs0NTAsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y193bV9zdGF0ZSB7CiAJCX0gaWxrOwogCiAJ CXN0cnVjdCB7CisJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlIGludGVybWVkaWF0ZTsKIAkJCXN0cnVj dCB2bHZfd21fc3RhdGUgb3B0aW1hbDsKIAkJfSB2bHY7CiAKQEAgLTY4Myw4ICs2ODQsNiBAQCBz dHJ1Y3QgaW50ZWxfY3J0YyB7CiAJCQlzdHJ1Y3Qgc2tsX3BpcGVfd20gc2tsOwogCQl9IGFjdGl2 ZTsKIAotCQkvKiBhbGxvdyBDeFNSIG9uIHRoaXMgcGlwZSAqLwotCQlib29sIGN4c3JfYWxsb3dl ZDsKIAl9IHdtOwogCiAJaW50IHNjYW5saW5lX29mZnNldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CmluZGV4IDg5ZWIxMzkuLjU0YTg4YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtOTQ3 LDcgKzk0Nyw3IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyB1aW50MTZfdCB2bHZfY29tcHV0ZV93bV9sZXZlbChz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAotCQkJCSAgICAgc3RydWN0IGludGVsX2NydGMgKmNy dGMsCisJCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCQkJ CSAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgIGlu dCBsZXZlbCkKIHsKQEAgLTk2MSw5ICs5NjEsMTAgQEAgc3RhdGljIHVpbnQxNl90IHZsdl9jb21w dXRlX3dtX2xldmVsKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJCXJldHVybiAwOwogCiAJ Y3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwg MCk7Ci0JY2xvY2sgPSBjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2Nr OwotCWh0b3RhbCA9IGNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFs OwotCXdpZHRoID0gY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193OworCWNsb2NrID0gY3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwlodG90YWwgPSBjc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKKwl3aWR0aCA9IGNzdGF0ZS0+cGlwZV9zcmNfdzsKKwog CWlmIChXQVJOX09OKGh0b3RhbCA9PSAwKSkKIAkJaHRvdGFsID0gMTsKIApAQCAtOTk1LDkgKzk5 NiwxMyBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsCiAJaW50IHJhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9OwogCWludCBpOwog Ci0JZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7CisJZm9y X2VhY2hfaW50ZWxfcGxhbmVfbWFzayhkZXYsIHBsYW5lLCBjc3RhdGUtPmJhc2UucGxhbmVfbWFz aykgewogCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0KLQkJCXRvX2ludGVsX3Bs YW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKKwkJCWludGVsX2F0b21pY19nZXRfZXhpc3Rp bmdfcGxhbmVfc3RhdGUoCisJCQljc3RhdGUtPmJhc2Uuc3RhdGUsIHBsYW5lKTsKKworCQlpZiAo IXN0YXRlKQorCQkJc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+YmFzZS5zdGF0 ZSk7CiAKIAkJaWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQog CQkJY29udGludWU7CkBAIC0xMDg5LDcgKzEwOTQsNyBAQCBzdGF0aWMgdm9pZCB2bHZfaW52ZXJ0 X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAl9CiB9CiAKLXN0YXRpYyBpbnQgdmx2X2Nv bXB1dGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKK3N0YXRpYyBpbnQgdmx2 X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogewogCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwpAQCAtMTEwMCw3ICsx MTA1LDcgQEAgc3RhdGljIGludCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlKQogCiAJbWVtc2V0KHdtX3N0YXRlLCAwLCBzaXplb2YoKndtX3N0YXRlKSk7CiAK LQl3bV9zdGF0ZS0+Y3hzciA9IGNydGMtPnBpcGUgIT0gUElQRV9DICYmIGNydGMtPndtLmN4c3Jf YWxsb3dlZDsKKwl3bV9zdGF0ZS0+Y3hzciA9IGNydGMtPnBpcGUgIT0gUElQRV9DOwogCXdtX3N0 YXRlLT5udW1fbGV2ZWxzID0gdG9faTkxNShkZXYpLT53bS5tYXhfbGV2ZWwgKyAxOwogCiAJd21f c3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID0gMDsKQEAgLTExMTcsMTYgKzExMjIsMjcgQEAgc3Rh dGljIGludCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQog CQl9CiAJfQogCi0JZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGNydGMsIHBsYW5l KSB7CisJZm9yX2VhY2hfaW50ZWxfcGxhbmVfbWFzayhkZXYsIHBsYW5lLCBjc3RhdGUtPmJhc2Uu cGxhbmVfbWFzaykgewogCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0KLQkJCXRv X2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKKwkJCWludGVsX2F0b21pY19n ZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoY3N0YXRlLT5iYXNlLnN0YXRlLAorCQkJCQkJcGxhbmUp OworCisJLyoKKwkqIEJlY2F1c2Ugd2UgaG9sZCB0aGUgY3J0YyBtdXRleCBwbGFuZXMgdGhhdCBh cmUgcGFydCBvZgorCSogcGxhbmVfbWFzayBjYW5ub3QgYmUgcmVtb3ZlZCBmcm9tIHRoaXMgY3J0 YyB3aGlsZSB3ZSBob2xkCisJKiB0aGUgbG9jay4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGluc3Bl Y3QgcGxhbmUtPnN0YXRlCisJKiB3aGVuIHRoZSBwbGFuZSdzIG5vdCBwYXJ0IG9mIHRoZSBzdGF0 ZSB3aXRob3V0IHRoZSBzdGF0ZQorCSogYmVpbmcJdXBkYXRlZC4KKwkqLworCWlmICghc3RhdGUp CisJCXN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwogCiAJ CWlmICghc3RhdGUtPnZpc2libGUpCiAJCQljb250aW51ZTsKIAogCQkvKiBub3JtYWwgd2F0ZXJt YXJrcyAqLwogCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPCB3bV9zdGF0ZS0+bnVtX2xldmVsczsg bGV2ZWwrKykgewotCQkJaW50IHdtID0gdmx2X2NvbXB1dGVfd21fbGV2ZWwocGxhbmUsIGNydGMs IHN0YXRlLCBsZXZlbCk7CisJCQlpbnQgd20gPSB2bHZfY29tcHV0ZV93bV9sZXZlbChwbGFuZSwg Y3N0YXRlLCBzdGF0ZSwgbGV2ZWwpOwogCQkJaW50IG1heF93bSA9IHBsYW5lLT5iYXNlLnR5cGUg PT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SID8gNjMgOiA1MTE7CiAKIAkJCWlmIChsZXZlbCA9PSAw ICYmIHdtID4gbWF4X3dtKSB7CkBAIC0xMTk2LDYgKzEyMTIsNjMgQEAgc3RhdGljIGludCB2bHZf Y29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCXJldHVybiAwOwog fQogCisKK3N0YXRpYyBpbnQgdmx2X2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAor CQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpCit7CisJc3RydWN0 IHZsdl93bV9zdGF0ZSAqYSA9ICZuZXdzdGF0ZS0+d20udmx2LmludGVybWVkaWF0ZTsKKwlzdHJ1 Y3Qgdmx2X3dtX3N0YXRlICpiID0gJmludGVsX2NydGMtPndtX3N0YXRlOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGxldmVsLCBt YXhfbGV2ZWwgPSBkZXZfcHJpdi0+d20ubWF4X2xldmVsOworCisJLyoKKwkgKiBTdGFydCB3aXRo IHRoZSBmaW5hbCwgdGFyZ2V0IHdhdGVybWFya3MsIHRoZW4gY29tYmluZSB3aXRoIHRoZQorCSAq IGN1cnJlbnRseSBhY3RpdmUgd2F0ZXJtYXJrcyB0byBnZXQgdmFsdWVzIHRoYXQgYXJlIHNhZmUg Ym90aCBiZWZvcmUKKwkgKiBhbmQgYWZ0ZXIgdGhlIHZibGFuay4KKwkgKi8KKwkqYSA9IG5ld3N0 YXRlLT53bS52bHYub3B0aW1hbDsKKworCWEtPm51bV9sZXZlbHMgPSBtaW4oYS0+bnVtX2xldmVs cywgYi0+bnVtX2xldmVscyk7CisJYS0+Y3hzciAmPSBiLT5jeHNyOworCisJZm9yIChsZXZlbCA9 IDA7IGxldmVsIDwgYS0+bnVtX2xldmVsczsgbGV2ZWwrKykgeworCQlzdHJ1Y3Qgdmx2X3BpcGVf d20gKmFfd20gPSAmYS0+d21bbGV2ZWxdOworCQljb25zdCBzdHJ1Y3Qgdmx2X3BpcGVfd20gKmJf d20gPSAmYi0+d21bbGV2ZWxdOworCQlzdHJ1Y3Qgdmx2X3NyX3dtICphX3NyID0gJmEtPnNyW2xl dmVsXTsKKwkJY29uc3Qgc3RydWN0IHZsdl9zcl93bSAqYl9zciA9ICZiLT5zcltsZXZlbF07CisK KwkJYV93bS0+cHJpbWFyeSA9IG1pbihhX3dtLT5wcmltYXJ5LCBiX3dtLT5wcmltYXJ5KTsKKwkJ YV93bS0+c3ByaXRlWzBdID0gbWluKGFfd20tPnNwcml0ZVswXSwgYl93bS0+c3ByaXRlWzBdKTsK KwkJYV93bS0+c3ByaXRlWzFdID0gbWluKGFfd20tPnNwcml0ZVsxXSwgYl93bS0+c3ByaXRlWzFd KTsKKwkJYV93bS0+Y3Vyc29yID0gbWluKGFfd20tPmN1cnNvciwgYl93bS0+Y3Vyc29yKTsKKwor CQlpZiAoYS0+Y3hzcikgeworCQkJYV9zci0+cGxhbmUgPSBtaW4oYV9zci0+cGxhbmUsIGJfc3It PnBsYW5lKTsKKwkJCWFfc3ItPmN1cnNvciA9IG1pbihhX3NyLT5jdXJzb3IsIGJfc3ItPmN1cnNv cik7CisJCX0gZWxzZSB7CisJCQlhX3NyLT5wbGFuZSA9IGJfc3ItPnBsYW5lOworCQkJYV9zci0+ Y3Vyc29yID0gYl9zci0+Y3Vyc29yOworCQl9CisJfQorCisJLyogcmVzZXQgdGhlIGludmFsaWQg bGV2ZWxzICovCisJZm9yIChsZXZlbCA9IGEtPm51bV9sZXZlbHM7IGxldmVsIDw9IG1heF9sZXZl bDsgbGV2ZWwrKykgeworCQltZW1zZXQoJmEtPndtW2xldmVsXSwgMCwgc2l6ZW9mKHN0cnVjdCB2 bHZfcGlwZV93bSkpOworCQltZW1zZXQoJmEtPnNyW2xldmVsXSwgMCwgc2l6ZW9mKHN0cnVjdCB2 bHZfc3Jfd20pKTsKKwl9CisKKworCS8qCisJICogSWYgb3VyIGludGVybWVkaWF0ZSBXTSBhcmUg aWRlbnRpY2FsIHRvIHRoZSBmaW5hbCBXTSwgdGhlbiB3ZSBjYW4KKwkgKiBvbWl0IHRoZSBwb3N0 LXZibGFuayBwcm9ncmFtbWluZzsgb25seSB1cGRhdGUgaWYgaXQncyBkaWZmZXJlbnQuCisJICov CisJaWYgKG1lbWNtcChhLCAmbmV3c3RhdGUtPndtLmlsay5vcHRpbWFsLCBzaXplb2YoKmEpKSA9 PSAwKQorCQluZXdzdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSA9IGZhbHNlOworCisJcmV0 dXJuIDA7Cit9CisKICNkZWZpbmUgVkxWX0ZJRk8ocGxhbmUsIHZhbHVlKSBcCiAJKCgodmFsdWUp IDw8IERTUEFSQl8gIyMgcGxhbmUgIyMgX1NISUZUX1ZMVikgJiBEU1BBUkJfICMjIHBsYW5lICMj IF9NQVNLX1ZMVikKIApAQCAtMTMzNCw4ICsxNDA3LDYgQEAgc3RhdGljIHZvaWQgdmx2X3VwZGF0 ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwogCXN0cnVjdCB2bHZfd21fdmFsdWVzIHdtID0ge307CiAKLQl2bHZfY29tcHV0ZV93 bShpbnRlbF9jcnRjLT5jb25maWcpOwotCWludGVsX2NydGMtPndtX3N0YXRlID0gaW50ZWxfY3J0 Yy0+Y29uZmlnLT53bS52bHYub3B0aW1hbDsKIAl2bHZfbWVyZ2Vfd20oZGV2LCAmd20pOwogCiAJ aWYgKG1lbWNtcCgmZGV2X3ByaXYtPndtLnZsdiwgJndtLCBzaXplb2Yod20pKSA9PSAwKSB7CkBA IC0xMzgxLDYgKzE0NTIsMjkgQEAgc3RhdGljIHZvaWQgdmx2X3VwZGF0ZV93bShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAKIH0KIAorCitzdGF0aWMgdm9pZCB2bHZfaW5pdGlhbF93YXRlcm1hcmtz KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCit7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNy dGMpOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKKwlpbnRlbF9jcnRj LT53bV9zdGF0ZSA9IGNzdGF0ZS0+d20udmx2LmludGVybWVkaWF0ZTsKKwl2bHZfdXBkYXRlX3dt KGNzdGF0ZS0+YmFzZS5jcnRjKTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9tdXRl eCk7Cit9CisKK3N0YXRpYyB2b2lkIHZsdl9vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOworCisJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKKwlpbnRlbF9jcnRjLT53bV9zdGF0ZSA9 IGNzdGF0ZS0+d20udmx2Lm9wdGltYWw7CisJdmx2X3VwZGF0ZV93bShjc3RhdGUtPmJhc2UuY3J0 Yyk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOworfQorCiAjZGVmaW5l IHNpbmdsZV9wbGFuZV9lbmFibGVkKG1hc2spIGlzX3Bvd2VyX29mXzIobWFzaykKIAogc3RhdGlj IHZvaWQgZzR4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCkBAIC03NDA5LDEyICs3 NTAzLDE2IEBAIHZvaWQgaW50ZWxfaW5pdF9wbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJ RFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBsYXRlbmN5LiAiCiAJ CQkJICAgICAgIkRpc2FibGUgQ3hTUlxuIik7CiAJCX0KLQl9IGVsc2UgaWYgKElTX0NIRVJSWVZJ RVcoZGV2KSkgewotCQl2bHZfc2V0dXBfd21fbGF0ZW5jeShkZXYpOwotCQlkZXZfcHJpdi0+ZGlz cGxheS51cGRhdGVfd20gPSB2bHZfdXBkYXRlX3dtOwotCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklF VyhkZXYpKSB7CisJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikgfHwgSVNfVkFMTEVZVklF VyhkZXYpKSB7CiAJCXZsdl9zZXR1cF93bV9sYXRlbmN5KGRldik7Ci0JCWRldl9wcml2LT5kaXNw bGF5LnVwZGF0ZV93bSA9IHZsdl91cGRhdGVfd207CisJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1 dGVfcGlwZV93bSA9CisJCQl2bHZfY29tcHV0ZV9waXBlX3dtOworCQlkZXZfcHJpdi0+ZGlzcGxh eS5jb21wdXRlX2ludGVybWVkaWF0ZV93bSA9CisJCQl2bHZfY29tcHV0ZV9pbnRlcm1lZGlhdGVf d207CisJCWRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyA9CisJCQl2bHZfaW5p dGlhbF93YXRlcm1hcmtzOworCQlkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtz ID0KKwkJCXZsdl9vcHRpbWl6ZV93YXRlcm1hcmtzOwogCX0gZWxzZSBpZiAoSVNfUElORVZJRVco ZGV2KSkgewogCQlpZiAoIWludGVsX2dldF9jeHNyX2xhdGVuY3koSVNfUElORVZJRVdfRyhkZXYp LAogCQkJCQkgICAgZGV2X3ByaXYtPmlzX2RkcjMsCi0tIAoxLjguMC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK