From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 2/2] drm: Perform cmdline mode parsing during connector initialisation Date: Wed, 6 Aug 2014 14:52:42 +0200 Message-ID: <1407329562-10832-2-git-send-email-daniel.vetter@ffwll.ch> References: <1407312512-6533-1-git-send-email-daniel.vetter@ffwll.ch> <1407329562-10832-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1407329562-10832-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Dave Airlie List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgppOTE1LmtvIGhh cyBhIGN1c3RvbSBmYmRldiBpbml0aWFsaXNhdGlvbiByb3V0aW5lIHRoYXQgYWltcyB0byBwcmVz ZXJ2ZQp0aGUgY3VycmVudCBtb2RlIHNldCBieSB0aGUgQklPUywgdW5sZXNzIG92ZXJydWxlZCBi eSB0aGUgdXNlci4gVGhlCnVzZXIncyB3aXNoZXMgYXJlIGRldGVybWluZWQgYnkgd2hhdCwgaWYg YW55LCBtb2RlIGlzIHNwZWNpZmllZCBvbiB0aGUKY29tbWFuZCBsaW5lICh2aWEgdGhlIHZpZGVv PSBwYXJhbWV0ZXIpLiBIb3dldmVyLCB0aGF0IGNvbW1hbmQgbGluZSBtb2RlCmlzIGZpcnN0IHBh cnNlZCBieSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCkgd2hpY2ggaXMgY2FsbGVkIGFm dGVyCmk5MTUua28ncyBjdXN0b20gaW5pdGlhbF9jb25maWcoKSBhcyBhIGZhbGxiYWNrIG1ldGhv ZC4gU28gaW4gb3JkZXIgZm9yCnVzIHRvIGhvbm91ciBpdCwgd2UgbmVlZCB0byBtb3ZlIHRoZSBj bWRsaW5lIHBhcnNlciBlYXJsaWVyLiBJZiB3ZQpwZXJmb3JtIHRoZSBjb25uZWN0b3IgY21kbGlu ZSBwYXJzaW5nIGFzIHNvb24gYXMgd2UgaW5pdGlhbGlzZSB0aGUKY29ubmVjdG9yLCB0aGF0IGNt ZGxpbmUgbW9kZSBhbmQgZm9yY2VkIHN0YXR1cyBpcyB0aGVuIGF2YWlsYWJsZSBldmVuIGlmCnRo ZSBmYmRldiBoZWxwZXIgaXMgbm90IGNvbXBpbGVkIGluIG9yIG5ldmVyIGNhbGxlZC4KCldlIGFs c28gdGhlbiBleHBvc2UgdGhlIGNtZGxpbmUgdXNlciBtb2RlIGluIHRoZSBjb25uZWN0b3IgbW9k ZSBsaXN0cy4KCnYyOiBSZWJhc2UgYWZ0ZXIgY29ubmVjdG9yLT5uYW1lIHVwaGVhdmFsLgoKdjM6 IEFkYXB0IG1nYTIwMCB0byBsb29rIGZvciB0aGUgY21kbGluZSBtb2RlIGluIHRoZSBuZXcgcGxh Y2UuIE5pY2VseQpzaW1wbGlmaWVzIHRoaW5ncyB3aGlsZSBhdCB0aGF0LgoKdjQ6IEZpeCBjaGVj a3BhdGNoLgoKdjU6IFNlbGVjdCBGQl9DTURMSU5FIHRvIGFkYXB0IHRvIHRoZSBjaGFuZ2VkIGZi ZGV2IHBhdGNoLgoKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19i dWcuY2dpP2lkPTczMTU0ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPiAodjIpCkNjOiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVr Lm9yZz4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpSZXZpZXdlZC1ieTog SmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+ICh2MikKQ2M6IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IEp1bGlhIExlbWlyZSA8amxlbWlyZUBtYXRyb3gu Y29tPgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jICAgICAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZl cnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAgICAgIHwgNjQgKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jICAgICAgICAgICAg fCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jICAgICB8IDE3ICsrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMgfCAyMSArKystLS0t LS0tLQogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgICAgfCAgMSArCiBpbmNs dWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgICAgICAgICB8ICAxIC0KIDggZmlsZXMgY2hhbmdl ZCwgODMgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCAzMTg5NGM4 YzE3NzMuLjM2N2Y1ZGQyMzI5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcK KysrIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTgsNiArOCw3IEBAIG1lbnVjb25maWcg RFJNCiAJdHJpc3RhdGUgIkRpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoWEZyZWU4NiA0LjEuMCBh bmQgaGlnaGVyIERSSSBzdXBwb3J0KSIKIAlkZXBlbmRzIG9uIChBR1AgfHwgQUdQPW4pICYmICFF TVVMQVRFRF9DTVBYQ0hHICYmIE1NVSAmJiBIQVNfRE1BCiAJc2VsZWN0IEhETUkKKwlzZWxlY3Qg RkJfQ01ETElORQogCXNlbGVjdCBJMkMKIAlzZWxlY3QgSTJDX0FMR09CSVQKIAlzZWxlY3QgRE1B X1NIQVJFRF9CVUZGRVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKaW5kZXggMzNmZjYzMWM4ZDIzLi42NmQzYmZiOGQy NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Yy5jCkBAIC04NjMsNiArODYzLDU5IEBAIHN0YXRpYyB2b2lkIGRybV9t b2RlX3JlbW92ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogfQogCiAvKioKKyAq IGRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZSAtIHJlYWRzIHRoZSB1c2VyJ3MgY21kbGlu ZSBtb2RlCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gcXV3ZXJ5CisgKiBAbW9kZTogcmV0 dXJuZWQgbW9kZQorICoKKyAqIFRoZSBrZXJuZWwgc3VwcG9ydHMgcGVyLWNvbm5lY3RvciBjb25m aWdyYXRpb24gb2YgaXRzIGNvbnNvbGVzIHRocm91Z2gKKyAqIHVzZSBvZiB0aGUgdmlkZW89IHBh cmFtZXRlci4gVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhhdCBvcHRpb24gYW5kCisgKiBleHRyYWN0 cyB0aGUgdXNlcidzIHNwZWNpZmllZCBtb2RlIChvciBlbmFibGUvZGlzYWJsZSBzdGF0dXMpIGZv ciBhCisgKiBwYXJ0aWN1bGFyIGNvbm5lY3Rvci4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSB1c2Vk IGR1cmluZyB0aGUgZWFybHkgZmJkZXYKKyAqIHNldHVwLgorICovCitzdGF0aWMgdm9pZCBkcm1f Y29ubmVjdG9yX2dldF9jbWRsaW5lX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKK3sKKwlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAqbW9kZSA9ICZjb25uZWN0b3ItPmNtZGxp bmVfbW9kZTsKKwljaGFyICpvcHRpb24gPSBOVUxMOworCisJaWYgKGZiX2dldF9vcHRpb25zKGNv bm5lY3Rvci0+bmFtZSwgJm9wdGlvbikpCisJCXJldHVybjsKKworCWlmICghZHJtX21vZGVfcGFy c2VfY29tbWFuZF9saW5lX2Zvcl9jb25uZWN0b3Iob3B0aW9uLAorCQkJCQkJICAgICAgIGNvbm5l Y3RvciwKKwkJCQkJCSAgICAgICBtb2RlKSkKKwkJcmV0dXJuOworCisJaWYgKG1vZGUtPmZvcmNl KSB7CisJCWNvbnN0IGNoYXIgKnM7CisKKwkJc3dpdGNoIChtb2RlLT5mb3JjZSkgeworCQljYXNl IERSTV9GT1JDRV9PRkY6CisJCQlzID0gIk9GRiI7CisJCQlicmVhazsKKwkJY2FzZSBEUk1fRk9S Q0VfT05fRElHSVRBTDoKKwkJCXMgPSAiT04gLSBkaWciOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCWNhc2UgRFJNX0ZPUkNFX09OOgorCQkJcyA9ICJPTiI7CisJCQlicmVhazsKKwkJfQorCisJ CURSTV9JTkZPKCJmb3JjaW5nICVzIGNvbm5lY3RvciAlc1xuIiwgY29ubmVjdG9yLT5uYW1lLCBz KTsKKwkJY29ubmVjdG9yLT5mb3JjZSA9IG1vZGUtPmZvcmNlOworCX0KKworCURSTV9ERUJVR19L TVMoImNtZGxpbmUgbW9kZSBmb3IgY29ubmVjdG9yICVzICVkeCVkQCVkSHolcyVzJXNcbiIsCisJ CSAgICAgIGNvbm5lY3Rvci0+bmFtZSwKKwkJICAgICAgbW9kZS0+eHJlcywgbW9kZS0+eXJlcywK KwkJICAgICAgbW9kZS0+cmVmcmVzaF9zcGVjaWZpZWQgPyBtb2RlLT5yZWZyZXNoIDogNjAsCisJ CSAgICAgIG1vZGUtPnJiID8gIiByZWR1Y2VkIGJsYW5raW5nIiA6ICIiLAorCQkgICAgICBtb2Rl LT5tYXJnaW5zID8gIiB3aXRoIG1hcmdpbnMiIDogIiIsCisJCSAgICAgIG1vZGUtPmludGVybGFj ZSA/ICAiIGludGVybGFjZWQiIDogIiIpOworfQorCisvKioKICAqIGRybV9jb25uZWN0b3JfaW5p dCAtIEluaXQgYSBwcmVhbGxvY2F0ZWQgY29ubmVjdG9yCiAgKiBAZGV2OiBEUk0gZGV2aWNlCiAg KiBAY29ubmVjdG9yOiB0aGUgY29ubmVjdG9yIHRvIGluaXQKQEAgLTkxNCw2ICs5NjcsOCBAQCBp bnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJY29ubmVjdG9y LT5lZGlkX2Jsb2JfcHRyID0gTlVMTDsKIAljb25uZWN0b3ItPnN0YXR1cyA9IGNvbm5lY3Rvcl9z dGF0dXNfdW5rbm93bjsKIAorCWRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZShjb25uZWN0 b3IpOworCiAJbGlzdF9hZGRfdGFpbCgmY29ubmVjdG9yLT5oZWFkLCAmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0b3JfbGlzdCk7CiAJZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yKys7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IDMxNDRkYjlkYzBmMS4uM2E2YjY2MzVlM2Y1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTE3MSw2MCArMTcxLDYgQEAgaW50IGRybV9mYl9o ZWxwZXJfcmVtb3ZlX29uZV9jb25uZWN0b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBl ciwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9yZW1vdmVfb25lX2Nvbm5lY3Rvcik7 CiAKLXN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9wYXJzZV9jb21tYW5kX2xpbmUoc3RydWN0IGRy bV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKLXsKLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0 b3IgKmZiX2hlbHBlcl9jb25uOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGZiX2hlbHBl ci0+Y29ubmVjdG9yX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGRybV9jbWRsaW5lX21vZGUgKm1v ZGU7Ci0JCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0JCWNoYXIgKm9wdGlvbiA9 IE5VTEw7Ci0KLQkJZmJfaGVscGVyX2Nvbm4gPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ld OwotCQljb25uZWN0b3IgPSBmYl9oZWxwZXJfY29ubi0+Y29ubmVjdG9yOwotCQltb2RlID0gJmZi X2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGU7Ci0KLQkJLyogZG8gc29tZXRoaW5nIG9uIHJldHVy biAtIHR1cm4gb2ZmIGNvbm5lY3RvciBtYXliZSAqLwotCQlpZiAoZmJfZ2V0X29wdGlvbnMoY29u bmVjdG9yLT5uYW1lLCAmb3B0aW9uKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChkcm1fbW9kZV9w YXJzZV9jb21tYW5kX2xpbmVfZm9yX2Nvbm5lY3RvcihvcHRpb24sCi0JCQkJCQkJICAgICAgY29u bmVjdG9yLAotCQkJCQkJCSAgICAgIG1vZGUpKSB7Ci0JCQlpZiAobW9kZS0+Zm9yY2UpIHsKLQkJ CQljb25zdCBjaGFyICpzOwotCQkJCXN3aXRjaCAobW9kZS0+Zm9yY2UpIHsKLQkJCQljYXNlIERS TV9GT1JDRV9PRkY6Ci0JCQkJCXMgPSAiT0ZGIjsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBEUk1f Rk9SQ0VfT05fRElHSVRBTDoKLQkJCQkJcyA9ICJPTiAtIGRpZyI7Ci0JCQkJCWJyZWFrOwotCQkJ CWRlZmF1bHQ6Ci0JCQkJY2FzZSBEUk1fRk9SQ0VfT046Ci0JCQkJCXMgPSAiT04iOwotCQkJCQli cmVhazsKLQkJCQl9Ci0KLQkJCQlEUk1fSU5GTygiZm9yY2luZyAlcyBjb25uZWN0b3IgJXNcbiIs Ci0JCQkJCSBjb25uZWN0b3ItPm5hbWUsIHMpOwotCQkJCWNvbm5lY3Rvci0+Zm9yY2UgPSBtb2Rl LT5mb3JjZTsKLQkJCX0KLQotCQkJRFJNX0RFQlVHX0tNUygiY21kbGluZSBtb2RlIGZvciBjb25u ZWN0b3IgJXMgJWR4JWRAJWRIeiVzJXMlc1xuIiwKLQkJCQkgICAgICBjb25uZWN0b3ItPm5hbWUs Ci0JCQkJICAgICAgbW9kZS0+eHJlcywgbW9kZS0+eXJlcywKLQkJCQkgICAgICBtb2RlLT5yZWZy ZXNoX3NwZWNpZmllZCA/IG1vZGUtPnJlZnJlc2ggOiA2MCwKLQkJCQkgICAgICBtb2RlLT5yYiA/ ICIgcmVkdWNlZCBibGFua2luZyIgOiAiIiwKLQkJCQkgICAgICBtb2RlLT5tYXJnaW5zID8gIiB3 aXRoIG1hcmdpbnMiIDogIiIsCi0JCQkJICAgICAgbW9kZS0+aW50ZXJsYWNlID8gICIgaW50ZXJs YWNlZCIgOiAiIik7Ci0JCX0KLQotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgZHJt X2ZiX2hlbHBlcl9zYXZlX2x1dF9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqaGVscGVyKQogewogCXVpbnQxNl90ICpyX2Jhc2UsICpnX2Jhc2UsICpi X2Jhc2U7CkBAIC0xMDEzLDcgKzk1OSw3IEBAIHN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5n bGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJc3RydWN0IGRy bV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJfY29ubiA9IGZiX2hlbHBlci0+Y29ubmVj dG9yX2luZm9baV07CiAJCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlICpjbWRsaW5lX21vZGU7CiAK LQkJY21kbGluZV9tb2RlID0gJmZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGU7CisJCWNtZGxp bmVfbW9kZSA9ICZmYl9oZWxwZXJfY29ubi0+Y29ubmVjdG9yLT5jbWRsaW5lX21vZGU7CiAKIAkJ aWYgKGNtZGxpbmVfbW9kZS0+YnBwX3NwZWNpZmllZCkgewogCQkJc3dpdGNoIChjbWRsaW5lX21v ZGUtPmJwcCkgewpAQCAtMTI2MCw5ICsxMjA2LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1faGFzX3By ZWZlcnJlZF9tb2RlKTsKIAogc3RhdGljIGJvb2wgZHJtX2hhc19jbWRsaW5lX21vZGUoc3RydWN0 IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9jb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGRybV9j bWRsaW5lX21vZGUgKmNtZGxpbmVfbW9kZTsKLQljbWRsaW5lX21vZGUgPSAmZmJfY29ubmVjdG9y LT5jbWRsaW5lX21vZGU7Ci0JcmV0dXJuIGNtZGxpbmVfbW9kZS0+c3BlY2lmaWVkOworCXJldHVy biBmYl9jb25uZWN0b3ItPmNvbm5lY3Rvci0+Y21kbGluZV9tb2RlLnNwZWNpZmllZDsKIH0KIAog c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9waWNrX2NtZGxpbmVfbW9kZShzdHJ1Y3QgZHJt X2ZiX2hlbHBlcl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25uLApAQCAtMTI3Miw3ICsxMjE2LDcg QEAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9waWNrX2NtZGxpbmVfbW9kZShzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IgKmYKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSA9IE5VTEw7CiAJYm9vbCBwcmVmZXJfbm9uX2ludGVybGFjZTsKIAotCWNtZGxpbmVfbW9kZSA9 ICZmYl9oZWxwZXJfY29ubi0+Y21kbGluZV9tb2RlOworCWNtZGxpbmVfbW9kZSA9ICZmYl9oZWxw ZXJfY29ubi0+Y29ubmVjdG9yLT5jbWRsaW5lX21vZGU7CiAJaWYgKGNtZGxpbmVfbW9kZS0+c3Bl Y2lmaWVkID09IGZhbHNlKQogCQlyZXR1cm4gbW9kZTsKIApAQCAtMTY1Nyw4ICsxNjAxLDYgQEAg Ym9vbCBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKHN0cnVjdCBkcm1fZmJfaGVscGVyICpm Yl9oZWxwZXIsIGludCBicHBfc2VsKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxw ZXItPmRldjsKIAlpbnQgY291bnQgPSAwOwogCi0JZHJtX2ZiX2hlbHBlcl9wYXJzZV9jb21tYW5k X2xpbmUoZmJfaGVscGVyKTsKLQogCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgp OwogCWNvdW50ID0gZHJtX2ZiX2hlbHBlcl9wcm9iZV9jb25uZWN0b3JfbW9kZXMoZmJfaGVscGVy LAogCQkJCQkJICAgIGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCmlu ZGV4IGJlZGYxODk0ZTE3ZS4uZDFiN2QyMDA2NTI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCkBAIC0xMjU5 LDYgKzEyNTksNyBAQCBkcm1fbW9kZV9jcmVhdGVfZnJvbV9jbWRsaW5lX21vZGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlpZiAoIW1vZGUpCiAJCXJldHVybiBOVUxMOwogCisJbW9kZS0+dHlw ZSB8PSBEUk1fTU9ERV9UWVBFX1VTRVJERUY7CiAJZHJtX21vZGVfc2V0X2NydGNpbmZvKG1vZGUs IENSVENfSU5URVJMQUNFX0hBTFZFX1YpOwogCXJldHVybiBtb2RlOwogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvYmVfaGVscGVyLmMKaW5kZXggZGI3ZDI1MGY3YWM3Li42ODU3ZTlhZDYzMzkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9wcm9iZV9oZWxwZXIuYwpAQCAtODIsNiArODIsMjIgQEAgc3RhdGljIHZvaWQgZHJt X21vZGVfdmFsaWRhdGVfZmxhZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXJl dHVybjsKIH0KIAorc3RhdGljIGludCBkcm1faGVscGVyX3Byb2JlX2FkZF9jbWRsaW5lX21vZGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKKworCWlmICghY29ubmVjdG9yLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkKQor CQlyZXR1cm4gMDsKKworCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGVfZnJvbV9jbWRsaW5lX21vZGUo Y29ubmVjdG9yLT5kZXYsCisJCQkJCQkgJmNvbm5lY3Rvci0+Y21kbGluZV9tb2RlKTsKKwlpZiAo bW9kZSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVj dG9yLCBtb2RlKTsKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBkcm1faGVscGVyX3Byb2Jl X3NpbmdsZV9jb25uZWN0b3JfbW9kZXNfbWVyZ2VfYml0cyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAogCQkJCQkJCSAgICAgIHVpbnQzMl90IG1heFgsIHVpbnQzMl90IG1heFksIGJv b2wgbWVyZ2VfdHlwZV9iaXRzKQogewpAQCAtMTQxLDYgKzE1Nyw3IEBAIHN0YXRpYyBpbnQgZHJt X2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzX21lcmdlX2JpdHMoc3RydWN0IGRy bV9jb25uZWN0CiAKIAlpZiAoY291bnQgPT0gMCAmJiBjb25uZWN0b3ItPnN0YXR1cyA9PSBjb25u ZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKIAkJY291bnQgPSBkcm1fYWRkX21vZGVzX25vZWRpZChj b25uZWN0b3IsIDEwMjQsIDc2OCk7CisJY291bnQgKz0gZHJtX2hlbHBlcl9wcm9iZV9hZGRfY21k bGluZV9tb2RlKGNvbm5lY3Rvcik7CiAJaWYgKGNvdW50ID09IDApCiAJCWdvdG8gcHJ1bmU7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jIGIvZHJp dmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMKaW5kZXggNDVmMDRkZWEwYWMyLi44 MzQ4NWFiODFjZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBf bW9kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jCkBAIC0x NDgzLDExICsxNDgzLDcgQEAgc3RhdGljIGludCBtZ2FfdmdhX21vZGVfdmFsaWQoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29u bmVjdG9yLT5kZXY7CiAJc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYgPSAoc3RydWN0IG1nYV9kZXZp Y2UqKWRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1nYV9mYmRldiAqbWZiZGV2ID0gbWRldi0+ bWZiZGV2OwotCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSAmbWZiZGV2LT5oZWxw ZXI7Ci0Jc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJfY29ubiA9IE5V TEw7CiAJaW50IGJwcCA9IDMyOwotCWludCBpID0gMDsKIAogCWlmIChJU19HMjAwX1NFKG1kZXYp KSB7CiAJCWlmIChtZGV2LT51bmlxdWVfcmV2X2lkID09IDB4MDEpIHsKQEAgLTE1MzcsMjEgKzE1 MzMsMTQgQEAgc3RhdGljIGludCBtZ2FfdmdhX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIAl9CiAKIAkvKiBWYWxpZGF0ZSB0aGUgbW9kZSBpbnB1dCBieSB0aGUg dXNlciAqLwotCWZvciAoaSA9IDA7IGkgPCBmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudDsgaSsr KSB7Ci0JCWlmIChmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldLT5jb25uZWN0b3IgPT0gY29u bmVjdG9yKSB7Ci0JCQkvKiBGb3VuZCB0aGUgaGVscGVyIGZvciB0aGlzIGNvbm5lY3RvciAqLwot CQkJZmJfaGVscGVyX2Nvbm4gPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldOwotCQkJaWYg KGZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkKSB7Ci0JCQkJaWYgKGZiX2hl bHBlcl9jb25uLT5jbWRsaW5lX21vZGUuYnBwX3NwZWNpZmllZCkgewotCQkJCQlicHAgPSBmYl9o ZWxwZXJfY29ubi0+Y21kbGluZV9tb2RlLmJwcDsKLQkJCQl9Ci0JCQl9Ci0JCX0KKwlpZiAoY29u bmVjdG9yLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkKSB7CisJCWlmIChjb25uZWN0b3ItPmNtZGxp bmVfbW9kZS5icHBfc3BlY2lmaWVkKQorCQkJYnBwID0gY29ubmVjdG9yLT5jbWRsaW5lX21vZGUu YnBwOwogCX0KIAogCWlmICgobW9kZS0+aGRpc3BsYXkgKiBtb2RlLT52ZGlzcGxheSAqIChicHAv OCkpID4gbWRldi0+bWMudnJhbV9zaXplKSB7Ci0JCWlmIChmYl9oZWxwZXJfY29ubikKLQkJCWZi X2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkID0gZmFsc2U7CisJCWlmIChjb25u ZWN0b3ItPmNtZGxpbmVfbW9kZS5zcGVjaWZpZWQpCisJCQljb25uZWN0b3ItPmNtZGxpbmVfbW9k ZS5zcGVjaWZpZWQgPSBmYWxzZTsKIAkJcmV0dXJuIE1PREVfQkFEOwogCX0KIApkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXgg ZjExMDVkMGRhMDU5Li5jNTMwYjQ5MjBhMDkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9j cnRjLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtNTQ4LDYgKzU0OCw3IEBAIHN0 cnVjdCBkcm1fY29ubmVjdG9yIHsKIAl2b2lkICpoZWxwZXJfcHJpdmF0ZTsKIAogCS8qIGZvcmNl ZCBvbiBjb25uZWN0b3IgKi8KKwlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSBjbWRsaW5lX21vZGU7 CiAJZW51bSBkcm1fY29ubmVjdG9yX2ZvcmNlIGZvcmNlOwogCWJvb2wgb3ZlcnJpZGVfZWRpZDsK IAl1aW50MzJfdCBlbmNvZGVyX2lkc1tEUk1fQ09OTkVDVE9SX01BWF9FTkNPREVSXTsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9o ZWxwZXIuaAppbmRleCBiZmQzMjlkNjEzYzQuLmY0YWQyNTRlMzQ4OCAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIu aApAQCAtNzcsNyArNzcsNiBAQCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyB7CiAKIHN0cnVj dCBkcm1fZmJfaGVscGVyX2Nvbm5lY3RvciB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKLQlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSBjbWRsaW5lX21vZGU7CiB9OwogCiBzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciB7Ci0tIAoyLjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK