From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 5/7] drm/i915: Add and register lspcon connector functions Date: Tue, 22 Mar 2016 19:55:06 +0530 Message-ID: <1458656708-31228-6-git-send-email-shashank.sharma@intel.com> References: <1458656708-31228-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id CF6036E79E for ; Tue, 22 Mar 2016 14:20:07 +0000 (UTC) In-Reply-To: <1458656708-31228-1-git-send-email-shashank.sharma@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, daniel.vetter@intel.com Cc: akashdeep.sharma@inte.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHZhcmlvdXMgbHNwY29uIGNvbm5lY3RvciBmdW5jdGlvbnMuIFNvbWUK b2YgdGhlIGZ1bmN0aW9ucyBhcmUgbmV3bHkgd3JpdHRlbiwgdG8gbWVldCB0aGUgc3BlY2lmaWMK bmVlZHMgb2YgbHNwY29uIEhXLCB3aGVyZWFzIGZldyBvZiB0aGVtIGFyZSBqdXN0IGFuCmFic3Ry YWN0aW9uIGxheWVyIG9uIGV4aXN0aW5nIEhETUkgY29ubmVjdG9yIGZ1bmN0aW9ucy4KClNpZ25l ZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTEgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaG90cGx1Zy5jIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s c3Bjb24uYyAgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDQgZmls ZXMgY2hhbmdlZCwgMjUxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCAwOTI3M2Q1Li43YjE5YTJjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtMTQwMyw3ICsxNDAzLDEyIEBAIGludCBpbnRlbF9oZG1pX2luaXRfbWluaW11 bShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIHN0cnVjdCBpbnRl bF9oZG1pICplbmNfdG9faW50ZWxfaGRtaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwog Ym9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Ci0K K2ludCBpbnRlbF9oZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KTsKK2ludCBpbnRlbF9oZG1pX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAorCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwgdWludDY0X3QgdmFsKTsK K3ZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Owordm9pZCBpbnRlbF9oZG1pX2FkZF9wcm9wZXJ0aWVzKHN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pLAorCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIAogLyogaW50ZWxf bHZkcy5jICovCiB2b2lkIGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK QEAgLTE0OTIsNiArMTQ5NywxMCBAQCBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2Vu YWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogdm9pZCBpbnRlbF9kaXNw bGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAg IGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKTsKIAorLyogaW50ZWxfaG90 cGx1Zy5jICovCitib29sIGludGVsX2hwZF9pcnFfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKKwkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CisKIHN0YXRpYyBpbmxpbmUg dm9pZAogYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggOWZjYmJk Zi4uYjY3YmIzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTQ0Nyw3ICsxNDQ3 LDcgQEAgaW50ZWxfaGRtaV9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSktPmJhc2UudHlwZSA9IElOVEVMX09VVFBVVF9I RE1JOwogfQogCi1zdGF0aWMgaW50IGludGVsX2hkbWlfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCitpbnQgaW50ZWxfaGRtaV9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgZWRpZCAqZWRpZDsKIApAQCAtMTQ3MSw3 ICsxNDcxLDcgQEAgaW50ZWxfaGRtaV9kZXRlY3RfYXVkaW8oc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAlyZXR1cm4gaGFzX2F1ZGlvOwogfQogCi1zdGF0aWMgaW50CitpbnQKIGlu dGVsX2hkbWlfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJ CQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJCXVpbnQ2NF90IHZhbCkKQEAgLTE5 OTYsNyArMTk5Niw3IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2Rl c3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3ZvaWQgaW50ZWxfaGRtaV9k ZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJa2ZyZWUodG9faW50 ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPmRldGVjdF9lZGlkKTsKIAlkcm1fY29ubmVjdG9yX2Ns ZWFudXAoY29ubmVjdG9yKTsKQEAgLTIwMjUsNyArMjAyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfaGRtaV9lbmNfZnVuY3MgPSB7CiAJLmRlc3Ryb3kg PSBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3ksCiB9OwogCi1zdGF0aWMgdm9pZAordm9pZAogaW50ZWxf aGRtaV9hZGRfcHJvcGVydGllcyhzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSwgc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKIAlpbnRlbF9hdHRhY2hfZm9yY2VfYXVkaW9f cHJvcGVydHkoY29ubmVjdG9yKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwppbmRl eCBiZWU2NzMwLi4xMWEzZTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ob3RwbHVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCkBA IC0yMjYsNyArMjI2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaHBkX2lycV9zdG9ybV9yZWVuYWJs ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChk ZXZfcHJpdik7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX2hwZF9pcnFfZXZlbnQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKK2Jvb2wgaW50ZWxfaHBkX2lycV9ldmVudChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cyBvbGRfc3RhdHVzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bj b24uYwppbmRleCA5ZDVlZDBjLi5lNjRhYmQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9sc3Bjb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bj b24uYwpAQCAtMzksNiArMzksOCBAQAogI2RlZmluZSBEUF9UWVBFMl9BREFQVEVSCQkJMHhBMAog I2RlZmluZSBBREFQVEVSX1RZUEVfTUFTSwkJCTB4RjAKICNkZWZpbmUgTFNQQ09OX01PREVfTUFT SwkJCTB4MQorI2RlZmluZSBERENfU0VHTUVOVF9BRERSCQkJMHgzMAorI2RlZmluZSBERENfQURE UgkJCQkweDUwCiAKIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmxzcGNvbl90b19kaWdfcG9y dChzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCiB7CkBAIC01Nyw2ICs1OSwxMSBAQCBzdHJ1 Y3QgaW50ZWxfbHNwY29uICplbmNfdG9fbHNwY29uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIAlyZXR1cm4gJmludGVsX2RpZ19wb3J0LT5sc3Bjb247CiB9CiAKK3N0cnVjdCBpbnRlbF9s c3Bjb24gKmludGVsX2F0dGFjaGVkX2xzcGNvbihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQoreworCXJldHVybiBlbmNfdG9fbHNwY29uKCZpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNv bm5lY3RvciktPmJhc2UpOworfQorCiBpbnQgbHNwY29uX2lvYV9yZWFkKHN0cnVjdCBpMmNfYWRh cHRlciAqYWRhcHRlciwgdTggKmJ1ZmZlciwKIAkJdTggYWRkcmVzcywgdTggb2Zmc2V0LCB1OCBu b19vZl9ieXRlcykKIHsKQEAgLTExMyw2ICsxMjAsMjE0IEBAIGludCBsc3Bjb25faW9hX3dyaXRl KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgdTggKmJ1ZmZlciwKIAlyZXR1cm4gZXJyOwog fQogCitzdGF0aWMgaW50IGxzcGNvbl9nZXRfZWRpZF9vdmVyX2F1eCh2b2lkICpkYXRhLAorCXU4 ICpidWYsIHVuc2lnbmVkIGludCBibG9jaywgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgc3RhcnQgPSBibG9jayAqIEVE SURfTEVOR1RIOworCXVuc2lnbmVkIGNoYXIgc2VnbWVudCA9IGJsb2NrID4+IDE7CisJdW5zaWdu ZWQgY2hhciB4ZmVycyA9IHNlZ21lbnQgPyAzIDogMjsKKwlpbnQgcmV0LCByZXRyaWVzID0gNTsK KworCWRvIHsKKwkJc3RydWN0IGkyY19tc2cgbXNnc1tdID0geworCQkJeworCQkJCS5hZGRyICAg PSBERENfU0VHTUVOVF9BRERSLAorCQkJCS5mbGFncyAgPSAwLAorCQkJCS5sZW4gICAgPSAxLAor CQkJCS5idWYgICAgPSAmc2VnbWVudCwKKwkJCX0sIHsKKwkJCQkuYWRkciAgID0gRERDX0FERFIs CisJCQkJLmZsYWdzICA9IDAsCisJCQkJLmxlbiAgICA9IDEsCisJCQkJLmJ1ZiAgICA9ICZzdGFy dCwKKwkJCX0sIHsKKwkJCQkuYWRkciAgID0gRERDX0FERFIsCisJCQkJLmZsYWdzICA9IEkyQ19N X1JELAorCQkJCS5sZW4gICAgPSBsZW4sCisJCQkJLmJ1ZiAgICA9IGJ1ZiwKKwkJCX0KKwkJfTsK KworCQlyZXQgPSBhZGFwdGVyLT5hbGdvLT5tYXN0ZXJfeGZlcihhZGFwdGVyLCAmbXNnc1szIC0g eGZlcnNdLAorCQkJCQkJeGZlcnMpOworCisJCWlmIChyZXQgPT0gLUVOWElPKSB7CisJCQlEUk1f RVJST1IoIk5vbi1leGlzdGVudCBhZGFwdGVyICVzXG4iLAorCQkJCWFkYXB0ZXItPm5hbWUpOwor CQkJYnJlYWs7CisJCX0KKwl9IHdoaWxlIChyZXQgIT0geGZlcnMgJiYgLS1yZXRyaWVzKTsKKwor CXJldHVybiByZXQgPT0geGZlcnMgPyAwIDogLTE7Cit9CisKK3N0cnVjdCBlZGlkICpsc3Bjb25f Z2V0X2VkaWQoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cgorCQkJCQkJKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZWRpZCAqZWRpZCA9IE5VTEw7CisJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBsc3Bjb25fdG9fZGlnX3BvcnQobHNw Y29uKTsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmZGlnX3BvcnQtPmRwLmF1eC5k ZGM7CisKKwlpZiAobHNwY29uLT5tb2RlX29mX29wICE9IGxzcGNvbl9tb2RlX2xzKSB7CisJCURS TV9FUlJPUigiQ2FudCByZWFkIEVESUQgd2l0aG91dCBjdXJyZW50IG1vZGUgaW5mb1xuIik7CisJ CXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBMUyBtb2RlLCBnZXR0aW5nIEVESUQgdXNpbmcgSTJD IG92ZXIgQXV4ICovCisJZWRpZCA9IGRybV9kb19nZXRfZWRpZChjb25uZWN0b3IsIGxzcGNvbl9n ZXRfZWRpZF9vdmVyX2F1eCwKKwkJCSh2b2lkICopYWRhcHRlcik7CisJcmV0dXJuIGVkaWQ7Cit9 CisKK3N0YXRpYyB2b2lkCitsc3Bjb25fdW5zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQoreworCXN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9IGludGVsX2F0dGFj aGVkX2xzcGNvbihjb25uZWN0b3IpOworCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g bHNwY29uX3RvX2hkbWkobHNwY29uKTsKKworCWludGVsX2hkbWktPmhhc19oZG1pX3NpbmsgPSBm YWxzZTsKKwlpbnRlbF9oZG1pLT5oYXNfYXVkaW8gPSBmYWxzZTsKKwlpbnRlbF9oZG1pLT5yZ2Jf cXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZSA9IGZhbHNlOworCisJa2ZyZWUodG9faW50ZWxfY29ubmVj dG9yKGNvbm5lY3RvciktPmRldGVjdF9lZGlkKTsKKwl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVj dG9yKS0+ZGV0ZWN0X2VkaWQgPSBOVUxMOworfQorCitzdGF0aWMgYm9vbAorbHNwY29uX3NldF9l ZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmRldik7 CisJc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gaW50ZWxfYXR0YWNoZWRfbHNwY29uKGNv bm5lY3Rvcik7CisJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBsc3Bjb25fdG9faGRt aShsc3Bjb24pOworCXN0cnVjdCBlZGlkICplZGlkID0gTlVMTDsKKwlib29sIGNvbm5lY3RlZCA9 IGZhbHNlOworCisJaWYgKGZvcmNlKSB7CisJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9w cml2LCBQT1dFUl9ET01BSU5fR01CVVMpOworCQllZGlkID0gbHNwY29uX2dldF9lZGlkKGxzcGNv biwgY29ubmVjdG9yKTsKKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VS X0RPTUFJTl9HTUJVUyk7CisJfQorCisJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPmRl dGVjdF9lZGlkID0gZWRpZDsKKwlpZiAoZWRpZCAmJiBlZGlkLT5pbnB1dCAmIERSTV9FRElEX0lO UFVUX0RJR0lUQUwpIHsKKwkJaW50ZWxfaGRtaS0+cmdiX3F1YW50X3JhbmdlX3NlbGVjdGFibGUg PQorCQkJZHJtX3JnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxlKGVkaWQpOworCisJCWludGVsX2hk bWktPmhhc19hdWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKKwkJaWYgKGlu dGVsX2hkbWktPmZvcmNlX2F1ZGlvICE9IEhETUlfQVVESU9fQVVUTykKKwkJCWludGVsX2hkbWkt Pmhhc19hdWRpbyA9CisJCQkJaW50ZWxfaGRtaS0+Zm9yY2VfYXVkaW8gPT0gSERNSV9BVURJT19P TjsKKworCQlpZiAoaW50ZWxfaGRtaS0+Zm9yY2VfYXVkaW8gIT0gSERNSV9BVURJT19PRkZfRFZJ KQorCQkJaW50ZWxfaGRtaS0+aGFzX2hkbWlfc2luayA9CisJCQkJZHJtX2RldGVjdF9oZG1pX21v bml0b3IoZWRpZCk7CisKKwkJY29ubmVjdGVkID0gdHJ1ZTsKKwl9CisJcmV0dXJuIGNvbm5lY3Rl ZDsKK30KKworc3RhdGljIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKK2xzcGNvbl9kZXRlY3Qo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKK3sKKwllbnVtIGRy bV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfbHNwY29uICps c3Bjb24gPSBpbnRlbF9hdHRhY2hlZF9sc3Bjb24oY29ubmVjdG9yKTsKKwlzdHJ1Y3QgaW50ZWxf aGRtaSAqaW50ZWxfaGRtaSA9IGxzcGNvbl90b19oZG1pKGxzcGNvbik7CisKKwlEUk1fREVCVUdf S01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLmlkLCBj b25uZWN0b3ItPm5hbWUpOworCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dF Ul9ET01BSU5fR01CVVMpOworCisJbHNwY29uX3Vuc2V0X2VkaWQoY29ubmVjdG9yKTsKKwlpZiAo bHNwY29uX3NldF9lZGlkKGNvbm5lY3RvciwgdHJ1ZSkpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigi SERNSSBjb25uZWN0ZWRcbiIpOworCQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpLT5iYXNl LnR5cGUgPSBJTlRFTF9PVVRQVVRfSERNSTsKKwkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19j b25uZWN0ZWQ7CisJfSBlbHNlIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiSERNSSBkaXNjb25uZWN0 ZWRcbiIpOworCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKKwl9CisJ aW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJVUyk7CisJ cmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGludAorbHNwY29uX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cGVydHksCisJCQl1aW50NjRfdCB2YWwpCit7CisJcmV0dXJuIGludGVsX2hkbWlfc2V0X3Byb3Bl cnR5KGNvbm5lY3RvciwgcHJvcGVydHksIHZhbCk7Cit9CisKK3N0YXRpYyBpbnQKK2xzcGNvbl9n ZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlyZXR1cm4gaW50 ZWxfaGRtaV9nZXRfbW9kZXMoY29ubmVjdG9yKTsKK30KKworc3RhdGljIHZvaWQKK2xzcGNvbl9k ZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50ZWxfaGRtaV9k ZXN0cm95KGNvbm5lY3Rvcik7Cit9CisKK3N0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cworbHNw Y29uX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgICAg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCit7CisJaW50IGNsb2NrID0gbW9kZS0+Y2xv Y2s7CisJaW50IG1heF9kb3RjbGsgPSA2NzUwMDA7IC8qIDRrQDYwICovCisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2OworCisJaWYgKG1vZGUtPmZsYWdzICYgRFJNX01P REVfRkxBR19EQkxTQ0FOKQorCQlyZXR1cm4gTU9ERV9OT19EQkxFU0NBTjsKKworCWlmICgobW9k ZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHXzNEX01BU0spID09CisJCURSTV9NT0RFX0ZMQUdfM0Rf RlJBTUVfUEFDS0lORykKKwkJY2xvY2sgKj0gMjsKKworCWlmIChtb2RlLT5mbGFncyAmIERSTV9N T0RFX0ZMQUdfREJMQ0xLKQorCQljbG9jayAqPSAyOworCisJaWYgKGNsb2NrIDwgMjUwMDApCisJ CXJldHVybiBNT0RFX0NMT0NLX0xPVzsKKworCWlmIChjbG9jayA+IG1heF9kb3RjbGspCisJCXJl dHVybiBNT0RFX0NMT0NLX0hJR0g7CisKKwkvKiBCWFQgRFBMTCBjYW4ndCBnZW5lcmF0ZSAyMjMt MjQwIE1IeiAqLworCWlmIChJU19CUk9YVE9OKGRldikgJiYgY2xvY2sgPiAyMjMzMzMgJiYgY2xv Y2sgPCAyNDAwMDApCisJCXJldHVybiBNT0RFX0NMT0NLX1JBTkdFOworCisJLyogdG9kbzogY2hl Y2sgZm9yIDEyYnBjIGhlcmUgKi8KKwlyZXR1cm4gTU9ERV9PSzsKK30KKwordm9pZCBsc3Bjb25f YWRkX3Byb3BlcnRpZXMoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJaW50ZWxfaGRtaV9hZGRfcHJvcGVy dGllcygmZGlnX3BvcnQtPmhkbWksIGNvbm5lY3Rvcik7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBsc3Bjb25fY29ubmVjdG9yX2Z1bmNzID0geworCS5kcG1z ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCisJLmRldGVjdCA9IGxzcGNvbl9k ZXRlY3QsCisJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3Jf bW9kZXMsCisJLnNldF9wcm9wZXJ0eSA9IGxzcGNvbl9zZXRfcHJvcGVydHksCisJLmF0b21pY19n ZXRfcHJvcGVydHkgPSBpbnRlbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eSwKKwkuZGVz dHJveSA9IGxzcGNvbl9kZXN0cm95LAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9t aWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAorCS5hdG9taWNfZHVwbGljYXRlX3N0 YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgbHNwY29uX2Nv bm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CisJLmdldF9tb2RlcyA9IGxzcGNvbl9nZXRfbW9kZXMs CisJLm1vZGVfdmFsaWQgPSBsc3Bjb25fbW9kZV92YWxpZCwKKwkuYmVzdF9lbmNvZGVyID0gaW50 ZWxfYmVzdF9lbmNvZGVyLAorfTsKKwogdm9pZCBpbnRlbF9sc3Bjb25faW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiB7CiAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7CkBAIC0x MzAsMTYgKzM0NSwyOCBAQCB2b2lkIGludGVsX2xzcGNvbl9pbml0X2Nvbm5lY3RvcihzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAljb25uZWN0b3ItPmludGVybGFj ZV9hbGxvd2VkID0gdHJ1ZTsKIAljb25uZWN0b3ItPmRvdWJsZXNjYW5fYWxsb3dlZCA9IDA7CiAK KwkvKiBMb2FkIGNvbm5lY3RvciAqLworCWRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3Rv ciwgJmxzcGNvbl9jb25uZWN0b3JfZnVuY3MsCisJCQlEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxh eVBvcnQpOworCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsICZsc3Bjb25fY29u bmVjdG9yX2hlbHBlcl9mdW5jcyk7CisJaW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGlu dGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7CisJZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihj b25uZWN0b3IpOworCisJLyogQWRkIHByb3BlcnRpZXMgYW5kIGZ1bmN0aW9ucyAqLworCWxzcGNv bl9hZGRfcHJvcGVydGllcyhpbnRlbF9kaWdfcG9ydCwgY29ubmVjdG9yKTsKKwlpbnRlbF9jb25u ZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9jb25uZWN0b3JfZ2V0X2h3X3N0YXRlOwor CWk5MTVfZGVidWdmc19jb25uZWN0b3JfYWRkKGNvbm5lY3Rvcik7CisKIAkvKiBpbml0IERQICov CiAJaWYgKGludGVsX2RwX2luaXRfbWluaW11bShpbnRlbF9kaWdfcG9ydCwgaW50ZWxfY29ubmVj dG9yKSkgewogCQlEUk1fRVJST1IoIkRQIGluaXQgZm9yIExTUENPTiBmYWlsZWRcbiIpOwotCQly ZXR1cm47CisJCWdvdG8gZmFpbDsKIAl9CiAKIAkvKiBpbml0IEhETUkgKi8KIAlpZiAoaW50ZWxf aGRtaV9pbml0X21pbmltdW0oaW50ZWxfZGlnX3BvcnQsIGludGVsX2Nvbm5lY3RvcikpIHsKIAkJ RFJNX0VSUk9SKCJIRE1JIGluaXQgZm9yIExTUENPTiBmYWlsZWRcbiIpOwotCQlyZXR1cm47CisJ CWdvdG8gZmFpbDsKIAl9CiAKIAkvKiBTZXQgdXAgdGhlIGhvdHBsdWcgcGluLiAqLwpAQCAtMTgz LDQgKzQxMCwxMSBAQCB2b2lkIGludGVsX2xzcGNvbl9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAogCQlJOTE1X1dSSVRFKFBFR19CQU5E X0dBUF9EQVRBLCAodGVtcCAmIH4weGYpIHwgMHhkKTsKIAl9CisKKwlEUk1fREVCVUdfRFJJVkVS KCJMU1BDT04gY29ubmVjdG9yIGluaXQgZG9uZVxuIik7CisJcmV0dXJuOworCitmYWlsOgorCWRy bV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOworCWRybV9jb25uZWN0b3JfY2xlYW51 cChjb25uZWN0b3IpOwogfQotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=