From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: [PATCH 06/11] drm/rockchip: lvds: register a bridge when no panel is set Date: Sat, 31 Jan 2015 17:32:59 +0100 Message-ID: <1422721984-27782-7-git-send-email-heiko@sntech.de> References: <1422721984-27782-1-git-send-email-heiko@sntech.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from gloria.sntech.de (gloria.sntech.de [95.129.55.99]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E05D6E245 for ; Sat, 31 Jan 2015 08:28:07 -0800 (PST) In-Reply-To: <1422721984-27782-1-git-send-email-heiko@sntech.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, mark.yao@rock-chips.com Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, pawel.moll@arm.com, ijc+devicetree@hellion.org.uk, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, robh+dt@kernel.org, galak@codeaurora.org, linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org T24gc29jcyB1c2luZyB0aGUgbHZkcyBjb21wb25lbnRzIGl0IGFsc28gY29udHJvbHMgdGhlIHVz ZSBvZiB0aGUKZ2VuZXJhbCByZ2Igb3V0cHV0cyBhbmQgbXVzdCB0aHVzIGJlIGNvbmZpZ3VyZWQg Zm9yIHRoaW5ncyBsaWtlCmV4dGVybmFsIGVuY29kZXJzLgoKVGhlcmVmb3JlIHJlZ2lzdGVyIGEg ZHJtX2JyaWRnZSBpbiB0aGlzIGNhc2UsIGFuIGVuY29kZXIgY2FuIGF0dGFjaCB0by4KClNpZ25l ZC1vZmYtYnk6IEhlaWtvIFN0dWVibmVyIDxoZWlrb0BzbnRlY2guZGU+Ci0tLQogLi4uL2Rldmlj ZXRyZWUvYmluZGluZ3MvdmlkZW8vcm9ja2NoaXAtbHZkcy50eHQgICAgfCAgIDggKy0KIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMgICAgICAgICAgIHwgMTY3ICsrKysr KysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNTMgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL3ZpZGVvL3JvY2tjaGlwLWx2ZHMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL3ZpZGVvL3JvY2tjaGlwLWx2ZHMudHh0CmluZGV4IDE2MTZkN2UuLjZhYjY5YjQgMTAw NjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92aWRlby9yb2NrY2hp cC1sdmRzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlkZW8v cm9ja2NoaXAtbHZkcy50eHQKQEAgLTE1LDggKzE1LDYgQEAgUmVxdWlyZWQgcHJvcGVydGllczoK IC0gYXZkZDN2My1zdXBwbHk6IHJlZ3VsYXRvciBwaGFuZGxlIGZvciAzLjNWIGFuYWxvZyBwb3dl cgogCiAtIHJvY2tjaGlwLGdyZjogcGhhbmRsZSB0byB0aGUgZ2VuZXJhbCByZWdpc3RlciBmaWxl cyBzeXNjb24KLS0gcm9ja2NoaXAscGFuZWw6IHBoYW5kbGUgdG8gYSBwYW5lbCBub2RlIGFzIGRl c2NyaWJlZCBieQotCURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wYW5lbC8qCiAK IC0gcm9ja2NoaXAsZGF0YS1tYXBwaW5nOiBzaG91bGQgYmUgInZlc2EiIG9yICJqZWlkYSIsCiAJ VGhpcyBkZXNjcmliZXMgaG93IHRoZSBjb2xvciBiaXRzIGFyZSBsYWlkIG91dCBpbiB0aGUKQEAg LTI4LDYgKzI2LDEyIEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6CiAtIHBvcnRzOiBjb250YWluIGEg cG9ydCBub2RlIHdpdGggZW5kcG9pbnQgZGVmaW5pdGlvbnMgYXMgZGVmaW5lZCBpbgogCURvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS92aWRlby1pbnRlcmZhY2VzLnR4dC4K IAorT3B0aW9uYWwgcHJvcGVydGllczoKKy0gcm9ja2NoaXAscGFuZWw6IHBoYW5kbGUgdG8gYSBw YW5lbCBub2RlIGFzIGRlc2NyaWJlZCBieQorCURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9wYW5lbC8qCisJSWYgbm8gcGFuZWwgcmVmZXJlbmNlIGlzIHNldCB0aGUgbHZkcyB3aWxs IGFjdCBsaWtlIGEKKwlicmlkZ2UgZm9yIG90aGVyIG91dGJvdW5kIGludGVyZmFjZXMuCisKIEV4 YW1wbGU6CiAJbHZkczogbHZkc0BmZjk2YzAwMCB7CiAJCWNvbXBhdGlibGUgPSAicm9ja2NoaXAs cmszMjg4LWx2ZHMiOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKaW5k ZXggYTAxYTNjYi4uNDYzMDhmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2x2ZHMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf bHZkcy5jCkBAIC00Miw2ICs0Miw5IEBACiAjZGVmaW5lIGVuY29kZXJfdG9fbHZkcyhjKSBcCiAJ CWNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qgcm9ja2NoaXBfbHZkcywgZW5jb2RlcikKIAorI2RlZmlu ZSBicmlkZ2VfdG9fbHZkcyhjKSBcCisJCWNvbnRhaW5lcl9vZihjLCBzdHJ1Y3Qgcm9ja2NoaXBf bHZkcywgYnJpZGdlKQorCiAvKgogICogQGdyZl9vZmZzZXQ6IG9mZnNldCBpbnNpZGUgdGhlIGdy ZiByZWdtYXAgZm9yIHNldHRpbmcgdGhlIHJvY2tjaGlwIGx2ZHMKICAqLwpAQCAtNjcsNiArNzAs NyBAQCBzdHJ1Y3Qgcm9ja2NoaXBfbHZkcyB7CiAJc3RydWN0IGRybV9wYW5lbCAqcGFuZWw7CiAJ c3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNv ZGVyOworCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKIAogCXN0cnVjdCBtdXRleCBzdXNwZW5k X2xvY2s7CiAJaW50IHN1c3BlbmQ7CkBAIC0yNDcsMTEgKzI1MSwxMCBAQCByb2NrY2hpcF9sdmRz X2VuY29kZXJfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJcmV0dXJu IHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHJvY2tjaGlwX2x2ZHNfZW5jb2Rlcl9tb2RlX3NldChz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJCSAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCi0JCQkJCSAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkKQorc3Rh dGljIHZvaWQgcm9ja2NoaXBfbHZkc19tb2RlX3NldChzdHJ1Y3Qgcm9ja2NoaXBfbHZkcyAqbHZk cywKKwkJCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKKwkJCQkgICBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWQpCiB7Ci0Jc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2 ZHMgPSBlbmNvZGVyX3RvX2x2ZHMoZW5jb2Rlcik7CiAJdTMyIGhfYnAgPSBtb2RlLT5odG90YWwg LSBtb2RlLT5oc3luY19zdGFydDsKIAl1OCBwaW5faHN5bmMgPSAobW9kZS0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX1BIU1lOQykgPyAxIDogMDsKIAl1OCBwaW5fZGNsayA9IChtb2RlLT5mbGFncyAm IERSTV9NT0RFX0ZMQUdfUENTWU5DKSA/IDEgOiAwOwpAQCAtMzQ2LDMyICszNDksNTIgQEAgc3Rh dGljIHZvaWQgcm9ja2NoaXBfbHZkc19lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwKIAlkc2IoKTsKIH0KIAotc3RhdGljIHZvaWQgcm9ja2NoaXBfbHZkc19lbmNv ZGVyX3ByZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgcm9j a2NoaXBfbHZkc19lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK KwkJCQkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJCSAgIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZCkKK3sKKwlyb2NrY2hpcF9sdmRzX21vZGVfc2V0KGVu Y29kZXJfdG9fbHZkcyhlbmNvZGVyKSwgbW9kZSwgYWRqdXN0ZWQpOworfQorCitzdGF0aWMgaW50 IHJvY2tjaGlwX2x2ZHNfc2V0X3ZvcF9zb3VyY2Uoc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2ZHMs CisJCQkJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3Qgcm9ja2NoaXBf bHZkcyAqbHZkcyA9IGVuY29kZXJfdG9fbHZkcyhlbmNvZGVyKTsKIAl1MzIgdmFsOwogCWludCBy ZXQ7CiAKLQlyZXQgPSByb2NrY2hpcF9kcm1fY3J0Y19tb2RlX2NvbmZpZyhlbmNvZGVyLT5jcnRj LAotCQkJCQkJbHZkcy0+Y29ubmVjdG9yLmNvbm5lY3Rvcl90eXBlLAotCQkJCQkJUk9DS0NISVBf T1VUX01PREVfUDg4OCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJZGV2X2VycihsdmRzLT5kZXYsICJD b3VsZCBub3Qgc2V0IGNydGMgbW9kZSBjb25maWc6ICVkXG4iLCByZXQpOwotCQlyZXR1cm47Ci0J fQotCiAJcmV0ID0gcm9ja2NoaXBfZHJtX2VuY29kZXJfZ2V0X211eF9pZChsdmRzLT5kZXYtPm9m X25vZGUsIGVuY29kZXIpOwogCWlmIChyZXQgPCAwKQotCQlyZXR1cm47CisJCXJldHVybiByZXQ7 CiAKIAlpZiAocmV0KQogCQl2YWwgPSBSSzMyODhfTFZEU19TT0NfQ09ONl9TRUxfVk9QX0xJVCB8 CiAJCSAgICAgIChSSzMyODhfTFZEU19TT0NfQ09ONl9TRUxfVk9QX0xJVCA8PCAxNik7CiAJZWxz ZQogCQl2YWwgPSBSSzMyODhfTFZEU19TT0NfQ09ONl9TRUxfVk9QX0xJVCA8PCAxNjsKKwogCXJl dCA9IHJlZ21hcF93cml0ZShsdmRzLT5ncmYsIGx2ZHMtPnNvY19kYXRhLT5ncmZfc29jX2NvbjYs IHZhbCk7Ci0JaWYgKHJldCAhPSAwKSB7Ci0JCWRldl9lcnIobHZkcy0+ZGV2LCAiQ291bGQgbm90 IHdyaXRlIHRvIEdSRjogJWRcbiIsIHJldCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcm9ja2NoaXBfbHZkc19lbmNvZGVyX3By ZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQoreworCXN0cnVjdCByb2NrY2hpcF9s dmRzICpsdmRzID0gZW5jb2Rlcl90b19sdmRzKGVuY29kZXIpOworCWludCByZXQ7CisKKwlyZXQg PSByb2NrY2hpcF9kcm1fY3J0Y19tb2RlX2NvbmZpZyhlbmNvZGVyLT5jcnRjLAorCQkJCQkJbHZk cy0+Y29ubmVjdG9yLmNvbm5lY3Rvcl90eXBlLAorCQkJCQkJUk9DS0NISVBfT1VUX01PREVfUDg4 OCk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihsdmRzLT5kZXYsICJDb3VsZCBub3Qgc2V0 IGNydGMgbW9kZSBjb25maWc6ICVkXG4iLCByZXQpOworCQlyZXR1cm47CisJfQorCisJcmV0ID0g cm9ja2NoaXBfbHZkc19zZXRfdm9wX3NvdXJjZShsdmRzLCBlbmNvZGVyKTsKKwlpZiAocmV0IDwg MCkgeworCQlkZXZfZXJyKGx2ZHMtPmRldiwgIkNvdWxkIG5vdCBzZXQgdm9wIHNvdXJjZTogJWRc biIsIHJldCk7CiAJCXJldHVybjsKIAl9CiB9CkBAIC00MDQsNiArNDI3LDk3IEBAIHN0YXRpYyBz dHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3Mgcm9ja2NoaXBfbHZkc19lbmNvZGVyX2Z1bmNzID0gewog CS5kZXN0cm95ID0gcm9ja2NoaXBfbHZkc19lbmNvZGVyX2Rlc3Ryb3ksCiB9OwogCitzdGF0aWMg dm9pZCByb2NrY2hpcF9sdmRzX2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLAorCQkJCQkgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJCQkgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZCkKK3sKKwlyb2NrY2hpcF9sdmRzX21vZGVfc2V0 KGJyaWRnZV90b19sdmRzKGJyaWRnZSksIG1vZGUsIGFkanVzdGVkKTsKK30KKworc3RhdGljIHZv aWQgcm9ja2NoaXBfbHZkc19icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKQoreworfQorCisvKgorICogcG9zdF9kaXNhYmxlIGlzIGFsbGVkIHJpZ2h0IGFmdGVyIGVu Y29kZXIgcHJlcGFyZSwgc28gZG8gbHZkcyBhbmQgY3J0YworICogbW9kZSBjb25maWcgaGVyZS4K KyAqLworc3RhdGljIHZvaWQgcm9ja2NoaXBfbHZkc19icmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCit7CisJc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2ZHMgPSBi cmlkZ2VfdG9fbHZkcyhicmlkZ2UpOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 CisJaW50IHJldCwgY29ubmVjdG9yX3R5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfVW5rbm93bjsK KworCWlmICghYnJpZGdlLT5lbmNvZGVyLT5jcnRjKQorCQlyZXR1cm47CisKKwlsaXN0X2Zvcl9l YWNoX2VudHJ5KGNvbm5lY3RvciwgJmJyaWRnZS0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3Jf bGlzdCwKKwkJCWhlYWQpIHsKKwkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBicmlkZ2UtPmVu Y29kZXIpCisJCQljb25uZWN0b3JfdHlwZSA9IGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGU7CisJ fQorCisJcmV0ID0gcm9ja2NoaXBfZHJtX2NydGNfbW9kZV9jb25maWcoYnJpZGdlLT5lbmNvZGVy LT5jcnRjLAorCQkJCQkJY29ubmVjdG9yX3R5cGUsCisJCQkJCQlST0NLQ0hJUF9PVVRfTU9ERV9Q ODg4KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGx2ZHMtPmRldiwgIkNvdWxkIG5vdCBz ZXQgY3J0YyBtb2RlIGNvbmZpZzogJWRcbiIsIHJldCk7CisJCXJldHVybjsKKwl9CisKKwlyZXQg PSByb2NrY2hpcF9sdmRzX3NldF92b3Bfc291cmNlKGx2ZHMsIGJyaWRnZS0+ZW5jb2Rlcik7CisJ aWYgKHJldCA8IDApIHsKKwkJZGV2X2VycihsdmRzLT5kZXYsICJDb3VsZCBub3Qgc2V0IHZvcCBz b3VyY2U6ICVkXG4iLCByZXQpOworCQlyZXR1cm47CisJfQorfQorCitzdGF0aWMgdm9pZCByb2Nr Y2hpcF9sdmRzX2JyaWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKK3sKKwlz dHJ1Y3Qgcm9ja2NoaXBfbHZkcyAqbHZkcyA9IGJyaWRnZV90b19sdmRzKGJyaWRnZSk7CisJaW50 IHJldDsKKworCW11dGV4X2xvY2soJmx2ZHMtPnN1c3BlbmRfbG9jayk7CisKKwlpZiAoIWx2ZHMt PnN1c3BlbmQpCisJCWdvdG8gb3V0OworCisJcmV0ID0gcm9ja2NoaXBfbHZkc19wb3dlcm9uKGx2 ZHMpOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIobHZkcy0+ZGV2LCAiY291bGQgbm90IGVu YWJsZSBsdmRzXG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJbHZkcy0+c3VzcGVuZCA9IGZhbHNl OworCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZsdmRzLT5zdXNwZW5kX2xvY2spOworfQorCitzdGF0 aWMgdm9pZCByb2NrY2hpcF9sdmRzX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpCit7CisJc3RydWN0IHJvY2tjaGlwX2x2ZHMgKmx2ZHMgPSBicmlkZ2VfdG9fbHZkcyhi cmlkZ2UpOworCisJbXV0ZXhfbG9jaygmbHZkcy0+c3VzcGVuZF9sb2NrKTsKKworCWlmIChsdmRz LT5zdXNwZW5kKQorCQlnb3RvIG91dDsKKworCXJvY2tjaGlwX2x2ZHNfcG93ZXJvZmYobHZkcyk7 CisJbHZkcy0+c3VzcGVuZCA9IHRydWU7CisKK291dDoKKwltdXRleF91bmxvY2soJmx2ZHMtPnN1 c3BlbmRfbG9jayk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyByb2NrY2hp cF9sdmRzX2JyaWRnZV9mdW5jcyA9IHsKKwkubW9kZV9zZXQgPSByb2NrY2hpcF9sdmRzX2JyaWRn ZV9tb2RlX3NldCwKKwkuZW5hYmxlID0gcm9ja2NoaXBfbHZkc19icmlkZ2VfZW5hYmxlLAorCS5k aXNhYmxlID0gcm9ja2NoaXBfbHZkc19icmlkZ2VfZGlzYWJsZSwKKwkucHJlX2VuYWJsZSA9IHJv Y2tjaGlwX2x2ZHNfYnJpZGdlX3ByZV9lbmFibGUsCisJLnBvc3RfZGlzYWJsZSA9IHJvY2tjaGlw X2x2ZHNfYnJpZGdlX3Bvc3RfZGlzYWJsZSwKK307CisKIHN0YXRpYyBzdHJ1Y3Qgcm9ja2NoaXBf bHZkc19zb2NfZGF0YSByazMyODhfbHZkc19kYXRhID0gewogCS5ncmZfc29jX2NvbjYgPSAweDAy NWMsCiAJLmdyZl9zb2NfY29uNyA9IDB4MDI2MCwKQEAgLTUyNSw5ICs2MzksMjAgQEAgc3RhdGlj IGludCByb2NrY2hpcF9sdmRzX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsCiAKIAkJbHZkcy0+cGFuZWwgPSBwYW5lbDsKIAl9IGVsc2UgewotCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJubyBwYW5lbCBub2RlIGZvdW5kXG4iKTsKLQkJcmV0ID0gLUVJTlZBTDsK LQkJZ290byBlcnJfdW5wcmVwYXJlX3BjbGs7CisJCS8qCisJCSAqIFdoZW4gbm8gcGFuZWwgaXMg Zm91bmQsIHJlZ2lzdGVyIGEgYnJpZGdlIGluc3RlYWQuCisJCSAqIFdlIGV4cGVjdCB0aGUgY29k ZSBoYW5kbGluZyBleHRlcm5hbCBlbmNvZGVycyB0bworCQkgKiBjb25uZWN0IGVuY29kZXIgYW5k IGJyaWRnZS4KKwkJICovCisJCWx2ZHMtPmJyaWRnZS5mdW5jcyA9ICZyb2NrY2hpcF9sdmRzX2Jy aWRnZV9mdW5jczsKKwkJbHZkcy0+YnJpZGdlLm9mX25vZGUgPSBkZXYtPm9mX25vZGU7CisJCXJl dCA9IGRybV9icmlkZ2VfYWRkKCZsdmRzLT5icmlkZ2UpOworCQlpZiAocmV0KSB7CisJCQlkZXZf ZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gYWRkIGJyaWRnZSAlZFxuIiwgcmV0KTsKKwkJCWdv dG8gZXJyX3VucHJlcGFyZV9wY2xrOworCQl9CisKKwkJcmV0dXJuIDA7CiAJfQogCiAJZW5jb2Rl ciA9ICZsdmRzLT5lbmNvZGVyOwpAQCAtNTkyLDYgKzcxNyw4IEBAIHN0YXRpYyB2b2lkIHJvY2tj aGlwX2x2ZHNfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVy LAogCiAJCWRybV9jb25uZWN0b3JfY2xlYW51cCgmbHZkcy0+Y29ubmVjdG9yKTsKIAkJZHJtX2Vu Y29kZXJfY2xlYW51cCgmbHZkcy0+ZW5jb2Rlcik7CisJfSBlbHNlIHsKKwkJZHJtX2JyaWRnZV9y ZW1vdmUoJmx2ZHMtPmJyaWRnZSk7CiAJfQogCiAJY2xrX3VucHJlcGFyZShsdmRzLT5wY2xrKTsK LS0gCjIuMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=