From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08BB8C35DF9 for ; Thu, 27 Feb 2020 18:17:39 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D8D382469B for ; Thu, 27 Feb 2020 18:17:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="O3e75FvH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D8D382469B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C24576ED2D; Thu, 27 Feb 2020 18:16:36 +0000 (UTC) Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DF2C6ED22 for ; Thu, 27 Feb 2020 18:16:28 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id a141so436459wme.2 for ; Thu, 27 Feb 2020 10:16:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8XHHULpPwbmD5FnkP/ajAPIciEMFWcdC+iRHe531Kh0=; b=O3e75FvHuPAT/8Bh8i5ko48bmjicRElEzBAiya6BBFo2oygUNVcBAgswJAZGtp/w+G 49cX8EOJYDE1aArNvdBTfqKsfQAxdbAduZITxaw3CqHIsjmDM40NjVAX2iH/ULRvzxWB zqu7H0oX2PuBUm1uvw4uA1owRvw9qhDAYT/a4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8XHHULpPwbmD5FnkP/ajAPIciEMFWcdC+iRHe531Kh0=; b=ke/PiT0QdRpz9q0CkFogZ4n4BQ/k2QAR2gVoE7TVj3YIVEdo+nVkRdFXKAy6yClSKq L4tLgPPcTiXvLIOylXMSYjbQSJ1VLTVtih6Cxl3VtrI19yMYErrB2CR700zq51XLxIkj UqnnPifGlH8eobPJgc01HeGpKUKUIl5bAbCsjUJ+7O+vVvNhZ5dc/2LRoX7hMpjo8ExW kgYB3Vmer8XGPNzmg+n6NPsaDLpZ92f3KCKDzRDrMJ5/U1TADSdrFBK84xToYRHoBLvl wjwjwVf9dPUlaH1TZZaFmuXxJNS9iLd5WpiNY9OvAg8Et6oOPL+YG+z1s/C779vUADLx wVkw== X-Gm-Message-State: APjAAAWYvB+LyHouWr7hhbplFg/KAm7mrOFsYErHXdq9Og8xbPSgjRAB RwxgPrG6RgTT+DvTCzH/H8nRGQeZCAs= X-Google-Smtp-Source: APXvYqwA9mCJhRdeY0WaXliA3UDJhFOL0fTcQOuvu/XaOcKiHZT7EoN8fyfrnLpRTKvD+BbCJa/XhQ== X-Received: by 2002:a1c:ba87:: with SMTP id k129mr57037wmf.102.1582827386479; Thu, 27 Feb 2020 10:16:26 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q1sm8551152wrw.5.2020.02.27.10.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Feb 2020 10:16:25 -0800 (PST) From: Daniel Vetter To: DRI Development Subject: [PATCH 45/51] drm/gm12u320: Simplify upload work Date: Thu, 27 Feb 2020 19:15:16 +0100 Message-Id: <20200227181522.2711142-46-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> References: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel Graphics Development , m.felsch@pengutronix.de, Hans de Goede , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SW5zdGVhZCBvZiBoYXZpbmcgYSB3b3JrIGl0ZW0gdGhhdCBuZXZlciBzdG9wcyAod2hpY2ggcmVh bGx5IHNob3VsZCBiZQphIGt0aHJlYWQpLCB3aXRoIGEgZGVkaWNhdGVkIHdvcmtxdWV1ZSB0byBu b3QgdXBzZXQgYW55b25lIGVsc2UsIHVzZSBhCmRlbGF5ZWQgd29yay4gQSBidW5jaCBvZiBjaGFu Z2VzOgoKLSBXZSBjYW4gdGhyb3cgb3V0IGFsbCB0aGUgY3VzdG9tIHdha2V1cCBhbmQgcmVxdWV1 ZSBsb2dpYyBhbmQgc3RhdGUKICB0cmFja2luZy4gSWYgd2Ugc2NoZWR1bGUgdGhlIHdvcmsgd2l0 aCBhIDAgZGVsYXkgaXQnbGwgZ2V0CiAgc2NoZWR1bGVkIGltbWVkaWF0ZWx5LgoKLSBQZXJzaXN0 ZW50IHN0YXRlIChmcmFtZSAmIGRyYXdfc3RhdHVzX3RpbWVvdXQpIG5lZWQgdG8gYmUgbW92ZWQg b3V0CiAgb2YgdGhlIHdvcmsuCgotIGRpZmYgaXMgYmlnZ2VyIHRoYW4gdGhlIGNoYW5nZXMsIGJp Z2dlc3QgY2h1bmsgaXMgcmVpbmRlbnRpbmcgdGhlCiAgd29yayBmbiBiZWNhdXNlIGl0IGxvc3Qg aXRzIHdoaWxlIGxvb3AuCgpMb3RzIG9mIGNvZGUgZGVsZXRpbmcgYXMgY29uc2VxdWVuY2UgYWxs IG92ZXIuIFNwZWNpZmljYWxseSB3ZSBjYW4KZGVsZXRlIHRoZSBkcm1fZHJpdmVyLnJlbGVhc2Ug Y29kZSBub3chCgp2MjogUmV2aWV3IGZyb20gSGFuczoKLSBVc2UgbW9kX2RlbGF5ZWRfd29yayBp biB0aGUgcGxhbmUgdXBkYXRlIHBhdGggdG8gbWFrZSBzdXJlIHdlIGRvCiAgYWN0dWFsbHkgc2No ZWR1bGUgaW1tZWRpYXRlbHkpLiBJbiB0aGUgd29ya2VyIHdlIHN0aWxsIHdhbnQKICBxdWV1ZV9k ZWxheWVkX3dvcmssIHdoaWNoIHdvbid0IG1vZGlmeSB0aGUgdGltZW91dCB3aGVuIHRoZSB3b3Jr IGlzCiAgYWxyZWFkeSBzY2hlZHVsZWQuIFdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50IGlm IHRoZSB3b3JrIHJhY2VzCiAgd2l0aCBhIHBsYW5lIHVwZGF0ZS4KLSBTd2l0Y2ggdG8gc3lzdGVt X2xvbmdfd3EsIEhhbnMgc2F5cyBvbiB1c2IyIGEgcGxhbmUgdXBsb2FkIGNhbiB0YWtlCiAgODAg bXMuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CkNjOiAiTm9yYWxmIFRy w7hubmVzIiA8bm9yYWxmQHRyb25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55L2dt MTJ1MzIwLmMgfCAxNzEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L2dt MTJ1MzIwLmMKaW5kZXggYzIyYjJlZTQ3MGViLi5iYmM0ZWY0NDU2ZTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90aW55L2dtMTJ1MzIwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnkv Z20xMnUzMjAuYwpAQCAtODksMTMgKzg5LDEyIEBAIHN0cnVjdCBnbTEydTMyMF9kZXZpY2Ugewog CXVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgKmNtZF9idWY7CiAJdW5zaWduZWQgY2hh ciAgICAgICAgICAgICAgICAgICAqZGF0YV9idWZbR00xMlUzMjBfQkxPQ0tfQ09VTlRdOwogCXN0 cnVjdCB7Ci0JCWJvb2wgICAgICAgICAgICAgICAgICAgICBydW47Ci0JCXN0cnVjdCB3b3JrcXVl dWVfc3RydWN0ICp3b3JrcTsKLQkJc3RydWN0IHdvcmtfc3RydWN0ICAgICAgIHdvcms7Ci0JCXdh aXRfcXVldWVfaGVhZF90ICAgICAgICB3YWl0cTsKKwkJc3RydWN0IGRlbGF5ZWRfd29yayAgICAg ICB3b3JrOwogCQlzdHJ1Y3QgbXV0ZXggICAgICAgICAgICAgbG9jazsKIAkJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAgKmZiOwogCQlzdHJ1Y3QgZHJtX3JlY3QgICAgICAgICAgcmVjdDsKKwkJaW50 IGZyYW1lOworCQlpbnQgZHJhd19zdGF0dXNfdGltZW91dDsKIAl9IGZiX3VwZGF0ZTsKIH07CiAK QEAgLTE4MywxOSArMTgyLDkgQEAgc3RhdGljIGludCBnbTEydTMyMF91c2JfYWxsb2Moc3RydWN0 IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCiAJCSAgICAgICBkYXRhX2Jsb2NrX2Zvb3Rlciwg REFUQV9CTE9DS19GT09URVJfU0laRSk7CiAJfQogCi0JZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3Jr cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKERSSVZFUl9OQU1FKTsKLQlpZiAoIWdt MTJ1MzIwLT5mYl91cGRhdGUud29ya3EpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyB2b2lkIGdtMTJ1MzIwX3VzYl9mcmVlKHN0cnVjdCBnbTEydTMyMF9kZXZp Y2UgKmdtMTJ1MzIwKQotewotCWlmIChnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxKQotCQlkZXN0 cm95X3dvcmtxdWV1ZShnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxKTsKLX0KLQogc3RhdGljIGlu dCBnbTEydTMyMF9taXNjX3JlcXVlc3Qoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAs CiAJCQkJIHU4IHJlcV9hLCB1OCByZXFfYiwKIAkJCQkgdTggYXJnX2EsIHU4IGFyZ19iLCB1OCBh cmdfYywgdTggYXJnX2QpCkBAIC0zMzgsODAgKzMyNyw3NyBAQCBzdGF0aWMgdm9pZCBnbTEydTMy MF9jb3B5X2ZiX3RvX2Jsb2NrcyhzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKIHN0 YXRpYyB2b2lkIGdtMTJ1MzIwX2ZiX3VwZGF0ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIHsKIAlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9Ci0JCWNvbnRhaW5lcl9v Zih3b3JrLCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlLCBmYl91cGRhdGUud29yayk7Ci0JaW50IGRy YXdfc3RhdHVzX3RpbWVvdXQgPSBGSVJTVF9GUkFNRV9USU1FT1VUOworCQljb250YWluZXJfb2Yo dG9fZGVsYXllZF93b3JrKHdvcmspLCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlLAorCQkJICAgICBm Yl91cGRhdGUud29yayk7CiAJaW50IGJsb2NrLCBibG9ja19zaXplLCBsZW47Ci0JaW50IGZyYW1l ID0gMDsKIAlpbnQgcmV0ID0gMDsKIAotCXdoaWxlIChnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1bikg ewotCQlnbTEydTMyMF9jb3B5X2ZiX3RvX2Jsb2NrcyhnbTEydTMyMCk7Ci0KLQkJZm9yIChibG9j ayA9IDA7IGJsb2NrIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGJsb2NrKyspIHsKLQkJCWlmIChi bG9jayA9PSBHTTEyVTMyMF9CTE9DS19DT1VOVCAtIDEpCi0JCQkJYmxvY2tfc2l6ZSA9IERBVEFf TEFTVF9CTE9DS19TSVpFOwotCQkJZWxzZQotCQkJCWJsb2NrX3NpemUgPSBEQVRBX0JMT0NLX1NJ WkU7Ci0KLQkJCS8qIFNlbmQgZGF0YSBjb21tYW5kIHRvIGRldmljZSAqLwotCQkJbWVtY3B5KGdt MTJ1MzIwLT5jbWRfYnVmLCBjbWRfZGF0YSwgQ01EX1NJWkUpOwotCQkJZ20xMnUzMjAtPmNtZF9i dWZbOF0gPSBibG9ja19zaXplICYgMHhmZjsKLQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzldID0gYmxv Y2tfc2l6ZSA+PiA4OwotCQkJZ20xMnUzMjAtPmNtZF9idWZbMjBdID0gMHhmYyAtIGJsb2NrICog NDsKLQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzIxXSA9IGJsb2NrIHwgKGZyYW1lIDw8IDcpOwotCi0J CQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCi0JCQkJdXNiX3NuZGJ1bGtwaXBl KGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1NORF9FUFQpLAotCQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBD TURfU0laRSwgJmxlbiwKLQkJCQlDTURfVElNRU9VVCk7Ci0JCQlpZiAocmV0IHx8IGxlbiAhPSBD TURfU0laRSkKLQkJCQlnb3RvIGVycjsKLQotCQkJLyogU2VuZCBkYXRhIGJsb2NrIHRvIGRldmlj ZSAqLwotCQkJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAotCQkJCXVzYl9zbmRi dWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9TTkRfRVBUKSwKLQkJCQlnbTEydTMyMC0+ZGF0 YV9idWZbYmxvY2tdLCBibG9ja19zaXplLAotCQkJCSZsZW4sIERBVEFfVElNRU9VVCk7Ci0JCQlp ZiAocmV0IHx8IGxlbiAhPSBibG9ja19zaXplKQotCQkJCWdvdG8gZXJyOwotCi0JCQkvKiBSZWFk IHN0YXR1cyAqLwotCQkJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAotCQkJCXVz Yl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9SQ1ZfRVBUKSwKLQkJCQlnbTEydTMy MC0+Y21kX2J1ZiwgUkVBRF9TVEFUVVNfU0laRSwgJmxlbiwKLQkJCQlDTURfVElNRU9VVCk7Ci0J CQlpZiAocmV0IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpFKQotCQkJCWdvdG8gZXJyOwotCQl9 CisJZ20xMnUzMjBfY29weV9mYl90b19ibG9ja3MoZ20xMnUzMjApOworCisJZm9yIChibG9jayA9 IDA7IGJsb2NrIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGJsb2NrKyspIHsKKwkJaWYgKGJsb2Nr ID09IEdNMTJVMzIwX0JMT0NLX0NPVU5UIC0gMSkKKwkJCWJsb2NrX3NpemUgPSBEQVRBX0xBU1Rf QkxPQ0tfU0laRTsKKwkJZWxzZQorCQkJYmxvY2tfc2l6ZSA9IERBVEFfQkxPQ0tfU0laRTsKKwor CQkvKiBTZW5kIGRhdGEgY29tbWFuZCB0byBkZXZpY2UgKi8KKwkJbWVtY3B5KGdtMTJ1MzIwLT5j bWRfYnVmLCBjbWRfZGF0YSwgQ01EX1NJWkUpOworCQlnbTEydTMyMC0+Y21kX2J1Zls4XSA9IGJs b2NrX3NpemUgJiAweGZmOworCQlnbTEydTMyMC0+Y21kX2J1Zls5XSA9IGJsb2NrX3NpemUgPj4g ODsKKwkJZ20xMnUzMjAtPmNtZF9idWZbMjBdID0gMHhmYyAtIGJsb2NrICogNDsKKwkJZ20xMnUz MjAtPmNtZF9idWZbMjFdID0KKwkJCWJsb2NrIHwgKGdtMTJ1MzIwLT5mYl91cGRhdGUuZnJhbWUg PDwgNyk7CiAKLQkJLyogU2VuZCBkcmF3IGNvbW1hbmQgdG8gZGV2aWNlICovCi0JCW1lbWNweShn bTEydTMyMC0+Y21kX2J1ZiwgY21kX2RyYXcsIENNRF9TSVpFKTsKIAkJcmV0ID0gdXNiX2J1bGtf bXNnKGdtMTJ1MzIwLT51ZGV2LAogCQkJdXNiX3NuZGJ1bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBE QVRBX1NORF9FUFQpLAotCQkJZ20xMnUzMjAtPmNtZF9idWYsIENNRF9TSVpFLCAmbGVuLCBDTURf VElNRU9VVCk7CisJCQlnbTEydTMyMC0+Y21kX2J1ZiwgQ01EX1NJWkUsICZsZW4sCisJCQlDTURf VElNRU9VVCk7CiAJCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQogCQkJZ290byBlcnI7CiAK KwkJLyogU2VuZCBkYXRhIGJsb2NrIHRvIGRldmljZSAqLworCQlyZXQgPSB1c2JfYnVsa19tc2co Z20xMnUzMjAtPnVkZXYsCisJCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFf U05EX0VQVCksCisJCQlnbTEydTMyMC0+ZGF0YV9idWZbYmxvY2tdLCBibG9ja19zaXplLAorCQkJ JmxlbiwgREFUQV9USU1FT1VUKTsKKwkJaWYgKHJldCB8fCBsZW4gIT0gYmxvY2tfc2l6ZSkKKwkJ CWdvdG8gZXJyOworCiAJCS8qIFJlYWQgc3RhdHVzICovCiAJCXJldCA9IHVzYl9idWxrX21zZyhn bTEydTMyMC0+dWRldiwKIAkJCXVzYl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9S Q1ZfRVBUKSwKIAkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAot CQkJZHJhd19zdGF0dXNfdGltZW91dCk7CisJCQlDTURfVElNRU9VVCk7CiAJCWlmIChyZXQgfHwg bGVuICE9IFJFQURfU1RBVFVTX1NJWkUpCiAJCQlnb3RvIGVycjsKLQotCQlkcmF3X3N0YXR1c190 aW1lb3V0ID0gQ01EX1RJTUVPVVQ7Ci0JCWZyYW1lID0gIWZyYW1lOwotCi0JCS8qCi0JCSAqIFdl IG11c3QgZHJhdyBhIGZyYW1lIGV2ZXJ5IDJzIG90aGVyd2lzZSB0aGUgcHJvamVjdG9yCi0JCSAq IHN3aXRjaGVzIGJhY2sgdG8gc2hvd2luZyBpdHMgbG9nby4KLQkJICovCi0JCXdhaXRfZXZlbnRf dGltZW91dChnbTEydTMyMC0+ZmJfdXBkYXRlLndhaXRxLAotCQkJCSAgICFnbTEydTMyMC0+ZmJf dXBkYXRlLnJ1biB8fAotCQkJCQlnbTEydTMyMC0+ZmJfdXBkYXRlLmZiICE9IE5VTEwsCi0JCQkJ ICAgSURMRV9USU1FT1VUKTsKIAl9CisKKwkvKiBTZW5kIGRyYXcgY29tbWFuZCB0byBkZXZpY2Ug Ki8KKwltZW1jcHkoZ20xMnUzMjAtPmNtZF9idWYsIGNtZF9kcmF3LCBDTURfU0laRSk7CisJcmV0 ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAorCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUz MjAtPnVkZXYsIERBVEFfU05EX0VQVCksCisJCWdtMTJ1MzIwLT5jbWRfYnVmLCBDTURfU0laRSwg JmxlbiwgQ01EX1RJTUVPVVQpOworCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQorCQlnb3Rv IGVycjsKKworCS8qIFJlYWQgc3RhdHVzICovCisJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIw LT51ZGV2LAorCQl1c2JfcmN2YnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFfUkNWX0VQVCks CisJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAorCQlnbTEydTMy MC0+ZmJfdXBkYXRlLmRyYXdfc3RhdHVzX3RpbWVvdXQpOworCWlmIChyZXQgfHwgbGVuICE9IFJF QURfU1RBVFVTX1NJWkUpCisJCWdvdG8gZXJyOworCisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5kcmF3 X3N0YXR1c190aW1lb3V0ID0gQ01EX1RJTUVPVVQ7CisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mcmFt ZSA9ICFnbTEydTMyMC0+ZmJfdXBkYXRlLmZyYW1lOworCisJLyoKKwkgKiBXZSBtdXN0IGRyYXcg YSBmcmFtZSBldmVyeSAycyBvdGhlcndpc2UgdGhlIHByb2plY3RvcgorCSAqIHN3aXRjaGVzIGJh Y2sgdG8gc2hvd2luZyBpdHMgbG9nby4KKwkgKi8KKwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVt X2xvbmdfd3EsICZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssCisJCQkgICBJRExFX1RJTUVPVVQp OworCiAJcmV0dXJuOwogZXJyOgogCS8qIERvIG5vdCBsb2cgZXJyb3JzIGNhdXNlZCBieSBtb2R1 bGUgdW5sb2FkIG9yIGRldmljZSB1bnBsdWcgKi8KQEAgLTQ0NiwzNiArNDMyLDI0IEBAIHN0YXRp YyB2b2lkIGdtMTJ1MzIwX2ZiX21hcmtfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs CiAJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOwogCiAJaWYgKHdha2V1 cCkKLQkJd2FrZV91cCgmZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSk7CisJCW1vZF9kZWxheWVk X3dvcmsoc3lzdGVtX2xvbmdfd3EsICZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssIDApOwogCiAJ aWYgKG9sZF9mYikKIAkJZHJtX2ZyYW1lYnVmZmVyX3B1dChvbGRfZmIpOwogfQogCi1zdGF0aWMg dm9pZCBnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20x MnUzMjApCi17Ci0JbXV0ZXhfbG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKLQlnbTEy dTMyMC0+ZmJfdXBkYXRlLnJ1biA9IHRydWU7Ci0JbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJf dXBkYXRlLmxvY2spOwotCi0JcXVldWVfd29yayhnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxLCAm Z20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsKLX0KLQogc3RhdGljIHZvaWQgZ20xMnUzMjBfc3Rv cF9mYl91cGRhdGUoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCiB7Ci0JbXV0ZXhf bG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKLQlnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1 biA9IGZhbHNlOwotCW11dGV4X3VubG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKKwlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmI7CiAKLQl3YWtlX3VwKCZnbTEydTMyMC0+ZmJf dXBkYXRlLndhaXRxKTsKLQljYW5jZWxfd29ya19zeW5jKCZnbTEydTMyMC0+ZmJfdXBkYXRlLndv cmspOworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3Jr KTsKIAogCW11dGV4X2xvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Ci0JaWYgKGdtMTJ1 MzIwLT5mYl91cGRhdGUuZmIpIHsKLQkJZHJtX2ZyYW1lYnVmZmVyX3B1dChnbTEydTMyMC0+ZmJf dXBkYXRlLmZiKTsKLQkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5VTEw7Ci0JfQorCW9sZF9m YiA9IGdtMTJ1MzIwLT5mYl91cGRhdGUuZmI7CisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5V TEw7CiAJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCisJZHJtX2Zy YW1lYnVmZmVyX3B1dChvbGRfZmIpOwogfQogCiBzdGF0aWMgaW50IGdtMTJ1MzIwX3NldF9lY29t b2RlKHN0cnVjdCBnbTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwKQpAQCAtNTgzLDExICs1NTcsMTEg QEAgc3RhdGljIHZvaWQgZ20xMnUzMjBfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlICpwaXBlLAogCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJCQkJIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN0cnVjdCBn bTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwID0gcGlwZS0+Y3J0Yy5kZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBkcm1fcmVjdCByZWN0ID0geyAwLCAwLCBHTTEyVTMyMF9VU0VSX1dJRFRILCBHTTEy VTMyMF9IRUlHSFQgfTsKKwlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9IHBpcGUt PmNydGMuZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWdtMTJ1MzIwLT5mYl91cGRhdGUuZHJhd19zdGF0 dXNfdGltZW91dCA9IEZJUlNUX0ZSQU1FX1RJTUVPVVQ7CiAJZ20xMnUzMjBfZmJfbWFya19kaXJ0 eShwbGFuZV9zdGF0ZS0+ZmIsICZyZWN0KTsKLQlnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoZ20x MnUzMjApOwogfQogCiBzdGF0aWMgdm9pZCBnbTEydTMyMF9waXBlX2Rpc2FibGUoc3RydWN0IGRy bV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQpAQCAtNjIyLDEzICs1OTYsNiBAQCBzdGF0aWMg Y29uc3QgdWludDY0X3QgZ20xMnUzMjBfcGlwZV9tb2RpZmllcnNbXSA9IHsKIAlEUk1fRk9STUFU X01PRF9JTlZBTElECiB9OwogCi1zdGF0aWMgdm9pZCBnbTEydTMyMF9kcml2ZXJfcmVsZWFzZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBnbTEydTMyMF9kZXZpY2UgKmdtMTJ1 MzIwID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCWdtMTJ1MzIwX3VzYl9mcmVlKGdtMTJ1MzIwKTsK LX0KLQogREVGSU5FX0RSTV9HRU1fRk9QUyhnbTEydTMyMF9mb3BzKTsKIAogc3RhdGljIHN0cnVj dCBkcm1fZHJpdmVyIGdtMTJ1MzIwX2RybV9kcml2ZXIgPSB7CkBAIC02NDAsNyArNjA3LDYgQEAg c3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGdtMTJ1MzIwX2RybV9kcml2ZXIgPSB7CiAJLm1ham9y CQkgPSBEUklWRVJfTUFKT1IsCiAJLm1pbm9yCQkgPSBEUklWRVJfTUlOT1IsCiAKLQkucmVsZWFz ZQkgPSBnbTEydTMyMF9kcml2ZXJfcmVsZWFzZSwKIAkuZm9wcwkJID0gJmdtMTJ1MzIwX2ZvcHMs CiAJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogfTsKQEAgLTY3MCw5ICs2MzYsOCBAQCBzdGF0 aWMgaW50IGdtMTJ1MzIwX3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNl LAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWdtMTJ1MzIwLT51ZGV2ID0gaW50ZXJmYWNlX3RvX3Vz YmRldihpbnRlcmZhY2UpOwotCUlOSVRfV09SSygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrLCBn bTEydTMyMF9mYl91cGRhdGVfd29yayk7CisJSU5JVF9ERUxBWUVEX1dPUksoJmdtMTJ1MzIwLT5m Yl91cGRhdGUud29yaywgZ20xMnUzMjBfZmJfdXBkYXRlX3dvcmspOwogCW11dGV4X2luaXQoJmdt MTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZ20xMnUzMjAt PmZiX3VwZGF0ZS53YWl0cSk7CiAKIAlkZXYgPSAmZ20xMnUzMjAtPmRldjsKIAlyZXQgPSBkZXZt X2RybV9kZXZfaW5pdCgmaW50ZXJmYWNlLT5kZXYsIGRldiwgJmdtMTJ1MzIwX2RybV9kcml2ZXIp OwotLSAKMi4yNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20963C35E15 for ; Thu, 27 Feb 2020 18:17:27 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F03DF2469B for ; Thu, 27 Feb 2020 18:17:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="O3e75FvH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F03DF2469B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 86C4F6ED23; Thu, 27 Feb 2020 18:16:32 +0000 (UTC) Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id EFA786ED1E for ; Thu, 27 Feb 2020 18:16:27 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id t14so400482wmi.5 for ; Thu, 27 Feb 2020 10:16:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8XHHULpPwbmD5FnkP/ajAPIciEMFWcdC+iRHe531Kh0=; b=O3e75FvHuPAT/8Bh8i5ko48bmjicRElEzBAiya6BBFo2oygUNVcBAgswJAZGtp/w+G 49cX8EOJYDE1aArNvdBTfqKsfQAxdbAduZITxaw3CqHIsjmDM40NjVAX2iH/ULRvzxWB zqu7H0oX2PuBUm1uvw4uA1owRvw9qhDAYT/a4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8XHHULpPwbmD5FnkP/ajAPIciEMFWcdC+iRHe531Kh0=; b=PrNlUuLY684703MjiNp2CZfvGCu6bOrz8d/3eeZMQDNcB9R5tHicMeAln58+jW/GgA plSyvYVxJmOlLMWHLj/iGGKVyg7ipk3QDz03R2sJwlo2cJdI5rWIOHAqE1DJOGp+8336 t9olV4mmZJdPDCdJQZa9i5VdIl8ClyWjOCO3SrjzuFeR/kTFKGIvoGDe/TOsOj7ZR899 s7r9jGxrMuwcbHz/WDa0AhGLKVJLfPB17OKbi929TdzRBLdsD8RIFMzetifnUo+t82x3 YjeBA2TaKXKVSHsjmNB5l/vW+kxxlvVZde++wbiLEJhgyb298g/p+HGDZ6vxAFVJ1zS7 iYwg== X-Gm-Message-State: APjAAAUfQZ+aI63I2kHRhnFhW5krfeH/ohH9Sx2VJ7KPnGmF/ZZbzQzM Hakx+nOJxCxcE+JSl0DONh4fjOfj0I8= X-Google-Smtp-Source: APXvYqwA9mCJhRdeY0WaXliA3UDJhFOL0fTcQOuvu/XaOcKiHZT7EoN8fyfrnLpRTKvD+BbCJa/XhQ== X-Received: by 2002:a1c:ba87:: with SMTP id k129mr57037wmf.102.1582827386479; Thu, 27 Feb 2020 10:16:26 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q1sm8551152wrw.5.2020.02.27.10.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Feb 2020 10:16:25 -0800 (PST) From: Daniel Vetter To: DRI Development Date: Thu, 27 Feb 2020 19:15:16 +0100 Message-Id: <20200227181522.2711142-46-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> References: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 45/51] drm/gm12u320: Simplify upload work X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel Graphics Development , m.felsch@pengutronix.de, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , Daniel Vetter , l.stach@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SW5zdGVhZCBvZiBoYXZpbmcgYSB3b3JrIGl0ZW0gdGhhdCBuZXZlciBzdG9wcyAod2hpY2ggcmVh bGx5IHNob3VsZCBiZQphIGt0aHJlYWQpLCB3aXRoIGEgZGVkaWNhdGVkIHdvcmtxdWV1ZSB0byBu b3QgdXBzZXQgYW55b25lIGVsc2UsIHVzZSBhCmRlbGF5ZWQgd29yay4gQSBidW5jaCBvZiBjaGFu Z2VzOgoKLSBXZSBjYW4gdGhyb3cgb3V0IGFsbCB0aGUgY3VzdG9tIHdha2V1cCBhbmQgcmVxdWV1 ZSBsb2dpYyBhbmQgc3RhdGUKICB0cmFja2luZy4gSWYgd2Ugc2NoZWR1bGUgdGhlIHdvcmsgd2l0 aCBhIDAgZGVsYXkgaXQnbGwgZ2V0CiAgc2NoZWR1bGVkIGltbWVkaWF0ZWx5LgoKLSBQZXJzaXN0 ZW50IHN0YXRlIChmcmFtZSAmIGRyYXdfc3RhdHVzX3RpbWVvdXQpIG5lZWQgdG8gYmUgbW92ZWQg b3V0CiAgb2YgdGhlIHdvcmsuCgotIGRpZmYgaXMgYmlnZ2VyIHRoYW4gdGhlIGNoYW5nZXMsIGJp Z2dlc3QgY2h1bmsgaXMgcmVpbmRlbnRpbmcgdGhlCiAgd29yayBmbiBiZWNhdXNlIGl0IGxvc3Qg aXRzIHdoaWxlIGxvb3AuCgpMb3RzIG9mIGNvZGUgZGVsZXRpbmcgYXMgY29uc2VxdWVuY2UgYWxs IG92ZXIuIFNwZWNpZmljYWxseSB3ZSBjYW4KZGVsZXRlIHRoZSBkcm1fZHJpdmVyLnJlbGVhc2Ug Y29kZSBub3chCgp2MjogUmV2aWV3IGZyb20gSGFuczoKLSBVc2UgbW9kX2RlbGF5ZWRfd29yayBp biB0aGUgcGxhbmUgdXBkYXRlIHBhdGggdG8gbWFrZSBzdXJlIHdlIGRvCiAgYWN0dWFsbHkgc2No ZWR1bGUgaW1tZWRpYXRlbHkpLiBJbiB0aGUgd29ya2VyIHdlIHN0aWxsIHdhbnQKICBxdWV1ZV9k ZWxheWVkX3dvcmssIHdoaWNoIHdvbid0IG1vZGlmeSB0aGUgdGltZW91dCB3aGVuIHRoZSB3b3Jr IGlzCiAgYWxyZWFkeSBzY2hlZHVsZWQuIFdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50IGlm IHRoZSB3b3JrIHJhY2VzCiAgd2l0aCBhIHBsYW5lIHVwZGF0ZS4KLSBTd2l0Y2ggdG8gc3lzdGVt X2xvbmdfd3EsIEhhbnMgc2F5cyBvbiB1c2IyIGEgcGxhbmUgdXBsb2FkIGNhbiB0YWtlCiAgODAg bXMuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CkNjOiAiTm9yYWxmIFRy w7hubmVzIiA8bm9yYWxmQHRyb25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90aW55L2dt MTJ1MzIwLmMgfCAxNzEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55L2dt MTJ1MzIwLmMKaW5kZXggYzIyYjJlZTQ3MGViLi5iYmM0ZWY0NDU2ZTYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90aW55L2dtMTJ1MzIwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnkv Z20xMnUzMjAuYwpAQCAtODksMTMgKzg5LDEyIEBAIHN0cnVjdCBnbTEydTMyMF9kZXZpY2Ugewog CXVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgKmNtZF9idWY7CiAJdW5zaWduZWQgY2hh ciAgICAgICAgICAgICAgICAgICAqZGF0YV9idWZbR00xMlUzMjBfQkxPQ0tfQ09VTlRdOwogCXN0 cnVjdCB7Ci0JCWJvb2wgICAgICAgICAgICAgICAgICAgICBydW47Ci0JCXN0cnVjdCB3b3JrcXVl dWVfc3RydWN0ICp3b3JrcTsKLQkJc3RydWN0IHdvcmtfc3RydWN0ICAgICAgIHdvcms7Ci0JCXdh aXRfcXVldWVfaGVhZF90ICAgICAgICB3YWl0cTsKKwkJc3RydWN0IGRlbGF5ZWRfd29yayAgICAg ICB3b3JrOwogCQlzdHJ1Y3QgbXV0ZXggICAgICAgICAgICAgbG9jazsKIAkJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAgKmZiOwogCQlzdHJ1Y3QgZHJtX3JlY3QgICAgICAgICAgcmVjdDsKKwkJaW50 IGZyYW1lOworCQlpbnQgZHJhd19zdGF0dXNfdGltZW91dDsKIAl9IGZiX3VwZGF0ZTsKIH07CiAK QEAgLTE4MywxOSArMTgyLDkgQEAgc3RhdGljIGludCBnbTEydTMyMF91c2JfYWxsb2Moc3RydWN0 IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCiAJCSAgICAgICBkYXRhX2Jsb2NrX2Zvb3Rlciwg REFUQV9CTE9DS19GT09URVJfU0laRSk7CiAJfQogCi0JZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3Jr cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKERSSVZFUl9OQU1FKTsKLQlpZiAoIWdt MTJ1MzIwLT5mYl91cGRhdGUud29ya3EpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyB2b2lkIGdtMTJ1MzIwX3VzYl9mcmVlKHN0cnVjdCBnbTEydTMyMF9kZXZp Y2UgKmdtMTJ1MzIwKQotewotCWlmIChnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxKQotCQlkZXN0 cm95X3dvcmtxdWV1ZShnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxKTsKLX0KLQogc3RhdGljIGlu dCBnbTEydTMyMF9taXNjX3JlcXVlc3Qoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAs CiAJCQkJIHU4IHJlcV9hLCB1OCByZXFfYiwKIAkJCQkgdTggYXJnX2EsIHU4IGFyZ19iLCB1OCBh cmdfYywgdTggYXJnX2QpCkBAIC0zMzgsODAgKzMyNyw3NyBAQCBzdGF0aWMgdm9pZCBnbTEydTMy MF9jb3B5X2ZiX3RvX2Jsb2NrcyhzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKIHN0 YXRpYyB2b2lkIGdtMTJ1MzIwX2ZiX3VwZGF0ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIHsKIAlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9Ci0JCWNvbnRhaW5lcl9v Zih3b3JrLCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlLCBmYl91cGRhdGUud29yayk7Ci0JaW50IGRy YXdfc3RhdHVzX3RpbWVvdXQgPSBGSVJTVF9GUkFNRV9USU1FT1VUOworCQljb250YWluZXJfb2Yo dG9fZGVsYXllZF93b3JrKHdvcmspLCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlLAorCQkJICAgICBm Yl91cGRhdGUud29yayk7CiAJaW50IGJsb2NrLCBibG9ja19zaXplLCBsZW47Ci0JaW50IGZyYW1l ID0gMDsKIAlpbnQgcmV0ID0gMDsKIAotCXdoaWxlIChnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1bikg ewotCQlnbTEydTMyMF9jb3B5X2ZiX3RvX2Jsb2NrcyhnbTEydTMyMCk7Ci0KLQkJZm9yIChibG9j ayA9IDA7IGJsb2NrIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGJsb2NrKyspIHsKLQkJCWlmIChi bG9jayA9PSBHTTEyVTMyMF9CTE9DS19DT1VOVCAtIDEpCi0JCQkJYmxvY2tfc2l6ZSA9IERBVEFf TEFTVF9CTE9DS19TSVpFOwotCQkJZWxzZQotCQkJCWJsb2NrX3NpemUgPSBEQVRBX0JMT0NLX1NJ WkU7Ci0KLQkJCS8qIFNlbmQgZGF0YSBjb21tYW5kIHRvIGRldmljZSAqLwotCQkJbWVtY3B5KGdt MTJ1MzIwLT5jbWRfYnVmLCBjbWRfZGF0YSwgQ01EX1NJWkUpOwotCQkJZ20xMnUzMjAtPmNtZF9i dWZbOF0gPSBibG9ja19zaXplICYgMHhmZjsKLQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzldID0gYmxv Y2tfc2l6ZSA+PiA4OwotCQkJZ20xMnUzMjAtPmNtZF9idWZbMjBdID0gMHhmYyAtIGJsb2NrICog NDsKLQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzIxXSA9IGJsb2NrIHwgKGZyYW1lIDw8IDcpOwotCi0J CQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCi0JCQkJdXNiX3NuZGJ1bGtwaXBl KGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1NORF9FUFQpLAotCQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBD TURfU0laRSwgJmxlbiwKLQkJCQlDTURfVElNRU9VVCk7Ci0JCQlpZiAocmV0IHx8IGxlbiAhPSBD TURfU0laRSkKLQkJCQlnb3RvIGVycjsKLQotCQkJLyogU2VuZCBkYXRhIGJsb2NrIHRvIGRldmlj ZSAqLwotCQkJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAotCQkJCXVzYl9zbmRi dWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9TTkRfRVBUKSwKLQkJCQlnbTEydTMyMC0+ZGF0 YV9idWZbYmxvY2tdLCBibG9ja19zaXplLAotCQkJCSZsZW4sIERBVEFfVElNRU9VVCk7Ci0JCQlp ZiAocmV0IHx8IGxlbiAhPSBibG9ja19zaXplKQotCQkJCWdvdG8gZXJyOwotCi0JCQkvKiBSZWFk IHN0YXR1cyAqLwotCQkJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAotCQkJCXVz Yl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9SQ1ZfRVBUKSwKLQkJCQlnbTEydTMy MC0+Y21kX2J1ZiwgUkVBRF9TVEFUVVNfU0laRSwgJmxlbiwKLQkJCQlDTURfVElNRU9VVCk7Ci0J CQlpZiAocmV0IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpFKQotCQkJCWdvdG8gZXJyOwotCQl9 CisJZ20xMnUzMjBfY29weV9mYl90b19ibG9ja3MoZ20xMnUzMjApOworCisJZm9yIChibG9jayA9 IDA7IGJsb2NrIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGJsb2NrKyspIHsKKwkJaWYgKGJsb2Nr ID09IEdNMTJVMzIwX0JMT0NLX0NPVU5UIC0gMSkKKwkJCWJsb2NrX3NpemUgPSBEQVRBX0xBU1Rf QkxPQ0tfU0laRTsKKwkJZWxzZQorCQkJYmxvY2tfc2l6ZSA9IERBVEFfQkxPQ0tfU0laRTsKKwor CQkvKiBTZW5kIGRhdGEgY29tbWFuZCB0byBkZXZpY2UgKi8KKwkJbWVtY3B5KGdtMTJ1MzIwLT5j bWRfYnVmLCBjbWRfZGF0YSwgQ01EX1NJWkUpOworCQlnbTEydTMyMC0+Y21kX2J1Zls4XSA9IGJs b2NrX3NpemUgJiAweGZmOworCQlnbTEydTMyMC0+Y21kX2J1Zls5XSA9IGJsb2NrX3NpemUgPj4g ODsKKwkJZ20xMnUzMjAtPmNtZF9idWZbMjBdID0gMHhmYyAtIGJsb2NrICogNDsKKwkJZ20xMnUz MjAtPmNtZF9idWZbMjFdID0KKwkJCWJsb2NrIHwgKGdtMTJ1MzIwLT5mYl91cGRhdGUuZnJhbWUg PDwgNyk7CiAKLQkJLyogU2VuZCBkcmF3IGNvbW1hbmQgdG8gZGV2aWNlICovCi0JCW1lbWNweShn bTEydTMyMC0+Y21kX2J1ZiwgY21kX2RyYXcsIENNRF9TSVpFKTsKIAkJcmV0ID0gdXNiX2J1bGtf bXNnKGdtMTJ1MzIwLT51ZGV2LAogCQkJdXNiX3NuZGJ1bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBE QVRBX1NORF9FUFQpLAotCQkJZ20xMnUzMjAtPmNtZF9idWYsIENNRF9TSVpFLCAmbGVuLCBDTURf VElNRU9VVCk7CisJCQlnbTEydTMyMC0+Y21kX2J1ZiwgQ01EX1NJWkUsICZsZW4sCisJCQlDTURf VElNRU9VVCk7CiAJCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQogCQkJZ290byBlcnI7CiAK KwkJLyogU2VuZCBkYXRhIGJsb2NrIHRvIGRldmljZSAqLworCQlyZXQgPSB1c2JfYnVsa19tc2co Z20xMnUzMjAtPnVkZXYsCisJCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFf U05EX0VQVCksCisJCQlnbTEydTMyMC0+ZGF0YV9idWZbYmxvY2tdLCBibG9ja19zaXplLAorCQkJ JmxlbiwgREFUQV9USU1FT1VUKTsKKwkJaWYgKHJldCB8fCBsZW4gIT0gYmxvY2tfc2l6ZSkKKwkJ CWdvdG8gZXJyOworCiAJCS8qIFJlYWQgc3RhdHVzICovCiAJCXJldCA9IHVzYl9idWxrX21zZyhn bTEydTMyMC0+dWRldiwKIAkJCXVzYl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9S Q1ZfRVBUKSwKIAkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAot CQkJZHJhd19zdGF0dXNfdGltZW91dCk7CisJCQlDTURfVElNRU9VVCk7CiAJCWlmIChyZXQgfHwg bGVuICE9IFJFQURfU1RBVFVTX1NJWkUpCiAJCQlnb3RvIGVycjsKLQotCQlkcmF3X3N0YXR1c190 aW1lb3V0ID0gQ01EX1RJTUVPVVQ7Ci0JCWZyYW1lID0gIWZyYW1lOwotCi0JCS8qCi0JCSAqIFdl IG11c3QgZHJhdyBhIGZyYW1lIGV2ZXJ5IDJzIG90aGVyd2lzZSB0aGUgcHJvamVjdG9yCi0JCSAq IHN3aXRjaGVzIGJhY2sgdG8gc2hvd2luZyBpdHMgbG9nby4KLQkJICovCi0JCXdhaXRfZXZlbnRf dGltZW91dChnbTEydTMyMC0+ZmJfdXBkYXRlLndhaXRxLAotCQkJCSAgICFnbTEydTMyMC0+ZmJf dXBkYXRlLnJ1biB8fAotCQkJCQlnbTEydTMyMC0+ZmJfdXBkYXRlLmZiICE9IE5VTEwsCi0JCQkJ ICAgSURMRV9USU1FT1VUKTsKIAl9CisKKwkvKiBTZW5kIGRyYXcgY29tbWFuZCB0byBkZXZpY2Ug Ki8KKwltZW1jcHkoZ20xMnUzMjAtPmNtZF9idWYsIGNtZF9kcmF3LCBDTURfU0laRSk7CisJcmV0 ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAorCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUz MjAtPnVkZXYsIERBVEFfU05EX0VQVCksCisJCWdtMTJ1MzIwLT5jbWRfYnVmLCBDTURfU0laRSwg JmxlbiwgQ01EX1RJTUVPVVQpOworCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQorCQlnb3Rv IGVycjsKKworCS8qIFJlYWQgc3RhdHVzICovCisJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIw LT51ZGV2LAorCQl1c2JfcmN2YnVsa3BpcGUoZ20xMnUzMjAtPnVkZXYsIERBVEFfUkNWX0VQVCks CisJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAorCQlnbTEydTMy MC0+ZmJfdXBkYXRlLmRyYXdfc3RhdHVzX3RpbWVvdXQpOworCWlmIChyZXQgfHwgbGVuICE9IFJF QURfU1RBVFVTX1NJWkUpCisJCWdvdG8gZXJyOworCisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5kcmF3 X3N0YXR1c190aW1lb3V0ID0gQ01EX1RJTUVPVVQ7CisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mcmFt ZSA9ICFnbTEydTMyMC0+ZmJfdXBkYXRlLmZyYW1lOworCisJLyoKKwkgKiBXZSBtdXN0IGRyYXcg YSBmcmFtZSBldmVyeSAycyBvdGhlcndpc2UgdGhlIHByb2plY3RvcgorCSAqIHN3aXRjaGVzIGJh Y2sgdG8gc2hvd2luZyBpdHMgbG9nby4KKwkgKi8KKwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVt X2xvbmdfd3EsICZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssCisJCQkgICBJRExFX1RJTUVPVVQp OworCiAJcmV0dXJuOwogZXJyOgogCS8qIERvIG5vdCBsb2cgZXJyb3JzIGNhdXNlZCBieSBtb2R1 bGUgdW5sb2FkIG9yIGRldmljZSB1bnBsdWcgKi8KQEAgLTQ0NiwzNiArNDMyLDI0IEBAIHN0YXRp YyB2b2lkIGdtMTJ1MzIwX2ZiX21hcmtfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs CiAJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOwogCiAJaWYgKHdha2V1 cCkKLQkJd2FrZV91cCgmZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSk7CisJCW1vZF9kZWxheWVk X3dvcmsoc3lzdGVtX2xvbmdfd3EsICZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssIDApOwogCiAJ aWYgKG9sZF9mYikKIAkJZHJtX2ZyYW1lYnVmZmVyX3B1dChvbGRfZmIpOwogfQogCi1zdGF0aWMg dm9pZCBnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20x MnUzMjApCi17Ci0JbXV0ZXhfbG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKLQlnbTEy dTMyMC0+ZmJfdXBkYXRlLnJ1biA9IHRydWU7Ci0JbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJf dXBkYXRlLmxvY2spOwotCi0JcXVldWVfd29yayhnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxLCAm Z20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsKLX0KLQogc3RhdGljIHZvaWQgZ20xMnUzMjBfc3Rv cF9mYl91cGRhdGUoc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjApCiB7Ci0JbXV0ZXhf bG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKLQlnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1 biA9IGZhbHNlOwotCW11dGV4X3VubG9jaygmZ20xMnUzMjAtPmZiX3VwZGF0ZS5sb2NrKTsKKwlz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmI7CiAKLQl3YWtlX3VwKCZnbTEydTMyMC0+ZmJf dXBkYXRlLndhaXRxKTsKLQljYW5jZWxfd29ya19zeW5jKCZnbTEydTMyMC0+ZmJfdXBkYXRlLndv cmspOworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3Jr KTsKIAogCW11dGV4X2xvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Ci0JaWYgKGdtMTJ1 MzIwLT5mYl91cGRhdGUuZmIpIHsKLQkJZHJtX2ZyYW1lYnVmZmVyX3B1dChnbTEydTMyMC0+ZmJf dXBkYXRlLmZiKTsKLQkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5VTEw7Ci0JfQorCW9sZF9m YiA9IGdtMTJ1MzIwLT5mYl91cGRhdGUuZmI7CisJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5V TEw7CiAJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOworCisJZHJtX2Zy YW1lYnVmZmVyX3B1dChvbGRfZmIpOwogfQogCiBzdGF0aWMgaW50IGdtMTJ1MzIwX3NldF9lY29t b2RlKHN0cnVjdCBnbTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwKQpAQCAtNTgzLDExICs1NTcsMTEg QEAgc3RhdGljIHZvaWQgZ20xMnUzMjBfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlICpwaXBlLAogCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJCQkJIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN0cnVjdCBn bTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwID0gcGlwZS0+Y3J0Yy5kZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBkcm1fcmVjdCByZWN0ID0geyAwLCAwLCBHTTEyVTMyMF9VU0VSX1dJRFRILCBHTTEy VTMyMF9IRUlHSFQgfTsKKwlzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9IHBpcGUt PmNydGMuZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWdtMTJ1MzIwLT5mYl91cGRhdGUuZHJhd19zdGF0 dXNfdGltZW91dCA9IEZJUlNUX0ZSQU1FX1RJTUVPVVQ7CiAJZ20xMnUzMjBfZmJfbWFya19kaXJ0 eShwbGFuZV9zdGF0ZS0+ZmIsICZyZWN0KTsKLQlnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoZ20x MnUzMjApOwogfQogCiBzdGF0aWMgdm9pZCBnbTEydTMyMF9waXBlX2Rpc2FibGUoc3RydWN0IGRy bV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlKQpAQCAtNjIyLDEzICs1OTYsNiBAQCBzdGF0aWMg Y29uc3QgdWludDY0X3QgZ20xMnUzMjBfcGlwZV9tb2RpZmllcnNbXSA9IHsKIAlEUk1fRk9STUFU X01PRF9JTlZBTElECiB9OwogCi1zdGF0aWMgdm9pZCBnbTEydTMyMF9kcml2ZXJfcmVsZWFzZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBnbTEydTMyMF9kZXZpY2UgKmdtMTJ1 MzIwID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCWdtMTJ1MzIwX3VzYl9mcmVlKGdtMTJ1MzIwKTsK LX0KLQogREVGSU5FX0RSTV9HRU1fRk9QUyhnbTEydTMyMF9mb3BzKTsKIAogc3RhdGljIHN0cnVj dCBkcm1fZHJpdmVyIGdtMTJ1MzIwX2RybV9kcml2ZXIgPSB7CkBAIC02NDAsNyArNjA3LDYgQEAg c3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGdtMTJ1MzIwX2RybV9kcml2ZXIgPSB7CiAJLm1ham9y CQkgPSBEUklWRVJfTUFKT1IsCiAJLm1pbm9yCQkgPSBEUklWRVJfTUlOT1IsCiAKLQkucmVsZWFz ZQkgPSBnbTEydTMyMF9kcml2ZXJfcmVsZWFzZSwKIAkuZm9wcwkJID0gJmdtMTJ1MzIwX2ZvcHMs CiAJRFJNX0dFTV9TSE1FTV9EUklWRVJfT1BTLAogfTsKQEAgLTY3MCw5ICs2MzYsOCBAQCBzdGF0 aWMgaW50IGdtMTJ1MzIwX3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNl LAogCQlyZXR1cm4gLUVOT01FTTsKIAogCWdtMTJ1MzIwLT51ZGV2ID0gaW50ZXJmYWNlX3RvX3Vz YmRldihpbnRlcmZhY2UpOwotCUlOSVRfV09SSygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrLCBn bTEydTMyMF9mYl91cGRhdGVfd29yayk7CisJSU5JVF9ERUxBWUVEX1dPUksoJmdtMTJ1MzIwLT5m Yl91cGRhdGUud29yaywgZ20xMnUzMjBfZmJfdXBkYXRlX3dvcmspOwogCW11dGV4X2luaXQoJmdt MTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZ20xMnUzMjAt PmZiX3VwZGF0ZS53YWl0cSk7CiAKIAlkZXYgPSAmZ20xMnUzMjAtPmRldjsKIAlyZXQgPSBkZXZt X2RybV9kZXZfaW5pdCgmaW50ZXJmYWNlLT5kZXYsIGRldiwgJmdtMTJ1MzIwX2RybV9kcml2ZXIp OwotLSAKMi4yNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK