From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm: Perform cmdline mode parsing during connector initialisation Date: Wed, 6 Aug 2014 10:08:32 +0200 Message-ID: <1407312512-6533-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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Intel Graphics Development , DRI Development Cc: Daniel Vetter , 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 Y2UuIE5pY2VseQpzaW1wbGlmaWVzIHRoaW5ncyB3aGlsZSBhdCB0aGF0LgoKQnVnemlsbGE6IGh0 dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0ClNpZ25lZC1v ZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAodjIpCkNjOiBK ZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KQ2M6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGZmd2xsLmNoPgpSZXZpZXdlZC1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZp cnR1b3VzZ2Vlay5vcmc+ICh2MikKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK Q2M6IEp1bGlhIExlbWlyZSA8amxlbWlyZUBtYXRyb3guY29tPgpDYzogRGF2ZSBBaXJsaWUgPGFp cmxpZWRAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAg ICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2ZiX2hlbHBlci5jICAgICAgICB8IDY0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyAgICAgICAgICAgIHwgIDEgKwogZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyAgICAgfCAxNyArKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jIHwgMjAgKysrLS0tLS0tLS0KIGluY2x1ZGUv ZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgICAgIHwgIDEgKwogaW5jbHVkZS9kcm0vZHJtX2Zi X2hlbHBlci5oICAgICAgICAgICAgfCAgMSAtCiA3IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlv bnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKaW5kZXggM2M0YTYyMTY5ZjI4Li5k M2YxZTAwMzM0NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC04NTIsNiArODUyLDU5IEBAIHN0YXRpYyB2 b2lkIGRybV9tb2RlX3JlbW92ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogfQog CiAvKioKKyAqIGRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZSAtIHJlYWRzIHRoZSB1c2Vy J3MgY21kbGluZSBtb2RlCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gcXV3ZXJ5CisgKiBA bW9kZTogcmV0dXJuZWQgbW9kZQorICoKKyAqIFRoZSBrZXJuZWwgc3VwcG9ydHMgcGVyLWNvbm5l Y3RvciBjb25maWdyYXRpb24gb2YgaXRzIGNvbnNvbGVzIHRocm91Z2gKKyAqIHVzZSBvZiB0aGUg dmlkZW89IHBhcmFtZXRlci4gVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhhdCBvcHRpb24gYW5kCisg KiBleHRyYWN0cyB0aGUgdXNlcidzIHNwZWNpZmllZCBtb2RlIChvciBlbmFibGUvZGlzYWJsZSBz dGF0dXMpIGZvciBhCisgKiBwYXJ0aWN1bGFyIGNvbm5lY3Rvci4gVGhpcyBpcyB0eXBpY2FsbHkg b25seSB1c2VkIGR1cmluZyB0aGUgZWFybHkgZmJkZXYKKyAqIHNldHVwLgorICovCitzdGF0aWMg dm9pZCBkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5lX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAqbW9kZSA9ICZjb25uZWN0 b3ItPmNtZGxpbmVfbW9kZTsKKwljaGFyICpvcHRpb24gPSBOVUxMOworCisJaWYgKGZiX2dldF9v cHRpb25zKGNvbm5lY3Rvci0+bmFtZSwgJm9wdGlvbikpCisJCXJldHVybjsKKworCWlmICghZHJt X21vZGVfcGFyc2VfY29tbWFuZF9saW5lX2Zvcl9jb25uZWN0b3Iob3B0aW9uLAorCQkJCQkJICAg ICAgIGNvbm5lY3RvciwKKwkJCQkJCSAgICAgICBtb2RlKSkKKwkJcmV0dXJuOworCisJaWYgKG1v ZGUtPmZvcmNlKSB7CisJCWNvbnN0IGNoYXIgKnM7CisKKwkJc3dpdGNoIChtb2RlLT5mb3JjZSkg eworCQljYXNlIERSTV9GT1JDRV9PRkY6CisJCQlzID0gIk9GRiI7CisJCQlicmVhazsKKwkJY2Fz ZSBEUk1fRk9SQ0VfT05fRElHSVRBTDoKKwkJCXMgPSAiT04gLSBkaWciOworCQkJYnJlYWs7CisJ CWRlZmF1bHQ6CisJCWNhc2UgRFJNX0ZPUkNFX09OOgorCQkJcyA9ICJPTiI7CisJCQlicmVhazsK KwkJfQorCisJCURSTV9JTkZPKCJmb3JjaW5nICVzIGNvbm5lY3RvciAlc1xuIiwgY29ubmVjdG9y LT5uYW1lLCBzKTsKKwkJY29ubmVjdG9yLT5mb3JjZSA9IG1vZGUtPmZvcmNlOworCX0KKworCURS TV9ERUJVR19LTVMoImNtZGxpbmUgbW9kZSBmb3IgY29ubmVjdG9yICVzICVkeCVkQCVkSHolcyVz JXNcbiIsCisJCSAgICAgIGNvbm5lY3Rvci0+bmFtZSwKKwkJICAgICAgbW9kZS0+eHJlcywgbW9k ZS0+eXJlcywKKwkJICAgICAgbW9kZS0+cmVmcmVzaF9zcGVjaWZpZWQgPyBtb2RlLT5yZWZyZXNo IDogNjAsCisJCSAgICAgIG1vZGUtPnJiID8gIiByZWR1Y2VkIGJsYW5raW5nIiA6ICIiLAorCQkg ICAgICBtb2RlLT5tYXJnaW5zID8gIiB3aXRoIG1hcmdpbnMiIDogIiIsCisJCSAgICAgIG1vZGUt PmludGVybGFjZSA/ICAiIGludGVybGFjZWQiIDogIiIpOworfQorCisvKioKICAqIGRybV9jb25u ZWN0b3JfaW5pdCAtIEluaXQgYSBwcmVhbGxvY2F0ZWQgY29ubmVjdG9yCiAgKiBAZGV2OiBEUk0g ZGV2aWNlCiAgKiBAY29ubmVjdG9yOiB0aGUgY29ubmVjdG9yIHRvIGluaXQKQEAgLTkwMyw2ICs5 NTYsOCBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ Y29ubmVjdG9yLT5lZGlkX2Jsb2JfcHRyID0gTlVMTDsKIAljb25uZWN0b3ItPnN0YXR1cyA9IGNv bm5lY3Rvcl9zdGF0dXNfdW5rbm93bjsKIAorCWRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9k ZShjb25uZWN0b3IpOworCiAJbGlzdF9hZGRfdGFpbCgmY29ubmVjdG9yLT5oZWFkLCAmZGV2LT5t b2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCk7CiAJZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVj dG9yKys7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IGQxMzllZGRiM2Q2MS4uOWE5MWVl NjlhZjJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTE3MSw2MCArMTcxLDYgQEAgaW50 IGRybV9mYl9oZWxwZXJfcmVtb3ZlX29uZV9jb25uZWN0b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIg KmZiX2hlbHBlciwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9yZW1vdmVfb25lX2Nv bm5lY3Rvcik7CiAKLXN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9wYXJzZV9jb21tYW5kX2xpbmUo c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKLXsKLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBl cl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25uOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8 IGZiX2hlbHBlci0+Y29ubmVjdG9yX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGRybV9jbWRsaW5l X21vZGUgKm1vZGU7Ci0JCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0JCWNoYXIg Km9wdGlvbiA9IE5VTEw7Ci0KLQkJZmJfaGVscGVyX2Nvbm4gPSBmYl9oZWxwZXItPmNvbm5lY3Rv cl9pbmZvW2ldOwotCQljb25uZWN0b3IgPSBmYl9oZWxwZXJfY29ubi0+Y29ubmVjdG9yOwotCQlt b2RlID0gJmZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGU7Ci0KLQkJLyogZG8gc29tZXRoaW5n IG9uIHJldHVybiAtIHR1cm4gb2ZmIGNvbm5lY3RvciBtYXliZSAqLwotCQlpZiAoZmJfZ2V0X29w dGlvbnMoY29ubmVjdG9yLT5uYW1lLCAmb3B0aW9uKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmIChk cm1fbW9kZV9wYXJzZV9jb21tYW5kX2xpbmVfZm9yX2Nvbm5lY3RvcihvcHRpb24sCi0JCQkJCQkJ ICAgICAgY29ubmVjdG9yLAotCQkJCQkJCSAgICAgIG1vZGUpKSB7Ci0JCQlpZiAobW9kZS0+Zm9y Y2UpIHsKLQkJCQljb25zdCBjaGFyICpzOwotCQkJCXN3aXRjaCAobW9kZS0+Zm9yY2UpIHsKLQkJ CQljYXNlIERSTV9GT1JDRV9PRkY6Ci0JCQkJCXMgPSAiT0ZGIjsKLQkJCQkJYnJlYWs7Ci0JCQkJ Y2FzZSBEUk1fRk9SQ0VfT05fRElHSVRBTDoKLQkJCQkJcyA9ICJPTiAtIGRpZyI7Ci0JCQkJCWJy ZWFrOwotCQkJCWRlZmF1bHQ6Ci0JCQkJY2FzZSBEUk1fRk9SQ0VfT046Ci0JCQkJCXMgPSAiT04i OwotCQkJCQlicmVhazsKLQkJCQl9Ci0KLQkJCQlEUk1fSU5GTygiZm9yY2luZyAlcyBjb25uZWN0 b3IgJXNcbiIsCi0JCQkJCSBjb25uZWN0b3ItPm5hbWUsIHMpOwotCQkJCWNvbm5lY3Rvci0+Zm9y Y2UgPSBtb2RlLT5mb3JjZTsKLQkJCX0KLQotCQkJRFJNX0RFQlVHX0tNUygiY21kbGluZSBtb2Rl IGZvciBjb25uZWN0b3IgJXMgJWR4JWRAJWRIeiVzJXMlc1xuIiwKLQkJCQkgICAgICBjb25uZWN0 b3ItPm5hbWUsCi0JCQkJICAgICAgbW9kZS0+eHJlcywgbW9kZS0+eXJlcywKLQkJCQkgICAgICBt b2RlLT5yZWZyZXNoX3NwZWNpZmllZCA/IG1vZGUtPnJlZnJlc2ggOiA2MCwKLQkJCQkgICAgICBt b2RlLT5yYiA/ICIgcmVkdWNlZCBibGFua2luZyIgOiAiIiwKLQkJCQkgICAgICBtb2RlLT5tYXJn aW5zID8gIiB3aXRoIG1hcmdpbnMiIDogIiIsCi0JCQkJICAgICAgbW9kZS0+aW50ZXJsYWNlID8g ICIgaW50ZXJsYWNlZCIgOiAiIik7Ci0JCX0KLQotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGlj IHZvaWQgZHJtX2ZiX2hlbHBlcl9zYXZlX2x1dF9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRj LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKQogewogCXVpbnQxNl90ICpyX2Jhc2UsICpn X2Jhc2UsICpiX2Jhc2U7CkBAIC0xMDIwLDcgKzk2Niw3IEBAIHN0YXRpYyBpbnQgZHJtX2ZiX2hl bHBlcl9zaW5nbGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJ c3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJfY29ubiA9IGZiX2hlbHBl ci0+Y29ubmVjdG9yX2luZm9baV07CiAJCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlICpjbWRsaW5l X21vZGU7CiAKLQkJY21kbGluZV9tb2RlID0gJmZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGU7 CisJCWNtZGxpbmVfbW9kZSA9ICZmYl9oZWxwZXJfY29ubi0+Y29ubmVjdG9yLT5jbWRsaW5lX21v ZGU7CiAKIAkJaWYgKGNtZGxpbmVfbW9kZS0+YnBwX3NwZWNpZmllZCkgewogCQkJc3dpdGNoIChj bWRsaW5lX21vZGUtPmJwcCkgewpAQCAtMTI2Nyw5ICsxMjEzLDcgQEAgRVhQT1JUX1NZTUJPTChk cm1faGFzX3ByZWZlcnJlZF9tb2RlKTsKIAogc3RhdGljIGJvb2wgZHJtX2hhc19jbWRsaW5lX21v ZGUoc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9jb25uZWN0b3IpCiB7Ci0Jc3Ry dWN0IGRybV9jbWRsaW5lX21vZGUgKmNtZGxpbmVfbW9kZTsKLQljbWRsaW5lX21vZGUgPSAmZmJf Y29ubmVjdG9yLT5jbWRsaW5lX21vZGU7Ci0JcmV0dXJuIGNtZGxpbmVfbW9kZS0+c3BlY2lmaWVk OworCXJldHVybiBmYl9jb25uZWN0b3ItPmNvbm5lY3Rvci0+Y21kbGluZV9tb2RlLnNwZWNpZmll ZDsKIH0KIAogc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9waWNrX2NtZGxpbmVfbW9kZShz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25uLApAQCAtMTI3OSw3 ICsxMjIzLDcgQEAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9waWNrX2NtZGxpbmVfbW9k ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IgKmYKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSA9IE5VTEw7CiAJYm9vbCBwcmVmZXJfbm9uX2ludGVybGFjZTsKIAotCWNtZGxp bmVfbW9kZSA9ICZmYl9oZWxwZXJfY29ubi0+Y21kbGluZV9tb2RlOworCWNtZGxpbmVfbW9kZSA9 ICZmYl9oZWxwZXJfY29ubi0+Y29ubmVjdG9yLT5jbWRsaW5lX21vZGU7CiAJaWYgKGNtZGxpbmVf bW9kZS0+c3BlY2lmaWVkID09IGZhbHNlKQogCQlyZXR1cm4gbW9kZTsKIApAQCAtMTY2NCw4ICsx NjA4LDYgQEAgYm9vbCBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIsIGludCBicHBfc2VsKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBmYl9oZWxwZXItPmRldjsKIAlpbnQgY291bnQgPSAwOwogCi0JZHJtX2ZiX2hlbHBlcl9wYXJz ZV9jb21tYW5kX2xpbmUoZmJfaGVscGVyKTsKLQogCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25m aWcubXV0ZXgpOwogCWNvdW50ID0gZHJtX2ZiX2hlbHBlcl9wcm9iZV9jb25uZWN0b3JfbW9kZXMo ZmJfaGVscGVyLAogCQkJCQkJICAgIGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9t b2Rlcy5jCmluZGV4IGJlZGYxODk0ZTE3ZS4uZDFiN2QyMDA2NTI5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5j CkBAIC0xMjU5LDYgKzEyNTksNyBAQCBkcm1fbW9kZV9jcmVhdGVfZnJvbV9jbWRsaW5lX21vZGUo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoIW1vZGUpCiAJCXJldHVybiBOVUxMOwogCisJ bW9kZS0+dHlwZSB8PSBEUk1fTU9ERV9UWVBFX1VTRVJERUY7CiAJZHJtX21vZGVfc2V0X2NydGNp bmZvKG1vZGUsIENSVENfSU5URVJMQUNFX0hBTFZFX1YpOwogCXJldHVybiBtb2RlOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKaW5kZXggZGI3ZDI1MGY3YWM3Li42ODU3ZTlhZDYzMzkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwpAQCAtODIsNiArODIsMjIgQEAgc3RhdGlj IHZvaWQgZHJtX21vZGVfdmFsaWRhdGVfZmxhZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCXJldHVybjsKIH0KIAorc3RhdGljIGludCBkcm1faGVscGVyX3Byb2JlX2FkZF9jbWRs aW5lX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZTsKKworCWlmICghY29ubmVjdG9yLT5jbWRsaW5lX21vZGUuc3Bl Y2lmaWVkKQorCQlyZXR1cm4gMDsKKworCW1vZGUgPSBkcm1fbW9kZV9jcmVhdGVfZnJvbV9jbWRs aW5lX21vZGUoY29ubmVjdG9yLT5kZXYsCisJCQkJCQkgJmNvbm5lY3Rvci0+Y21kbGluZV9tb2Rl KTsKKwlpZiAobW9kZSA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWRybV9tb2RlX3Byb2JlZF9h ZGQoY29ubmVjdG9yLCBtb2RlKTsKKwlyZXR1cm4gMTsKK30KKwogc3RhdGljIGludCBkcm1faGVs cGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXNfbWVyZ2VfYml0cyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCQkJCQkJCSAgICAgIHVpbnQzMl90IG1heFgsIHVpbnQzMl90 IG1heFksIGJvb2wgbWVyZ2VfdHlwZV9iaXRzKQogewpAQCAtMTQxLDYgKzE1Nyw3IEBAIHN0YXRp YyBpbnQgZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzX21lcmdlX2JpdHMo c3RydWN0IGRybV9jb25uZWN0CiAKIAlpZiAoY291bnQgPT0gMCAmJiBjb25uZWN0b3ItPnN0YXR1 cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKIAkJY291bnQgPSBkcm1fYWRkX21vZGVz X25vZWRpZChjb25uZWN0b3IsIDEwMjQsIDc2OCk7CisJY291bnQgKz0gZHJtX2hlbHBlcl9wcm9i ZV9hZGRfY21kbGluZV9tb2RlKGNvbm5lY3Rvcik7CiAJaWYgKGNvdW50ID09IDApCiAJCWdvdG8g cHJ1bmU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9k ZS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMKaW5kZXggNDVmMDRk ZWEwYWMyLi5lNWFlNjBkN2YwYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAw L21nYWcyMDBfbW9kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9k ZS5jCkBAIC0xNDgzLDExICsxNDgzLDcgQEAgc3RhdGljIGludCBtZ2FfdmdhX21vZGVfdmFsaWQo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY29ubmVjdG9yLT5kZXY7CiAJc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYgPSAoc3RydWN0 IG1nYV9kZXZpY2UqKWRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IG1nYV9mYmRldiAqbWZiZGV2 ID0gbWRldi0+bWZiZGV2OwotCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSAmbWZi ZGV2LT5oZWxwZXI7Ci0Jc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJf Y29ubiA9IE5VTEw7CiAJaW50IGJwcCA9IDMyOwotCWludCBpID0gMDsKIAogCWlmIChJU19HMjAw X1NFKG1kZXYpKSB7CiAJCWlmIChtZGV2LT51bmlxdWVfcmV2X2lkID09IDB4MDEpIHsKQEAgLTE1 MzcsMjEgKzE1MzMsMTUgQEAgc3RhdGljIGludCBtZ2FfdmdhX21vZGVfdmFsaWQoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAl9CiAKIAkvKiBWYWxpZGF0ZSB0aGUgbW9kZSBpbnB1 dCBieSB0aGUgdXNlciAqLwotCWZvciAoaSA9IDA7IGkgPCBmYl9oZWxwZXItPmNvbm5lY3Rvcl9j b3VudDsgaSsrKSB7Ci0JCWlmIChmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldLT5jb25uZWN0 b3IgPT0gY29ubmVjdG9yKSB7Ci0JCQkvKiBGb3VuZCB0aGUgaGVscGVyIGZvciB0aGlzIGNvbm5l Y3RvciAqLwotCQkJZmJfaGVscGVyX2Nvbm4gPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ld OwotCQkJaWYgKGZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkKSB7Ci0JCQkJ aWYgKGZiX2hlbHBlcl9jb25uLT5jbWRsaW5lX21vZGUuYnBwX3NwZWNpZmllZCkgewotCQkJCQli cHAgPSBmYl9oZWxwZXJfY29ubi0+Y21kbGluZV9tb2RlLmJwcDsKLQkJCQl9Ci0JCQl9CisJaWYg KGNvbm5lY3Rvci0+Y21kbGluZV9tb2RlLnNwZWNpZmllZCkgeworCQlpZiAoY29ubmVjdG9yLT5j bWRsaW5lX21vZGUuYnBwX3NwZWNpZmllZCkgeworCQkJYnBwID0gY29ubmVjdG9yLT5jbWRsaW5l X21vZGUuYnBwOwogCQl9CiAJfQogCiAJaWYgKChtb2RlLT5oZGlzcGxheSAqIG1vZGUtPnZkaXNw bGF5ICogKGJwcC84KSkgPiBtZGV2LT5tYy52cmFtX3NpemUpIHsKLQkJaWYgKGZiX2hlbHBlcl9j b25uKQotCQkJZmJfaGVscGVyX2Nvbm4tPmNtZGxpbmVfbW9kZS5zcGVjaWZpZWQgPSBmYWxzZTsK KwkJaWYgKGNvbm5lY3Rvci0+Y21kbGluZV9tb2RlLnNwZWNpZmllZCkKKwkJCWNvbm5lY3Rvci0+ Y21kbGluZV9tb2RlLnNwZWNpZmllZCA9IGZhbHNlOwogCQlyZXR1cm4gTU9ERV9CQUQ7CiAJfQog CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2Ny dGMuaAppbmRleCA2MmY3M2JkYmNjNDcuLjI2NWIyMGY2YmQ4YiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2NydGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC01NDgsNiAr NTQ4LDcgQEAgc3RydWN0IGRybV9jb25uZWN0b3IgewogCXZvaWQgKmhlbHBlcl9wcml2YXRlOwog CiAJLyogZm9yY2VkIG9uIGNvbm5lY3RvciAqLworCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlIGNt ZGxpbmVfbW9kZTsKIAllbnVtIGRybV9jb25uZWN0b3JfZm9yY2UgZm9yY2U7CiAJYm9vbCBvdmVy cmlkZV9lZGlkOwogCXVpbnQzMl90IGVuY29kZXJfaWRzW0RSTV9DT05ORUNUT1JfTUFYX0VOQ09E RVJdOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9k cm0vZHJtX2ZiX2hlbHBlci5oCmluZGV4IGJmZDMyOWQ2MTNjNC4uZjRhZDI1NGUzNDg4IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJt X2ZiX2hlbHBlci5oCkBAIC03Nyw3ICs3Nyw2IEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNz IHsKIAogc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlIGNtZGxpbmVfbW9kZTsK IH07CiAKIHN0cnVjdCBkcm1fZmJfaGVscGVyIHsKLS0gCjIuMC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=