From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: [PATCH v12 04/18] drm: bridge: analogix/dp: dynamic parse sync_pol & interlace & dynamic_range Date: Wed, 23 Dec 2015 20:31:55 +0800 Message-ID: <1450873915-19023-1-git-send-email-ykk@rock-chips.com> References: <1450873538-18304-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1450873538-18304-1-git-send-email-ykk@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Mark Yao , Jingoo Han , Heiko Stuebner Cc: devicetree@vger.kernel.org, Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Russell King , linux-rockchip@lists.infradead.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kishon Vijay Abraham I , javier@osg.samsung.com, Rob Herring , Andy Yan , Thierry Reding , Gustavo Padovan , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org Qm90aCBoc3luYy92c3luYyBwb2xhcml0eSBhbmQgaW50ZXJsYWNlIG1vZGUgY2FuIGJlIHBhcnNl ZCBmcm9tCmRybSBkaXNwbGF5IG1vZGUsIGFuZCBkeW5hbWljX3JhbmdlIGFuZCB5Y2Jjcl9jb2Vm ZiBjYW4gYmUganVkZ2UKYnkgdGhlIHZpZGVvIGNvZGUuCgpCdXQgcHJlc3VtYWJseSBFeHlub3Mg c3RpbGwgcmVsaWVzIG9uIHRoZSBEVCBwcm9wZXJ0aWVzLCBzbyB0YWtlCmdvb2QgdXNlIG9mIG1v ZGVfZml4dXAoKSBpbiB0byBhY2hpZXZlIHRoZSBjb21wYXRpYmlsaXR5IGhhY2tzLgoKU2lnbmVk LW9mZi1ieTogWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPgpSZXZpZXdlZC1ieTogS3J6 eXN6dG9mIEtvemxvd3NraSA8ay5rb3psb3dza2lAc2Ftc3VuZy5jb20+ClRlc3RlZC1ieTogSmF2 aWVyIE1hcnRpbmV6IENhbmlsbGFzIDxqYXZpZXJAb3NnLnNhbXN1bmcuY29tPgotLS0KQ2hhbmdl cyBpbiB2MTI6IE5vbmUKQ2hhbmdlcyBpbiB2MTE6IE5vbmUKQ2hhbmdlcyBpbiB2MTA6IE5vbmUK Q2hhbmdlcyBpbiB2OTogTm9uZQpDaGFuZ2VzIGluIHY4OiBOb25lCkNoYW5nZXMgaW4gdjc6Ci0g QmFjayB0byB1c2UgdGhlIG9mX3Byb3BlcnR5X3JlYWRfYm9vbCgpIGludGVyZmFjcyB0byBwcm92 b2lkIGJhY2t3YXJkCiAgY29tcGF0aWJpbGl0eSBvZiAiaHN5bmMtYWN0aXZlLWhpZ2giICJ2c3lu Yy1hY3RpdmUtaGlnaCIgImludGVybGFjZWQiCiAgdG8gYXZvaWQgLUVPVkVSRkxPVyBlcnJvciAo S3J6eXN6dG9mKQoKQ2hhbmdlcyBpbiB2NjogTm9uZQpDaGFuZ2VzIGluIHY1OgotIFN3aXRjaCB2 aWRlbyB0aW1pbmcgdHlwZSB0byAidTMyIiwgc28gZHJpdmVyIGNvdWxkIHVzZSAib2ZfcHJvcGVy dHlfcmVhZF91MzIiCiAgdG8gZ2V0IHRoZSBiYWNrd29yZCB0aW1pbmcgdmFsdWVzLiBLcnp5c3p0 b2Ygc3VnZ2VzdCBtZSB0aGF0IGRyaXZlciBjb3VsZCB1c2UKICB0aGUgIm9mX3Byb3BlcnR5X3Jl YWRfYm9vbCIgdG8gZ2V0IGJhY2t3b3JkIHRpbWluZyB2YWx1ZXMsIGJ1dCB0aGF0IGludGVyZmFj cwogIHdvdWxkIG1vZGlmeSB0aGUgb3JpZ2luYWwgZHJtX2Rpc3BsYXlfbW9kZSB0aW1pbmcgZGly ZWN0bHkgKHdoZXRoZXIgdGhvc2UKICBwcm9wZXJ0aWVzIGV4aXN0cyBvciBub3QpLgoKQ2hhbmdl cyBpbiB2NDoKLSBQcm92aWRlIGJhY2t3b3JkIGNvbXBhdGliaWxpdHkgd2l0aCBzYW1zdW5nLiAo S3J6eXN6dG9mKQoKQ2hhbmdlcyBpbiB2MzoKLSBEeW5hbWljIHBhcnNlIHZpZGVvIHRpbWluZyBp bmZvIGZyb20gc3RydWN0IGRybV9kaXNwbGF5X21vZGUgYW5kCiAgc3RydWN0IGRybV9kaXNwbGF5 X2luZm8uIChUaGllcnJ5KQoKQ2hhbmdlcyBpbiB2MjogTm9uZQoKIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jIHwgMTQ4ICsrKysrKysrKysrKystLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmgg fCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVn LmMgIHwgIDE0ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCA2MSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2Fu YWxvZ2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9n aXhfZHBfY29yZS5jCmluZGV4IGZhYzhhZDQuLjI3NzUyZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCkBAIC04OTMsOCArODkz LDggQEAgc3RhdGljIHZvaWQgYW5hbG9naXhfZHBfY29tbWl0KHN0cnVjdCBhbmFsb2dpeF9kcF9k ZXZpY2UgKmRwKQogCQlyZXR1cm47CiAJfQogCi0JcmV0ID0gYW5hbG9naXhfZHBfc2V0X2xpbmtf dHJhaW4oZHAsIGRwLT52aWRlb19pbmZvLT5sYW5lX2NvdW50LAotCQkJCQkgZHAtPnZpZGVvX2lu Zm8tPmxpbmtfcmF0ZSk7CisJcmV0ID0gYW5hbG9naXhfZHBfc2V0X2xpbmtfdHJhaW4oZHAsIGRw LT52aWRlb19pbmZvLmxhbmVfY291bnQsCisJCQkJCSBkcC0+dmlkZW9faW5mby5saW5rX3JhdGUp OwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkcC0+ZGV2LCAidW5hYmxlIHRvIGRvIGxpbmsgdHJh aW5cbiIpOwogCQlyZXR1cm47CkBAIC0xMDc3LDYgKzEwNzcsODUgQEAgc3RhdGljIHZvaWQgYW5h bG9naXhfZHBfYnJpZGdlX2Rpc2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKIAlkcC0+ ZHBtc19tb2RlID0gRFJNX01PREVfRFBNU19PRkY7CiB9CiAKK3N0YXRpYyB2b2lkIGFuYWxvZ2l4 X2RwX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqb3JpZ19tb2RlLAorCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSkKK3sKKwlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCA9IGJyaWRnZS0+ ZHJpdmVyX3ByaXZhdGU7CisJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXlfaW5mbyA9 ICZkcC0+Y29ubmVjdG9yLmRpc3BsYXlfaW5mbzsKKwlzdHJ1Y3QgdmlkZW9faW5mbyAqdmlkZW8g PSAmZHAtPnZpZGVvX2luZm87CisJc3RydWN0IGRldmljZV9ub2RlICpkcF9ub2RlID0gZHAtPmRl di0+b2Zfbm9kZTsKKwlpbnQgdmljOworCisJLyogSW5wdXQgdmlkZW8gaW50ZXJsYWNlcyAmIGhz eW5jIHBvbCAmIHZzeW5jIHBvbCAqLworCXZpZGVvLT5pbnRlcmxhY2VkID0gISEobW9kZS0+Zmxh Z3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSk7CisJdmlkZW8tPnZfc3luY19wb2xhcml0eSA9 ICEhKG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19OVlNZTkMpOworCXZpZGVvLT5oX3N5bmNf cG9sYXJpdHkgPSAhIShtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfTkhTWU5DKTsKKworCS8q IElucHV0IHZpZGVvIGR5bmFtaWNfcmFuZ2UgJiBjb2xvcmltZXRyeSAqLworCXZpYyA9IGRybV9t YXRjaF9jZWFfbW9kZShtb2RlKTsKKwlpZiAoKHZpYyA9PSA2KSB8fCAodmljID09IDcpIHx8ICh2 aWMgPT0gMjEpIHx8ICh2aWMgPT0gMjIpIHx8CisJICAgICh2aWMgPT0gMikgfHwgKHZpYyA9PSAz KSB8fCAodmljID09IDE3KSB8fCAodmljID09IDE4KSkgeworCQl2aWRlby0+ZHluYW1pY19yYW5n ZSA9IENFQTsKKwkJdmlkZW8tPnljYmNyX2NvZWZmID0gQ09MT1JfWUNCQ1I2MDE7CisJfSBlbHNl IGlmICh2aWMpIHsKKwkJdmlkZW8tPmR5bmFtaWNfcmFuZ2UgPSBDRUE7CisJCXZpZGVvLT55Y2Jj cl9jb2VmZiA9IENPTE9SX1lDQkNSNzA5OworCX0gZWxzZSB7CisJCXZpZGVvLT5keW5hbWljX3Jh bmdlID0gVkVTQTsKKwkJdmlkZW8tPnljYmNyX2NvZWZmID0gQ09MT1JfWUNCQ1I3MDk7CisJfQor CisJLyogSW5wdXQgdmlkZSBicGMgYW5kIGNvbG9yX2Zvcm1hdHMgKi8KKwlzd2l0Y2ggKGRpc3Bs YXlfaW5mby0+YnBjKSB7CisJY2FzZSAxMjoKKwkJdmlkZW8tPmNvbG9yX2RlcHRoID0gQ09MT1Jf MTI7CisJCWJyZWFrOworCWNhc2UgMTA6CisJCXZpZGVvLT5jb2xvcl9kZXB0aCA9IENPTE9SXzEw OworCQlicmVhazsKKwljYXNlIDg6CisJCXZpZGVvLT5jb2xvcl9kZXB0aCA9IENPTE9SXzg7CisJ CWJyZWFrOworCWNhc2UgNjoKKwkJdmlkZW8tPmNvbG9yX2RlcHRoID0gQ09MT1JfNjsKKwkJYnJl YWs7CisJZGVmYXVsdDoKKwkJdmlkZW8tPmNvbG9yX2RlcHRoID0gQ09MT1JfODsKKwkJYnJlYWs7 CisJfQorCWlmIChkaXNwbGF5X2luZm8tPmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFU X1lDUkNCNDQ0KQorCQl2aWRlby0+Y29sb3Jfc3BhY2UgPSBDT0xPUl9ZQ0JDUjQ0NDsKKwllbHNl IGlmIChkaXNwbGF5X2luZm8tPmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNC NDIyKQorCQl2aWRlby0+Y29sb3Jfc3BhY2UgPSBDT0xPUl9ZQ0JDUjQyMjsKKwllbHNlIGlmIChk aXNwbGF5X2luZm8tPmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1JHQjQ0NCkKKwkJ dmlkZW8tPmNvbG9yX3NwYWNlID0gQ09MT1JfUkdCOworCWVsc2UKKwkJdmlkZW8tPmNvbG9yX3Nw YWNlID0gQ09MT1JfUkdCOworCisJLyoKKwkgKiBOT1RFOiB0aG9zZSBwcm9wZXJ0eSBwYXJzaW5n IGNvZGUgaXMgdXNlZCBmb3IgcHJvdmlkaW5nIGJhY2t3YXJkCisJICogY29tcGF0aWJpbGl0eSBm b3Igc2Ftc3VuZyBwbGF0Zm9ybS4KKwkgKiBEdWUgdG8gd2UgdXNlZCB0aGUgIm9mX3Byb3BlcnR5 X3JlYWRfdTMyIiBpbnRlcmZhY2VzLCB3aGVuIHRoaXMKKwkgKiBwcm9wZXJ0eSBpc24ndCBwcmVz ZW50LCB0aGUgInZpZGVvX2luZm8iIGNhbiBrZWVwIHRoZSBvcmlnaW5hbAorCSAqIHZhbHVlcyBh bmQgd291bGRuJ3QgYmUgbW9kaWZpZWQuCisJICovCisJb2ZfcHJvcGVydHlfcmVhZF91MzIoZHBf bm9kZSwgInNhbXN1bmcsY29sb3Itc3BhY2UiLAorCQkJICAgICAmdmlkZW8tPmNvbG9yX3NwYWNl KTsKKwlvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxkeW5hbWljLXJhbmdl IiwKKwkJCSAgICAgJnZpZGVvLT5keW5hbWljX3JhbmdlKTsKKwlvZl9wcm9wZXJ0eV9yZWFkX3Uz MihkcF9ub2RlLCAic2Ftc3VuZyx5Y2Jjci1jb2VmZiIsCisJCQkgICAgICZ2aWRlby0+eWNiY3Jf Y29lZmYpOworCW9mX3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1zdW5nLGNvbG9yLWRl cHRoIiwKKwkJCSAgICAgJnZpZGVvLT5jb2xvcl9kZXB0aCk7CisJaWYgKG9mX3Byb3BlcnR5X3Jl YWRfYm9vbChkcF9ub2RlLCAiaHN5bmMtYWN0aXZlLWhpZ2giKSkKKwkJdmlkZW8tPmhfc3luY19w b2xhcml0eSA9IHRydWU7CisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkcF9ub2RlLCAidnN5 bmMtYWN0aXZlLWhpZ2giKSkKKwkJdmlkZW8tPnZfc3luY19wb2xhcml0eSA9IHRydWU7CisJaWYg KG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkcF9ub2RlLCAiaW50ZXJsYWNlZCIpKQorCQl2aWRlby0+ aW50ZXJsYWNlZCA9IHRydWU7Cit9CisKIHN0YXRpYyB2b2lkIGFuYWxvZ2l4X2RwX2JyaWRnZV9u b3Aoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKIHsKIAkvKiBkbyBub3RoaW5nICovCkBAIC0x MDg3LDYgKzExNjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgYW5h bG9naXhfZHBfYnJpZGdlX2Z1bmNzID0gewogCS5kaXNhYmxlID0gYW5hbG9naXhfZHBfYnJpZGdl X2Rpc2FibGUsCiAJLnByZV9lbmFibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2Vfbm9wLAogCS5wb3N0 X2Rpc2FibGUgPSBhbmFsb2dpeF9kcF9icmlkZ2Vfbm9wLAorCS5tb2RlX3NldCA9IGFuYWxvZ2l4 X2RwX2JyaWRnZV9tb2RlX3NldCwKIAkuYXR0YWNoID0gYW5hbG9naXhfZHBfYnJpZGdlX2F0dGFj aCwKIH07CiAKQEAgLTExMTgsNjIgKzExOTgsMjQgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9j cmVhdGVfYnJpZGdlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgc3RydWN0IHZpZGVvX2luZm8gKmFuYWxvZ2l4X2RwX2R0X3BhcnNlX3BkYXRhKHN0 cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgYW5hbG9naXhfZHBfZHRfcGFyc2VfcGRhdGEo c3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiB7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpk cF9ub2RlID0gZGV2LT5vZl9ub2RlOwotCXN0cnVjdCB2aWRlb19pbmZvICpkcF92aWRlb19jb25m aWc7Ci0KLQlkcF92aWRlb19jb25maWcgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmRwX3Zp ZGVvX2NvbmZpZyksCi0JCQkJICAgICAgIEdGUF9LRVJORUwpOwotCWlmICghZHBfdmlkZW9fY29u ZmlnKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotCWRwX3ZpZGVvX2NvbmZpZy0+aF9z eW5jX3BvbGFyaXR5ID0KLQkJb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRwX25vZGUsICJoc3luYy1h Y3RpdmUtaGlnaCIpOwotCi0JZHBfdmlkZW9fY29uZmlnLT52X3N5bmNfcG9sYXJpdHkgPQotCQlv Zl9wcm9wZXJ0eV9yZWFkX2Jvb2woZHBfbm9kZSwgInZzeW5jLWFjdGl2ZS1oaWdoIik7Ci0KLQlk cF92aWRlb19jb25maWctPmludGVybGFjZWQgPQotCQlvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZHBf bm9kZSwgImludGVybGFjZWQiKTsKLQotCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2Rl LCAic2Ftc3VuZyxjb2xvci1zcGFjZSIsCi0JCQkJICZkcF92aWRlb19jb25maWctPmNvbG9yX3Nw YWNlKSkgewotCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgY29sb3Itc3BhY2VcbiIpOwot CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQl9Ci0KLQlpZiAob2ZfcHJvcGVydHlfcmVhZF91 MzIoZHBfbm9kZSwgInNhbXN1bmcsZHluYW1pYy1yYW5nZSIsCi0JCQkJICZkcF92aWRlb19jb25m aWctPmR5bmFtaWNfcmFuZ2UpKSB7Ci0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCBkeW5h bWljLXJhbmdlXG4iKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JfQotCi0JaWYgKG9m X3Byb3BlcnR5X3JlYWRfdTMyKGRwX25vZGUsICJzYW1zdW5nLHljYmNyLWNvZWZmIiwKLQkJCQkg JmRwX3ZpZGVvX2NvbmZpZy0+eWNiY3JfY29lZmYpKSB7Ci0JCWRldl9lcnIoZGV2LCAiZmFpbGVk IHRvIGdldCB5Y2Jjci1jb2VmZlxuIik7Ci0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCX0K LQotCWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxjb2xvci1kZXB0 aCIsCi0JCQkJICZkcF92aWRlb19jb25maWctPmNvbG9yX2RlcHRoKSkgewotCQlkZXZfZXJyKGRl diwgImZhaWxlZCB0byBnZXQgY29sb3ItZGVwdGhcbiIpOwotCQlyZXR1cm4gRVJSX1BUUigtRUlO VkFMKTsKLQl9CisJc3RydWN0IGRldmljZV9ub2RlICpkcF9ub2RlID0gZHAtPmRldi0+b2Zfbm9k ZTsKKwlzdHJ1Y3QgdmlkZW9faW5mbyAqdmlkZW9faW5mbyA9ICZkcC0+dmlkZW9faW5mbzsKIAog CWlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkcF9ub2RlLCAic2Ftc3VuZyxsaW5rLXJhdGUiLAot CQkJCSAmZHBfdmlkZW9fY29uZmlnLT5saW5rX3JhdGUpKSB7Ci0JCWRldl9lcnIoZGV2LCAiZmFp bGVkIHRvIGdldCBsaW5rLXJhdGVcbiIpOwotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwkJ CQkgJnZpZGVvX2luZm8tPmxpbmtfcmF0ZSkpIHsKKwkJZGV2X2VycihkcC0+ZGV2LCAiZmFpbGVk IHRvIGdldCBsaW5rLXJhdGVcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlpZiAob2Zf cHJvcGVydHlfcmVhZF91MzIoZHBfbm9kZSwgInNhbXN1bmcsbGFuZS1jb3VudCIsCi0JCQkJICZk cF92aWRlb19jb25maWctPmxhbmVfY291bnQpKSB7Ci0JCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRv IGdldCBsYW5lLWNvdW50XG4iKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisJCQkJICZ2 aWRlb19pbmZvLT5sYW5lX2NvdW50KSkgeworCQlkZXZfZXJyKGRwLT5kZXYsICJmYWlsZWQgdG8g Z2V0IGxhbmUtY291bnRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyZXR1cm4gZHBf dmlkZW9fY29uZmlnOworCXJldHVybiAwOwogfQogCiBpbnQgYW5hbG9naXhfZHBfYmluZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LApAQCAtMTIwNiw5ICsx MjQ4LDkgQEAgaW50IGFuYWxvZ2l4X2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtX2RldiwKIAkgKi8KIAlkcC0+cGxhdF9kYXRhID0gcGxhdF9kYXRhOwog Ci0JZHAtPnZpZGVvX2luZm8gPSBhbmFsb2dpeF9kcF9kdF9wYXJzZV9wZGF0YSgmcGRldi0+ZGV2 KTsKLQlpZiAoSVNfRVJSKGRwLT52aWRlb19pbmZvKSkKLQkJcmV0dXJuIFBUUl9FUlIoZHAtPnZp ZGVvX2luZm8pOworCXJldCA9IGFuYWxvZ2l4X2RwX2R0X3BhcnNlX3BkYXRhKGRwKTsKKwlpZiAo cmV0KQorCQlyZXR1cm4gcmV0OwogCiAJZHAtPnBoeSA9IGRldm1fcGh5X2dldChkcC0+ZGV2LCAi ZHAiKTsKIAlpZiAoSVNfRVJSKGRwLT5waHkpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5oCmluZGV4IDkxMTY0MmUuLmQ0ODhkZDYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf Y29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf Y29yZS5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSB7CiAJ dW5zaWduZWQgaW50CQlpcnE7CiAJdm9pZCBfX2lvbWVtCQkqcmVnX2Jhc2U7CiAKLQlzdHJ1Y3Qg dmlkZW9faW5mbwkqdmlkZW9faW5mbzsKKwlzdHJ1Y3QgdmlkZW9faW5mbwl2aWRlb19pbmZvOwog CXN0cnVjdCBsaW5rX3RyYWluCWxpbmtfdHJhaW47CiAJc3RydWN0IHdvcmtfc3RydWN0CWhvdHBs dWdfd29yazsKIAlzdHJ1Y3QgcGh5CQkqcGh5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYW5hbG9naXgvYW5hbG9naXhfZHBfcmVnLmMKaW5kZXggZWIwYjYzYy4uMzg1OGRmNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9yZWcu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX3JlZy5j CkBAIC0xMDg0LDE1ICsxMDg0LDE1IEBAIHZvaWQgYW5hbG9naXhfZHBfc2V0X3ZpZGVvX2NvbG9y X2Zvcm1hdChzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNlICpkcCkKIAl1MzIgcmVnOwogCiAJLyog Q29uZmlndXJlIHRoZSBpbnB1dCBjb2xvciBkZXB0aCwgY29sb3Igc3BhY2UsIGR5bmFtaWMgcmFu Z2UgKi8KLQlyZWcgPSAoZHAtPnZpZGVvX2luZm8tPmR5bmFtaWNfcmFuZ2UgPDwgSU5fRF9SQU5H RV9TSElGVCkgfAotCQkoZHAtPnZpZGVvX2luZm8tPmNvbG9yX2RlcHRoIDw8IElOX0JQQ19TSElG VCkgfAotCQkoZHAtPnZpZGVvX2luZm8tPmNvbG9yX3NwYWNlIDw8IElOX0NPTE9SX0ZfU0hJRlQp OworCXJlZyA9IChkcC0+dmlkZW9faW5mby5keW5hbWljX3JhbmdlIDw8IElOX0RfUkFOR0VfU0hJ RlQpIHwKKwkJKGRwLT52aWRlb19pbmZvLmNvbG9yX2RlcHRoIDw8IElOX0JQQ19TSElGVCkgfAor CQkoZHAtPnZpZGVvX2luZm8uY29sb3Jfc3BhY2UgPDwgSU5fQ09MT1JfRl9TSElGVCk7CiAJd3Jp dGVsKHJlZywgZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfVklERU9fQ1RMXzIpOwogCiAJLyog U2V0IElucHV0IENvbG9yIFlDYkNyIENvZWZmaWNpZW50cyB0byBJVFU2MDEgb3IgSVRVNzA5ICov CiAJcmVnID0gcmVhZGwoZHAtPnJlZ19iYXNlICsgQU5BTE9HSVhfRFBfVklERU9fQ1RMXzMpOwog CXJlZyAmPSB+SU5fWUNfQ09FRkZJX01BU0s7Ci0JaWYgKGRwLT52aWRlb19pbmZvLT55Y2Jjcl9j b2VmZikKKwlpZiAoZHAtPnZpZGVvX2luZm8ueWNiY3JfY29lZmYpCiAJCXJlZyB8PSBJTl9ZQ19D T0VGRklfSVRVNzA5OwogCWVsc2UKIAkJcmVnIHw9IElOX1lDX0NPRUZGSV9JVFU2MDE7CkBAIC0x MjI5LDE3ICsxMjI5LDE3IEBAIHZvaWQgYW5hbG9naXhfZHBfY29uZmlnX3ZpZGVvX3NsYXZlX21v ZGUoc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHApCiAKIAlyZWcgPSByZWFkbChkcC0+cmVn X2Jhc2UgKyBBTkFMT0dJWF9EUF9WSURFT19DVExfMTApOwogCXJlZyAmPSB+SU5URVJBQ0VfU0NB Tl9DRkc7Ci0JcmVnIHw9IChkcC0+dmlkZW9faW5mby0+aW50ZXJsYWNlZCA8PCAyKTsKKwlyZWcg fD0gKGRwLT52aWRlb19pbmZvLmludGVybGFjZWQgPDwgMik7CiAJd3JpdGVsKHJlZywgZHAtPnJl Z19iYXNlICsgQU5BTE9HSVhfRFBfVklERU9fQ1RMXzEwKTsKIAogCXJlZyA9IHJlYWRsKGRwLT5y ZWdfYmFzZSArIEFOQUxPR0lYX0RQX1ZJREVPX0NUTF8xMCk7CiAJcmVnICY9IH5WU1lOQ19QT0xB UklUWV9DRkc7Ci0JcmVnIHw9IChkcC0+dmlkZW9faW5mby0+dl9zeW5jX3BvbGFyaXR5IDw8IDEp OworCXJlZyB8PSAoZHAtPnZpZGVvX2luZm8udl9zeW5jX3BvbGFyaXR5IDw8IDEpOwogCXdyaXRl bChyZWcsIGRwLT5yZWdfYmFzZSArIEFOQUxPR0lYX0RQX1ZJREVPX0NUTF8xMCk7CiAKIAlyZWcg PSByZWFkbChkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9WSURFT19DVExfMTApOwogCXJlZyAm PSB+SFNZTkNfUE9MQVJJVFlfQ0ZHOwotCXJlZyB8PSAoZHAtPnZpZGVvX2luZm8tPmhfc3luY19w b2xhcml0eSA8PCAwKTsKKwlyZWcgfD0gKGRwLT52aWRlb19pbmZvLmhfc3luY19wb2xhcml0eSA8 PCAwKTsKIAl3cml0ZWwocmVnLCBkcC0+cmVnX2Jhc2UgKyBBTkFMT0dJWF9EUF9WSURFT19DVExf MTApOwogCiAJcmVnID0gQVVESU9fTU9ERV9TUERJRl9NT0RFIHwgVklERU9fTU9ERV9TTEFWRV9N T0RFOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=