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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id D849A10BA423 for ; Sat, 28 Mar 2026 18:53:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4432210E537; Sat, 28 Mar 2026 18:53:35 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="BgHq0ekC"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1772210E10B for ; Sat, 28 Mar 2026 18:53:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=2vSiofseJQritJoo/kYMQf2WWbljZf1+ansnduhvt6I=; b=BgHq0ekCWARS4UWqbmyuIW+pXQ gVokiZNjgow+2iBxu8slg/MSQdWPS3HvFRTiwm7iP4BhVKhpKHaT24xOkIgGjJbE4xOYOLpIRKY7v BYm3IiWsOqcEcKRvK/QzIwyRVAkjei/uwtsTdEASKdoul+Y5AyANihYQSbKsayoZdsWa75X3lPU6J sRG05kw9/XOPFj8TodccRVbeCZmdXV1CxGeXMq6Xwt+vydOwagGtOdqNX+Z6qDW3tWzuJ+KKeJxNx UbHbwAFzaCcpSAEu3F1JVHbyE0EjHrBC1TtdDV1sz0Uyc4fyIlzALlZdUn/ADz4L991426rDI/x4u HJSWmTpw==; Received: from [189.7.87.169] (helo=[10.0.0.1]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1w6Yma-007f3o-IG; Sat, 28 Mar 2026 19:53:16 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= Date: Sat, 28 Mar 2026 15:52:48 -0300 Subject: [PATCH v8 2/3] drm/v3d: Allocate all resources before enabling the clock MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260328-v3d-power-management-v8-2-94336830df5f@igalia.com> References: <20260328-v3d-power-management-v8-0-94336830df5f@igalia.com> In-Reply-To: <20260328-v3d-power-management-v8-0-94336830df5f@igalia.com> To: Stefan Wahren , Maxime Ripard , Melissa Wen , Iago Toral Quiroga , Dave Stevenson Cc: dri-devel@lists.freedesktop.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Broadcom internal kernel review list , kernel-dev@igalia.com, =?utf-8?q?Ma=C3=ADra_Canal?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7563; i=mcanal@igalia.com; h=from:subject:message-id; bh=+zjomnaO0OzS3lQEQceIVi2rjWwjOF5edG9LH0KBlvI=; b=owEBbQGS/pANAwAKAT/zDop2iPqqAcsmYgBpyCORZO1yuw4U5BwNrVMy1Cb/uFjHrOp7RoIq7 /wtAVfJwouJATMEAAEKAB0WIQT45F19ARZ3Bymmd9E/8w6Kdoj6qgUCacgjkQAKCRA/8w6Kdoj6 qondB/4qSE07S1f82TMMDCVt0BxMJQRPRNr/xOQc4A2PGOSr/2PB/h003ON3OZZ4zYAxbpIoVZp cEX8xPuHaFWJSbO/WhmpP2oeWm8fNB5PK4b3959hMycp0DSfzEr51r+416S5e+NijrT4mGQu0lD Iodc3+wbNb0wjmEe7u3BXUrB9JeKIL8BBO5PGHM6HcNCU434YyoxIZNqMiCHmFKtA2ob1t17W1w 4ULYLLYMEt7IX/1FAzOCiWQbNhTVrBDWsKJ2couUNu9JJS2hkGy6c/hEbgVllME4SHA5FShGwxt XH/zCUW5iRtfeUol0W6hJOyPrKZJ2MBf3TytEAn0h6TiIRkW X-Developer-Key: i=mcanal@igalia.com; a=openpgp; fpr=F8E45D7D0116770729A677D13FF30E8A7688FAAA 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" TW92ZSBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbiBvcGVyYXRpb25zIGJlZm9yZSBhY3R1YWxseSBl bmFibGluZyB0aGUKY2xvY2ssIGFzIHRob3NlIG9wZXJhdGlvbnMgZG9uJ3QgcmVxdWlyZSB0aGUg R1BVIHRvIGJlIHBvd2VyZWQgb24uCgpUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIHJ1bnRpbWUg UE0gc3VwcG9ydC4gVGhlIG5leHQgY29tbWl0IHdpbGwKbW92ZSBhbGwgY29kZSByZWxhdGVkIHRv IHBvd2VyaW5nIG9uIGFuZCBpbml0aWF0aW5nIHRoZSBHUFUgaW50byB0aGUKcnVudGltZSBQTSBy ZXN1bWUgY2FsbGJhY2sgYW5kIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9uIHdpbGwgaGFwcGVuCmJl Zm9yZSByZXN1bWUoKS4KClJldmlld2VkLWJ5OiBNZWxpc3NhIFdlbiA8bXdlbkBpZ2FsaWEuY29t PgpTaWduZWQtb2ZmLWJ5OiBNYcOtcmEgQ2FuYWwgPG1jYW5hbEBpZ2FsaWEuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmggfCAgMSAr CiBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYyB8IDE4ICsrKystLS0tLQogZHJpdmVycy9n cHUvZHJtL3YzZC92M2RfaXJxLmMgfCAxNSArKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDYyIGlu c2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92M2QvdjNkX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmMKaW5kZXggYzVl N2M3NzhlYzdhMWEzOWQ4MTE1NWY3ZWQyYTdiYTgxMWI1ZTNhYS4uZTU3YjM2ZjRkODFhNTlkMTVh MjIzYWZkYzQwNzhhZTY0NTZkZTlhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmMKQEAgLTM2MywxNCAr MzYzLDUwIEBAIHN0YXRpYyBpbnQgdjNkX3BsYXRmb3JtX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCQkJcmV0dXJuIHJldDsKIAl9CiAKKwlpZiAodjNkLT52ZXIgPCBW M0RfR0VOXzQxKSB7CisJCXJldCA9IG1hcF9yZWdzKHYzZCwgJnYzZC0+Z2NhX3JlZ3MsICJnY2Ei KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJdjNkLT5yZXNldCA9IGRldm1f cmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWxfZXhjbHVzaXZlKGRldiwgTlVMTCk7CisJaWYgKElT X0VSUih2M2QtPnJlc2V0KSkKKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHYz ZC0+cmVzZXQpLAorCQkJCSAgICAgIkZhaWxlZCB0byBnZXQgcmVzZXQgY29udHJvbFxuIik7CisK KwlpZiAoIXYzZC0+cmVzZXQpIHsKKwkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5icmlkZ2Vf cmVncywgImJyaWRnZSIpOworCQlpZiAocmV0KSB7CisJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBnZXQgYnJpZGdlIHJlZ2lzdGVyc1xuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCiAJ djNkLT5jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoZGV2LCBOVUxMKTsKIAlpZiAoSVNfRVJS KHYzZC0+Y2xrKSkKIAkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHYzZC0+Y2xr KSwgIkZhaWxlZCB0byBnZXQgVjNEIGNsb2NrXG4iKTsKIAorCXJldCA9IHYzZF9pcnFfaW5pdCh2 M2QpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwl2M2RfcGVyZm1vbl9pbml0KHYzZCk7 CisKKwl2M2QtPm1tdV9zY3JhdGNoID0gZG1hX2FsbG9jX3djKGRldiwgNDA5NiwgJnYzZC0+bW11 X3NjcmF0Y2hfcGFkZHIsCisJCQkJCUdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9a RVJPKTsKKwlpZiAoIXYzZC0+bW11X3NjcmF0Y2gpIHsKKwkJZGV2X2VycihkZXYsICJGYWlsZWQg dG8gYWxsb2NhdGUgTU1VIHNjcmF0Y2ggcGFnZVxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0K KworCXJldCA9IHYzZF9nZW1faW5pdChkcm0pOworCWlmIChyZXQpCisJCWdvdG8gZG1hX2ZyZWU7 CisKIAlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUodjNkLT5jbGspOwogCWlmIChyZXQpIHsKIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAiQ291bGRuJ3QgZW5hYmxlIHRoZSBWM0QgY2xvY2tcbiIpOwot CQlyZXR1cm4gcmV0OworCQlnb3RvIGdlbV9kZXN0cm95OwogCX0KIAogCXYzZF9pZGxlX3Ntcyh2 M2QpOwpAQCAtMzk5LDQ0ICs0MzUsOSBAQCBzdGF0aWMgaW50IHYzZF9wbGF0Zm9ybV9kcm1fcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZGVudDMgPSBWM0RfUkVBRChWM0Rf SFVCX0lERU5UMyk7CiAJdjNkLT5yZXYgPSBWM0RfR0VUX0ZJRUxEKGlkZW50MywgVjNEX0hVQl9J REVOVDNfSVBSRVYpOwogCi0JdjNkX3BlcmZtb25faW5pdCh2M2QpOwotCi0JdjNkLT5yZXNldCA9 IGRldm1fcmVzZXRfY29udHJvbF9nZXRfb3B0aW9uYWxfZXhjbHVzaXZlKGRldiwgTlVMTCk7Ci0J aWYgKElTX0VSUih2M2QtPnJlc2V0KSkgewotCQlyZXQgPSBkZXZfZXJyX3Byb2JlKGRldiwgUFRS X0VSUih2M2QtPnJlc2V0KSwKLQkJCQkgICAgIkZhaWxlZCB0byBnZXQgcmVzZXQgY29udHJvbFxu Iik7Ci0JCWdvdG8gY2xrX2Rpc2FibGU7Ci0JfQotCi0JaWYgKCF2M2QtPnJlc2V0KSB7Ci0JCXJl dCA9IG1hcF9yZWdzKHYzZCwgJnYzZC0+YnJpZGdlX3JlZ3MsICJicmlkZ2UiKTsKLQkJaWYgKHJl dCkgewotCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGJyaWRnZSByZWdpc3RlcnNcbiIp OwotCQkJZ290byBjbGtfZGlzYWJsZTsKLQkJfQotCX0KLQotCWlmICh2M2QtPnZlciA8IFYzRF9H RU5fNDEpIHsKLQkJcmV0ID0gbWFwX3JlZ3ModjNkLCAmdjNkLT5nY2FfcmVncywgImdjYSIpOwot CQlpZiAocmV0KQotCQkJZ290byBjbGtfZGlzYWJsZTsKLQl9Ci0KLQl2M2QtPm1tdV9zY3JhdGNo ID0gZG1hX2FsbG9jX3djKGRldiwgNDA5NiwgJnYzZC0+bW11X3NjcmF0Y2hfcGFkZHIsCi0JCQkJ CUdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPKTsKLQlpZiAoIXYzZC0+bW11 X3NjcmF0Y2gpIHsKLQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgTU1VIHNjcmF0 Y2ggcGFnZVxuIik7Ci0JCXJldCA9IC1FTk9NRU07Ci0JCWdvdG8gY2xrX2Rpc2FibGU7Ci0JfQot Ci0JcmV0ID0gdjNkX2dlbV9pbml0KGRybSk7Ci0JaWYgKHJldCkKLQkJZ290byBkbWFfZnJlZTsK LQotCXJldCA9IHYzZF9pcnFfaW5pdCh2M2QpOwotCWlmIChyZXQpCi0JCWdvdG8gZ2VtX2Rlc3Ry b3k7CisJdjNkX2luaXRfaHdfc3RhdGUodjNkKTsKKwl2M2RfbW11X3NldF9wYWdlX3RhYmxlKHYz ZCk7CisJdjNkX2lycV9lbmFibGUodjNkKTsKIAogCXJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJt LCAwKTsKIAlpZiAocmV0KQpAQCAtNDUyLDEyICs0NTMsMTMgQEAgc3RhdGljIGludCB2M2RfcGxh dGZvcm1fZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZHJtX2Rldl91 bnJlZ2lzdGVyKGRybSk7CiBpcnFfZGlzYWJsZToKIAl2M2RfaXJxX2Rpc2FibGUodjNkKTsKK2Ns a19kaXNhYmxlOgorCXYzZF9wb3dlcl9vZmZfc21zKHYzZCk7CisJY2xrX2Rpc2FibGVfdW5wcmVw YXJlKHYzZC0+Y2xrKTsKIGdlbV9kZXN0cm95OgogCXYzZF9nZW1fZGVzdHJveShkcm0pOwogZG1h X2ZyZWU6CiAJZG1hX2ZyZWVfd2MoZGV2LCA0MDk2LCB2M2QtPm1tdV9zY3JhdGNoLCB2M2QtPm1t dV9zY3JhdGNoX3BhZGRyKTsKLWNsa19kaXNhYmxlOgotCWNsa19kaXNhYmxlX3VucHJlcGFyZSh2 M2QtPmNsayk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNDcxLDE0ICs0NzMsMTMgQEAgc3RhdGlj IHZvaWQgdjNkX3BsYXRmb3JtX2RybV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAogCWRybV9kZXZfdW5yZWdpc3Rlcihkcm0pOwogCi0JdjNkX2dlbV9kZXN0cm95KGRybSk7 Ci0KLQlkbWFfZnJlZV93Yyh2M2QtPmRybS5kZXYsIDQwOTYsIHYzZC0+bW11X3NjcmF0Y2gsCi0J CSAgICB2M2QtPm1tdV9zY3JhdGNoX3BhZGRyKTsKLQogCXYzZF9wb3dlcl9vZmZfc21zKHYzZCk7 CiAKIAljbGtfZGlzYWJsZV91bnByZXBhcmUodjNkLT5jbGspOworCisJdjNkX2dlbV9kZXN0cm95 KGRybSk7CisKKwlkbWFfZnJlZV93YyhkZXYsIDQwOTYsIHYzZC0+bW11X3NjcmF0Y2gsIHYzZC0+ bW11X3NjcmF0Y2hfcGFkZHIpOwogfQogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2 M2RfcGxhdGZvcm1fZHJpdmVyID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAppbmRleCA2YTNjYWQ5MzM0 Mzk4MTJkNzhkYTU3OTc3NDljMDIwYTliZjQ2NDAyLi5lYmY0MDZiNjE1YmI1MmRlOWNiOThlYThl ZmU5NDFhNTc4N2ZiNGJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaApAQCAtNTY1LDYgKzU2NSw3IEBA IHN0cnVjdCBkbWFfZmVuY2UgKnYzZF9mZW5jZV9jcmVhdGUoc3RydWN0IHYzZF9kZXYgKnYzZCwg ZW51bSB2M2RfcXVldWUgcSk7CiAKIC8qIHYzZF9nZW0uYyAqLwogZXh0ZXJuIGJvb2wgc3VwZXJf cGFnZXM7Cit2b2lkIHYzZF9pbml0X2h3X3N0YXRlKHN0cnVjdCB2M2RfZGV2ICp2M2QpOwogaW50 IHYzZF9nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgdjNkX2dlbV9kZXN0 cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCB2M2RfcmVzZXRfc21zKHN0cnVjdCB2 M2RfZGV2ICp2M2QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwppbmRleCA3NWQ5ZWNjZDc5NjY2NGU2NzI3 N2MxZjgzYWQ1OTA2M2YxNjRkMWRhLi5kZWY2YTk2MTJiODU3YTI0MWY2YjJlMWY2MDE1MDk5Mjhl M2Y5ZjhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwpAQCAtMzYsMTMgKzM2LDYgQEAgdjNkX2luaXRf Y29yZShzdHJ1Y3QgdjNkX2RldiAqdjNkLCBpbnQgY29yZSkKIAlWM0RfQ09SRV9XUklURShjb3Jl LCBWM0RfQ1RMX0wyVEZMRU5ELCB+MCk7CiB9CiAKLS8qIFNldHMgaW52YXJpYW50IHN0YXRlIGZv ciB0aGUgSFcuICovCi1zdGF0aWMgdm9pZAotdjNkX2luaXRfaHdfc3RhdGUoc3RydWN0IHYzZF9k ZXYgKnYzZCkKLXsKLQl2M2RfaW5pdF9jb3JlKHYzZCwgMCk7Ci19Ci0KIHN0YXRpYyB2b2lkCiB2 M2RfaWRsZV9heGkoc3RydWN0IHYzZF9kZXYgKnYzZCwgaW50IGNvcmUpCiB7CkBAIC0yNTksNiAr MjUyLDE0IEBAIHYzZF9pbnZhbGlkYXRlX2NhY2hlcyhzdHJ1Y3QgdjNkX2RldiAqdjNkKQogCXYz ZF9pbnZhbGlkYXRlX3NsaWNlcyh2M2QsIDApOwogfQogCisvKiBTZXRzIGludmFyaWFudCBzdGF0 ZSBmb3IgdGhlIEhXLiAqLwordm9pZAordjNkX2luaXRfaHdfc3RhdGUoc3RydWN0IHYzZF9kZXYg KnYzZCkKK3sKKwl2M2RfaW5pdF9jb3JlKHYzZCwgMCk7Cit9CisKKwogc3RhdGljIHZvaWQKIHYz ZF9odWdlX21udF9pbml0KHN0cnVjdCB2M2RfZGV2ICp2M2QpCiB7CkBAIC0zMjgsOSArMzI5LDYg QEAgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWdvdG8gZXJyX2RtYV9h bGxvYzsKIAl9CiAKLQl2M2RfaW5pdF9od19zdGF0ZSh2M2QpOwotCXYzZF9tbXVfc2V0X3BhZ2Vf dGFibGUodjNkKTsKLQogCXYzZF9odWdlX21udF9pbml0KHYzZCk7CiAKIAlyZXQgPSB2M2Rfc2No ZWRfaW5pdCh2M2QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfaXJxLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9pcnEuYwppbmRleCBjMjhlNzRhYjU0NDI4NTcwMzFi NDhiY2JkNGU0M2ViNDhjMWUwZjA3Li44NmVmYWVmMjcyMmMzNjAyMzQ2YjAzN2JhNTM2MjI4YjJm MzY4YTgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9pcnEuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9pcnEuYwpAQCAtMjQ4LDE3ICsyNDgsMTAgQEAgdjNkX2h1 Yl9pcnEoaW50IGlycSwgdm9pZCAqYXJnKQogaW50CiB2M2RfaXJxX2luaXQoc3RydWN0IHYzZF9k ZXYgKnYzZCkKIHsKLQlpbnQgaXJxLCByZXQsIGNvcmU7CisJaW50IGlycSwgcmV0OwogCiAJSU5J VF9XT1JLKCZ2M2QtPm92ZXJmbG93X21lbV93b3JrLCB2M2Rfb3ZlcmZsb3dfbWVtX3dvcmspOwog Ci0JLyogQ2xlYXIgYW55IHBlbmRpbmcgaW50ZXJydXB0cyBzb21lb25lIG1pZ2h0IGhhdmUgbGVm dCBhcm91bmQKLQkgKiBmb3IgdXMuCi0JICovCi0JZm9yIChjb3JlID0gMDsgY29yZSA8IHYzZC0+ Y29yZXM7IGNvcmUrKykKLQkJVjNEX0NPUkVfV1JJVEUoY29yZSwgVjNEX0NUTF9JTlRfQ0xSLCBW M0RfQ09SRV9JUlFTKHYzZC0+dmVyKSk7Ci0JVjNEX1dSSVRFKFYzRF9IVUJfSU5UX0NMUiwgVjNE X0hVQl9JUlFTKHYzZC0+dmVyKSk7Ci0KIAlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX29wdGlvbmFs KHYzZF90b19wZGV2KHYzZCksIDEpOwogCWlmIChpcnEgPT0gLUVQUk9CRV9ERUZFUikKIAkJcmV0 dXJuIGlycTsKQEAgLTI5Niw3ICsyODksNiBAQCB2M2RfaXJxX2luaXQoc3RydWN0IHYzZF9kZXYg KnYzZCkKIAkJCWdvdG8gZmFpbDsKIAl9CiAKLQl2M2RfaXJxX2VuYWJsZSh2M2QpOwogCXJldHVy biAwOwogCiBmYWlsOgpAQCAtMzEwLDYgKzMwMiwxMSBAQCB2M2RfaXJxX2VuYWJsZShzdHJ1Y3Qg djNkX2RldiAqdjNkKQogewogCWludCBjb3JlOwogCisJLyogQ2xlYXIgYW55IHBlbmRpbmcgaW50 ZXJydXB0cyBzb21lb25lIG1pZ2h0IGhhdmUgbGVmdCBhcm91bmQgZm9yIHVzLiAqLworCWZvciAo Y29yZSA9IDA7IGNvcmUgPCB2M2QtPmNvcmVzOyBjb3JlKyspCisJCVYzRF9DT1JFX1dSSVRFKGNv cmUsIFYzRF9DVExfSU5UX0NMUiwgVjNEX0NPUkVfSVJRUyh2M2QtPnZlcikpOworCVYzRF9XUklU RShWM0RfSFVCX0lOVF9DTFIsIFYzRF9IVUJfSVJRUyh2M2QtPnZlcikpOworCiAJLyogRW5hYmxl IG91ciBzZXQgb2YgaW50ZXJydXB0cywgbWFza2luZyBvdXQgYW55IG90aGVycy4gKi8KIAlmb3Ig KGNvcmUgPSAwOyBjb3JlIDwgdjNkLT5jb3JlczsgY29yZSsrKSB7CiAJCVYzRF9DT1JFX1dSSVRF KGNvcmUsIFYzRF9DVExfSU5UX01TS19TRVQsIH5WM0RfQ09SRV9JUlFTKHYzZC0+dmVyKSk7Cgot LSAKMi41My4wCgo=