From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: [PATCH] drm/imx: imx-ldb: add drm_panel support Date: Tue, 24 Feb 2015 13:15:56 +0100 Message-ID: <1424780156-9595-1-git-send-email-p.zabel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 Cc: Mark Rutland , devicetree@vger.kernel.org, Pawel Moll , Ian Campbell , Eric Nelson , Rob Herring , kernel@pengutronix.de, Kumar Gala , Grant Likely , Russell King List-Id: devicetree@vger.kernel.org VGhpcyBwYXRjaCBhbGxvd3MgdG8gb3B0aW9uYWxseSBhdHRhY2ggdGhlIGx2ZHMtY2hhbm5lbCB0 byBhIHBhbmVsCnN1cHBvcnRlZCBieSBhIGRybV9wYW5lbCBkcml2ZXIgdXNpbmcgb2YtZ3JhcGgg YmluZGluZ3MsIGluc3RlYWQgb2YKc3VwcGx5aW5nIHRoZSBtb2RlcyB2aWEgZGlzcGxheS10aW1p bmdzIGluIHRoZSBkZXZpY2UgdHJlZS4KClRoaXMgZGVwZW5kcyBvbiBvZl9ncmFwaF9nZXRfcG9y dF9ieV9pZCBhbmQgdXNlcyB0aGUgT0YgZ3JhcGggdG8KbGluayB0aGUgb3B0aW9uYWwgRFJNIHBh bmVsIHRvIHRoZSBMREIgbHZkcy1jaGFubmVsLiBUaGUgb3V0cHV0CnBvcnQgbnVtYmVyIGlzIDIg b24gZGV2aWNlcyB3aXRob3V0IHRoZSBleHRlcm5hbCA0LXBvcnQgaW5wdXQKbXVsdGlwbGV4ZXIg KGkuTVg1KSBhbmQgNCBvbiBkZXZpY2VzIHdpdGggdGhlIG11eCAoaS5NWDYpLgoKQmVmb3JlOgoK CWxkYiB7CgkJLi4uCgoJCWx2ZHMtY2hhbm5lbEAwIHsKCQkJLi4uCgoJCQlkaXNwbGF5LXRpbWlu Z3MgewoJCQkJbmF0aXZlLXRpbWluZyA9IDwmdGltaW5nMT47CgkJCQl0aW1pbmcxOiBldG0wNzAw ZzBkaDYgewoJCQkJCWhhY3RpdmUgPSA8ODAwPjsKCQkJCQl2YWN0aXZlID0gPDQ4MD47CgkJCQkJ Y2xvY2stZnJlcXVlbmN5ID0gPDMzMjYwMDAwPjsKCQkJCQloc3luYy1sZW4gPSA8MTI4PjsKCQkJ CQloYmFjay1wb3JjaCA9IDw4OD47CgkJCQkJaGZyb250LXBvcmNoID0gPDQwPjsKCQkJCQl2c3lu Yy1sZW4gPSA8Mj47CgkJCQkJdmJhY2stcG9yY2ggPSA8MzM+OwoJCQkJCXZmcm9udC1wb3JjaCA9 IDwxMD47CgkJCQkJaHN5bmMtYWN0aXZlID0gPDA+OwoJCQkJCXZzeW5jLWFjdGl2ZSA9IDwwPjsK CQkJCQkuLi4KCQkJCX07CgkJCX07CgkJCS4uLgoJCX07Cgl9OwoKQWZ0ZXI6CglsZGIgewoJCS4u LgoKCQlsdmRzLWNoYW5uZWxAMCB7CgkJCS4uLgoKCQkJcG9ydEA0IHsKCQkJCXJlZyA9IDw0PjsK CgkJCQlsdmRzX291dDogZW5kcG9pbnQgewoJCQkJCXJlbW90ZV9lbmRwb2ludCA9IDwmcGFuZWxf aW4+OwoJCQkJfTsKCQkJfTsKCQl9OwoJfTsKCglwYW5lbCB7CgkJY29tcGF0aWJsZSA9ICJlZHQs ZXRtMDcwMGcwZGg2IiwgInNpbXBsZS1wYW5lbCI7CgkJLi4uCgoJCXBvcnQgewoJCQlwYW5lbF9p bjogZW5kcG9pbnQgewoJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZsdmRzX291dD47CgkJCX07CgkJ fTsKCX07CgpTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4 LmRlPgpbRml4ZWQgYnVpbGQgZXJyb3IgZHVlIHRvIG1pc3Npbmcgc2VsZWN0IG9uIERSTV9QQU5F TCAtLXJta10KU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51 eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9u aXguZGU+Ci0tLQpUaGUgIkFkZCBvZi1ncmFwaCBoZWxwZXJzIHRvIGxvb3Agb3ZlciBlbmRwb2lu dHMgYW5kIGZpbmQgcG9ydHMgYnkgaWQiIHNlcmllcwppcyBhIHByZXJlcXVpc2l0ZSBmb3IgdGhp cyBwYXRjaCBkdWUgaXRzIHVzZSBvZiB0aGUgbmV3IG9mX2dyYXBoX2dldF9wb3J0X2J5X2lkCmZ1 bmN0aW9uOgoKICAgIGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDE1LzIvMjMvMTE1CgotLS0KIERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kcm0vaW14L2xkYi50eHQgfCA2MyArKysr KysrKysrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9LY29uZmlnICAgICAgICAg ICAgICAgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jICAgICAg ICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDg4 IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9kcm0vaW14L2xkYi50eHQgYi9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvZHJtL2lteC9sZGIudHh0CmluZGV4IDQ0M2JjYjYuLmUxMDEzMDkg MTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kcm0vaW14L2xk Yi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RybS9pbXgvbGRi LnR4dApAQCAtNDQsMjMgKzQ0LDMxIEBAIE9wdGlvbmFsIHByb3BlcnRpZXM6CiBMVkRTIENoYW5u ZWwKID09PT09PT09PT09PQogCi1FYWNoIExWRFMgQ2hhbm5lbCBoYXMgdG8gY29udGFpbiBhIGRp c3BsYXktdGltaW5ncyBub2RlIHRoYXQgZGVzY3JpYmVzIHRoZQotdmlkZW8gdGltaW5ncyBmb3Ig dGhlIGNvbm5lY3RlZCBMVkRTIGRpc3BsYXkuIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgYWxz bwotaGF2ZSBhIGxvb2sgYXQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVv L2Rpc3BsYXktdGltaW5nLnR4dC4KK0VhY2ggTFZEUyBDaGFubmVsIGhhcyB0byBjb250YWluIGVp dGhlciBhbiBvZiBncmFwaCBsaW5rIHRvIGEgcGFuZWwgZGV2aWNlIG5vZGUKK29yIGEgZGlzcGxh eS10aW1pbmdzIG5vZGUgdGhhdCBkZXNjcmliZXMgdGhlIHZpZGVvIHRpbWluZ3MgZm9yIHRoZSBj b25uZWN0ZWQKK0xWRFMgZGlzcGxheSBhcyB3ZWxsIGFzIHRoZSBmc2wsZGF0YS1tYXBwaW5nIGFu ZCBmc2wsZGF0YS13aWR0aCBwcm9wZXJ0aWVzLgorRm9yIGRldGFpbGVkIGluZm9ybWF0aW9uLCBh bHNvIGhhdmUgYSBsb29rIGF0CitEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Jh cGgudHh0IGFuZAorRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVvL2Rpc3Bs YXktdGltaW5nLnR4dC4KIAogUmVxdWlyZWQgcHJvcGVydGllczoKICAtIHJlZyA6IHNob3VsZCBi ZSA8MD4gb3IgPDE+CisgLSBwb3J0OiBJbnB1dCBhbmQgb3V0cHV0IHBvcnQgbm9kZXMgd2l0aCBl bmRwb2ludCBkZWZpbml0aW9ucyBhcyBkZWZpbmVkIGluCisgICBEb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvZ3JhcGgudHh0LgorICAgT24gaS5NWDUsIHRoZSBpbnRlcm5hbCB0d28t aW5wdXQtbXVsdGlwbGV4ZXIgaXMgdXNlZC4gRHVlIHRvIGhhcmR3YXJlCisgICBsaW1pdGF0aW9u cywgb25seSBvbmUgaW5wdXQgcG9ydCAocG9ydEBbMCwxXSkgY2FuIGJlIHVzZWQgZm9yIGVhY2gg Y2hhbm5lbAorICAgKGx2ZHMtY2hhbm5lbEBbMCwxXSwgcmVzcGVjdGl2ZWx5KS4KKyAgIE9uIGku TVg2LCB0aGVyZSBzaG91bGQgYmUgZm91ciBpbnB1dCBwb3J0cyAocG9ydEBbMC0zXSkgdGhhdCBj b3JyZXNwb25kCisgICB0byB0aGUgZm91ciBMVkRTIG11bHRpcGxleGVyIGlucHV0cy4KKyAgIEEg c2luZ2xlIG91dHB1dCBwb3J0IChwb3J0QDIgb24gaS5NWDUsIHBvcnRANCBvbiBpLk1YNikgbXVz dCBiZSBjb25uZWN0ZWQKKyAgIHRvIGEgcGFuZWwgaW5wdXQgcG9ydC4gT3B0aW9uYWxseSwgdGhl IG91dHB1dCBwb3J0IGNhbiBiZSBsZWZ0IG91dCBpZgorICAgZGlzcGxheS10aW1pbmdzIGFyZSB1 c2VkIGluc3RlYWQuCisKK09wdGlvbmFsIHByb3BlcnRpZXMgKHJlcXVpcmVkIGlmIGRpc3BsYXkt dGltaW5ncyBhcmUgdXNlZCk6CiAgLSBmc2wsZGF0YS1tYXBwaW5nIDogc2hvdWxkIGJlICJzcHdn IiBvciAiamVpZGEiCiAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBkZXNjcmliZXMgaG93IHRo ZSBjb2xvciBiaXRzIGFyZSBsYWlkIG91dCBpbiB0aGUKICAgICAgICAgICAgICAgICAgICAgICBz ZXJpYWxpemVkIExWRFMgc2lnbmFsLgogIC0gZnNsLGRhdGEtd2lkdGggOiBzaG91bGQgYmUgPDE4 PiBvciA8MjQ+Ci0gLSBwb3J0OiBBIHBvcnQgbm9kZSB3aXRoIGVuZHBvaW50IGRlZmluaXRpb25z IGFzIGRlZmluZWQgaW4KLSAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRp YS92aWRlby1pbnRlcmZhY2VzLnR4dC4KLSAgIE9uIGkuTVg1LCB0aGUgaW50ZXJuYWwgdHdvLWlu cHV0LW11bHRpcGxleGVyIGlzIHVzZWQuCi0gICBEdWUgdG8gaGFyZHdhcmUgbGltaXRhdGlvbnMs IG9ubHkgb25lIHBvcnQgKHBvcnRAWzAsMV0pCi0gICBjYW4gYmUgdXNlZCBmb3IgZWFjaCBjaGFu bmVsIChsdmRzLWNoYW5uZWxAWzAsMV0sIHJlc3BlY3RpdmVseSkKLSAgIE9uIGkuTVg2LCB0aGVy ZSBzaG91bGQgYmUgZm91ciBwb3J0cyAocG9ydEBbMC0zXSkgdGhhdCBjb3JyZXNwb25kCi0gICB0 byB0aGUgZm91ciBMVkRTIG11bHRpcGxleGVyIGlucHV0cy4KIAogZXhhbXBsZToKIApAQCAtNzMs MjMgKzgxLDIxIEBAIGxkYjogbGRiQDUzZmE4MDA4IHsKIAkjc2l6ZS1jZWxscyA9IDwwPjsKIAlj b21wYXRpYmxlID0gImZzbCxpbXg1My1sZGIiOwogCWdwciA9IDwmZ3ByPjsKLQljbG9ja3MgPSA8 JmNsa3MgMTIyPiwgPCZjbGtzIDEyMD4sCi0JCSA8JmNsa3MgMTE1PiwgPCZjbGtzIDExNj4sCi0J CSA8JmNsa3MgMTIzPiwgPCZjbGtzIDg1PjsKKwljbG9ja3MgPSA8JmNsa3MgSU1YNV9DTEtfTERC X0RJMF9TRUw+LAorCQkgPCZjbGtzIElNWDVfQ0xLX0xEQl9ESTFfU0VMPiwKKwkJIDwmY2xrcyBJ TVg1X0NMS19JUFVfREkwX1NFTD4sCisJCSA8JmNsa3MgSU1YNV9DTEtfSVBVX0RJMV9TRUw+LAor CQkgPCZjbGtzIElNWDVfQ0xLX0xEQl9ESTBfR0FURT4sCisJCSA8JmNsa3MgSU1YNV9DTEtfTERC X0RJMV9HQVRFPjsKIAljbG9jay1uYW1lcyA9ICJkaTBfcGxsIiwgImRpMV9wbGwiLAogCQkgICAg ICAiZGkwX3NlbCIsICJkaTFfc2VsIiwKIAkJICAgICAgImRpMCIsICJkaTEiOwogCisJLyogVXNp bmcgb2YgZ3JhcGggY29ubmVjdGlvbiB0byBwYW5lbCBkZXZpY2UgKi8KIAlsdmRzLWNoYW5uZWxA MCB7CiAJCSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKIAkJcmVn ID0gPDA+OwotCQlmc2wsZGF0YS1tYXBwaW5nID0gInNwd2ciOwotCQlmc2wsZGF0YS13aWR0aCA9 IDwyND47Ci0KLQkJZGlzcGxheS10aW1pbmdzIHsKLQkJCS8qIC4uLiAqLwotCQl9OwogCiAJCXBv cnRAMCB7CiAJCQlyZWcgPSA8MD47CkBAIC05OCw4ICsxMDQsMTcgQEAgbGRiOiBsZGJANTNmYTgw MDggewogCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmaXB1X2RpMF9sdmRzMD47CiAJCQl9OwogCQl9 OworCisJCXBvcnRAMiB7CisJCQlyZWcgPSA8Mj47CisKKwkJCWx2ZHMwX291dDogZW5kcG9pbnQg eworCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmcGFuZWxfaW4+OworCQkJfTsKKwkJfTsKIAl9Owog CisJLyogVXNpbmcgZGlzcGxheS10aW1pbmdzIG5vZGUgKi8KIAlsdmRzLWNoYW5uZWxAMSB7CiAJ CSNhZGRyZXNzLWNlbGxzID0gPDE+OwogCQkjc2l6ZS1jZWxscyA9IDwwPjsKQEAgLTEyMCwzICsx MzUsMTMgQEAgbGRiOiBsZGJANTNmYTgwMDggewogCQl9OwogCX07CiB9OworCitwYW5lbCB7CisJ LyogLi4uICovCisKKwlwb3J0QDAgeworCQlwYW5lbF9pbjogZW5kcG9pbnQgeworCQkJcmVtb3Rl LWVuZHBvaW50ID0gPCZsdmRzMF9vdXQ+OworCQl9OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2lteC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2lteC9LY29uZmlnCmlu ZGV4IDMzY2RkZGYuLjJiODFhNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvS2Nv bmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L0tjb25maWcKQEAgLTM2LDYgKzM2LDcgQEAg Y29uZmlnIERSTV9JTVhfVFZFCiBjb25maWcgRFJNX0lNWF9MREIKIAl0cmlzdGF0ZSAiU3VwcG9y dCBmb3IgTFZEUyBkaXNwbGF5cyIKIAlkZXBlbmRzIG9uIERSTV9JTVggJiYgTUZEX1NZU0NPTgor CXNlbGVjdCBEUk1fUEFORUwKIAloZWxwCiAJICBDaG9vc2UgdGhpcyB0byBlbmFibGUgdGhlIGlu dGVybmFsIExWRFMgRGlzcGxheSBCcmlkZ2UgKExEQikKIAkgIGZvdW5kIG9uIGkuTVg1MyBhbmQg aS5NWDYgcHJvY2Vzc29ycy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxk Yi5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKaW5kZXggNzRhZWQ2MS4uNjAzYTg4 YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKQEAgLTE5LDEwICsxOSwxMSBAQAogI2luY2x1ZGUgPGRy bS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX2NydGNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgogI2luY2x1ZGUg PGxpbnV4L21mZC9zeXNjb24uaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvc3lzY29uL2lteDZxLWlv bXV4Yy1ncHIuaD4KLSNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CiAjaW5jbHVkZSA8bGlu dXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfZ3JhcGguaD4KICNpbmNsdWRlIDx2 aWRlby9vZl92aWRlb21vZGUuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRl IDxsaW51eC92aWRlb2RldjIuaD4KQEAgLTU1LDYgKzU2LDcgQEAgc3RydWN0IGlteF9sZGJfY2hh bm5lbCB7CiAJc3RydWN0IGlteF9sZGIgKmxkYjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25u ZWN0b3I7CiAJc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7CisJc3RydWN0IGRybV9wYW5lbCAq cGFuZWw7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKIAlpbnQgY2hubzsKIAl2b2lkICpl ZGlkOwpAQCAtOTEsNiArOTMsMTMgQEAgc3RhdGljIGludCBpbXhfbGRiX2Nvbm5lY3Rvcl9nZXRf bW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgaW14X2xkYl9j aGFubmVsICppbXhfbGRiX2NoID0gY29uX3RvX2lteF9sZGJfY2goY29ubmVjdG9yKTsKIAlpbnQg bnVtX21vZGVzID0gMDsKIAorCWlmIChpbXhfbGRiX2NoLT5wYW5lbCAmJiBpbXhfbGRiX2NoLT5w YW5lbC0+ZnVuY3MgJiYKKwkgICAgaW14X2xkYl9jaC0+cGFuZWwtPmZ1bmNzLT5nZXRfbW9kZXMp IHsKKwkJbnVtX21vZGVzID0gaW14X2xkYl9jaC0+cGFuZWwtPmZ1bmNzLT5nZXRfbW9kZXMoaW14 X2xkYl9jaC0+cGFuZWwpOworCQlpZiAobnVtX21vZGVzID4gMCkKKwkJCXJldHVybiBudW1fbW9k ZXM7CisJfQorCiAJaWYgKGlteF9sZGJfY2gtPmVkaWQpIHsKIAkJZHJtX21vZGVfY29ubmVjdG9y X3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwKIAkJCQkJCQlpbXhfbGRiX2NoLT5lZGlk KTsKQEAgLTIwNSw2ICsyMTQsOCBAQCBzdGF0aWMgdm9pZCBpbXhfbGRiX2VuY29kZXJfY29tbWl0 KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAlpbnQgZHVhbCA9IGxkYi0+bGRiX2N0cmwg JiBMREJfU1BMSVRfTU9ERV9FTjsKIAlpbnQgbXV4ID0gaW14X2RybV9lbmNvZGVyX2dldF9tdXhf aWQoaW14X2xkYl9jaC0+Y2hpbGQsIGVuY29kZXIpOwogCisJZHJtX3BhbmVsX3ByZXBhcmUoaW14 X2xkYl9jaC0+cGFuZWwpOworCiAJaWYgKGR1YWwpIHsKIAkJY2xrX3ByZXBhcmVfZW5hYmxlKGxk Yi0+Y2xrWzBdKTsKIAkJY2xrX3ByZXBhcmVfZW5hYmxlKGxkYi0+Y2xrWzFdKTsKQEAgLTIzOCw2 ICsyNDksOCBAQCBzdGF0aWMgdm9pZCBpbXhfbGRiX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKIAl9CiAKIAlyZWdtYXBfd3JpdGUobGRiLT5yZWdtYXAsIElPTVVY Q19HUFIyLCBsZGItPmxkYl9jdHJsKTsKKworCWRybV9wYW5lbF9lbmFibGUoaW14X2xkYl9jaC0+ cGFuZWwpOwogfQogCiBzdGF0aWMgdm9pZCBpbXhfbGRiX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLApAQCAtMjg5LDYgKzMwMiw4IEBAIHN0YXRpYyB2b2lkIGlt eF9sZGJfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJIChs ZGItPmxkYl9jdHJsICYgTERCX0NIMV9NT0RFX0VOX01BU0spID09IDApCiAJCXJldHVybjsKIAor CWRybV9wYW5lbF9kaXNhYmxlKGlteF9sZGJfY2gtPnBhbmVsKTsKKwogCWlmIChpbXhfbGRiX2No ID09ICZsZGItPmNoYW5uZWxbMF0pCiAJCWxkYi0+bGRiX2N0cmwgJj0gfkxEQl9DSDBfTU9ERV9F Tl9NQVNLOwogCWVsc2UgaWYgKGlteF9sZGJfY2ggPT0gJmxkYi0+Y2hhbm5lbFsxXSkKQEAgLTMw MCw2ICszMTUsOCBAQCBzdGF0aWMgdm9pZCBpbXhfbGRiX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShsZGItPmNsa1sw XSk7CiAJCWNsa19kaXNhYmxlX3VucHJlcGFyZShsZGItPmNsa1sxXSk7CiAJfQorCisJZHJtX3Bh bmVsX3VucHJlcGFyZShpbXhfbGRiX2NoLT5wYW5lbCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9mdW5jcyBpbXhfbGRiX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKQEAgLTM3Myw2ICsz OTAsOSBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRy bSwKIAlkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmaW14X2xkYl9jaC0+Y29ubmVjdG9yLAogCQkJ ICAgJmlteF9sZGJfY29ubmVjdG9yX2Z1bmNzLCBEUk1fTU9ERV9DT05ORUNUT1JfTFZEUyk7CiAK KwlpZiAoaW14X2xkYl9jaC0+cGFuZWwpCisJCWRybV9wYW5lbF9hdHRhY2goaW14X2xkYl9jaC0+ cGFuZWwsICZpbXhfbGRiX2NoLT5jb25uZWN0b3IpOworCiAJZHJtX21vZGVfY29ubmVjdG9yX2F0 dGFjaF9lbmNvZGVyKCZpbXhfbGRiX2NoLT5jb25uZWN0b3IsCiAJCQkmaW14X2xkYl9jaC0+ZW5j b2Rlcik7CiAKQEAgLTQ4Nyw2ICs1MDcsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfYmluZChzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAogCWZv cl9lYWNoX2NoaWxkX29mX25vZGUobnAsIGNoaWxkKSB7CiAJCXN0cnVjdCBpbXhfbGRiX2NoYW5u ZWwgKmNoYW5uZWw7CisJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKIAogCQlyZXQgPSBvZl9w cm9wZXJ0eV9yZWFkX3UzMihjaGlsZCwgInJlZyIsICZpKTsKIAkJaWYgKHJldCB8fCBpIDwgMCB8 fCBpID4gMSkKQEAgLTUwNSwxMSArNTI2LDMxIEBAIHN0YXRpYyBpbnQgaW14X2xkYl9iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCQlj aGFubmVsLT5jaG5vID0gaTsKIAkJY2hhbm5lbC0+Y2hpbGQgPSBjaGlsZDsKIAorCQkvKiBUaGUg b3V0cHV0IHBvcnQgaXMgcG9ydEA0IG9uIGkuTVg2IG9yIHBvcnRAMiBvbiBpLk1YNTMgKi8KKwkJ cG9ydCA9IG9mX2dyYXBoX2dldF9wb3J0X2J5X2lkKGNoaWxkLCBpbXhfbGRiLT5sdmRzX211eCA/ IDQgOiAyKTsKKwkJaWYgKHBvcnQpIHsKKwkJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW5kcG9pbnQs ICpyZW1vdGU7CisKKwkJCWVuZHBvaW50ID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUocG9ydCwgImVu ZHBvaW50Iik7CisJCQlpZiAoZW5kcG9pbnQpIHsKKwkJCQlyZW1vdGUgPSBvZl9ncmFwaF9nZXRf cmVtb3RlX3BvcnRfcGFyZW50KGVuZHBvaW50KTsKKwkJCQlpZiAocmVtb3RlKQorCQkJCQljaGFu bmVsLT5wYW5lbCA9IG9mX2RybV9maW5kX3BhbmVsKHJlbW90ZSk7CisJCQkJZWxzZQorCQkJCQly ZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwkJCQlpZiAoIWNoYW5uZWwtPnBhbmVsKSB7CisJCQkJCWRl dl9lcnIoZGV2LCAicGFuZWwgbm90IGZvdW5kOiAlc1xuIiwKKwkJCQkJCXJlbW90ZS0+ZnVsbF9u YW1lKTsKKwkJCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJCQkJfQorCQkJfQorCQl9CisKIAkJ ZWRpZHAgPSBvZl9nZXRfcHJvcGVydHkoY2hpbGQsICJlZGlkIiwgJmNoYW5uZWwtPmVkaWRfbGVu KTsKIAkJaWYgKGVkaWRwKSB7CiAJCQljaGFubmVsLT5lZGlkID0ga21lbWR1cChlZGlkcCwgY2hh bm5lbC0+ZWRpZF9sZW4sCiAJCQkJCQlHRlBfS0VSTkVMKTsKLQkJfSBlbHNlIHsKKwkJfSBlbHNl IGlmICghY2hhbm5lbC0+cGFuZWwpIHsKIAkJCXJldCA9IG9mX2dldF9kcm1fZGlzcGxheV9tb2Rl KGNoaWxkLCAmY2hhbm5lbC0+bW9kZSwgMCk7CiAJCQlpZiAoIXJldCkKIAkJCQljaGFubmVsLT5t b2RlX3ZhbGlkID0gMTsKLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=