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 EFFDDFD45F1 for ; Wed, 25 Feb 2026 23:34:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0D6B110E0B5; Wed, 25 Feb 2026 23:34:28 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="d2C3ut0F"; dkim-atps=neutral Received: from mail-vk1-f175.google.com (mail-vk1-f175.google.com [209.85.221.175]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0780B10E0B5 for ; Wed, 25 Feb 2026 23:34:26 +0000 (UTC) Received: by mail-vk1-f175.google.com with SMTP id 71dfb90a1353d-56a86f0a23bso265546e0c.0 for ; Wed, 25 Feb 2026 15:34:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772062466; x=1772667266; darn=lists.freedesktop.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PUr8SLvQryvqYLcag0z8osWYOXvaps7+TNLrrSYBjRQ=; b=d2C3ut0FOH8Zjtnjg2rCKhF86EBIf1AO8oLv0R6JPXZSCr6viI+2X3ltYZubFE8hco krxBrK3k/XzmVmU+46yaKOZf/K6C+1W4stjB/Hvvgw4rUmh5hqZHYSDK6DXvsAM7pCDa ZmuSa5UAF9LurOhUNmUxGlLNBMh5i0R/H1cKg2N8q4HeFE4BlgVkwHYn90ll8V4Ho4Io hDdC9GI1XsO9XBm5dhOFilazLkiHlmSPCm01jEkomjjG6YAzru7lLE4IcLj7sRmRdMy4 Yx5qm86ocprUJ8eUghkNd6Zaf6+G5bxezUwHbLjLkPSTO4UbCtJK5ikFZ/0kpLxjUJmn vKlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772062466; x=1772667266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PUr8SLvQryvqYLcag0z8osWYOXvaps7+TNLrrSYBjRQ=; b=ikZVcV4jV1ooV2xi06Lpcv4lOzQP6kbc3/t1GWCy9kaUqFV2L/V5Th7DoqZB8eflNs EYFZvi962fM3EsFnNl+TUolsxPhvPIfhD5tZlR5XujhTYnVnbAqLpRhKmzAOFVMl1PUZ ZhEW0PS7n7CFgAzeEko/e3sDvDbWedMFl5en9y40gbMg+GlbPNy/n4Ir+sGldnnUp7mu gfYPDYhFy85T8V/ViKGmawL47Cigk9ELGhH4whl2MH8cO+R9bj+MzNxD6qlOgEFWnlIV VdFemoYO/7UHnyJC4j/ajLy63QjwCk/VlnQbezMh8u2WGDN/uKRCa6et9nJdOQfsbBfU H1OA== X-Forwarded-Encrypted: i=1; AJvYcCUMVdYbSiCpFumfuWRp/FCSpneIyfkvFTkMXVxsF5NxY1AKWeeynHlugaPrGJswqSSUxko3ncvIcFc=@lists.freedesktop.org X-Gm-Message-State: AOJu0YygQYkdDRwYiVKhX+VXkGp7MFttctpPbDWXFqQSpa5KwPQ2P98Q i7DSCrMOp6Y5A7gtRnuxwXclpZafCPvEJmW8HBu32tKIUBVWOJnlB5N5TyAQHaFF X-Gm-Gg: ATEYQzwXZ5HMxrbWVATgPOii2ht1pnJFuqI7FwYJ4NnbOz5uy0IMj5JWSA8ObOIIh+Z TZb68jfmq8Bmtg5kpmAglgnShsAVdzTp3jbb4ZfRkt9X0NR/w9WSSqM5hBV9EqRqKdVqvGhNhx2 tmUzcx3aTfWkqUrkiOP2GPX+qUgwi6HWWbtiZX4UoKuTYmkzrBjWnOEPmRaPX7jFsodm3aqYtbd hlo92sEjewNCtxfTQABJTjELZtKItyTbu9TQbOCi+adSWUFBGKGPWyr9/QP9UFKkoTIF+N+Te2s UC5VgU4O1vpG+osSUjrVSNklJ+mS2o08D5OOK18aO1jErnMQIvKeHw+in51GBRwTpeLniqixevy Dx+7m0uoUEPYScZthBfTwv3U5IA18NDInItrj9n2SLM0QUQsaLK4BURijDzvPaRImb+pSKoOG4Y d6vlx5ZmhghajhrFc0U/QK25x+MKj+wWUZecptvM37jhZs+IiO/4Cb6A== X-Received: by 2002:a05:6a20:c786:b0:35d:58d3:2904 with SMTP id adf61e73a8af0-395ad0da629mr1705437637.31.1772056238539; Wed, 25 Feb 2026 13:50:38 -0800 (PST) Received: from ryzen ([2601:644:8000:56f5::8bd]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c70fa8059bcsm11990a12.18.2026.02.25.13.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 13:50:36 -0800 (PST) From: Rosen Penev To: stable@vger.kernel.org Cc: Harry Wentland , Leo Li , Rodrigo Siqueira , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , Xinhui Pan , David Airlie , Simona Vetter , Kenneth Feng , =?UTF-8?q?Timur=20Krist=C3=B3f?= , Greg Kroah-Hartman , Alex Hung , Lijo Lazar , "chr[]" , Sasha Levin , Wentao Liang , amd-gfx@lists.freedesktop.org (open list:AMD DISPLAY CORE), dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 2/2] drm/amd/pm: Use pm_display_cfg in legacy DPM (v2) Date: Wed, 25 Feb 2026 13:50:13 -0800 Message-ID: <20260225215013.11224-3-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225215013.11224-1-rosenp@gmail.com> References: <20260225215013.11224-1-rosenp@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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" RnJvbTogVGltdXIgS3Jpc3TDs2YgPHRpbXVyLmtyaXN0b2ZAZ21haWwuY29tPgoKY29tbWl0IDlk NzNiMTA3YTYxYjczZTcxMDFkNGI3MjhkZGFjM2QyYzc3ZGIxMTEgdXBzdHJlYW0uCgpUaGlzIGNv bW1pdCBpcyBuZWNlc3NhcnkgZm9yIERDIHRvIGZ1bmN0aW9uIHdlbGwgd2l0aCBjaGlwcwp0aGF0 IHVzZSB0aGUgbGVnYWN5IHBvd2VyIG1hbmFnZW1lbnQgY29kZSwgaWUuIFNJIGFuZCBLVi4KQ29t bXVuaWNhdGUgZGlzcGxheSBpbmZvcm1hdGlvbiBmcm9tIERDIHRvIHRoZSBsZWdhY3kgUE0gY29k ZS4KCkN1cnJlbnRseSBEQyB1c2VzIHBtX2Rpc3BsYXlfY2ZnIHRvIGNvbW11bmljYXRlIHBvd2Vy IG1hbmFnZW1lbnQKcmVxdWlyZW1lbnRzIGZyb20gdGhlIGRpc3BsYXkgY29kZSB0byB0aGUgRFBN IGNvZGUuCkhvd2V2ZXIsIHRoZSBsZWdhY3kgKG5vbi1EQykgY29kZSBwYXRoIHVzZWQgZGlmZmVy ZW50IGZpZWxkcwphbmQgdGhlcmVmb3JlIGNvdWxkIG5vdCB0YWtlIGludG8gYWNjb3VudCBhbnl0 aGluZyBmcm9tIERDLgoKQ2hhbmdlIHRoZSBsZWdhY3kgZGlzcGxheSBjb2RlIHRvIGZpbGwgdGhl IHNhbWUgcG1fZGlzcGxheV9jZmcKc3RydWN0IGFzIERDIGFuZCB1c2UgdGhlIHNhbWUgaW4gdGhl IGxlZ2FjeSBEUE0gY29kZS4KClRvIGVhc2UgcmV2aWV3IGFuZCByZWR1Y2UgY2h1cm4sIHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldApkZWxldGUgdGhlIG5vdyB1bm5lZWRlZCBjb2RlLCB0aGF0IGlz IGRvbmUgaW4gdGhlIG5leHQgY29tbWl0LgoKdjI6ClJlYmFzZS4KRml4IHNpbmdsZV9kaXNwbGF5 IGluIGFtZGdwdV9kcG1fcGlja19wb3dlcl9zdGF0ZS4KClNpZ25lZC1vZmYtYnk6IFRpbXVyIEty aXN0w7NmIDx0aW11ci5rcmlzdG9mQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleCBEZXVj aGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv cG0vYW1kZ3B1X2RwbV9pbnRlcm5hbC5jICB8IDY3ICsrKysrKysrKysrKysrKysrKysKIC4uLi9n cHUvZHJtL2FtZC9wbS9pbmMvYW1kZ3B1X2RwbV9pbnRlcm5hbC5oICB8ICAyICsKIGRyaXZlcnMv Z3B1L2RybS9hbWQvcG0vbGVnYWN5LWRwbS9rdl9kcG0uYyAgICB8ICA0ICstCiAuLi4vZ3B1L2Ry bS9hbWQvcG0vbGVnYWN5LWRwbS9sZWdhY3lfZHBtLmMgICAgfCAgNiArLQogZHJpdmVycy9ncHUv ZHJtL2FtZC9wbS9sZWdhY3ktZHBtL3NpX2RwbS5jICAgIHwgNjUgKysrKysrLS0tLS0tLS0tLS0t CiAuLi4vZ3B1L2RybS9hbWQvcG0vcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYyAgfCAxMSArLS0K IDYgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9hbWRncHVfZHBtX2ludGVybmFsLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3BtL2FtZGdwdV9kcG1faW50ZXJuYWwuYwppbmRleCAyZDJkMmQ1 ZTY3NjMuLjllZjk2NWU0YTkyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9h bWRncHVfZHBtX2ludGVybmFsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9hbWRncHVf ZHBtX2ludGVybmFsLmMKQEAgLTEwMCwzICsxMDAsNzAgQEAgdTMyIGFtZGdwdV9kcG1fZ2V0X3Zy ZWZyZXNoKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJcmV0dXJuIHZyZWZyZXNoOwog fQorCit2b2lkIGFtZGdwdV9kcG1fZ2V0X2Rpc3BsYXlfY2ZnKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gYWRldl90b19kcm0oYWRldik7 CisJc3RydWN0IGFtZF9wcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb24gKmNmZyA9ICZhZGV2LT5wbS5w bV9kaXNwbGF5X2NmZzsKKwlzdHJ1Y3Qgc2luZ2xlX2Rpc3BsYXlfY29uZmlndXJhdGlvbiAqZGlz cGxheV9jZmc7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBhbWRncHVfY3J0YyAq YW1kZ3B1X2NydGM7CisJc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmNvbm47CisJaW50IG51bV9j cnRjcyA9IDA7CisJaW50IHZyZWZyZXNoOworCXUzMiB2YmxhbmtfaW5fcGl4ZWxzLCB2Ymxhbmtf dGltZV91czsKKworCWNmZy0+bWluX3ZibGFua190aW1lID0gMHhmZmZmZmZmZjsgLyogaWYgdGhl IGRpc3BsYXlzIGFyZSBvZmYsIHZibGFuayB0aW1lIGlzIG1heCAqLworCisJaWYgKGFkZXYtPm1v ZGVfaW5mby5udW1fY3J0YyAmJiBhZGV2LT5tb2RlX2luZm8ubW9kZV9jb25maWdfaW5pdGlhbGl6 ZWQpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGRldi0+bW9kZV9jb25maWcuY3J0 Y19saXN0LCBoZWFkKSB7CisJCQlhbWRncHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwor CisJCQkvKiBUaGUgYXJyYXkgc2hvdWxkIG9ubHkgY29udGFpbiBhY3RpdmUgZGlzcGxheXMuICov CisJCQlpZiAoIWFtZGdwdV9jcnRjLT5lbmFibGVkKQorCQkJCWNvbnRpbnVlOworCisJCQljb25u ID0gdG9fYW1kZ3B1X2Nvbm5lY3RvcihhbWRncHVfY3J0Yy0+Y29ubmVjdG9yKTsKKwkJCWRpc3Bs YXlfY2ZnID0gJmFkZXYtPnBtLnBtX2Rpc3BsYXlfY2ZnLmRpc3BsYXlzW251bV9jcnRjcysrXTsK KworCQkJaWYgKGFtZGdwdV9jcnRjLT5od19tb2RlLmNsb2NrKSB7CisJCQkJdnJlZnJlc2ggPSBk cm1fbW9kZV92cmVmcmVzaCgmYW1kZ3B1X2NydGMtPmh3X21vZGUpOworCisJCQkJdmJsYW5rX2lu X3BpeGVscyA9CisJCQkJCWFtZGdwdV9jcnRjLT5od19tb2RlLmNydGNfaHRvdGFsICoKKwkJCQkJ KGFtZGdwdV9jcnRjLT5od19tb2RlLmNydGNfdmJsYW5rX2VuZCAtCisJCQkJCWFtZGdwdV9jcnRj LT5od19tb2RlLmNydGNfdmRpc3BsYXkgKworCQkJCQkoYW1kZ3B1X2NydGMtPnZfYm9yZGVyICog MikpOworCisJCQkJdmJsYW5rX3RpbWVfdXMgPQorCQkJCQl2YmxhbmtfaW5fcGl4ZWxzICogMTAw MCAvIGFtZGdwdV9jcnRjLT5od19tb2RlLmNsb2NrOworCisJCQkJLyogVGhlIGxlZ2FjeSAobm9u LURDKSBjb2RlIGhhcyBpc3N1ZXMgd2l0aCBtY2xrIHN3aXRjaGluZworCQkJCSAqIHdpdGggcmVm cmVzaCByYXRlcyBvdmVyIDEyMCBIei4gRGlzYWJsZSBtY2xrIHN3aXRjaGluZy4KKwkJCQkgKi8K KwkJCQlpZiAodnJlZnJlc2ggPiAxMjApCisJCQkJCXZibGFua190aW1lX3VzID0gMDsKKworCQkJ CS8qIEZpbmQgbWluaW11bSB2YmxhbmsgdGltZS4gKi8KKwkJCQlpZiAodmJsYW5rX3RpbWVfdXMg PCBjZmctPm1pbl92YmxhbmtfdGltZSkKKwkJCQkJY2ZnLT5taW5fdmJsYW5rX3RpbWUgPSB2Ymxh bmtfdGltZV91czsKKworCQkJCS8qIEZpbmQgdmVydGljYWwgcmVmcmVzaCByYXRlIG9mIGZpcnN0 IGFjdGl2ZSBkaXNwbGF5LiAqLworCQkJCWlmICghY2ZnLT52cmVmcmVzaCkKKwkJCQkJY2ZnLT52 cmVmcmVzaCA9IHZyZWZyZXNoOworCQkJfQorCisJCQlpZiAoYW1kZ3B1X2NydGMtPmNydGNfaWQg PCBjZmctPmNydGNfaW5kZXgpIHsKKwkJCQkvKiBGaW5kIGZpcnN0IGFjdGl2ZSBDUlRDIGFuZCBp dHMgbGluZSB0aW1lLiAqLworCQkJCWNmZy0+Y3J0Y19pbmRleCA9IGFtZGdwdV9jcnRjLT5jcnRj X2lkOworCQkJCWNmZy0+bGluZV90aW1lX2luX3VzID0gYW1kZ3B1X2NydGMtPmxpbmVfdGltZTsK KwkJCX0KKworCQkJZGlzcGxheV9jZmctPmNvbnRyb2xsZXJfaWQgPSBhbWRncHVfY3J0Yy0+Y3J0 Y19pZDsKKwkJCWRpc3BsYXlfY2ZnLT5waXhlbF9jbG9jayA9IGNvbm4tPnBpeGVsY2xvY2tfZm9y X21vZGVzZXQ7CisJCX0KKwl9CisKKwljZmctPmRpc3BsYXlfY2xrID0gYWRldi0+Y2xvY2suZGVm YXVsdF9kaXNwY2xrOworCWNmZy0+bnVtX2Rpc3BsYXkgPSBudW1fY3J0Y3M7Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL2luYy9hbWRncHVfZHBtX2ludGVybmFsLmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3BtL2luYy9hbWRncHVfZHBtX2ludGVybmFsLmgKaW5kZXggNWMy YTg5ZjBkNWQ1Li44YmUxMTUxMGNkOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG0vaW5jL2FtZGdwdV9kcG1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bt L2luYy9hbWRncHVfZHBtX2ludGVybmFsLmgKQEAgLTI5LDQgKzI5LDYgQEAgdTMyIGFtZGdwdV9k cG1fZ2V0X3ZibGFua190aW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIAogdTMyIGFt ZGdwdV9kcG1fZ2V0X3ZyZWZyZXNoKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIAordm9p ZCBhbWRncHVfZHBtX2dldF9kaXNwbGF5X2NmZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7 CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9sZWdhY3ktZHBt L2t2X2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9sZWdhY3ktZHBtL2t2X2RwbS5jCmlu ZGV4IDZiMzRhMzNkNzg4Zi4uOGNmN2U1MTdkYTg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3BtL2xlZ2FjeS1kcG0va3ZfZHBtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9w bS9sZWdhY3ktZHBtL2t2X2RwbS5jCkBAIC0yMjk5LDcgKzIyOTksNyBAQCBzdGF0aWMgdm9pZCBr dl9hcHBseV9zdGF0ZV9hZGp1c3RfcnVsZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAK IAkJaWYgKHBpLT5zeXNfaW5mby5uYl9kcG1fZW5hYmxlKSB7CiAJCQlmb3JjZV9oaWdoID0gKG1j bGsgPj0gcGktPnN5c19pbmZvLm5icF9tZW1vcnlfY2xvY2tbM10pIHx8Ci0JCQkJcGktPnZpZGVv X3N0YXJ0IHx8IChhZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRjX2NvdW50ID49IDMpIHx8CisJ CQkJcGktPnZpZGVvX3N0YXJ0IHx8IChhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZy5udW1fZGlzcGxh eSA+PSAzKSB8fAogCQkJCXBpLT5kaXNhYmxlX25iX3BzM19pbl9iYXR0ZXJ5OwogCQkJcHMtPmRw bTBfcGdfbmJfcHNfbG8gPSBmb3JjZV9oaWdoID8gMHgyIDogMHgzOwogCQkJcHMtPmRwbTBfcGdf bmJfcHNfaGkgPSAweDI7CkBAIC0yMzU4LDcgKzIzNTgsNyBAQCBzdGF0aWMgaW50IGt2X2NhbGN1 bGF0ZV9uYnBzX2xldmVsX3NldHRpbmdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJ cmV0dXJuIDA7CiAKIAkJZm9yY2VfaGlnaCA9ICgobWNsayA+PSBwaS0+c3lzX2luZm8ubmJwX21l bW9yeV9jbG9ja1szXSkgfHwKLQkJCSAgICAgIChhZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRj X2NvdW50ID49IDMpIHx8IHBpLT52aWRlb19zdGFydCk7CisJCQkgICAgICAoYWRldi0+cG0ucG1f ZGlzcGxheV9jZmcubnVtX2Rpc3BsYXkgPj0gMykgfHwgcGktPnZpZGVvX3N0YXJ0KTsKIAogCQlp ZiAoZm9yY2VfaGlnaCkgewogCQkJZm9yIChpID0gcGktPmxvd2VzdF92YWxpZDsgaSA8PSBwaS0+ aGlnaGVzdF92YWxpZDsgaSsrKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9s ZWdhY3ktZHBtL2xlZ2FjeV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vbGVnYWN5LWRw bS9sZWdhY3lfZHBtLmMKaW5kZXggYzc1MThiMTNlNzg3Li44ZWIxMjFkYjJjZTQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vbGVnYWN5LWRwbS9sZWdhY3lfZHBtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9sZWdhY3ktZHBtL2xlZ2FjeV9kcG0uYwpAQCAtNzk3LDgg Kzc5Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgYW1kZ3B1X3BzICphbWRncHVfZHBtX3BpY2tfcG93ZXJf c3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJaW50IGk7CiAJc3RydWN0IGFtZGdw dV9wcyAqcHM7CiAJdTMyIHVpX2NsYXNzOwotCWJvb2wgc2luZ2xlX2Rpc3BsYXkgPSAoYWRldi0+ cG0uZHBtLm5ld19hY3RpdmVfY3J0Y19jb3VudCA8IDIpID8KLQkJdHJ1ZSA6IGZhbHNlOworCWJv b2wgc2luZ2xlX2Rpc3BsYXkgPSBhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZy5udW1fZGlzcGxheSA8 IDI7CiAKIAkvKiBjaGVjayBpZiB0aGUgdmJsYW5rIHBlcmlvZCBpcyB0b28gc2hvcnQgdG8gYWRq dXN0IHRoZSBtY2xrICovCiAJaWYgKHNpbmdsZV9kaXNwbGF5ICYmIGFkZXYtPnBvd2VycGxheS5w cF9mdW5jcy0+dmJsYW5rX3Rvb19zaG9ydCkgewpAQCAtOTk0LDcgKzk5Myw4IEBAIHZvaWQgYW1k Z3B1X2xlZ2FjeV9kcG1fY29tcHV0ZV9jbG9ja3Modm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCi0J YW1kZ3B1X2RwbV9nZXRfYWN0aXZlX2Rpc3BsYXlzKGFkZXYpOworCWlmICghYWRldi0+ZGNfZW5h YmxlZCkKKwkJYW1kZ3B1X2RwbV9nZXRfZGlzcGxheV9jZmcoYWRldik7CiAKIAlhbWRncHVfZHBt X2NoYW5nZV9wb3dlcl9zdGF0ZV9sb2NrZWQoYWRldik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL3BtL2xlZ2FjeS1kcG0vc2lfZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3BtL2xlZ2FjeS1kcG0vc2lfZHBtLmMKaW5kZXggMjljZWNmYWIwNzA0Li43ZWEzMTA2MDFmZjUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vbGVnYWN5LWRwbS9zaV9kcG0uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL2xlZ2FjeS1kcG0vc2lfZHBtLmMKQEAgLTMwNTgs NyArMzA1OCw3IEBAIHN0YXRpYyBpbnQgc2lfZ2V0X3ZjZV9jbG9ja192b2x0YWdlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogc3RhdGljIGJvb2wgc2lfZHBtX3ZibGFua190b29fc2hvcnQo dm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBh bWRncHVfZGV2aWNlICopaGFuZGxlOwotCXUzMiB2YmxhbmtfdGltZSA9IGFtZGdwdV9kcG1fZ2V0 X3ZibGFua190aW1lKGFkZXYpOworCXUzMiB2YmxhbmtfdGltZSA9IGFkZXYtPnBtLnBtX2Rpc3Bs YXlfY2ZnLm1pbl92YmxhbmtfdGltZTsKIAkvKiB3ZSBuZXZlciBoaXQgdGhlIG5vbi1nZGRyNSBs aW1pdCBzbyBkaXNhYmxlIGl0ICovCiAJdTMyIHN3aXRjaF9saW1pdCA9IGFkZXYtPmdtYy52cmFt X3R5cGUgPT0gQU1ER1BVX1ZSQU1fVFlQRV9HRERSNSA/IDQ1MCA6IDA7CiAKQEAgLTM0MjQsOSAr MzQyNCwxMCBAQCBzdGF0aWMgdm9pZCBydjc3MF9nZXRfZW5naW5lX21lbW9yeV9zcyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIHN0YXRpYyB2b2lkIHNpX2FwcGx5X3N0YXRlX2FkanVzdF9y dWxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJc3RydWN0IGFtZGdwdV9wcyAq cnBzKQogeworCWNvbnN0IHN0cnVjdCBhbWRfcHBfZGlzcGxheV9jb25maWd1cmF0aW9uICpkaXNw bGF5X2NmZyA9CisJCSZhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZzsKIAlzdHJ1Y3QgIHNpX3BzICpw cyA9IHNpX2dldF9wcyhycHMpOwogCXN0cnVjdCBhbWRncHVfY2xvY2tfYW5kX3ZvbHRhZ2VfbGlt aXRzICptYXhfbGltaXRzOwotCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICpjb25uOwogCWJvb2wg ZGlzYWJsZV9tY2xrX3N3aXRjaGluZyA9IGZhbHNlOwogCWJvb2wgZGlzYWJsZV9zY2xrX3N3aXRj aGluZyA9IGZhbHNlOwogCXUzMiBtY2xrLCBzY2xrOwpAQCAtMzQ3MCwxNCArMzQ3MSw5IEBAIHN0 YXRpYyB2b2lkIHNpX2FwcGx5X3N0YXRlX2FkanVzdF9ydWxlcyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwKIAkgKiBGb3IgZXhhbXBsZSwgNEsgNjBIeiBhbmQgMTA4MHAgMTQ0SHogZmFsbCBp bnRvIHRoaXMgY2F0ZWdvcnkuCiAJICogRmluZCBudW1iZXIgb2Ygc3VjaCBkaXNwbGF5cyBjb25u ZWN0ZWQuCiAJICovCi0JZm9yIChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0Yzsg aSsrKSB7Ci0JCWlmICghKGFkZXYtPnBtLmRwbS5uZXdfYWN0aXZlX2NydGNzICYgKDEgPDwgaSkp IHx8Ci0JCQkhYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5lbmFibGVkKQotCQkJY29udGludWU7 Ci0KLQkJY29ubiA9IHRvX2FtZGdwdV9jb25uZWN0b3IoYWRldi0+bW9kZV9pbmZvLmNydGNzW2ld LT5jb25uZWN0b3IpOwotCi0JCWlmIChjb25uLT5waXhlbGNsb2NrX2Zvcl9tb2Rlc2V0ID4gMjk3 MDAwKQorCWZvciAoaSA9IDA7IGkgPCBkaXNwbGF5X2NmZy0+bnVtX2Rpc3BsYXk7IGkrKykgewor CQkvKiBUaGUgYXJyYXkgb25seSBjb250YWlucyBhY3RpdmUgZGlzcGxheXMuICovCisJCWlmIChk aXNwbGF5X2NmZy0+ZGlzcGxheXNbaV0ucGl4ZWxfY2xvY2sgPiAyOTcwMDApCiAJCQloaWdoX3Bp eGVsY2xvY2tfY291bnQrKzsKIAl9CiAKQEAgLTM1MTAsNyArMzUwNiw3IEBAIHN0YXRpYyB2b2lk IHNpX2FwcGx5X3N0YXRlX2FkanVzdF9ydWxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK IAkJcnBzLT5lY2NsayA9IDA7CiAJfQogCi0JaWYgKChhZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9j cnRjX2NvdW50ID4gMSkgfHwKKwlpZiAoKGFkZXYtPnBtLnBtX2Rpc3BsYXlfY2ZnLm51bV9kaXNw bGF5ID4gMSkgfHwKIAkgICAgc2lfZHBtX3ZibGFua190b29fc2hvcnQoYWRldikpCiAJCWRpc2Fi bGVfbWNsa19zd2l0Y2hpbmcgPSB0cnVlOwogCkBAIC0zNjU4LDcgKzM2NTQsNyBAQCBzdGF0aWMg dm9pZCBzaV9hcHBseV9zdGF0ZV9hZGp1c3RfcnVsZXMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAJCQkJCQkgICBwcy0+cGVyZm9ybWFuY2VfbGV2ZWxzW2ldLm1jbGssCiAJCQkJCQkgICBt YXhfbGltaXRzLT52ZGRjLCAgJnBzLT5wZXJmb3JtYW5jZV9sZXZlbHNbaV0udmRkYyk7CiAJCWJ0 Y19hcHBseV92b2x0YWdlX2RlcGVuZGVuY3lfcnVsZXMoJmFkZXYtPnBtLmRwbS5keW5fc3RhdGUu dmRkY19kZXBlbmRlbmN5X29uX2Rpc3BjbGssCi0JCQkJCQkgICBhZGV2LT5jbG9jay5jdXJyZW50 X2Rpc3BjbGssCisJCQkJCQkgICBkaXNwbGF5X2NmZy0+ZGlzcGxheV9jbGssCiAJCQkJCQkgICBt YXhfbGltaXRzLT52ZGRjLCAgJnBzLT5wZXJmb3JtYW5jZV9sZXZlbHNbaV0udmRkYyk7CiAJfQog CkBAIC00MTgzLDE2ICs0MTc5LDE2IEBAIHN0YXRpYyB2b2lkIHNpX3Byb2dyYW1fZHNfcmVnaXN0 ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBzdGF0aWMgdm9pZCBzaV9wcm9ncmFt X2Rpc3BsYXlfZ2FwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogeworCWNvbnN0IHN0cnVj dCBhbWRfcHBfZGlzcGxheV9jb25maWd1cmF0aW9uICpjZmcgPSAmYWRldi0+cG0ucG1fZGlzcGxh eV9jZmc7CiAJdTMyIHRtcCwgcGlwZTsKLQlpbnQgaTsKIAogCXRtcCA9IFJSRUczMihDR19ESVNQ TEFZX0dBUF9DTlRMKSAmIH4oRElTUDFfR0FQX01BU0sgfCBESVNQMl9HQVBfTUFTSyk7Ci0JaWYg KGFkZXYtPnBtLmRwbS5uZXdfYWN0aXZlX2NydGNfY291bnQgPiAwKQorCWlmIChjZmctPm51bV9k aXNwbGF5ID4gMCkKIAkJdG1wIHw9IERJU1AxX0dBUChSNjAwX1BNX0RJU1BMQVlfR0FQX1ZCTEFO S19PUl9XTSk7CiAJZWxzZQogCQl0bXAgfD0gRElTUDFfR0FQKFI2MDBfUE1fRElTUExBWV9HQVBf SUdOT1JFKTsKIAotCWlmIChhZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRjX2NvdW50ID4gMSkK KwlpZiAoY2ZnLT5udW1fZGlzcGxheSA+IDEpCiAJCXRtcCB8PSBESVNQMl9HQVAoUjYwMF9QTV9E SVNQTEFZX0dBUF9WQkxBTktfT1JfV00pOwogCWVsc2UKIAkJdG1wIHw9IERJU1AyX0dBUChSNjAw X1BNX0RJU1BMQVlfR0FQX0lHTk9SRSk7CkBAIC00MjAyLDE3ICs0MTk4LDggQEAgc3RhdGljIHZv aWQgc2lfcHJvZ3JhbV9kaXNwbGF5X2dhcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAl0 bXAgPSBSUkVHMzIoRENDR19ESVNQX1NMT1dfU0VMRUNUX1JFRyk7CiAJcGlwZSA9ICh0bXAgJiBE Q0NHX0RJU1AxX1NMT1dfU0VMRUNUX01BU0spID4+IERDQ0dfRElTUDFfU0xPV19TRUxFQ1RfU0hJ RlQ7CiAKLQlpZiAoKGFkZXYtPnBtLmRwbS5uZXdfYWN0aXZlX2NydGNfY291bnQgPiAwKSAmJgot CSAgICAoIShhZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRjcyAmICgxIDw8IHBpcGUpKSkpIHsK LQkJLyogZmluZCB0aGUgZmlyc3QgYWN0aXZlIGNydGMgKi8KLQkJZm9yIChpID0gMDsgaSA8IGFk ZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsrKSB7Ci0JCQlpZiAoYWRldi0+cG0uZHBtLm5ld19h Y3RpdmVfY3J0Y3MgJiAoMSA8PCBpKSkKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoaSA9PSBhZGV2 LT5tb2RlX2luZm8ubnVtX2NydGMpCi0JCQlwaXBlID0gMDsKLQkJZWxzZQotCQkJcGlwZSA9IGk7 CisJaWYgKGNmZy0+bnVtX2Rpc3BsYXkgPiAwICYmIHBpcGUgIT0gY2ZnLT5jcnRjX2luZGV4KSB7 CisJCXBpcGUgPSBjZmctPmNydGNfaW5kZXg7CiAKIAkJdG1wICY9IH5EQ0NHX0RJU1AxX1NMT1df U0VMRUNUX01BU0s7CiAJCXRtcCB8PSBEQ0NHX0RJU1AxX1NMT1dfU0VMRUNUKHBpcGUpOwpAQCAt NDIyMyw3ICs0MjEwLDcgQEAgc3RhdGljIHZvaWQgc2lfcHJvZ3JhbV9kaXNwbGF5X2dhcChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkgKiBUaGlzIGNhbiBiZSBhIHByb2JsZW0gb24gUG93 ZXJYcHJlc3Mgc3lzdGVtcyBvciBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGNhcmQKIAkgKiBmb3Ig b2Zmc2NyZWVuIHJlbmRlcmluZyBvciBjb21wdXRlIGlmIHRoZXJlIGFyZSBubyBjcnRjcyBlbmFi bGVkLgogCSAqLwotCXNpX25vdGlmeV9zbWNfZGlzcGxheV9jaGFuZ2UoYWRldiwgYWRldi0+cG0u ZHBtLm5ld19hY3RpdmVfY3J0Y19jb3VudCA+IDApOworCXNpX25vdGlmeV9zbWNfZGlzcGxheV9j aGFuZ2UoYWRldiwgY2ZnLT5udW1fZGlzcGxheSA+IDApOwogfQogCiBzdGF0aWMgdm9pZCBzaV9l bmFibGVfc3ByZWFkX3NwZWN0cnVtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGVu YWJsZSkKQEAgLTU1MjcsNyArNTUxNCw3IEBAIHN0YXRpYyBpbnQgc2lfY29udmVydF9wb3dlcl9s ZXZlbF90b19zbWMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJICAgIChwbC0+bWNsayA8 PSBwaS0+bWNsa19zdHV0dGVyX21vZGVfdGhyZXNob2xkKSAmJgogCSAgICAhZWdfcGktPnV2ZF9l bmFibGVkICYmCiAJICAgIChSUkVHMzIoRFBHX1BJUEVfU1RVVFRFUl9DT05UUk9MKSAmIFNUVVRU RVJfRU5BQkxFKSAmJgotCSAgICAoYWRldi0+cG0uZHBtLm5ld19hY3RpdmVfY3J0Y19jb3VudCA8 PSAyKSkgeworCSAgICAoYWRldi0+cG0ucG1fZGlzcGxheV9jZmcubnVtX2Rpc3BsYXkgPD0gMikp IHsKIAkJbGV2ZWwtPm1jRmxhZ3MgfD0gU0lTTEFORFNfU01DX01DX1NUVVRURVJfRU47CiAJfQog CkBAIC01Njc2LDcgKzU2NjMsNyBAQCBzdGF0aWMgYm9vbCBzaV9pc19zdGF0ZV91bHZfY29tcGF0 aWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkvKiBYWFggdmFsaWRhdGUgYWdhaW5z dCBkaXNwbGF5IHJlcXVpcmVtZW50cyEgKi8KIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5wbS5k cG0uZHluX3N0YXRlLnZkZGNfZGVwZW5kZW5jeV9vbl9kaXNwY2xrLmNvdW50OyBpKyspIHsKLQkJ aWYgKGFkZXYtPmNsb2NrLmN1cnJlbnRfZGlzcGNsayA8PQorCQlpZiAoYWRldi0+cG0ucG1fZGlz cGxheV9jZmcuZGlzcGxheV9jbGsgPD0KIAkJICAgIGFkZXYtPnBtLmRwbS5keW5fc3RhdGUudmRk Y19kZXBlbmRlbmN5X29uX2Rpc3BjbGsuZW50cmllc1tpXS5jbGspIHsKIAkJCWlmICh1bHYtPnBs LnZkZGMgPAogCQkJICAgIGFkZXYtPnBtLmRwbS5keW5fc3RhdGUudmRkY19kZXBlbmRlbmN5X29u X2Rpc3BjbGsuZW50cmllc1tpXS52KQpAQCAtNTgzMCwzMCArNTgxNywyMiBAQCBzdGF0aWMgaW50 IHNpX3VwbG9hZF91bHZfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIHN0YXRp YyBpbnQgc2lfdXBsb2FkX3NtY19kYXRhKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewot CXN0cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGMgPSBOVUxMOwotCWludCBpOworCWNvbnN0 IHN0cnVjdCBhbWRfcHBfZGlzcGxheV9jb25maWd1cmF0aW9uICpjZmcgPSAmYWRldi0+cG0ucG1f ZGlzcGxheV9jZmc7CiAJdTMyIGNydGNfaW5kZXggPSAwOwogCXUzMiBtY2xrX2NoYW5nZV9ibG9j a19jcF9taW4gPSAwOwogCXUzMiBtY2xrX2NoYW5nZV9ibG9ja19jcF9tYXggPSAwOwogCi0JZm9y IChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsrKSB7Ci0JCWlmIChhZGV2 LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRjcyAmICgxIDw8IGkpKSB7Ci0JCQlhbWRncHVfY3J0YyA9 IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCiAJLyogV2hl biBhIGRpc3BsYXkgaXMgcGx1Z2dlZCBpbiwgcHJvZ3JhbSB0aGVzZSBzbyB0aGF0IHRoZSBTTUMK IAkgKiBwZXJmb3JtcyBNQ0xLIHN3aXRjaGluZyB3aGVuIGl0IGRvZXNuJ3QgY2F1c2UgZmxpY2tl cmluZy4KIAkgKiBXaGVuIG5vIGRpc3BsYXkgaXMgcGx1Z2dlZCBpbiwgdGhlcmUgaXMgbm8gbmVl ZCB0byByZXN0cmljdAogCSAqIE1DTEsgc3dpdGNoaW5nLCBzbyBwcm9ncmFtIHRoZW0gdG8gemVy by4KIAkgKi8KLQlpZiAoYWRldi0+cG0uZHBtLm5ld19hY3RpdmVfY3J0Y19jb3VudCAmJiBhbWRn cHVfY3J0YykgewotCQljcnRjX2luZGV4ID0gYW1kZ3B1X2NydGMtPmNydGNfaWQ7CisJaWYgKGNm Zy0+bnVtX2Rpc3BsYXkpIHsKKwkJY3J0Y19pbmRleCA9IGNmZy0+Y3J0Y19pbmRleDsKIAotCQlp ZiAoYW1kZ3B1X2NydGMtPmxpbmVfdGltZSkgewotCQkJbWNsa19jaGFuZ2VfYmxvY2tfY3BfbWlu ID0gMjAwIC8gYW1kZ3B1X2NydGMtPmxpbmVfdGltZTsKLQkJCW1jbGtfY2hhbmdlX2Jsb2NrX2Nw X21heCA9IDEwMCAvIGFtZGdwdV9jcnRjLT5saW5lX3RpbWU7CisJCWlmIChjZmctPmxpbmVfdGlt ZV9pbl91cykgeworCQkJbWNsa19jaGFuZ2VfYmxvY2tfY3BfbWluID0gMjAwIC8gY2ZnLT5saW5l X3RpbWVfaW5fdXM7CisJCQltY2xrX2NoYW5nZV9ibG9ja19jcF9tYXggPSAxMDAgLyBjZmctPmxp bmVfdGltZV9pbl91czsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wbS9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9w b3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jCmluZGV4IDAxMTVkMjZiNWFmOS4uMjRiMjVjZGRmMGMx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3Bvd2VycGxheS9hbWRfcG93ZXJw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9wb3dlcnBsYXkvYW1kX3Bvd2VycGxh eS5jCkBAIC0xNTY5LDE2ICsxNTY5LDcgQEAgc3RhdGljIHZvaWQgcHBfcG1fY29tcHV0ZV9jbG9j a3Modm9pZCAqaGFuZGxlKQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gaHdtZ3ItPmFk ZXY7CiAKIAlpZiAoIWFkZXYtPmRjX2VuYWJsZWQpIHsKLQkJYW1kZ3B1X2RwbV9nZXRfYWN0aXZl X2Rpc3BsYXlzKGFkZXYpOwotCQlhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZy5udW1fZGlzcGxheSA9 IGFkZXYtPnBtLmRwbS5uZXdfYWN0aXZlX2NydGNfY291bnQ7Ci0JCWFkZXYtPnBtLnBtX2Rpc3Bs YXlfY2ZnLnZyZWZyZXNoID0gYW1kZ3B1X2RwbV9nZXRfdnJlZnJlc2goYWRldik7Ci0JCWFkZXYt PnBtLnBtX2Rpc3BsYXlfY2ZnLm1pbl92YmxhbmtfdGltZSA9IGFtZGdwdV9kcG1fZ2V0X3ZibGFu a190aW1lKGFkZXYpOwotCQkvKiB3ZSBoYXZlIGlzc3VlcyB3aXRoIG1jbGsgc3dpdGNoaW5nIHdp dGgKLQkJICogcmVmcmVzaCByYXRlcyBvdmVyIDEyMCBoeiBvbiB0aGUgbm9uLURDIGNvZGUuCi0J CSAqLwotCQlpZiAoYWRldi0+cG0ucG1fZGlzcGxheV9jZmcudnJlZnJlc2ggPiAxMjApCi0JCQlh ZGV2LT5wbS5wbV9kaXNwbGF5X2NmZy5taW5fdmJsYW5rX3RpbWUgPSAwOwotCisJCWFtZGdwdV9k cG1fZ2V0X2Rpc3BsYXlfY2ZnKGFkZXYpOwogCQlwcF9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fY2hh bmdlKGhhbmRsZSwKIAkJCQkJCSZhZGV2LT5wbS5wbV9kaXNwbGF5X2NmZyk7CiAJfQotLSAKMi41 My4wCgo=