From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Zhong Subject: [PATCH v2 02/11] drm/rockchip/dsi: dw-mipi: support RK3399 mipi dsi Date: Mon, 16 Jan 2017 18:08:22 +0800 Message-ID: <1484561311-494-3-git-send-email-zyw@rock-chips.com> References: <1484561311-494-1-git-send-email-zyw@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1484561311-494-1-git-send-email-zyw@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: dianders@chromium.org, tfiga@chromium.org, heiko@sntech.de, yzq@rock-chips.com, mark.rutland@arm.com, devicetree@vger.kernel.org, robh+dt@kernel.org, galak@codeaurora.org, pawel.moll@arm.com, seanpaul@chromium.org Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Chris Zhong , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org VGhlIHZvcGIvdm9wbCBzd2l0Y2ggcmVnaXN0ZXIgb2YgUkszMzk5IG1pcGkgaXMgZGlmZmVyZW50 IGZyb20gUkszMjg4LAp0aGUgZGVmYXVsdCBzZXR0aW5nIGZvciBtaXBpIGRzaSBtb2RlIGlzIGRp ZmZlcmVudCB0b28sIHNvIGFkZCBhCm9mX2RldmljZV9pZCBzdHJ1Y3R1cmUgdG8gZGlzdGluZ3Vp c2ggdGhlbSwgYW5kIG1ha2Ugc3VyZSBzZXQgdGhlCmNvcnJlY3QgbW9kZSBiZWZvcmUgbWlwaSBw aHkgaW5pdC4KClNpZ25lZC1vZmYtYnk6IENocmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+ ClNpZ25lZC1vZmYtYnk6IE1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KLS0tCgog ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMgfCAxMDEgKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwg MjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3 LW1pcGktZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYwppbmRl eCBkOWFhMzgyLi4wNGZkNTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv ZHctbWlwaS1kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2ku YwpAQCAtMjgsOSArMjgsMTcgQEAKIAogI2RlZmluZSBEUklWRVJfTkFNRSAgICAiZHctbWlwaS1k c2kiCiAKLSNkZWZpbmUgR1JGX1NPQ19DT042ICAgICAgICAgICAgICAgICAgICAweDAyNWMKLSNk ZWZpbmUgRFNJMF9TRUxfVk9QX0xJVCAgICAgICAgICAgICAgICAoMSA8PCA2KQotI2RlZmluZSBE U0kxX1NFTF9WT1BfTElUICAgICAgICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIFJLMzI4OF9H UkZfU09DX0NPTjYJCTB4MDI1YworI2RlZmluZSBSSzMyODhfRFNJMF9TRUxfVk9QX0xJVAkJQklU KDYpCisjZGVmaW5lIFJLMzI4OF9EU0kxX1NFTF9WT1BfTElUCQlCSVQoOSkKKworI2RlZmluZSBS SzMzOTlfR1JGX1NPQ19DT04xOQkJMHg2MjUwCisjZGVmaW5lIFJLMzM5OV9EU0kwX1NFTF9WT1Bf TElUCQlCSVQoMCkKKyNkZWZpbmUgUkszMzk5X0RTSTFfU0VMX1ZPUF9MSVQJCUJJVCg0KQorCisv KiBkaXNhYmxlIHR1cm5yZXF1ZXN0LCB0dXJuZGlzYWJsZSwgZm9yY2V0eHN0b3Btb2RlLCBmb3Jj ZXJ4bW9kZSAqLworI2RlZmluZSBSSzMzOTlfR1JGX1NPQ19DT04yMgkJMHg2MjU4CisjZGVmaW5l IFJLMzM5OV9HUkZfRFNJX01PREUJCTB4ZmZmZjAwMDAKIAogI2RlZmluZSBEU0lfVkVSU0lPTgkJ CTB4MDAKICNkZWZpbmUgRFNJX1BXUl9VUAkJCTB4MDQKQEAgLTE0Nyw3ICsxNTUsNiBAQAogI2Rl ZmluZSBMUFJYX1RPX0NOVChwKQkJCSgocCkgJiAweGZmZmYpCiAKICNkZWZpbmUgRFNJX0JUQV9U T19DTlQJCQkweDhjCi0KICNkZWZpbmUgRFNJX0xQQ0xLX0NUUkwJCQkweDk0CiAjZGVmaW5lIEFV VE9fQ0xLTEFORV9DVFJMCQlCSVQoMSkKICNkZWZpbmUgUEhZX1RYUkVRVUVTVENMS0hTCQlCSVQo MCkKQEAgLTIxMywxMSArMjIwLDExIEBACiAKICNkZWZpbmUgSFNGUkVRUkFOR0VfU0VMKHZhbCkJ KCgodmFsKSAmIDB4M2YpIDw8IDEpCiAKLSNkZWZpbmUgSU5QVVRfRElWSURFUih2YWwpCSgodmFs IC0gMSkgJiAweDdmKQorI2RlZmluZSBJTlBVVF9ESVZJREVSKHZhbCkJKCgodmFsKSAtIDEpICYg MHg3ZikKICNkZWZpbmUgTE9XX1BST0dSQU1fRU4JCTAKICNkZWZpbmUgSElHSF9QUk9HUkFNX0VO CQlCSVQoNykKLSNkZWZpbmUgTE9PUF9ESVZfTE9XX1NFTCh2YWwpCSgodmFsIC0gMSkgJiAweDFm KQotI2RlZmluZSBMT09QX0RJVl9ISUdIX1NFTCh2YWwpCSgoKHZhbCAtIDEpID4+IDUpICYgMHgx ZikKKyNkZWZpbmUgTE9PUF9ESVZfTE9XX1NFTCh2YWwpCSgoKHZhbCkgLSAxKSAmIDB4MWYpCisj ZGVmaW5lIExPT1BfRElWX0hJR0hfU0VMKHZhbCkJKCgoKHZhbCkgLSAxKSA+PiA1KSAmIDB4MWYp CiAjZGVmaW5lIFBMTF9MT09QX0RJVl9FTgkJQklUKDUpCiAjZGVmaW5lIFBMTF9JTlBVVF9ESVZf RU4JQklUKDQpCiAKQEAgLTI2Myw2ICsyNzAsMTEgQEAgZW51bSB7CiB9OwogCiBzdHJ1Y3QgZHdf bWlwaV9kc2lfcGxhdF9kYXRhIHsKKwl1MzIgZHNpMF9lbl9iaXQ7CisJdTMyIGRzaTFfZW5fYml0 OworCXUzMiBncmZfc3dpdGNoX3JlZzsKKwl1MzIgZ3JmX2RzaTBfbW9kZTsKKwl1MzIgZ3JmX2Rz aTBfbW9kZV9yZWc7CiAJdW5zaWduZWQgaW50IG1heF9kYXRhX2xhbmVzOwogCWVudW0gZHJtX21v ZGVfc3RhdHVzICgqbW9kZV92YWxpZCkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAkJCQkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwpAQCAtMjc5LDYgKzI5MSw3 IEBAIHN0cnVjdCBkd19taXBpX2RzaSB7CiAKIAlzdHJ1Y3QgY2xrICpwbGxyZWZfY2xrOwogCXN0 cnVjdCBjbGsgKnBjbGs7CisJc3RydWN0IGNsayAqcGh5X2NmZ19jbGs7CiAKIAl1bnNpZ25lZCBp bnQgbGFuZV9tYnBzOyAvKiBwZXIgbGFuZSAqLwogCXUzMiBjaGFubmVsOwpAQCAtMzUzLDYgKzM2 Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGR3X21pcGlfZHNpICplbmNvZGVyX3RvX2RzaShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJcmV0dXJuIGNvbnRhaW5lcl9vZihlbmNv ZGVyLCBzdHJ1Y3QgZHdfbWlwaV9kc2ksIGVuY29kZXIpOwogfQorCiBzdGF0aWMgaW5saW5lIHZv aWQgZHNpX3dyaXRlKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLCB1MzIgcmVnLCB1MzIgdmFsKQog ewogCXdyaXRlbCh2YWwsIGRzaS0+YmFzZSArIHJlZyk7CkBAIC0zNjQsNyArMzc4LDcgQEAgc3Rh dGljIGlubGluZSB1MzIgZHNpX3JlYWQoc3RydWN0IGR3X21pcGlfZHNpICpkc2ksIHUzMiByZWcp CiB9CiAKIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX3BoeV93cml0ZShzdHJ1Y3QgZHdfbWlwaV9k c2kgKmRzaSwgdTggdGVzdF9jb2RlLAotCQkJCSB1OCB0ZXN0X2RhdGEpCisJCQkJICB1OCB0ZXN0 X2RhdGEpCiB7CiAJLyoKIAkgKiBXaXRoIHRoZSBmYWxsaW5nIGVkZ2Ugb24gVEVTVENMSywgdGhl IFRFU1RESU5bNzowXSBzaWduYWwgY29udGVudApAQCAtNDAwLDYgKzQxNCwxNCBAQCBzdGF0aWMg aW50IGR3X21pcGlfZHNpX3BoeV9pbml0KHN0cnVjdCBkd19taXBpX2RzaSAqZHNpKQogCiAJZHNp X3dyaXRlKGRzaSwgRFNJX1BXUl9VUCwgUE9XRVJVUCk7CiAKKwlpZiAoIUlTX0VSUihkc2ktPnBo eV9jZmdfY2xrKSkgeworCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZHNpLT5waHlfY2ZnX2Ns ayk7CisJCWlmIChyZXQpIHsKKwkJCWRldl9lcnIoZHNpLT5kZXYsICJGYWlsZWQgdG8gZW5hYmxl IHBoeV9jZmdfY2xrXG4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKIAlkd19taXBpX2Rz aV9waHlfd3JpdGUoZHNpLCAweDEwLCBCWVBBU1NfVkNPX1JBTkdFIHwKIAkJCQkJIFZDT19SQU5H RV9DT05fU0VMKHZjbykgfAogCQkJCQkgVkNPX0lOX0NBUF9DT05fTE9XIHwKQEAgLTQzOSwyMiAr NDYxLDIzIEBAIHN0YXRpYyBpbnQgZHdfbWlwaV9kc2lfcGh5X2luaXQoc3RydWN0IGR3X21pcGlf ZHNpICpkc2kpCiAJZHNpX3dyaXRlKGRzaSwgRFNJX1BIWV9SU1RaLCBQSFlfRU5GT1JDRVBMTCB8 IFBIWV9FTkFCTEVDTEsgfAogCQkJCSAgICAgUEhZX1VOUlNUWiB8IFBIWV9VTlNIVVRET1dOWik7 CiAKLQogCXJldCA9IHJlYWR4X3BvbGxfdGltZW91dChyZWFkbCwgZHNpLT5iYXNlICsgRFNJX1BI WV9TVEFUVVMsCiAJCQkJIHZhbCwgdmFsICYgTE9DSywgMTAwMCwgUEhZX1NUQVRVU19USU1FT1VU X1VTKTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKGRzaS0+ZGV2LCAiZmFpbGVkIHRvIHdh aXQgZm9yIHBoeSBsb2NrIHN0YXRlXG4iKTsKLQkJcmV0dXJuIHJldDsKKwkJZ290byBwaHlfaW5p dF9lbmQ7CiAJfQogCiAJcmV0ID0gcmVhZHhfcG9sbF90aW1lb3V0KHJlYWRsLCBkc2ktPmJhc2Ug KyBEU0lfUEhZX1NUQVRVUywKIAkJCQkgdmFsLCB2YWwgJiBTVE9QX1NUQVRFX0NMS19MQU5FLCAx MDAwLAogCQkJCSBQSFlfU1RBVFVTX1RJTUVPVVRfVVMpOwotCWlmIChyZXQgPCAwKSB7CisJaWYg KHJldCA8IDApCiAJCWRldl9lcnIoZHNpLT5kZXYsCiAJCQkiZmFpbGVkIHRvIHdhaXQgZm9yIHBo eSBjbGsgbGFuZSBzdG9wIHN0YXRlXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9CisKK3BoeV9pbml0 X2VuZDoKKwlpZiAoIUlTX0VSUihkc2ktPnBoeV9jZmdfY2xrKSkKKwkJY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGRzaS0+cGh5X2NmZ19jbGspOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTUxMiw3ICs1 MzUsNyBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2Rz aV9ob3N0ICpob3N0LAogCiAJaWYgKGRldmljZS0+bGFuZXMgPiBkc2ktPnBkYXRhLT5tYXhfZGF0 YV9sYW5lcykgewogCQlkZXZfZXJyKGRzaS0+ZGV2LCAidGhlIG51bWJlciBvZiBkYXRhIGxhbmVz KCV1KSBpcyB0b28gbWFueVxuIiwKLQkJCQlkZXZpY2UtPmxhbmVzKTsKKwkJCWRldmljZS0+bGFu ZXMpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTgxNSw4ICs4MzgsOCBAQCBzdGF0aWMg dm9pZCBkd19taXBpX2RzaV9jbGVhcl9lcnIoc3RydWN0IGR3X21pcGlfZHNpICpkc2kpCiB9CiAK IHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAotCQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCQkJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCisJCQkJCSBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKQogewogCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2ko ZW5jb2Rlcik7CiAJaW50IHJldDsKQEAgLTg3OCw2ICs5MDEsNyBAQCBzdGF0aWMgdm9pZCBkd19t aXBpX2RzaV9lbmNvZGVyX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3Rh dGljIHZvaWQgZHdfbWlwaV9kc2lfZW5jb2Rlcl9jb21taXQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogewogCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5j b2Rlcik7CisJY29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRfZGF0YSAqcGRhdGEgPSBkc2kt PnBkYXRhOwogCWludCBtdXggPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVfZW5kcG9pbnRfaWQoZHNp LT5kZXYtPm9mX25vZGUsIGVuY29kZXIpOwogCXUzMiB2YWw7CiAKQEAgLTg4Niw2ICs5MTAsMTAg QEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZW5jb2Rlcl9jb21taXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCQlyZXR1cm47CiAJfQogCisJaWYgKHBkYXRhLT5ncmZfZHNpMF9tb2Rl X3JlZykKKwkJcmVnbWFwX3dyaXRlKGRzaS0+Z3JmX3JlZ21hcCwgcGRhdGEtPmdyZl9kc2kwX21v ZGVfcmVnLAorCQkJICAgICBwZGF0YS0+Z3JmX2RzaTBfbW9kZSk7CisKIAlkd19taXBpX2RzaV9w aHlfaW5pdChkc2kpOwogCWR3X21pcGlfZHNpX3dhaXRfZm9yX3R3b19mcmFtZXMoZHNpKTsKIApA QCAtODk1LDExICs5MjMsMTEgQEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZW5jb2Rlcl9jb21t aXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCWNsa19kaXNhYmxlX3VucHJlcGFyZShk c2ktPnBjbGspOwogCiAJaWYgKG11eCkKLQkJdmFsID0gRFNJMF9TRUxfVk9QX0xJVCB8IChEU0kw X1NFTF9WT1BfTElUIDw8IDE2KTsKKwkJdmFsID0gcGRhdGEtPmRzaTBfZW5fYml0IHwgKHBkYXRh LT5kc2kwX2VuX2JpdCA8PCAxNik7CiAJZWxzZQotCQl2YWwgPSBEU0kwX1NFTF9WT1BfTElUIDw8 IDE2OworCQl2YWwgPSBwZGF0YS0+ZHNpMF9lbl9iaXQgPDwgMTY7CiAKLQlyZWdtYXBfd3JpdGUo ZHNpLT5ncmZfcmVnbWFwLCBHUkZfU09DX0NPTjYsIHZhbCk7CisJcmVnbWFwX3dyaXRlKGRzaS0+ Z3JmX3JlZ21hcCwgcGRhdGEtPmdyZl9zd2l0Y2hfcmVnLCB2YWwpOwogCWRldl9kYmcoZHNpLT5k ZXYsICJ2b3AgJXMgb3V0cHV0IHRvIGRzaTBcbiIsIChtdXgpID8gIkxJVCIgOiAiQklHIik7CiB9 CiAKQEAgLTkzMSw3ICs5NTksNyBAQCBkd19taXBpX2RzaV9lbmNvZGVyX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNv ZGVyX2hlbHBlcl9mdW5jcwogZHdfbWlwaV9kc2lfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJ LmNvbW1pdCA9IGR3X21pcGlfZHNpX2VuY29kZXJfY29tbWl0LAogCS5tb2RlX3NldCA9IGR3X21p cGlfZHNpX2VuY29kZXJfbW9kZV9zZXQsCkBAIC05MzksNyArOTY3LDcgQEAgZHdfbWlwaV9kc2lf ZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmF0b21pY19jaGVjayA9IGR3X21pcGlfZHNpX2Vu Y29kZXJfYXRvbWljX2NoZWNrLAogfTsKIAotc3RhdGljIHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5j cyBkd19taXBpX2RzaV9lbmNvZGVyX2Z1bmNzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9mdW5jcyBkd19taXBpX2RzaV9lbmNvZGVyX2Z1bmNzID0gewogCS5kZXN0cm95ID0g ZHJtX2VuY29kZXJfY2xlYW51cCwKIH07CiAKQEAgLTk3NSw3ICsxMDAzLDcgQEAgc3RhdGljIHZv aWQgZHdfbWlwaV9kc2lfZHJtX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCiAJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBkd19taXBpX2RzaV9hdG9taWNfY29ubmVj dG9yX2Z1bmNzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGR3 X21pcGlfZHNpX2F0b21pY19jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmRwbXMgPSBkcm1fYXRvbWlj X2hlbHBlcl9jb25uZWN0b3JfZHBtcywKIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVf c2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKIAkuZGVzdHJveSA9IGR3X21pcGlfZHNpX2RybV9jb25u ZWN0b3JfZGVzdHJveSwKQEAgLTk4NSw3ICsxMDEzLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29u bmVjdG9yX2Z1bmNzIGR3X21pcGlfZHNpX2F0b21pY19jb25uZWN0b3JfZnVuY3MgPSB7CiB9Owog CiBzdGF0aWMgaW50IGR3X21pcGlfZHNpX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0s Ci0JCQkJICAgICAgc3RydWN0IGR3X21pcGlfZHNpICpkc2kpCisJCQkJc3RydWN0IGR3X21pcGlf ZHNpICpkc2kpCiB7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmRzaS0+ZW5jb2Rl cjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmRzaS0+Y29ubmVjdG9yOwpA QCAtMTAwNiwxNCArMTAzNCwxNCBAQCBzdGF0aWMgaW50IGR3X21pcGlfZHNpX3JlZ2lzdGVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkcm0sCiAJZHJtX2VuY29kZXJfaGVscGVyX2FkZCgmZHNpLT5lbmNv ZGVyLAogCQkJICAgICAgICZkd19taXBpX2RzaV9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7CiAJcmV0 ID0gZHJtX2VuY29kZXJfaW5pdChkcm0sICZkc2ktPmVuY29kZXIsICZkd19taXBpX2RzaV9lbmNv ZGVyX2Z1bmNzLAotCQkJIERSTV9NT0RFX0VOQ09ERVJfRFNJLCBOVUxMKTsKKwkJCSAgICAgICBE Uk1fTU9ERV9FTkNPREVSX0RTSSwgTlVMTCk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRldiwg IkZhaWxlZCB0byBpbml0aWFsaXplIGVuY29kZXIgd2l0aCBkcm1cbiIpOwogCQlyZXR1cm4gcmV0 OwogCX0KIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25uZWN0b3IsCi0JCQkmZHdfbWlw aV9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7CisJCQkJICZkd19taXBpX2RzaV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzKTsKIAogCWRybV9jb25uZWN0b3JfaW5pdChkcm0sICZkc2ktPmNvbm5l Y3RvciwKIAkJCSAgICZkd19taXBpX2RzaV9hdG9taWNfY29ubmVjdG9yX2Z1bmNzLApAQCAtMTA1 OSwyMSArMTA4NywzNiBAQCBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgcmszMjg4X21pcGlf ZHNpX21vZGVfdmFsaWQoCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRh IHJrMzI4OF9taXBpX2RzaV9kcnZfZGF0YSA9IHsKKwkuZHNpMF9lbl9iaXQgPSBSSzMyODhfRFNJ MF9TRUxfVk9QX0xJVCwKKwkuZHNpMV9lbl9iaXQgPSBSSzMyODhfRFNJMV9TRUxfVk9QX0xJVCwK KwkuZ3JmX3N3aXRjaF9yZWcgPSBSSzMyODhfR1JGX1NPQ19DT042LAogCS5tYXhfZGF0YV9sYW5l cyA9IDQsCiAJLm1vZGVfdmFsaWQgPSByazMyODhfbWlwaV9kc2lfbW9kZV92YWxpZCwKIH07CiAK K3N0YXRpYyBzdHJ1Y3QgZHdfbWlwaV9kc2lfcGxhdF9kYXRhIHJrMzM5OV9taXBpX2RzaV9kcnZf ZGF0YSA9IHsKKwkuZHNpMF9lbl9iaXQgPSBSSzMzOTlfRFNJMF9TRUxfVk9QX0xJVCwKKwkuZHNp MV9lbl9iaXQgPSBSSzMzOTlfRFNJMV9TRUxfVk9QX0xJVCwKKwkuZ3JmX3N3aXRjaF9yZWcgPSBS SzMzOTlfR1JGX1NPQ19DT04xOSwKKwkuZ3JmX2RzaTBfbW9kZSA9IFJLMzM5OV9HUkZfRFNJX01P REUsCisJLmdyZl9kc2kwX21vZGVfcmVnID0gUkszMzk5X0dSRl9TT0NfQ09OMjIsCisJLm1heF9k YXRhX2xhbmVzID0gNCwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3 X21pcGlfZHNpX2R0X2lkc1tdID0gewogCXsKIAkgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmsz Mjg4LW1pcGktZHNpIiwKIAkgLmRhdGEgPSAmcmszMjg4X21pcGlfZHNpX2Rydl9kYXRhLAorCX0s IHsKKwkgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszMzk5LW1pcGktZHNpIiwKKwkgLmRhdGEg PSAmcmszMzk5X21pcGlfZHNpX2Rydl9kYXRhLAogCX0sCiAJeyAvKiBzZW50aW5lbCAqLyB9CiB9 OwogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHdfbWlwaV9kc2lfZHRfaWRzKTsKIAogc3RhdGlj IGludCBkd19taXBpX2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAq bWFzdGVyLAotCQkJICAgICB2b2lkICpkYXRhKQorCQkJICAgIHZvaWQgKmRhdGEpCiB7CiAJY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQgPQogCQkJb2ZfbWF0Y2hfZGV2aWNlKGR3X21p cGlfZHNpX2R0X2lkcywgZGV2KTsKQEAgLTExMTcsNiArMTE2MCwxMCBAQCBzdGF0aWMgaW50IGR3 X21pcGlfZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIs CiAJCXJldHVybiByZXQ7CiAJfQogCisJZHNpLT5waHlfY2ZnX2NsayA9IGRldm1fY2xrX2dldChk ZXYsICJwaHlfY2ZnIik7CisJaWYgKElTX0VSUihkc2ktPnBoeV9jZmdfY2xrKSkKKwkJZGV2X2Ri ZyhkZXYsICJoYXZlIG5vdCBwaHlfY2ZnX2Nsa1xuIik7CisKIAlyZXQgPSBjbGtfcHJlcGFyZV9l bmFibGUoZHNpLT5wbGxyZWZfY2xrKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LCAiJXM6 IEZhaWxlZCB0byBlbmFibGUgcGxscmVmX2Nsa1xuIiwgX19mdW5jX18pOwpAQCAtMTE0MSw3ICsx MTg4LDcgQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLAogfQogCiBzdGF0aWMgdm9pZCBkd19taXBpX2RzaV91bmJp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCi0Jdm9pZCAqZGF0 YSkKKwkJCSAgICAgICB2b2lkICpkYXRhKQogewogCXN0cnVjdCBkd19taXBpX2RzaSAqZHNpID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLS0gCjIuNi4zCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK