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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 9C745C531DD for ; Mon, 12 Aug 2024 02:15:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cUhVOEJW+gviIq2J16umecpM/a2nlaMQy11KSaZ52JY=; b=ijBSx0zcbqjebi gYhHz1KtopXfT5bAqHpwwkLZLumyrBJrxwxGTDYPlGeghFt9tAAngP9wOzf6HyA+xTwS7OlVJGp5M fKtFqiKTMDEkAdDxZPTVdZbpyvkowUlQ0UyjD4LP8YgzxCEn/cgNAxEOJhTpXJ3SL85rZlJVNtGeD nsKhPe7Lg2+6UZ/3oagXxjGUe4AFWWzGDWScqLszMd+MLSL5N/8zQMm3bUrcuE7E7kL6yZBmiitiq MF6elTq0oXR5gI3XFYZWlMDVRw7LcjKs0PPHXyhOoBFIFEu/tYEP6l8FiHFU3as8tZdmKLQEAleQt QU1hFO2DlIxk2Mveoavg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sdKae-0000000GgGT-3ApB; Mon, 12 Aug 2024 02:15:20 +0000 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sdJQZ-0000000GaFo-37eF for linux-riscv@lists.infradead.org; Mon, 12 Aug 2024 01:00:54 +0000 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-70d2b921c48so2799177b3a.1 for ; Sun, 11 Aug 2024 18:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1723424450; x=1724029250; darn=lists.infradead.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=zGfeskz8g19r+OqajKxPNYjNNE+F0wltIvoajFyWVok=; b=NtpN9wxCAFZWhc/0DKq5mhoIKXwKUU7cc2PMKwAsV8g18LSKK9uZaziXKoLKLAUq5w xF7QDpNFh8pa5khaW+lbcqjs6cfV3yQKzRiI1bghxZh+DjFEeaSg+zxk8FnVpSGCRiRI ACOeh85EjOlcMBb9omVamI7yV/61oexXeKGPJ0x90zjuppNSxv86CnnJmZ47qSYSRGWE 5ySR7izxIrfT6FeKGsOqq6BD5GJB4JVF4M4b8kgUXRy0qtu3pxJZ+nltNtU7KBr01sDZ uUANGKr0Oe5jN60oFegiF9z/FPgMEquxx+aa6d2sFPsYOQyKvFjpEAOq7l9VWGgML552 Fxqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723424450; x=1724029250; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zGfeskz8g19r+OqajKxPNYjNNE+F0wltIvoajFyWVok=; b=KgPp81VvQ83snPeb15WlC6Q2YjKTtBp8rOmfzVR6AdV7xS7W1/Paevtlykgswn7b9G jLcyUONwZj8ebUJYiu7WNwlM/SopE351+F8bqzSLaL5k7uDKNQFQG3vukWtFT13o+WH6 AMqHTGr0BTeZJSblNpLLRJQZ4bNYnLdfKZ4vZlDoYnV9UEbYzU4suDDi+1QRHfKuCp20 WoT3NRCuHqzl3j1d2OyNQuMbmIjsv6i6q8TvOL/fy4qA1HId+SeLn8BX3kU/BbKBo32V nzsokJfzHvigD4U2AD0x1kpwIHeJHIUOb45noQO1mq1PX1tsQAWNACxsR8deG2XVfSEb bhFw== X-Forwarded-Encrypted: i=1; AJvYcCWRLp7Cq+uOLYGdJIOwJtdq8oD49A8r2VXCZ4/8Ez2lO1OQ1KOWXI4JavKJLJ+HxeHhTGMNGYbe8nF9XSrdCsJm7h9EWajvRKuJXJYAYZcx X-Gm-Message-State: AOJu0YwOk3E47xcOht7C0r/6mwSibHw/i/1LSKp7MMep16Cb26Y7G4RX deNFEvPoYhebCzKqXT32ClVZCP0CL+hApxzfAS1HzNwVIdsF6pJFEjwbezF6teo= X-Google-Smtp-Source: AGHT+IE3q8lKgHgWLAwxE/0Wiss9V/UMieO99InX6OgVwr4G4I59tEn3alleuzimlu24LFWs915ICg== X-Received: by 2002:a05:6a00:2da1:b0:710:7efe:a870 with SMTP id d2e1a72fcca58-710dcaeb509mr5600452b3a.19.1723424450430; Sun, 11 Aug 2024 18:00:50 -0700 (PDT) Received: from sunil-pc.tail07344b.ts.net ([106.51.198.16]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7c3dbe8cbdcsm3074062a12.61.2024.08.11.18.00.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Aug 2024 18:00:49 -0700 (PDT) From: Sunil V L To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev Subject: [PATCH v8 11/17] ACPI: RISC-V: Initialize GSI mapping structures Date: Mon, 12 Aug 2024 06:29:23 +0530 Message-ID: <20240812005929.113499-12-sunilvl@ventanamicro.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240812005929.113499-1-sunilvl@ventanamicro.com> References: <20240812005929.113499-1-sunilvl@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240811_180051_941959_5E10F073 X-CRM114-Status: GOOD ( 20.09 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Albert Ou , Haibo Xu , "Rafael J . Wysocki" , Anup Patel , Atish Kumar Patra , Robert Moore , Samuel Holland , Conor Dooley , Palmer Dabbelt , Drew Fustini , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Paul Walmsley , Bjorn Helgaas , Thomas Gleixner , Andrew Jones , Will Deacon , Len Brown Content-Type: text/plain; charset="cp1252" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org UklTQy1WIGhhcyBQTElDIGFuZCBBUExJQyBpbiBNQURUIGFzIHdlbGwgYXMgbmFtZXNwYWNlIGRl dmljZXMuCkluaXRpYWxpemUgdGhlIGxpc3Qgb2YgdGhvc2Ugc3RydWN0dXJlcyB1c2luZyBNQURU IGFuZCBuYW1lc3BhY2UgZGV2aWNlcwp0byBjcmVhdGUgbWFwcGluZyBiZXR3ZWVuIHRoZSBBQ1BJ IGhhbmRsZSBhbmQgdGhlIEdTSSByYW5nZXMuIFRoaXMgd2lsbApiZSB1c2VkIGxhdGVyIHRvIGFk ZCBkZXBlbmRlbmNpZXMuCgpTaWduZWQtb2ZmLWJ5OiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVudGFu YW1pY3JvLmNvbT4KVGVzdGVkLWJ5OiBCasO2cm4gVMO2cGVsIDxiam9ybkByaXZvc2luYy5jb20+ Ci0tLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9pcnEuaCB8ICAyMiArKysrKysKIGRyaXZlcnMv YWNwaS9yaXNjdi9pbml0LmMgICAgfCAgIDIgKwogZHJpdmVycy9hY3BpL3Jpc2N2L2luaXQuaCAg ICB8ICAgNCArCiBkcml2ZXJzL2FjcGkvcmlzY3YvaXJxLmMgICAgIHwgMTQ3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE3NSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9hY3BpL3Jpc2N2L2luaXQuaAoKZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaXJxLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2lycS5oCmluZGV4IDhlMTBhOTQ0MzBhMi4uNDRhMGIxMjhjNjAyIDEwMDY0NAotLS0gYS9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2lycS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v aXJxLmgKQEAgLTE2LDQgKzE2LDI2IEBAIHZvaWQgcmlzY3Zfc2V0X2ludGNfaHdub2RlX2ZuKHN0 cnVjdCBmd25vZGVfaGFuZGxlICooKmZuKSh2b2lkKSk7CiAKIHN0cnVjdCBmd25vZGVfaGFuZGxl ICpyaXNjdl9nZXRfaW50Y19od25vZGUodm9pZCk7CiAKKyNpZmRlZiBDT05GSUdfQUNQSQorCitl bnVtIHJpc2N2X2lycWNoaXBfdHlwZSB7CisJQUNQSV9SSVNDVl9JUlFDSElQX0lOVEMJCT0gMHgw MCwKKwlBQ1BJX1JJU0NWX0lSUUNISVBfSU1TSUMJPSAweDAxLAorCUFDUElfUklTQ1ZfSVJRQ0hJ UF9QTElDCQk9IDB4MDIsCisJQUNQSV9SSVNDVl9JUlFDSElQX0FQTElDCT0gMHgwMywKK307CisK K2ludCByaXNjdl9hY3BpX2dldF9nc2lfaW5mbyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2Rl LCB1MzIgKmdzaV9iYXNlLAorCQkJICAgIHUzMiAqaWQsIHUzMiAqbnJfaXJxcywgdTMyICpucl9p ZGNzKTsKK3N0cnVjdCBmd25vZGVfaGFuZGxlICpyaXNjdl9hY3BpX2dldF9nc2lfZG9tYWluX2lk KHUzMiBnc2kpOworCisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgcmlzY3ZfYWNwaV9nZXRfZ3Np X2luZm8oc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSwgdTMyICpnc2lfYmFzZSwKKwkJCQkJ ICB1MzIgKmlkLCB1MzIgKm5yX2lycXMsIHUzMiAqbnJfaWRjcykKK3sKKwlyZXR1cm4gMDsKK30K KworI2VuZGlmIC8qIENPTkZJR19BQ1BJICovCisKICNlbmRpZiAvKiBfQVNNX1JJU0NWX0lSUV9I ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcmlzY3YvaW5pdC5jIGIvZHJpdmVycy9hY3Bp L3Jpc2N2L2luaXQuYwppbmRleCBhODc1YTc2YWE0NGMuLjVlZjk3OTA1YTcyNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9hY3BpL3Jpc2N2L2luaXQuYworKysgYi9kcml2ZXJzL2FjcGkvcmlzY3YvaW5p dC5jCkBAIC01LDcgKzUsOSBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5j bHVkZSAiaW5pdC5oIgogCiB2b2lkIF9faW5pdCBhY3BpX3Jpc2N2X2luaXQodm9pZCkKIHsKKwly aXNjdl9hY3BpX2luaXRfZ3NpX21hcHBpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNw aS9yaXNjdi9pbml0LmggYi9kcml2ZXJzL2FjcGkvcmlzY3YvaW5pdC5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGI5YTA3ZTQwMzFmCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9hY3BpL3Jpc2N2L2luaXQuaApAQCAtMCwwICsxLDQgQEAKKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ CisKK3ZvaWQgX19pbml0IHJpc2N2X2FjcGlfaW5pdF9nc2lfbWFwcGluZyh2b2lkKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvYWNwaS9yaXNjdi9pcnEuYyBiL2RyaXZlcnMvYWNwaS9yaXNjdi9pcnEu YwppbmRleCA4MzVlYjZlY2NkNTMuLjkwMjg3ODdjNzNhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9h Y3BpL3Jpc2N2L2lycS5jCisrKyBiL2RyaXZlcnMvYWNwaS9yaXNjdi9pcnEuYwpAQCAtNiw2ICs2 LDIxIEBACiAKICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CiAjaW5jbHVkZSA8bGludXgvc29ydC5o PgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorCisjaW5jbHVkZSAiaW5pdC5oIgorCitzdHJ1Y3Qg cmlzY3ZfZXh0X2ludGNfbGlzdCB7CisJYWNwaV9oYW5kbGUJCWhhbmRsZTsKKwl1MzIJCQlnc2lf YmFzZTsKKwl1MzIJCQlucl9pcnFzOworCXUzMgkJCW5yX2lkY3M7CisJdTMyCQkJaWQ7CisJdTMy CQkJdHlwZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Cit9OworCitMSVNUX0hFQUQoZXh0X2lu dGNfbGlzdCk7CiAKIHN0YXRpYyBpbnQgaXJxY2hpcF9jbXBfZnVuYyhjb25zdCB2b2lkICppbjAs IGNvbnN0IHZvaWQgKmluMSkKIHsKQEAgLTMxLDMgKzQ2LDEzNSBAQCB2b2lkIGFyY2hfc29ydF9p cnFjaGlwX3Byb2JlKHN0cnVjdCBhY3BpX3Byb2JlX2VudHJ5ICphcF9oZWFkLCBpbnQgbnIpCiAJ CXJldHVybjsKIAlzb3J0KGFwZSwgbnIsIHNpemVvZigqYXBlKSwgaXJxY2hpcF9jbXBfZnVuYywg TlVMTCk7CiB9CisKK3N0YXRpYyBhY3BpX3N0YXR1cyByaXNjdl9hY3BpX3VwZGF0ZV9nc2lfaGFu ZGxlKHUzMiBnc2lfYmFzZSwgYWNwaV9oYW5kbGUgaGFuZGxlKQoreworCXN0cnVjdCByaXNjdl9l eHRfaW50Y19saXN0ICpleHRfaW50Y19lbGVtZW50OworCXN0cnVjdCBsaXN0X2hlYWQgKmksICp0 bXA7CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUoaSwgdG1wLCAmZXh0X2ludGNfbGlzdCkgeworCQll eHRfaW50Y19lbGVtZW50ID0gbGlzdF9lbnRyeShpLCBzdHJ1Y3QgcmlzY3ZfZXh0X2ludGNfbGlz dCwgbGlzdCk7CisJCWlmIChnc2lfYmFzZSA9PSBleHRfaW50Y19lbGVtZW50LT5nc2lfYmFzZSkg eworCQkJZXh0X2ludGNfZWxlbWVudC0+aGFuZGxlID0gaGFuZGxlOworCQkJcmV0dXJuIEFFX09L OworCQl9CisJfQorCisJcmV0dXJuIEFFX05PVF9GT1VORDsKK30KKworaW50IHJpc2N2X2FjcGlf Z2V0X2dzaV9pbmZvKHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsIHUzMiAqZ3NpX2Jhc2Us CisJCQkgICAgdTMyICppZCwgdTMyICpucl9pcnFzLCB1MzIgKm5yX2lkY3MpCit7CisJc3RydWN0 IHJpc2N2X2V4dF9pbnRjX2xpc3QgKmV4dF9pbnRjX2VsZW1lbnQ7CisJc3RydWN0IGxpc3RfaGVh ZCAqaTsKKworCWxpc3RfZm9yX2VhY2goaSwgJmV4dF9pbnRjX2xpc3QpIHsKKwkJZXh0X2ludGNf ZWxlbWVudCA9IGxpc3RfZW50cnkoaSwgc3RydWN0IHJpc2N2X2V4dF9pbnRjX2xpc3QsIGxpc3Qp OworCQlpZiAoZXh0X2ludGNfZWxlbWVudC0+aGFuZGxlID09IEFDUElfSEFORExFX0ZXTk9ERShm d25vZGUpKSB7CisJCQkqZ3NpX2Jhc2UgPSBleHRfaW50Y19lbGVtZW50LT5nc2lfYmFzZTsKKwkJ CSppZCA9IGV4dF9pbnRjX2VsZW1lbnQtPmlkOworCQkJKm5yX2lycXMgPSBleHRfaW50Y19lbGVt ZW50LT5ucl9pcnFzOworCQkJaWYgKG5yX2lkY3MpCisJCQkJKm5yX2lkY3MgPSBleHRfaW50Y19l bGVtZW50LT5ucl9pZGNzOworCisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXJldHVybiAtRU5P REVWOworfQorCitzdHJ1Y3QgZndub2RlX2hhbmRsZSAqcmlzY3ZfYWNwaV9nZXRfZ3NpX2RvbWFp bl9pZCh1MzIgZ3NpKQoreworCXN0cnVjdCByaXNjdl9leHRfaW50Y19saXN0ICpleHRfaW50Y19l bGVtZW50OworCXN0cnVjdCBhY3BpX2RldmljZSAqYWRldjsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpp OworCisJbGlzdF9mb3JfZWFjaChpLCAmZXh0X2ludGNfbGlzdCkgeworCQlleHRfaW50Y19lbGVt ZW50ID0gbGlzdF9lbnRyeShpLCBzdHJ1Y3QgcmlzY3ZfZXh0X2ludGNfbGlzdCwgbGlzdCk7CisJ CWlmIChnc2kgPj0gZXh0X2ludGNfZWxlbWVudC0+Z3NpX2Jhc2UgJiYKKwkJICAgIGdzaSA8IChl eHRfaW50Y19lbGVtZW50LT5nc2lfYmFzZSArIGV4dF9pbnRjX2VsZW1lbnQtPm5yX2lycXMpKSB7 CisJCQlhZGV2ID0gYWNwaV9mZXRjaF9hY3BpX2RldihleHRfaW50Y19lbGVtZW50LT5oYW5kbGUp OworCQkJaWYgKCFhZGV2KQorCQkJCXJldHVybiBOVUxMOworCisJCQlyZXR1cm4gYWNwaV9md25v ZGVfaGFuZGxlKGFkZXYpOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBp bnQgX19pbml0IHJpc2N2X2FjcGlfcmVnaXN0ZXJfZXh0X2ludGModTMyIGdzaV9iYXNlLCB1MzIg bnJfaXJxcywgdTMyIG5yX2lkY3MsCisJCQkJCSAgICAgICB1MzIgaWQsIHUzMiB0eXBlKQorewor CXN0cnVjdCByaXNjdl9leHRfaW50Y19saXN0ICpleHRfaW50Y19lbGVtZW50OworCisJZXh0X2lu dGNfZWxlbWVudCA9IGt6YWxsb2Moc2l6ZW9mKCpleHRfaW50Y19lbGVtZW50KSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFleHRfaW50Y19lbGVtZW50KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWV4dF9p bnRjX2VsZW1lbnQtPmdzaV9iYXNlID0gZ3NpX2Jhc2U7CisJZXh0X2ludGNfZWxlbWVudC0+bnJf aXJxcyA9IG5yX2lycXM7CisJZXh0X2ludGNfZWxlbWVudC0+bnJfaWRjcyA9IG5yX2lkY3M7CisJ ZXh0X2ludGNfZWxlbWVudC0+aWQgPSBpZDsKKwlsaXN0X2FkZF90YWlsKCZleHRfaW50Y19lbGVt ZW50LT5saXN0LCAmZXh0X2ludGNfbGlzdCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBhY3Bp X3N0YXR1cyBfX2luaXQgcmlzY3ZfYWNwaV9jcmVhdGVfZ3NpX21hcChhY3BpX2hhbmRsZSBoYW5k bGUsIHUzMiBsZXZlbCwKKwkJCQkJCSAgICB2b2lkICpjb250ZXh0LCB2b2lkICoqcmV0dXJuX3Zh bHVlKQoreworCWFjcGlfc3RhdHVzIHN0YXR1czsKKwl1NjQgZ2Jhc2U7CisKKwlpZiAoIWFjcGlf aGFzX21ldGhvZChoYW5kbGUsICJfR1NCIikpIHsKKwkJYWNwaV9oYW5kbGVfZXJyKGhhbmRsZSwg Il9HU0IgbWV0aG9kIG5vdCBmb3VuZFxuIik7CisJCXJldHVybiBBRV9FUlJPUjsKKwl9CisKKwlz dGF0dXMgPSBhY3BpX2V2YWx1YXRlX2ludGVnZXIoaGFuZGxlLCAiX0dTQiIsIE5VTEwsICZnYmFz ZSk7CisJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7CisJCWFjcGlfaGFuZGxlX2VycihoYW5k bGUsICJmYWlsZWQgdG8gZXZhbHVhdGUgX0dTQiBtZXRob2RcbiIpOworCQlyZXR1cm4gc3RhdHVz OworCX0KKworCXN0YXR1cyA9IHJpc2N2X2FjcGlfdXBkYXRlX2dzaV9oYW5kbGUoKHUzMilnYmFz ZSwgaGFuZGxlKTsKKwlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHsKKwkJYWNwaV9oYW5kbGVf ZXJyKGhhbmRsZSwgImZhaWxlZCB0byBmaW5kIHRoZSBHU0kgbWFwcGluZyBlbnRyeVxuIik7CisJ CXJldHVybiBzdGF0dXM7CisJfQorCisJcmV0dXJuIEFFX09LOworfQorCitzdGF0aWMgaW50IF9f aW5pdCByaXNjdl9hY3BpX2FwbGljX3BhcnNlX21hZHQodW5pb24gYWNwaV9zdWJ0YWJsZV9oZWFk ZXJzICpoZWFkZXIsCisJCQkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXN0 cnVjdCBhY3BpX21hZHRfYXBsaWMgKmFwbGljID0gKHN0cnVjdCBhY3BpX21hZHRfYXBsaWMgKilo ZWFkZXI7CisKKwlyZXR1cm4gcmlzY3ZfYWNwaV9yZWdpc3Rlcl9leHRfaW50YyhhcGxpYy0+Z3Np X2Jhc2UsIGFwbGljLT5udW1fc291cmNlcywgYXBsaWMtPm51bV9pZGNzLAorCQkJCQkgICAgYXBs aWMtPmlkLCBBQ1BJX1JJU0NWX0lSUUNISVBfQVBMSUMpOworfQorCitzdGF0aWMgaW50IF9faW5p dCByaXNjdl9hY3BpX3BsaWNfcGFyc2VfbWFkdCh1bmlvbiBhY3BpX3N1YnRhYmxlX2hlYWRlcnMg KmhlYWRlciwKKwkJCQkJICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlzdHJ1Y3Qg YWNwaV9tYWR0X3BsaWMgKnBsaWMgPSAoc3RydWN0IGFjcGlfbWFkdF9wbGljICopaGVhZGVyOwor CisJcmV0dXJuIHJpc2N2X2FjcGlfcmVnaXN0ZXJfZXh0X2ludGMocGxpYy0+Z3NpX2Jhc2UsIHBs aWMtPm51bV9pcnFzLCAwLAorCQkJCQkgICAgcGxpYy0+aWQsIEFDUElfUklTQ1ZfSVJRQ0hJUF9Q TElDKTsKK30KKwordm9pZCBfX2luaXQgcmlzY3ZfYWNwaV9pbml0X2dzaV9tYXBwaW5nKHZvaWQp Cit7CisJLyogVGhlcmUgY2FuIGJlIGVpdGhlciBQTElDIG9yIEFQTElDICovCisJaWYgKGFjcGlf dGFibGVfcGFyc2VfbWFkdChBQ1BJX01BRFRfVFlQRV9QTElDLCByaXNjdl9hY3BpX3BsaWNfcGFy c2VfbWFkdCwgMCkgPiAwKSB7CisJCWFjcGlfZ2V0X2RldmljZXMoIlJTQ1YwMDAxIiwgcmlzY3Zf YWNwaV9jcmVhdGVfZ3NpX21hcCwgTlVMTCwgTlVMTCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAo YWNwaV90YWJsZV9wYXJzZV9tYWR0KEFDUElfTUFEVF9UWVBFX0FQTElDLCByaXNjdl9hY3BpX2Fw bGljX3BhcnNlX21hZHQsIDApID4gMCkKKwkJYWNwaV9nZXRfZGV2aWNlcygiUlNDVjAwMDIiLCBy aXNjdl9hY3BpX2NyZWF0ZV9nc2lfbWFwLCBOVUxMLCBOVUxMKTsKK30KLS0gCjIuNDMuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2 IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK