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 A9269C021A0 for ; Mon, 17 Feb 2025 08:37: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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=OtRbDhwVFjIDXQHVr6sA14saQFTOB/C7LIX6OcncQqA=; b=i5+iUgMg7LfPPfqyKtXmvOVdqF H7Dd7uLpSESd9ODyq9ud0YNOLxxSZif8ArxVFHjre+zSkO5BTF/9vBIvIHLgckquXWjj1pAtObV+k 9l5w9eAmbpHlKzNEaF2eP5/4m+cb45TAiwwFXEQ8r1lvd14bq+bGJj2eOoBuvHkY72lx7SJg5/3vh jWqr1fEUPjU5DaB7q7JZ2DI/FRsgpOY/x3q7ZFlpLFWAvYXjFRRAVeHwrHaWq4p2DomH4CdHz2/YM 8yExwIbP2hSqPOrAJ27eB4VrOYEOtw8GHL9Bf942NO0wWSTGseTGkAOG4GHqK7K5adw+ROflpCpm/ jJXswdDA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwd0-00000003mWy-1e9C; Mon, 17 Feb 2025 08:37:22 +0000 Received: from mail-centralindiaazolkn190100000.outbound.protection.outlook.com ([2a01:111:f403:d409::] helo=PNYPR01CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwcx-00000003mW8-2wFl for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:37:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZCAOIrjCYaXyrLtWSgPlPBABkKfOnu5cyRHFrVNBs7Ue9J3KMKoGWS1vXHmaLJWd9HIRCFxxBHGhoYDXn8kqk8Ose3R3gsdDs1UsJVMizD5Xx9nUBHnsBjaitNsIuSoQDW8r0pe4Lwh8YUA3jwguvWWzjTnqJyzSIOXxLL3vcbepXaLPBWy1x3qxM6wk8j2Xu6DVixCqTGDuwvEYHe9PKv/cT6VNpSDJ+2HHpF8GM6vZVVlGEtQI7kc7I7+7LXp9i1Y8K38jvrkY7SYIktJ1Hgp43odWtbBlUv09SxXgrTuIrTplOwMlQpYsLIVevMH4UOxEIyEkuay6JuyMEOyooA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+/lmH3hliXFfrwhuPd2qi9Ax/nF386Fu4E7znrcRs5w=; b=XSK13fnoIzAO2ILIGO5fZnjaqO3ooE9VmArEse4uUfE3muQmxOW7iHHKVys9kJUtGBZ3B+K7aaXLgGhM1mp2RBjmDqaVOYsdJ2nOZotYQv0Tg6WZj5uDD8Gwl2bVJqaeKYtQ71xaS75Egr18F7XphXT4z93ypG7MT2n51qHJr7FGx1le/SyjHQLT8Nf/6YGLlrx/sMEOpeE+s1BHnMa1WdSLNBMb20jzTkyooTvzHWXJFqOP/XpZhCq5EBvNaPSR+KdwS2Ctvl8Qm5isqiHOPxyKDyAyDDq6L7iFBVMQabGe3ZNSFpFnc2WQ3QNnCAOX/jfq+0oGOk+QmZYCfDvAtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+/lmH3hliXFfrwhuPd2qi9Ax/nF386Fu4E7znrcRs5w=; b=EMOy8Ad1ETTXN73Ut++u+Ap/t4f4uy1gSDsM78yVCa7K4VKugudk9Ed+Bmlc/FuGAh1Za38tQdKuVguagXK2O+FXM1THvyHrOmaubLmN37tq0Gurb9jQv6Z2NWwWYNtvmDdIJbJC/T/mBiKfBwYUJAsVxJQ3119FziyqR7tIsL9QGuPTk/1OSScwC0wM+ud2rZCRVzc74f35ZaR5Lmjc5i6Roq/M/QukTKYn1xluaQQIqWE5j8p8/MJ0ownn8sJ/laDfFaGfLDSLHSB80kFo+c5FhVwPvemF2P8RbyS9OJ/IMtnL/IyPOle7SX9X6CW2WcNCADm9DrHTurFCaxNRKg== Received: from MA0PR01MB5671.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:6e::9) by MA0PR01MB6441.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:79::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.19; Mon, 17 Feb 2025 08:37:04 +0000 Received: from MA0PR01MB5671.INDPRD01.PROD.OUTLOOK.COM ([fe80::6e06:bc2e:85c0:c2ee]) by MA0PR01MB5671.INDPRD01.PROD.OUTLOOK.COM ([fe80::6e06:bc2e:85c0:c2ee%2]) with mapi id 15.20.8445.017; Mon, 17 Feb 2025 08:37:04 +0000 Message-ID: Date: Mon, 17 Feb 2025 16:36:59 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 2/5] PCI: sg2042: Add Sophgo SG2042 PCIe driver To: Bjorn Helgaas , Chen Wang Cc: kw@linux.com, u.kleine-koenig@baylibre.com, aou@eecs.berkeley.edu, arnd@arndb.de, bhelgaas@google.com, conor+dt@kernel.org, guoren@kernel.org, inochiama@outlook.com, krzk+dt@kernel.org, lee@kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, palmer@dabbelt.com, paul.walmsley@sifive.com, pbrobinson@gmail.com, robh@kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-riscv@lists.infradead.org, chao.wei@sophgo.com, xiaoguang.xing@sophgo.com, fengchun.li@sophgo.com References: <20250122213303.GA1102149@bhelgaas> From: Chen Wang In-Reply-To: <20250122213303.GA1102149@bhelgaas> X-ClientProxiedBy: SG2PR02CA0117.apcprd02.prod.outlook.com (2603:1096:4:92::33) To MA0PR01MB5671.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:6e::9) X-Microsoft-Original-Message-ID: <762afb26-e11d-4f55-a374-6bd215bb79ba@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MA0PR01MB5671:EE_|MA0PR01MB6441:EE_ X-MS-Office365-Filtering-Correlation-Id: 08562252-7ca3-43d9-f27f-08dd4f2e417c X-Microsoft-Antispam: BCL:0;ARA:14566002|15080799006|461199028|7092599003|6090799003|5072599009|8060799006|19110799003|1602099012|4302099013|3412199025|10035399004|440099028|12091999003|41001999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NzZ0YlJ4L2hVU1JNVEpBTGMvQ2xXSG1SNGtLZFU5QWlYNFNWVUc5ZlZzQW93?= =?utf-8?B?ZnBqOE1pT21YVGlQOTV6VXcyczZMbEpMZit2RmJKS2FUL0dZcGtmL2tINmVJ?= =?utf-8?B?K204YnlXUUgyUUFZSzdTb01ocEdPb1U5Rk9vdkpCTEVwSWlEb3hyWkJiU256?= =?utf-8?B?Tyt3WW1zMjJUQmJ2a2dUalNiSEhyZ2ZtZnlGS3BGeUVzMXJRemx6VmZ5bEV6?= =?utf-8?B?N0t1bksyMVdQNm1sTXJZUXFPYTU4YUlBcVVkRGs3bkFLdE9XeGJyZDd0Tzkx?= =?utf-8?B?Z0dBRHlCWHpGYVFia3hRbFExL3FjK1JCQmZPcGRrcnZFQWZqTUI1K3kzNTZx?= =?utf-8?B?YkNpSWRZblRnTzcrK0FUNnNSeE5PbXYvcUQveW9QeHlONC9YNmEyVmtrRXJL?= =?utf-8?B?SW9YcjZuWVMzSmxtVnRoQW9VMjVtU2dVY09zUzF4anVXdk9qVHBCcVB1SE4z?= =?utf-8?B?bkJ3em8yeFV0VStjZmRtWjBHRk0yVVVDVXM0SG1VWXpoRjhwclVmZkZtSmFX?= =?utf-8?B?dGliSk9hRGVkczFyQTEzYVBJUE9tRUJFdTdPSzVZWTJMaC9UeE90YW5WNENs?= =?utf-8?B?Z1dPVUVIRm42Qyt3YTJUWFgwZnNTb29LWWZtUnNPajQ1M0kraVdBWW1kN3d5?= =?utf-8?B?QjUzSk9ySDh5Ni9GdmdOUXN0Q0dlS3BGeksxcS9SUlp1Y1VyTkhpMmpNUUI0?= =?utf-8?B?UTQ4ZXhLVGo1SDU5b1VpV1hNK3BWSHJSdCt2Mkxvdk1yYWhyR3h3RmVOQjNn?= =?utf-8?B?MmJ4WmhTZm5nTVNmQjhubkdhVEN1RS9qM1pKL0d0VkFQQXp4b3FKaWg5NElM?= =?utf-8?B?STR5VzJ2cDFCeHN0SGQybjUvcDF1MjF0Y1NPTlM0ZVlRU1NIeFh3bStBaGJX?= =?utf-8?B?QTZXVmQ5cUU2anpKbFVCSEp3TXc2L0xleS8wcGhRSXBRVmU2c1NQZ1RjSHY3?= =?utf-8?B?NlMzYmRPOGx5aXNIT2txRlV0bzdpUzk3ck9BMW5odDNNRE4wY2l4RUNBUjdi?= =?utf-8?B?SWFCeWd5TDQ3RERlSHRKQXBhNDl0QmYxQUxhcWo1QzJRK0wxLy9yU1JRWThD?= =?utf-8?B?OE90dUh1emZSZVcrcDA0ZkFpR1p5WS9XemcwYTRsYWhpWjgwbWN6TklQMkds?= =?utf-8?B?dUZaVUI0M0ltOG5hMEpueFJreUgwK3B0cUIxTlM4Z2xOa0NkUUJvd2hReStW?= =?utf-8?B?bk1KVlBYd1h5ek9KQnBzWDhCaElXMEg5NGJJYmVxMTExTWhlQ2lYQm5YS3I2?= =?utf-8?B?N3lmVVExZHdiQzlPSlZoRkhtM1lSeGVLM3pkc05UbVQxT25UVFNZWmNOOEs2?= =?utf-8?B?ck9ZaWhOMVgxU1BaejNabGhVaEdJeHY2UW1IZWNDNElRWVlwcm1mYml6NWVz?= =?utf-8?B?U1NITTZ5aE4wVXdtekxyTTZGK2pObjRIbVdGUno0b1YwL0Z6cjBmYlpYWm14?= =?utf-8?B?UGRQTkswNFlXakNkSHVaMHg1NHlkQ3dLTHlqdERQdWdKVnJuUldpS0VXNWVj?= =?utf-8?B?UGJDckRJSHQyY0ZGQlBuL1dsTnBVeC81T1Rjb1ZrRUtNZ0QyYjl6dlhRUVVs?= =?utf-8?B?Z09NUDJ0K1Zld1ZsTkFDM1M4OVFWKzNJME9Lb1BvcW50eHpBb1l3d2h6Q3Jo?= =?utf-8?B?UmxEUDlkemMwZWsrUzM1aERGSGZ4bWlqMG5yS1AxQzFBRlZvZjVWb0pmSm5R?= =?utf-8?B?c2grTE15cnJJQzhLSGcrMU1JemhMbjJuNk1xMktHcFNvcFhrNXpEd0lHK0hp?= =?utf-8?B?M091OXJtbnJzbDVXWUZPMnV0NDB4dHZFTnVQNUNUUXpQUnFHRUVRODlKTk1I?= =?utf-8?B?eTJramMvSTVwS1BvWndEZz09?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SDQvV01Sai8zc01iaXRVN1JTL1NNbnZ0S3UxRmdyNTlRNzNxeUZPSGZrZ0hT?= =?utf-8?B?N0NacUx3ZllOWHhQdHQ3cmFmNTQ3QXlSMXVaOVpuZkhsS2krYjY4SGx6YUlY?= =?utf-8?B?dS90S3MxVTVZT0wzeVg1eHRVQVBOM2xTeTZRcDlnMDh0djNrdWx3bnBrbmpY?= =?utf-8?B?TWZyQ21kVEhScVZVNlUrUjNoVXM0RVNJMUpWTGQ1OXhlRDNxTFhTTjJHOWll?= =?utf-8?B?ZHVzZHhDcWxHM0NyMWJPVGRMRzZ3dUtVbzRkek9PZ2x0S25VWko0TDBhbGRG?= =?utf-8?B?b1lIaWJRRnAxSTFtNlBMcDh4SnRXdVN2VFd3Tk9RUk9hdDFoM2QvK0RqeDZh?= =?utf-8?B?VUF2QlZiTTIyaUlPeEtLQzZtRHVvOHRuelJkcDRrbGJBUjY4QWwvRHhhTTFI?= =?utf-8?B?TDBFVUJpUkVwRTBHS0c2a1BMYlMwWVhYSW5HSFBPeExLOCtEQXRvc3ZOdllC?= =?utf-8?B?TDhBM2g0NjYyVjhKamRnL2xxbm1MUjVuV3NKa0RTQUYzeXlXckxXdVErNk9p?= =?utf-8?B?d0Vpb0F5T0lLOWwvK0VyampYYldHNkkyaVkxNEpSQmtYWFBOY1kyWXpnSHZB?= =?utf-8?B?SFhyN1MxUU5oZFkwN1M2Ulo5NzJJckl1dzdZTVpGRk9vbncyNTFWUHdKT0dI?= =?utf-8?B?KzBMaGFYUENvc1VHdkNFL0JQeEhEMjFVVFZXbEN3ZTNPZE5YclFjblJMdjRF?= =?utf-8?B?aC9qd0xqRkI3MFM4SkpUN1RkOVcyYy9iUnR3REVHN1JrM0oxcFZKZnQvWWlN?= =?utf-8?B?L0w2aVBhTGFjY2dJbDJpeDVuRmhmQ3BCRFVQMEFiU3RNV3Zsc0xkRm5Qb1pW?= =?utf-8?B?MXdORXNFdlFxbndIditnL3NLVzBuMnVGUmcwVlNiYXV3bVQybkR3Y0xEemY4?= =?utf-8?B?emZ5QUlBWFdoQXNmd0I4dml2eWQyemtleXFDT0tNdjNoWlVNMzUvOC9WSnNl?= =?utf-8?B?ZyticEovcFJnRXRjL1I2ZDBQV28rN0hqQUF2MW9JdXhUVndqOUJSc2ZoQ1BK?= =?utf-8?B?NTRFdHlMUTRoS3REZEZLOEtrNnBwQVJwM3JHR0t6eGpCVUI2WENwbDFhVE9J?= =?utf-8?B?QU8rSEhpcktoK3NITHlRRjJZdVovRW9KbkdhdVBwNHgyWFlLTENWR2VOOGhh?= =?utf-8?B?bS9KN0psSkhqN1MvcU9rb3RpdkdXMHpEeG9RZExsUmsvSDJaNDdVYWVnL0hs?= =?utf-8?B?QzY5THpxeHJJSmMwZ0FSNitUOTlOUmd3aENPckVzeEw1WjJLNXgzczN5WnF0?= =?utf-8?B?cmhBblFYNmV5SDVmdzIwcVE0SS9YTVlvOHNKME9WVHBZL2p2cWhwSzhvODN6?= =?utf-8?B?TXRBZVpDa2ZmSWUyd1NzZ21neGxxRHlBUzFJME0xZ3c2LytvN0FHMWdLWFVj?= =?utf-8?B?SjdhZnZWWnRqRm9rUkZSalMrOWxrSjRueXB4bmdxc2xPL1lxeTk5M2VqUkpG?= =?utf-8?B?b1Z6bTVENnJOTytOWXhVVU5QdllBOEp2bm9VYkZNdXFsSDRMbXZySTA2UEQr?= =?utf-8?B?QzlQWGU0QlUzZDhIVFFrczRRT2JSVnNsUDJHeWhvM1Q0TWhvV3JHbEUwcUcr?= =?utf-8?B?REpUWDhIRFR4U09EUUlRczA5Q1YyK1R6K0NVa0dnWnI0dlRGQmxQWW5IK2Fp?= =?utf-8?B?WGREdUMvNE1PWEVCblE1Z0UrNk5iOGZhZHRVdGg5ekw5OXkxVmRtblN1ZnR3?= =?utf-8?B?VnNaYTBzdmxGT3d5QUQvaE1OUVE0RXU1WUxBQlZiNDU5YUlzOWtYc2ZTMk54?= =?utf-8?Q?215U/nFU1fmgQ9xdFZD68h8jdlDyAqwW9nwJWjX?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08562252-7ca3-43d9-f27f-08dd4f2e417c X-MS-Exchange-CrossTenant-AuthSource: MA0PR01MB5671.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2025 08:37:04.6868 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MA0PR01MB6441 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_003719_987541_AB36CB58 X-CRM114-Status: GOOD ( 36.62 ) 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: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDIwMjUvMS8yMyA1OjMzLCBCam9ybiBIZWxnYWFzIHdyb3RlOgo+IE9uIFdlZCwgSmFuIDE1 LCAyMDI1IGF0IDAzOjA2OjU3UE0gKzA4MDAsIENoZW4gV2FuZyB3cm90ZToKPj4gRnJvbTogQ2hl biBXYW5nIDx1bmljb3JuX3dhbmdAb3V0bG9vay5jb20+Cj4+Cj4+IEFkZCBzdXBwb3J0IGZvciBQ Q0llIGNvbnRyb2xsZXIgaW4gU0cyMDQyIFNvQy4gVGhlIGNvbnRyb2xsZXIKPj4gdXNlcyB0aGUg Q2FkZW5jZSBQQ0llIGNvcmUgcHJvZ3JhbW1lZCBieSBwY2llLWNhZGVuY2UqLmMuIFRoZQo+PiBQ Q0llIGNvbnRyb2xsZXIgd2lsbCB3b3JrIGluIGhvc3QgbW9kZSBvbmx5Lgo+PiArICogcGNpZS1z ZzIwNDIgLSBQQ0llIGNvbnRyb2xsZXIgZHJpdmVyIGZvciBTb3BoZ28gU0cyMDQyIFNvQwo+IEkn bSBndWVzc2luZyB0aGlzIGlzIHRoZSBmaXJzdCBvZiBhICpmYW1pbHkqIG9mIFNvcGhnbyBTb0Nz LCBzbwo+ICJzZzIwNDIiIGxvb2tzIGxpa2UgaXQgbWlnaHQgYmUgYSBsaXR0bGUgdG9vIHNwZWNp ZmljIGlmIHRoZXJlIHdpbGwgYmUKPiB0aGluZ3MgbGlrZSAic2czMDQyIiBldGMgYWRkZWQgaW4g dGhlIGZ1dHVyZS4KQXMgSSBrbm93LCBTRzIwNDIgd2lsbCBiZSB0aGUgb25seSBvbmUgU29DIHVz aW5nIENhZGVuY2UgSVAgZnJvbSBTb3BoZ28uIApUaGV5IGhhdmUgc3dpdGNoZWQgdG8gb3RoZXIg SVAoRFdDKSBsYXRlci4KPj4gKyNpbmNsdWRlICIuLi8uLi8uLi9pcnFjaGlwL2lycS1tc2ktbGli LmgiCj4gSSBrbm93IHlvdSdyZSB1c2luZyB0aGlzIHBhdGggYmVjYXVzZSB5b3UncmUgcmVseWlu ZyBvbiBNYXJjJ3MKPiB3b3JrIGluIHByb2dyZXNzIFsxXS4KPgo+IEJ1dCBJIGRvbid0IHdhbnQg dG8gY2FycnkgYXJvdW5kIGFuICNpbmNsdWRlIGxpa2UgdGhpcyBpbiBkcml2ZXJzL3BjaQo+IHdo aWxlIHdlJ3JlIHdhaXRpbmcgZm9yIHRoYXQsIHNvIEkgdGhpbmsgeW91IHNob3VsZCB1c2UgdGhl IGV4aXN0aW5nCj4gcHVibGlzaGVkIE1TSSBtb2RlbCB1bnRpbCBhZnRlciBNYXJjJ3MgdXBkYXRl IGlzIG1lcmdlZC4gIE90aGVyd2lzZSB3ZQo+IG1pZ2h0IGVuZCB1cCB3aXRoIHRoaXMgdWdseSBw YXRoIGhlcmUgYW5kIG5vIHJlYWwgcGF0aCB0byBtaWdyYXRlIHRvCj4gdGhlIHB1Ymxpc2hlZCwg c3VwcG9ydGVkIG9uZS4KPgo+IFsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1yaXNj di8yMDI0MTIwNDEyNDU0OS42MDcwNTQtMi1tYXpAa2VybmVsLm9yZy8KT0ssIEkgd2lsbCBzd2l0 Y2ggYmFjayB0byB1c2UgdGhlIGV4aXN0aW5nIHB1Ymxpc2hlZCBNU0kgbW9kZWwuCj4+ICsgKiBT RzIwNDIgUENJZSBjb250cm9sbGVyIHN1cHBvcnRzIHR3byB3YXlzIHRvIHJlcG9ydCBNU0k6Cj4+ ICsgKgo+PiArICogLSBNZXRob2QgQSwgdGhlIFBDSWUgY29udHJvbGxlciBpbXBsZW1lbnRzIGFu IE1TSSBpbnRlcnJ1cHQgY29udHJvbGxlcgo+PiArICogICBpbnNpZGUsIGFuZCBjb25uZWN0IHRv IFBMSUMgdXB3YXJkIHRocm91Z2ggb25lIGludGVycnVwdCBsaW5lLgo+PiArICogICBQcm92aWRl cyBtZW1vcnktbWFwcGVkIE1TSSBhZGRyZXNzLCBhbmQgYnkgcHJvZ3JhbW1pbmcgdGhlIHVwcGVy IDMyCj4+ICsgKiAgIGJpdHMgb2YgdGhlIGFkZHJlc3MgdG8gemVybywgaXQgY2FuIGJlIGNvbXBh dGlibGUgd2l0aCBvbGQgUENJZSBkZXZpY2VzCj4+ICsgKiAgIHRoYXQgb25seSBzdXBwb3J0IDMy LWJpdCBNU0kgYWRkcmVzcy4KPj4gKyAqCj4+ICsgKiAtIE1ldGhvZCBCLCB0aGUgUENJZSBjb250 cm9sbGVyIGNvbm5lY3RzIHRvIFBMSUMgdXB3YXJkIHRocm91Z2ggYW4KPj4gKyAqICAgaW5kZXBl bmRlbnQgTVNJIGNvbnRyb2xsZXIgInNvcGhnbyxzZzIwNDItbXNpIiBvbiB0aGUgU09DLiBUaGUg TVNJCj4+ICsgKiAgIGNvbnRyb2xsZXIgcHJvdmlkZXMgbXVsdGlwbGUodXAgdG8gMzIpIGludGVy cnVwdCBzb3VyY2VzIHRvIFBMSUMuCj4gTWF5YmUgZXhwYW5kICJQTElDIiB0aGUgZmlyc3QgdGlt ZT8KU3VyZS4KPgo+IHMvU09DL1NvQy8gdG8gbWF0Y2ggcHJldmlvdXMgdXNlcywgZS5nLiwgaW4g Y29tbWl0IGxvZwo+IHMvbXVsdGlwbGUodXAgdG8gMzIpL3VwIHRvIDMyLwpvawo+PiArICogICBD b21wYXJlZCB3aXRoIHRoZSBmaXJzdCBtZXRob2QsIHRoZSBhZHZhbnRhZ2UgaXMgdGhhdCB0aGUg aW50ZXJydXB0Cj4+ICsgKiAgIHNvdXJjZSBpcyBleHBhbmRlZCwgYnV0IGJlY2F1c2UgZm9yIFNH MjA0MiwgdGhlIE1TSSBhZGRyZXNzIHByb3ZpZGVkIGJ5Cj4+ICsgKiAgIHRoZSBNU0kgY29udHJv bGxlciBpcyBmaXhlZCBhbmQgb25seSBzdXBwb3J0cyA2NC1iaXQgYWRkcmVzcyg+IDJeMzIpLAo+ PiArICogICBpdCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9sZCBQQ0llIGRldmljZXMgdGhhdCBv bmx5IHN1cHBvcnQgMzItYml0IE1TSQo+PiArICogICBhZGRyZXNzLgo+ICJTdXBwb3J0aW5nIDY0 LWJpdCBhZGRyZXNzIiBtZWFucyBzdXBwb3J0aW5nIGFueSBhZGRyZXNzIGZyb20gMCB0bwo+IDJe NjQgLSAxLCBidXQgSSBkb24ndCB0aGluayB0aGF0J3Mgd2hhdCB5b3UgbWVhbiBoZXJlLgo+Cj4g SSB0aGluayB3aGF0IHlvdSBtZWFuIGhlcmUgaXMgdGhhdCB3aXRoIE1ldGhvZCBCLCB0aGUgTVNJ IGFkZHJlc3MgaXMKPiBmaXhlZCBhbmQgaXQgY2FuIG9ubHkgYmUgYWJvdmUgNEdCLgpZZXMsIEkg d2lsbCBmaXggaXQuCj4+ICsjZGVmaW5lIFJFR19DTEVBUl9MSU5LMF9CSVQJMgo+PiArI2RlZmlu ZSBSRUdfQ0xFQVJfTElOSzFfQklUCTMKPj4gKyNkZWZpbmUgUkVHX1NUQVRVU19MSU5LMF9CSVQJ Mgo+PiArI2RlZmluZSBSRUdfU1RBVFVTX0xJTksxX0JJVAkzCj4+ICtzdGF0aWMgdm9pZCBzZzIw NDJfcGNpZV9tc2lfY2xlYXJfc3RhdHVzKHN0cnVjdCBzZzIwNDJfcGNpZSAqcGNpZSkKPj4gK3sK Pj4gKwl1MzIgc3RhdHVzLCBjbHJfbXNpX2luX2JpdDsKPj4gKwo+PiArCWlmIChwY2llLT5saW5r X2lkID09IDEpCj4+ICsJCWNscl9tc2lfaW5fYml0ID0gQklUKFJFR19DTEVBUl9MSU5LMV9CSVQp Owo+PiArCWVsc2UKPj4gKwkJY2xyX21zaV9pbl9iaXQgPSBCSVQoUkVHX0NMRUFSX0xJTkswX0JJ VCk7Cj4gV2h5IG5vdCBwdXQgdGhlIEJJVCgpIGluIHRoZSAjZGVmaW5lcyBmb3IgUkVHX0NMRUFS X0xJTkswX0JJVCwKPiBSRUdfU1RBVFVTX0xJTkswX0JJVCwgLi4uPyAgVGhlbiB0aGlzIGNvZGUg aXMgc2xpZ2h0bHkgc2ltcGxlciwgYW5kCj4geW91IGNhbiB1c2Ugc2ltaWxhciBzdHlsZSBpbiBz ZzIwNDJfcGNpZV9tc2lfY2hhaW5lZF9pc3IoKSBpbnN0ZWFkIG9mCj4gc2hpZnRpbmcgdGhlcmUu Ck9rLCBJIHdpbGwgY2hlY2sgdGhpcyBvdXQgaW4gbmV3IHZlcnNpb24uCj4+ICsJcmVnbWFwX3Jl YWQocGNpZS0+c3lzY29uLCBSRUdfQ0xFQVIsICZzdGF0dXMpOwo+PiArCXN0YXR1cyB8PSBjbHJf bXNpX2luX2JpdDsKPj4gKwlyZWdtYXBfd3JpdGUocGNpZS0+c3lzY29uLCBSRUdfQ0xFQVIsIHN0 YXR1cyk7Cj4+ICtzdGF0aWMgdm9pZCBzZzIwNDJfcGNpZV9tc2lfaXJxX2NvbXBvc2VfbXNpX21z ZyhzdHJ1Y3QgaXJxX2RhdGEgKmQsCj4+ICsJCQkJCQlzdHJ1Y3QgbXNpX21zZyAqbXNnKQo+PiAr ewo+PiArCXN0cnVjdCBzZzIwNDJfcGNpZSAqcGNpZSA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9k YXRhKGQpOwo+PiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaWUtPmNkbnNfcGNpZS0+ZGV2Owo+ PiArCj4+ICsJbXNnLT5hZGRyZXNzX2xvID0gbG93ZXJfMzJfYml0cyhwY2llLT5tc2lfcGh5cykg KyBCWVRFX05VTV9QRVJfTVNJX1ZFQyAqIGQtPmh3aXJxOwo+PiArCW1zZy0+YWRkcmVzc19oaSA9 IHVwcGVyXzMyX2JpdHMocGNpZS0+bXNpX3BoeXMpOwo+IFRoaXMgc2VlbXMgYSBsaXR0bGUgc3Vz cGVjdCBiZWNhdXNlIGFkZGluZyAiQllURV9OVU1fUEVSX01TSV9WRUMgKgo+IGQtPmh3aXJxIiBj b3VsZCBjYXVzZSBvdmVyZmxvdyBpbnRvIHRoZSB1cHBlciAzMiBiaXRzLiAgSSB0aGluayB5b3UK PiBzaG91bGQgYWRkIGZpcnN0LCB0aGVuIHRha2UgdGhlIGxvd2VyL3VwcGVyIDMyIGJpdHMgb2Yg dGhlIDY0LWJpdAo+IHJlc3VsdC4KT0ssIEkgd2lsbCBjaGVjayB0aGlzIG91dCBpbiBuZXcgdmVy c2lvbi4KPj4gKwlpZiAoZC0+aHdpcnEgPiBwY2llLT5udW1fYXBwbGllZF92ZWNzKQo+PiArCQlw Y2llLT5udW1fYXBwbGllZF92ZWNzID0gZC0+aHdpcnE7Cj4gIm51bV9hcHBsaWVkX3ZlY3MiIGlz IGEgYml0IG9mIGEgbWlzbm9tZXI7IGl0J3MgYWN0dWFsbHkgdGhlICptYXgqCj4gaHdpcnEuCiJt YXhfYXBwbGllZF92ZWNzIu+8nwo+Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5f b3BzIHNnMjA0Ml9wY2llX21zaV9kb21haW5fb3BzID0gewo+PiArCS5hbGxvYwk9IHNnMjA0Ml9w Y2llX2lycV9kb21haW5fYWxsb2MsCj4+ICsJLmZyZWUJPSBzZzIwNDJfcGNpZV9pcnFfZG9tYWlu X2ZyZWUsCj4gTWVudGlvbiAibXNpIiBpbiB0aGVzZSBmdW5jdGlvbiBuYW1lcywgZS5nLiwKPiBz ZzIwNDJfcGNpZV9tc2lfZG9tYWluX2FsbG9jKCkuCm9rCj4KPj4gK3N0YXRpYyBpbnQgc2cyMDQy X3BjaWVfaW5pdF9tc2lfZGF0YShzdHJ1Y3Qgc2cyMDQyX3BjaWUgKnBjaWUpCj4+ICt7Cj4+IC4u Lgo+PiArCS8qIFByb2dyYW0gdGhlIE1TSSBhZGRyZXNzIGFuZCBzaXplICovCj4+ICsJaWYgKHBj aWUtPmxpbmtfaWQgPT0gMSkgewo+PiArCQlyZWdtYXBfd3JpdGUocGNpZS0+c3lzY29uLCBSRUdf TElOSzFfTVNJX0FERFJfTE9XLAo+PiArCQkJICAgICBsb3dlcl8zMl9iaXRzKHBjaWUtPm1zaV9w aHlzKSk7Cj4+ICsJCXJlZ21hcF93cml0ZShwY2llLT5zeXNjb24sIFJFR19MSU5LMV9NU0lfQURE Ul9ISUdILAo+PiArCQkJICAgICB1cHBlcl8zMl9iaXRzKHBjaWUtPm1zaV9waHlzKSk7Cj4+ICsK Pj4gKwkJcmVnbWFwX3JlYWQocGNpZS0+c3lzY29uLCBSRUdfTElOSzFfTVNJX0FERFJfU0laRSwg JnZhbHVlKTsKPj4gKwkJdmFsdWUgPSAodmFsdWUgJiBSRUdfTElOSzFfTVNJX0FERFJfU0laRV9N QVNLKSB8IE1BWF9NU0lfSVJRUzsKPj4gKwkJcmVnbWFwX3dyaXRlKHBjaWUtPnN5c2NvbiwgUkVH X0xJTksxX01TSV9BRERSX1NJWkUsIHZhbHVlKTsKPj4gKwl9IGVsc2Ugewo+PiArCQlyZWdtYXBf d3JpdGUocGNpZS0+c3lzY29uLCBSRUdfTElOSzBfTVNJX0FERFJfTE9XLAo+PiArCQkJICAgICBs b3dlcl8zMl9iaXRzKHBjaWUtPm1zaV9waHlzKSk7Cj4+ICsJCXJlZ21hcF93cml0ZShwY2llLT5z eXNjb24sIFJFR19MSU5LMF9NU0lfQUREUl9ISUdILAo+PiArCQkJICAgICB1cHBlcl8zMl9iaXRz KHBjaWUtPm1zaV9waHlzKSk7Cj4+ICsKPj4gKwkJcmVnbWFwX3JlYWQocGNpZS0+c3lzY29uLCBS RUdfTElOSzBfTVNJX0FERFJfU0laRSwgJnZhbHVlKTsKPj4gKwkJdmFsdWUgPSAodmFsdWUgJiBS RUdfTElOSzBfTVNJX0FERFJfU0laRV9NQVNLKSB8IChNQVhfTVNJX0lSUVMgPDwgMTYpOwo+PiAr CQlyZWdtYXBfd3JpdGUocGNpZS0+c3lzY29uLCBSRUdfTElOSzBfTVNJX0FERFJfU0laRSwgdmFs dWUpOwo+PiArCX0KPiBXb3VsZCBiZSBuaWNlciB0byBzZXQgdGVtcG9yYXJpZXMgdG8gdGhlIGxp bmtfaWQtZGVwZW5kZW50IHZhbHVlcyAoYXMKPiB5b3UgZGlkIGVsc2V3aGVyZSkgc28gaXQncyBv YnZpb3VzIHRoYXQgdGhlIGNvZGUgaXMgaWRlbnRpY2FsLCBlLmcuLAo+Cj4gICAgaWYgKHBjaWUt PmxpbmtfaWQgPT0gMSkgewo+ICAgICAgbXNpX2FkZHIgPSBSRUdfTElOSzFfTVNJX0FERFJfTE9X Owo+ICAgICAgbXNpX2FkZHJfc2l6ZSA9IFJFR19MSU5LMV9NU0lfQUREUl9TSVpFOwo+ICAgICAg bXNpX2FkZHJfc2l6ZV9tYXNrID0gUkVHX0xJTksxX01TSV9BRERSX1NJWkU7Cj4gICAgfSBlbHNl IHsKPiAgICAgIC4uLgo+ICAgIH0KPgo+ICAgIHJlZ21hcF93cml0ZShwY2llLT5zeXNjb24sIG1z aV9hZGRyLCBsb3dlcl8zMl9iaXRzKHBjaWUtPm1zaV9waHlzKSk7Cj4gICAgcmVnbWFwX3dyaXRl KHBjaWUtPnN5c2NvbiwgbXNpX2FkZHIgKyA0LCB1cHBlcl8zMl9iaXRzKHBjaWUtPm1zaV9waHlz KSk7Cj4gICAgLi4uCk9r77yMSSB3aWxsIGNoZWNrIHRoaXMgb3V0Lgo+PiArCj4+ICsJcmV0dXJu IDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpcnFyZXR1cm5fdCBzZzIwNDJfcGNpZV9tc2lfaGFu ZGxlX2lycShzdHJ1Y3Qgc2cyMDQyX3BjaWUgKnBjaWUpCj4gV2hpY2ggZHJpdmVyIGFyZSB5b3Ug dXNpbmcgYXMgYSB0ZW1wbGF0ZSBmb3IgZnVuY3Rpb24gbmFtZXMgYW5kIGNvZGUKPiBzdHJ1Y3R1 cmU/ICBUaGVyZSBhcmUgcHJvYmFibHkgYSBkb3plbiBkaWZmZXJlbnQgbmFtZXMgZm9yIGZ1bmN0 aW9ucwo+IHRoYXQgaXRlcmF0ZSBsaWtlIHRoaXMgYXJvdW5kIGEgY2FsbCB0byBnZW5lcmljX2hh bmRsZV9kb21haW5faXJxKCksCj4gYnV0IHlvdSd2ZSBtYW5hZ2VkIHRvIGNvbWUgdXAgd2l0aCBh IG5ldyBvbmUuICBJZiB5b3UgY2FuIHBpY2sgYQo+IHNpbWlsYXIgbmFtZSB0byBjb3B5LCBpdCBt YWtlcyBpdCBlYXNpZXIgdG8gY29tcGFyZSBkcml2ZXJzIGFuZCBmaW5kCj4gYW5kIGZpeCBkZWZl Y3RzIGFjcm9zcyB0aGVtLgo+Cj4+ICt7Cj4+ICsJdTMyIGksIHBvczsKPj4gKwl1bnNpZ25lZCBs b25nIHZhbDsKPj4gKwl1MzIgc3RhdHVzLCBudW1fdmVjdG9yczsKPj4gKwlpcnFyZXR1cm5fdCBy ZXQgPSBJUlFfTk9ORTsKPj4gKwo+PiArCW51bV92ZWN0b3JzID0gcGNpZS0+bnVtX2FwcGxpZWRf dmVjczsKPj4gKwlmb3IgKGkgPSAwOyBpIDw9IG51bV92ZWN0b3JzOyBpKyspIHsKPj4gKwkJc3Rh dHVzID0gcmVhZGwoKHZvaWQgKikocGNpZS0+bXNpX3ZpcnQgKyBpICogQllURV9OVU1fUEVSX01T SV9WRUMpKTsKPj4gKwkJaWYgKCFzdGF0dXMpCj4+ICsJCQljb250aW51ZTsKPj4gKwo+PiArCQly ZXQgPSBJUlFfSEFORExFRDsKPj4gKwkJdmFsID0gc3RhdHVzOwo+IEkgZG9uJ3QgdGhpbmsgeW91 IG5lZWQgYm90aCB2YWwgYW5kIHN0YXR1cy4KWWVzLCBJIHdpbGwgZml4IHRoaXMuCj4KPj4gKwkJ cG9zID0gMDsKPj4gKwkJd2hpbGUgKChwb3MgPSBmaW5kX25leHRfYml0KCZ2YWwsIE1BWF9NU0lf SVJRU19QRVJfQ1RSTCwKPj4gKwkJCQkJICAgIHBvcykpICE9IE1BWF9NU0lfSVJRU19QRVJfQ1RS TCkgewo+IE1vc3QgZHJpdmVycyB1c2UgZm9yX2VhY2hfc2V0X2JpdCgpIGhlcmUuCk9rLCBJIHdp bGwgY2hlY2sgdGhpcyBvdXQuCj4+ICsJCQlnZW5lcmljX2hhbmRsZV9kb21haW5faXJxKHBjaWUt Pm1zaV9kb21haW4sCj4+ICsJCQkJCQkgIChpICogTUFYX01TSV9JUlFTX1BFUl9DVFJMKSArCj4+ ICsJCQkJCQkgIHBvcyk7Cj4+ICsJCQlwb3MrKzsKPj4gKwkJfQo+PiArCQl3cml0ZWwoMCwgKCh2 b2lkICopKHBjaWUtPm1zaV92aXJ0KSArIGkgKiBCWVRFX05VTV9QRVJfTVNJX1ZFQykpOwo+PiAr CX0KPj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArc3RhdGljIGludCBzZzIwNDJfcGNpZV9zZXR1 cF9tc2koc3RydWN0IHNnMjA0Ml9wY2llICpwY2llLAo+PiArCQkJCSBzdHJ1Y3QgZGV2aWNlX25v ZGUgKm1zaV9ub2RlKQo+PiArewo+PiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaWUtPmNkbnNf cGNpZS0+ZGV2Owo+PiArCXN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUgPSBvZl9ub2RlX3Rv X2Z3bm9kZShkZXYtPm9mX25vZGUpOwo+PiArCXN0cnVjdCBpcnFfZG9tYWluICpwYXJlbnRfZG9t YWluOwo+PiArCWludCByZXQgPSAwOwo+IFBvaW50bGVzcyBpbml0aWFsaXphdGlvbiBvZiAicmV0 Ii4KWWVzLCBJIHdpbGwgZml4IHRoaXMuCj4+ICsJaWYgKCFvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wo bXNpX25vZGUsICJtc2ktY29udHJvbGxlciIpKQo+PiArCQlyZXR1cm4gLUVOT0RFVjsKPj4gKwo+ PiArCXJldCA9IG9mX2lycV9nZXRfYnluYW1lKG1zaV9ub2RlLCAibXNpIik7Cj4+ICsJaWYgKHJl dCA8PSAwKSB7Cj4+ICsJCWRldl9lcnIoZGV2LCAiJXBPRjogZmFpbGVkIHRvIGdldCBNU0kgaXJx XG4iLCBtc2lfbm9kZSk7Cj4+ICsJCXJldHVybiByZXQ7Cj4+ICsJfQo+PiArCXBjaWUtPm1zaV9p cnEgPSByZXQ7Cj4+ICsKPj4gKwlpcnFfc2V0X2NoYWluZWRfaGFuZGxlcl9hbmRfZGF0YShwY2ll LT5tc2lfaXJxLAo+PiArCQkJCQkgc2cyMDQyX3BjaWVfbXNpX2NoYWluZWRfaXNyLCBwY2llKTsK Pj4gKwo+PiArCXBhcmVudF9kb21haW4gPSBpcnFfZG9tYWluX2NyZWF0ZV9saW5lYXIoZndub2Rl LCBNU0lfREVGX05VTV9WRUNUT1JTLAo+PiArCQkJCQkJICZzZzIwNDJfcGNpZV9tc2lfZG9tYWlu X29wcywgcGNpZSk7Cj4gV3JhcCB0byBmaXQgaW4gODAgY29sdW1ucyBsaWtlIDk5JSBvZiB0aGUg cmVzdCBvZiB0aGlzIGZpbGUuCgpPaywgSSB3aWxsIGNoZWNrIHRoaXMgb3V0LgoKVGhhbmtzLAoK Q2hlbgoKPgo+IEJqb3JuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJpc2N2Cg==