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 D1D95C38145 for ; Wed, 7 Sep 2022 03:51:58 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pd+60IhDr3RIWAFMeDO56JTOF02eXwndBa0EyxdD+MA=; b=5BmLmsbBTYNPOj NmLw7YGwD985PCtB0A1JaKhf5ClwTHtjTm8uE1Y265unFCKbdkMwPVZSJA7UZIm8sIRdRxtp8m2Gp 5FifMiiU5jFfYEXVqbKXsYCk8qLTsNhu98M5+X7oLyDD0a14JThry3hZPHqcMMIUEHJmf7t+EZEIV czUL95dVx11u5/c2w3mb5QD2kwGLVoirODKQQnHumCiPnTXYuED8Nd18CL5Yo5GcZne3tNRx1mcui E9zjNmKjkCJFtqgs8eijIB8wGiBw+Ya9rIJt8MVaLoYVySI2U6lN6efEl9CXyBmerfqj5RkK0VvKK tb5k69NkkB6RbeKfHtyA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVm4w-002BJZ-VL; Wed, 07 Sep 2022 03:50:20 +0000 Received: from mail-eopbgr60053.outbound.protection.outlook.com ([40.107.6.53] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVm4N-002B36-Hw for linux-arm-kernel@lists.infradead.org; Wed, 07 Sep 2022 03:49:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kkljXKNRjXIdwrYclky8NAdEFhph9Vk56Eecj+fZdS6DH+nMrSRwnfASVwucbvgDT2A4JNyVVLBDLPls/kJSM+uS7xxIPg+sxfL4deeqbdyHWZu5rP8aGKX+PJ6tDzsxln+WAsbn/gW5776zyrCs2UaO2rSgSLSqt9CI8u+qfz70LSf4W59D3ZDfi3J4rHdOktFXm9HbH3Hm3UdcvtN1s9zKS3LRfPHMr3bqq7IksWmn2+La9J9+Wgy8e3c/vyLd2DuSS5d2TW5WE9Pt+5Cv6a8tvzMkP2VEK7Qj5RwKhhoq/D0WHvUgc+4QTzZwjt8lh8ruGUSAbw1gYM2inlv4TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=luNuA87ZdAV700jTSvPtoctsb3rd8ltqs7Sjx4ZnBbs=; b=P+BuxFVMr4A+xNuXw/q3VkLb2DA+FqC2ENevFcQcA6QUaL6wZ58Pye2J0bhg8IACb90lY+5y9wCCkGW98kE5wG68qVn9AAUbQuEnHAbj05+24id/7DMALbYZrsGJhPzdIp+7shbs1IqT3/ADfLLj6h4BoKCh7GXQfzXWqjvh2mkbf+t6nxAjr/ggt11K1EzrtvCkCI9DO3Rwt0YvGensi+gC2m6m9xxg+jrMaILyN7S63RnAXIlCf27zzjV234umhTYtq6+PCNU43NOrO+8Vubqv7wJVfywFxb9mCdzecaJeq1CYmpZoPed7YkEnabfz/xtv46FOaJWd/OhjyCx46w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=luNuA87ZdAV700jTSvPtoctsb3rd8ltqs7Sjx4ZnBbs=; b=o3gipIqWl8liCxzF6m2AKVJ+UdUonDySIsou1bh1ncvWKSZTPBe/QSBTPSPBtJxgKkjMLLf+KeMyF198ghTB+K/g+O2JUOp5BcgpTeeIciWw2o1CxEE2wxhKDdnSubX9a7WzkVOo/bixKBhtZbSu0Za4FYYLE9q+OXRrutCsp5A= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8793.eurprd04.prod.outlook.com (2603:10a6:20b:408::22) by DB7PR04MB4970.eurprd04.prod.outlook.com (2603:10a6:10:13::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.17; Wed, 7 Sep 2022 03:49:38 +0000 Received: from AM9PR04MB8793.eurprd04.prod.outlook.com ([fe80::1c3e:36a0:1adc:beb]) by AM9PR04MB8793.eurprd04.prod.outlook.com ([fe80::1c3e:36a0:1adc:beb%9]) with mapi id 15.20.5612.012; Wed, 7 Sep 2022 03:49:38 +0000 From: Frank Li To: maz@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kw@linux.com, bhelgaas@google.com Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, peng.fan@nxp.com, aisheng.dong@nxp.com, jdmason@kudzu.us, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, kishon@ti.com, lorenzo.pieralisi@arm.com, ntb@lists.linux.dev, lznuaa@gmail.com, imx@lists.linux.dev, manivannan.sadhasivam@linaro.org Subject: [PATCH v9 4/4] PCI: endpoint: Add vNTB MSI support Date: Tue, 6 Sep 2022 22:48:56 -0500 Message-Id: <20220907034856.3101570-5-Frank.Li@nxp.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220907034856.3101570-1-Frank.Li@nxp.com> References: <20220907034856.3101570-1-Frank.Li@nxp.com> X-ClientProxiedBy: BY3PR04CA0009.namprd04.prod.outlook.com (2603:10b6:a03:217::14) To AM9PR04MB8793.eurprd04.prod.outlook.com (2603:10a6:20b:408::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8793:EE_|DB7PR04MB4970:EE_ X-MS-Office365-Filtering-Correlation-Id: a2cf3b95-a5c3-408e-8613-08da9083fcb3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Cht3AwCiBRY7UPgt40QhIkjdgXHSvtAo/nMJGbRXM1PF+3X2cxn3cH9nl3jNWFzv1P5FhzttK5yLL3Rl3IB8tAwjePUNRAVIc3hvlt9e5xV2MqwwpmatkxnU2n1fxoFkBfP3AJVc3uA1Gr2rON3pFJHHuopRo48Q08PK72qhzPpys1PC5iYR4C/bNabfA3wPRLqIGdteuUgDxJwI8oZY5D1xCeiY4E+5qFKV/aqSNQEVRYbfFs/1eUSwWi6Mmi/OgI7CqadMcE/xaD7tW6s8iiDztLvbpUpgGlWOAqbSvu2WYTo/QkxP15vMxCgihwU1OsDarnCiOeYaHPTW4QZarjJDSxrtI4IGGr+SIzws8pQ+pHePoD2l1jMzrcyQQm7wxqY1sJaH76PGcN9tpgwZ5G/CoBEEIZnYLPgvrw1XkbZHZvvlWwk38VpaYntfLNi0Lx+7iCQ0qjXfbMksmnFAH3Ii+DaE/BXXxMeS02KFw1gRJkFQigmlCCVaIaii6npAZel+ny1+JEshaWA4hQ7dDnbOTxWdEXOEyB6aOML90TVRKAD/uwcNReHe+gg+xrsJLKZ5lBE5agcLRLkDrr0RxjZH4FfxUjAXTazXXIG6OZSg4JBcv5Bt7n/eGz39cYgeog0f1tw70Ke+Ke65SLVE8xWExm7MqAolxL9WDegl4mt8qxKuEQhnnKb2QUv6ZjXk7+T5vO/aaQ5knUr+th969t2sy3Gior7jtpw6grqK9FXysHFUun4WfTDIFWd4bNBTCBzXuLIXRCKKWyOhd3vg/w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8793.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(396003)(346002)(376002)(39860400002)(136003)(186003)(478600001)(2616005)(1076003)(66946007)(83380400001)(8676002)(4326008)(66556008)(66476007)(6506007)(36756003)(52116002)(41300700001)(26005)(6666004)(6486002)(6512007)(7416002)(86362001)(38350700002)(8936002)(5660300002)(2906002)(38100700002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Mm4vSWxjRlVlcy9xRlA2NWEvM1dOZUVlQ1FoK01qYUFMTUtEYnYzOHdjczI5?= =?utf-8?B?aFJGQWsvclVIUWxnVkVKaUFWVUQ1aUlCYVhmTVcwQWU0K3lUVG9wNlhYTUN0?= =?utf-8?B?UWVPTm1OMFNmM2JiczFMeUpCRVBNc1J2dEduaktLV2RZQ2V4Sk13QTdFVG1J?= =?utf-8?B?dVB1RGZSbXZvMVQ2M1dqN0MyOTBOeDYyeVdjcTJqYWRTVG5QV1djay9TUjMy?= =?utf-8?B?WHY4V1hPd2k2bko4MHN0aFN1NmI3dzlZaHhMaUJZT2J0ZDgvbWdRYWplc1hL?= =?utf-8?B?NUJ1Sjc0TEVYMDBJdDNiSmxsQ2VMQzZHc2pob2lvaEJpd0JrQVh6VWcwN0Q0?= =?utf-8?B?YWZ5aUFMS2hIYXYrZ0c0Ris0cENqanp1ZzJ6d21WVjE5RG5QTTJJalBSeEVC?= =?utf-8?B?VCtRNHB2MHc1NTBMaTdlZ1BSWHpXb1RXb1dwUS9PQUx4Y3UycElOMXczSDhD?= =?utf-8?B?Z2Q2QkZyMng4c1ZsZnppTklLQjNoZnZNR3dZVm9DRlludkJQOW91elZ5QTM2?= =?utf-8?B?VjN5MEt2WmozUUtzZ282V1REQUVwYTJER2lqSzlHVU9uRUxTNGxBbTQzb1k3?= =?utf-8?B?WWY3Q0FzMzYrbnZzQUE1RkhyM0tBSGVMQ2hTVlZBUXBaMlVwajJHK2ZPZnJk?= =?utf-8?B?d2lJTHNlRDduQVBiN0l3WVhnMlVUbVpmSEo2b2ZYT2NnY2tIWC9oNjhLSjVH?= =?utf-8?B?dU42aC8yTXU4VUYxYXdVcnk5bHNXNkdBYmQ5dFZLMEovUkhZclRnL1NRcFdE?= =?utf-8?B?Zlc1Tms5WG9HZHdYbXlkSGRnbzhMYlllVndWTlloanF3VjZ3dDVWelBlQVBZ?= =?utf-8?B?S3NhQ3lvdS9VLzQraDNRdjZjUEgySDBVUWs2eEQvUlhSRGh1S0gxUy8xRXlh?= =?utf-8?B?MXFUU29HdWRGRWlDMGdVcHFzVVYrWk5RNFFWa210d3prcDMvcE9xck56Um1y?= =?utf-8?B?K2p3ZFZLa09NaWRzMnFYcVBsMDhRSEZyaFdBaEJnR0p5dXZSMVlYaitYZmtG?= =?utf-8?B?MmNYdGx5VVRUdGZjYVRIWUppRGxJZ1NnNE9aYUZRaTgwcUdrRFcrcGo1bFp0?= =?utf-8?B?Mm9XQURYNWkrNUdEQmhhakduYXlNczFKK201QTFUeFlGTzB1MStjUnhPUzhh?= =?utf-8?B?RU54RzlvWHhXamhIZkZaRGpKbEdrb1BqbzA3Z1RoUjBZSzRuQ3QvbEtXOFN4?= =?utf-8?B?TG1aRkJJb25HdElyeS9XZHJMTWVpZHlYVkhkK241NDR3d2pNeG4zOWtBbTRH?= =?utf-8?B?d3ZzQTArakNUeG1uZ21wS2ladGpWaExzVzZFWlUralBMWjFjRHE1VmhPMFlR?= =?utf-8?B?NVBwdmxLd3U5Y0dYYmx4NmxXaEVIVUtLSzdiclE5eTZ0UkFXYnBjbDh6V2NK?= =?utf-8?B?MFpDcno2OUpFelM4dHZlMFZFSHZ5STJVNTc5THpibXRINHlJTmMzd0VTb3Q1?= =?utf-8?B?cG9zUW9MUUpGNVZmU2R1VTdYcldmR2tvQ0hhbVEralFnVU5ZZmxZcGRJMStJ?= =?utf-8?B?RHkyVWFBOUtoM1hqQmFXbkcvN1BHWGgwdURMMTgzb2MzNXYrOW54dDNWbFU3?= =?utf-8?B?T2dHVytnQTlhb2IrZzJsMTlJUkcrb1F6QWVvY3hLeDM1M3BNbmIwMU9aQjhK?= =?utf-8?B?NXFGeEx0MWcvNThzVWlVVnIrMWpKS0FIa24yZUZvTlk4ZWp4U3N0WVBGTmlD?= =?utf-8?B?bUtMS01HbTFWaVhrU2FSVlZRbWFxQ1NBT3VWRFpKcmV0WEhFVWJneVJJSHdp?= =?utf-8?B?UDhSb3BCTXdLL2JQMEIvUVUvT2VXc3pOMit0b2NWeTR1Y3U4ckFlN3JBeHNx?= =?utf-8?B?MU1IYndmR0ZMeEZRdnJhWkM3bkNpT2ovQ1pmcTFqS0o0TFhvd2VDNUhpWlNY?= =?utf-8?B?VExJd1V4NG9ZaUErL0FxUWllVkZkcWxLVXFxb0RxbGhPN2ljK2VQL011ZFUv?= =?utf-8?B?bEUrQlZ3SFYvZEM4bkZuTkpOQW1Sd1d0WHF6L1BrUDE1ZStHRGlCQk45M05Y?= =?utf-8?B?c3M4QUNOTnUwRkYweGIrY2ErWmI1bVhCcTQvWWVEK1lraTNDQW81RWt0WEpt?= =?utf-8?B?WjhMSnZPV0x3TUpHcTQzSVMxbTNaaVRkc0pneWhuT05aa1dwOXFyZDZGTXhC?= =?utf-8?Q?TbHhX31QUZuOrG2nsvb/42KyJ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a2cf3b95-a5c3-408e-8613-08da9083fcb3 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8793.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2022 03:49:38.2960 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kHGN81tG3vZ1I0yfbjLz9uXdFKlK5d7YAb4tae/dWS6KBuii8+NeiR/+7BeXi8taNt2bZ1ia7Ti31Arb1G/ugg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4970 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220906_204943_757319_5AE60D7A X-CRM114-Status: GOOD ( 22.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org ICAgICAgICAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICAgICAg ICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKICAgICAgICAg ICAgICAgICAgICAgIOKUgiAgICAgICDilIIgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAg IOKUggogICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg 4pSCIFBDSSAgIOKUgiAgICAgICAgICAgICAgICAgICDilIIgUENJIEhvc3Qg4pSCCiAgICDilIIg TVNJICAgICAgICAg4pSC4peE4pSQIOKUgiBFUCAgICDilIIgICAgICAgICAgICAgICAgICAg4pSC ICAgICAgICAgIOKUggogICAg4pSCIENvbnRyb2xsZXIgIOKUgiDilIIg4pSCICAgICAgIOKUgiAz Lk1TSSBXcml0ZSAgICAgICDilIIgICAgICAgICAg4pSCCiAgICDilJTilIDilIDilIDilIDilIDi lIDilIDilIDilKzilIDilIDilIDilIDilJgg4pSU4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSkICAgICAgICAgIOKUggogICAgICDilrIgICAgICDilIIgICAgICAgIOKUgiAgICAgICDi lIIgICAgICAgICAgICAgICAgICAg4pSc4pSAQkFSX24gICAg4pSCCiAgICAgIOKUgiAgICAgIOKU lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWuuKUgiAg ICAgICAgICDilIIKICAgICAg4pSCICAgICAgICAgICAgICAg4pSCICAgICAgIOKUgiAyLkNhbGwg QmFjayAgICAgICDilIIgICAgICAgICAg4pSCCiAgICAgIOKUgiAgICAgICAgICAgICAgIOKUgiAg ICAgICDilIIgICB3cml0ZV9tc2lfbXNnKCkg4pSCICAgICAgICAgIOKUggogICAgICDilIIgICAg ICAgICAgICAgICDilIIgICAgICAg4pSCICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICDi lIIKICAgICAg4pSCICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSYICAg ICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAogICAg ICDilIIgICAgICAgICAgICAgICAgICAg4pSCCiAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAogICAgICAxLnBsYXRmb3Jt X21zaV9kb21haW5fYWxsb2NfaXJxcygpCgpUaGVyZSBpcyBubyBkZWZpbmVkIHdheSBvZiByYWlz aW5nIElSUXMgYnkgUENJIGhvc3QgdG8gdGhlIFBDSSBlbmRwb2ludC4KT25seSBkZWZpbmUgTVNJ L01TSS1YIHRvIGxldCBFUCBub3RpZmllZCBSQyBzdGF0dXMgY2hhbmdlLgoKVGhlIG1lbW9yeSBh c3NpZ25lZCBmb3IgQkFSIHJlZ2lvbiBieSB0aGUgUENJIGhvc3QgaXMgbWFwcGVkIHRvIHRoZQpt ZXNzYWdlIGFkZHJlc3Mgb2YgcGxhdGZvcm0gbXNpIGludGVycnVwdCBjb250cm9sbGVyIGluIFBD SSBFbmRwb2ludC4KU3VjaCB0aGF0LCB3aGVuZXZlciB0aGUgUENJIGhvc3Qgd3JpdGVzIHRvIHRo ZSBCQVIgcmVnaW9uLCBpdCB3aWxsCnRyaWdnZXIgYW4gSVJRIGluIHRoZSBFbmRwb2ludC4KCkJh c2ljIHdvcmtpbmcgZm9sbG93IGFzCjEuIEVQIGZ1bmN0aW9uIGRyaXZlciBjYWxsIHBsYXRmb3Jt X21zaV9kb21haW5fYWxsb2NfaXJxcygpIGFsbG9jIGEKTVNJIGlycSBmcm9tIE1TSSBjb250cm9s bGVyIHdpdGggY2FsbCBiYWNrIGZ1bmN0aW9uIHdyaXRlX21zaV9tc2coKTsKMi4gd3JpdGVfbXNn X21zZyB3aWxsIGNvbmZpZyBCQVIgYW5kIG1hcCB0byBhZGRyZXNzIGRlZmluZWQgaW4gbXNpX21z ZzsKMy4gSG9zdCBzaWRlIHRyaWdnZXIgYW4gSVJRIGluIEVuZHBvaW50IGJ5IHdyaXRlIHRvIEJB UiByZWdpb24uCgpBZGQgTVNJIHN1cHBvcnQgZm9yIHBjaS1lcGYtdm50Yi4gUXVlcnkgaWYgc3lz dGVtIGhhcyBhbiBNU0kgY29udHJvbGxlci4KU2V0IHVwIGRvb3JiZWxsIGFkZHJlc3MgYWNjb3Jk aW5nIHRvIHN0cnVjdCBtc2lfbXNnLgoKU28gUENJIFJDIGNhbiB3cml0ZSB0aGlzIGRvb3JiZWxs IGFkZHJlc3MgdG8gdHJpZ2dlciBFUCBzaWRlJ3MgSVJRLgoKSWYgbm8gTVNJIGNvbnRyb2xsZXIg ZXhpc3RzLCBmYWxsIGJhY2sgdG8gc29mdHdhcmUgcG9sbGluZy4KClNpZ25lZC1vZmYtYnk6IEZy YW5rIExpIDxGcmFuay5MaUBueHAuY29tPgotLS0KIGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0 aW9ucy9wY2ktZXBmLXZudGIuYyB8IDE1NSArKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jIGIvZHJpdmVycy9wY2kv ZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jCmluZGV4IDE0NjZkZDE5MDQxNzUuLjQy NjIwNWI5ODBhMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9w Y2ktZXBmLXZudGIuYworKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVw Zi12bnRiLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2ktZXBjLmg+CiAj aW5jbHVkZSA8bGludXgvcGNpLWVwZi5oPgogI2luY2x1ZGUgPGxpbnV4L250Yi5oPgorI2luY2x1 ZGUgPGxpbnV4L21zaS5oPgogCiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmtwY2lu dGJfd29ya3F1ZXVlOwogCkBAIC0xMzYsMTMgKzEzNywxNSBAQCBzdHJ1Y3QgZXBmX250YiB7CiAK IAlzdHJ1Y3QgZXBmX250Yl9jdHJsICpyZWc7CiAKLQlwaHlzX2FkZHJfdCBlcGZfZGJfcGh5Owor CXBoeXNfYWRkcl90IGVwZl9kYl9waHlzOwogCXZvaWQgX19pb21lbSAqZXBmX2RiOwogCiAJcGh5 c19hZGRyX3QgdnBjaV9td19waHlbTUFYX01XXTsKIAl2b2lkIF9faW9tZW0gKnZwY2lfbXdfYWRk cltNQVhfTVddOwogCiAJc3RydWN0IGRlbGF5ZWRfd29yayBjbWRfaGFuZGxlcjsKKworCWludCBt c2lfdmlycWJhc2U7CiB9OwogCiAjZGVmaW5lIHRvX2VwZl9udGIoZXBmX2dyb3VwKSBjb250YWlu ZXJfb2YoKGVwZl9ncm91cCksIHN0cnVjdCBlcGZfbnRiLCBncm91cCkKQEAgLTI1MywxMyArMjU2 LDE1IEBAIHN0YXRpYyB2b2lkIGVwZl9udGJfY21kX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQogCiAJbnRiID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBlcGZfbnRiLCBjbWRf aGFuZGxlci53b3JrKTsKIAotCWZvciAoaSA9IDE7IGkgPCBudGItPmRiX2NvdW50OyBpKyspIHsK LQkJaWYgKHJlYWRsKG50Yi0+ZXBmX2RiICsgaSAqIDQpKSB7Ci0JCQlpZiAocmVhZGwobnRiLT5l cGZfZGIgKyBpICogNCkpCi0JCQkJbnRiLT5kYiB8PSAxIDw8IChpIC0gMSk7CisJaWYgKCFudGIt PmVwZl9kYl9waHlzKSB7CisJCWZvciAoaSA9IDE7IGkgPCBudGItPmRiX2NvdW50OyBpKyspIHsK KwkJCWlmIChyZWFkbChudGItPmVwZl9kYiArIGkgKiA0KSkgeworCQkJCWlmIChyZWFkbChudGIt PmVwZl9kYiArIGkgKiA0KSkKKwkJCQkJbnRiLT5kYiB8PSAxIDw8IChpIC0gMSk7CiAKLQkJCW50 Yl9kYl9ldmVudCgmbnRiLT5udGIsIGkpOwotCQkJd3JpdGVsKDAsIG50Yi0+ZXBmX2RiICsgaSAq IDQpOworCQkJCW50Yl9kYl9ldmVudCgmbnRiLT5udGIsIGkpOworCQkJCXdyaXRlbCgwLCBudGIt PmVwZl9kYiArIGkgKiA0KTsKKwkJCX0KIAkJfQogCX0KIApAQCAtNDU0LDExICs0NTksOSBAQCBz dGF0aWMgaW50IGVwZl9udGJfY29uZmlnX3NwYWRfYmFyX2FsbG9jKHN0cnVjdCBlcGZfbnRiICpu dGIpCiAJY3RybC0+bnVtX213cyA9IG50Yi0+bnVtX213czsKIAludGItPnNwYWRfc2l6ZSA9IHNw YWRfc2l6ZTsKIAotCWN0cmwtPmRiX2VudHJ5X3NpemUgPSA0OwotCiAJZm9yIChpID0gMDsgaSA8 IG50Yi0+ZGJfY291bnQ7IGkrKykgewogCQludGItPnJlZy0+ZGJfZGF0YVtpXSA9IDEgKyBpOwot CQludGItPnJlZy0+ZGJfb2Zmc2V0W2ldID0gMDsKKwkJbnRiLT5yZWctPmRiX29mZnNldFtpXSA9 IDQgKiBpOwogCX0KIAogCXJldHVybiAwOwpAQCAtNTA5LDYgKzUxMiwyOCBAQCBzdGF0aWMgaW50 IGVwZl9udGJfY29uZmlndXJlX2ludGVycnVwdChzdHJ1Y3QgZXBmX250YiAqbnRiKQogCXJldHVy biAwOwogfQogCitzdGF0aWMgaW50IGVwZl9udGJfZGJfc2l6ZShzdHJ1Y3QgZXBmX250YiAqbnRi KQoreworCWNvbnN0IHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzICplcGNfZmVhdHVyZXM7CisJc2l6 ZV90IHNpemUgPSA0ICogbnRiLT5kYl9jb3VudDsKKwl1MzIgYWxpZ247CisKKwllcGNfZmVhdHVy ZXMgPSBwY2lfZXBjX2dldF9mZWF0dXJlcyhudGItPmVwZi0+ZXBjLAorCQkJCQkgICAgbnRiLT5l cGYtPmZ1bmNfbm8sCisJCQkJCSAgICBudGItPmVwZi0+dmZ1bmNfbm8pOworCWFsaWduID0gZXBj X2ZlYXR1cmVzLT5hbGlnbjsKKworCWlmIChzaXplIDwgMTI4KQorCQlzaXplID0gMTI4OworCisJ aWYgKGFsaWduKQorCQlzaXplID0gQUxJR04oc2l6ZSwgYWxpZ24pOworCWVsc2UKKwkJc2l6ZSA9 IHJvdW5kdXBfcG93X29mX3R3byhzaXplKTsKKworCXJldHVybiBzaXplOworfQorCiAvKioKICAq IGVwZl9udGJfZGJfYmFyX2luaXQoKSAtIENvbmZpZ3VyZSBEb29yYmVsbCB3aW5kb3cgQkFScwog ICogQG50YjogTlRCIGRldmljZSB0aGF0IGZhY2lsaXRhdGVzIGNvbW11bmljYXRpb24gYmV0d2Vl biBIT1NUIGFuZCB2SE9TVApAQCAtNTIyLDMzICs1NDcsMzIgQEAgc3RhdGljIGludCBlcGZfbnRi X2RiX2Jhcl9pbml0KHN0cnVjdCBlcGZfbnRiICpudGIpCiAJc3RydWN0IHBjaV9lcGZfYmFyICpl cGZfYmFyOwogCXZvaWQgX19pb21lbSAqbXdfYWRkcjsKIAllbnVtIHBjaV9iYXJubyBiYXJubzsK LQlzaXplX3Qgc2l6ZSA9IDQgKiBudGItPmRiX2NvdW50OworCXNpemVfdCBzaXplOwogCiAJZXBj X2ZlYXR1cmVzID0gcGNpX2VwY19nZXRfZmVhdHVyZXMobnRiLT5lcGYtPmVwYywKIAkJCQkJICAg IG50Yi0+ZXBmLT5mdW5jX25vLAogCQkJCQkgICAgbnRiLT5lcGYtPnZmdW5jX25vKTsKIAlhbGln biA9IGVwY19mZWF0dXJlcy0+YWxpZ247Ci0KLQlpZiAoc2l6ZSA8IDEyOCkKLQkJc2l6ZSA9IDEy ODsKLQotCWlmIChhbGlnbikKLQkJc2l6ZSA9IEFMSUdOKHNpemUsIGFsaWduKTsKLQllbHNlCi0J CXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oc2l6ZSk7CisJc2l6ZSA9IGVwZl9udGJfZGJfc2l6 ZShudGIpOwogCiAJYmFybm8gPSBudGItPmVwZl9udGJfYmFyW0JBUl9EQl07CisJZXBmX2JhciA9 ICZudGItPmVwZi0+YmFyW2Jhcm5vXTsKIAotCW13X2FkZHIgPSBwY2lfZXBmX2FsbG9jX3NwYWNl KG50Yi0+ZXBmLCBzaXplLCBiYXJubywgYWxpZ24sIDApOwotCWlmICghbXdfYWRkcikgewotCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBPQiBhZGRyZXNzXG4iKTsKLQkJcmV0dXJu IC1FTk9NRU07CisJaWYgKG50Yi0+ZXBmX2RiX3BoeXMpIHsKKwkJbXdfYWRkciA9IE5VTEw7CisJ CWVwZl9iYXItPnBoeXNfYWRkciA9IG50Yi0+ZXBmX2RiX3BoeXM7CisJCWVwZl9iYXItPmJhcm5v ID0gYmFybm87CisJCWVwZl9iYXItPnNpemUgPSBzaXplOworCX0gZWxzZSB7CisJCW13X2FkZHIg PSBwY2lfZXBmX2FsbG9jX3NwYWNlKG50Yi0+ZXBmLCBzaXplLCBiYXJubywgYWxpZ24sIDApOwor CQlpZiAoIW13X2FkZHIpIHsKKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIGRv b3IgYmVsbCBhZGRyZXNzXG4iKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CiAJfQogCiAJbnRi LT5lcGZfZGIgPSBtd19hZGRyOwogCi0JZXBmX2JhciA9ICZudGItPmVwZi0+YmFyW2Jhcm5vXTsK LQogCXJldCA9IHBjaV9lcGNfc2V0X2JhcihudGItPmVwZi0+ZXBjLCBudGItPmVwZi0+ZnVuY19u bywgbnRiLT5lcGYtPnZmdW5jX25vLCBlcGZfYmFyKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIo ZGV2LCAiRG9vcmJlbGwgQkFSIHNldCBmYWlsZWRcbiIpOwpAQCAtNzA0LDYgKzcyOCw4MiBAQCBz dGF0aWMgaW50IGVwZl9udGJfaW5pdF9lcGNfYmFyKHN0cnVjdCBlcGZfbnRiICpudGIpCiAJcmV0 dXJuIDA7CiB9CiAKKyNpZmRlZiBDT05GSUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTgorc3RhdGlj IHZvaWQgZXBmX250Yl93cml0ZV9tc2lfbXNnKHN0cnVjdCBtc2lfZGVzYyAqZGVzYywgc3RydWN0 IG1zaV9tc2cgKm1zZykKK3sKKwlzdHJ1Y3QgZXBmX250YiAqbnRiID0gZGV2X2dldF9kcnZkYXRh KGRlc2MtPmRldik7CisJc3RydWN0IGVwZl9udGJfY3RybCAqcmVnID0gbnRiLT5yZWc7CisJaW50 IHNpemUgPSBlcGZfbnRiX2RiX3NpemUobnRiKTsKKwl1NjQgYWRkcjsKKworCWFkZHIgPSBtc2ct PmFkZHJlc3NfaGk7CisJYWRkciA8PD0gMzI7CisJYWRkciB8PSBtc2ctPmFkZHJlc3NfbG87CisK KwlyZWctPmRiX2RhdGFbZGVzYy0+bXNpX2luZGV4XSA9IG1zZy0+ZGF0YTsKKworCWlmIChkZXNj LT5tc2lfaW5kZXggPT0gMCkKKwkJbnRiLT5lcGZfZGJfcGh5cyA9IHJvdW5kX2Rvd24oYWRkciwg c2l6ZSk7CisKKwlyZWctPmRiX29mZnNldFtkZXNjLT5tc2lfaW5kZXhdID0gYWRkciAtIG50Yi0+ ZXBmX2RiX3BoeXM7Cit9CisjZW5kaWYKKworc3RhdGljIGlycXJldHVybl90IGVwZl9udGJfaW50 ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZXBmX250YiAq bnRiID0gZGF0YTsKKwlpbnQgaW5kZXg7CisKKwlpbmRleCA9IGlycSAtIG50Yi0+bXNpX3ZpcnFi YXNlOworCW50Yi0+ZGIgfD0gMSA8PCAoaW5kZXggLSAxKTsKKwludGJfZGJfZXZlbnQoJm50Yi0+ bnRiLCBpbmRleCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB2b2lkIGVw Zl9udGJfZXBjX21zaV9pbml0KHN0cnVjdCBlcGZfbnRiICpudGIpCit7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gJm50Yi0+ZXBmLT5kZXY7CisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbjsKKwlp bnQgdmlycTsKKwlpbnQgcmV0OworCWludCBpOworCisJZG9tYWluID0gZGV2X2dldF9tc2lfZG9t YWluKG50Yi0+ZXBmLT5lcGMtPmRldi5wYXJlbnQpOworCWlmICghZG9tYWluKQorCQlyZXR1cm47 CisKKwlkZXZfc2V0X21zaV9kb21haW4oZGV2LCBkb21haW4pOworCisjaWZkZWYgQ09ORklHX0dF TkVSSUNfTVNJX0lSUV9ET01BSU4KKwlpZiAocGxhdGZvcm1fbXNpX2RvbWFpbl9hbGxvY19pcnFz KCZudGItPmVwZi0+ZGV2LAorCQludGItPmRiX2NvdW50LAorCQllcGZfbnRiX3dyaXRlX21zaV9t c2cpKSB7CisJCWRldl9pbmZvKGRldiwgIkNhbid0IGFsbG9jYXRlIE1TSSwgZmFsbCBiYWNrIHRv IHBvbGwgbW9kZVxuIik7CisJCXJldHVybjsKKwl9CisjZWxzZQorCXJldHVybjsKKyNlbmRpZgor CWRldl9pbmZvKGRldiwgInZudGIgdXNlIE1TSSBhcyBkb29yYmVsbFxuIik7CisKKwlmb3IgKGkg PSAwOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7CisJCXZpcnEgPSBtc2lfZ2V0X3ZpcnEoZGV2 LCBpKTsKKwkJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIHZpcnEsCisJCQkgICAgICAgZXBm X250Yl9pbnRlcnJ1cHRfaGFuZGxlciwgMCwKKwkJCSAgICAgICAidm50YiIsIG50Yik7CisKKwkJ aWYgKHJldCkgeworCQkJZGV2X2VycihkZXYsICJkZXZtX3JlcXVlc3RfaXJxKCkgZmFpbHVyZSwg ZmFsbCBiYWNrIHRvIHBvbGwgbW9kZVxuIik7CisJCQludGItPmVwZl9kYl9waHlzID0gMDsKKwkJ CWJyZWFrOworCQl9CisKKwkJaWYgKCFpKQorCQkJbnRiLT5tc2lfdmlycWJhc2UgPSB2aXJxOwor CX0KK30KKwogLyoqCiAgKiBlcGZfbnRiX2VwY19pbml0KCkgLSBJbml0aWFsaXplIE5UQiBpbnRl cmZhY2UKICAqIEBudGI6IE5UQiBkZXZpY2UgdGhhdCBmYWNpbGl0YXRlcyBjb21tdW5pY2F0aW9u IGJldHdlZW4gSE9TVCBhbmQgdkhPU1QyCkBAIC0xMjk5LDE0ICsxMzk5LDE1IEBAIHN0YXRpYyBp bnQgZXBmX250Yl9iaW5kKHN0cnVjdCBwY2lfZXBmICplcGYpCiAJCWdvdG8gZXJyX2Jhcl9hbGxv YzsKIAl9CiAKKwllcGZfc2V0X2RydmRhdGEoZXBmLCBudGIpOworCWVwZl9udGJfZXBjX21zaV9p bml0KG50Yik7CisKIAlyZXQgPSBlcGZfbnRiX2VwY19pbml0KG50Yik7CiAJaWYgKHJldCkgewog CQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBpbml0aWFsaXplIEVQQ1xuIik7CiAJCWdvdG8gZXJy X2Jhcl9hbGxvYzsKIAl9CiAKLQllcGZfc2V0X2RydmRhdGEoZXBmLCBudGIpOwotCiAJcGNpX3Nw YWNlWzBdID0gKG50Yi0+dm50Yl9waWQgPDwgMTYpIHwgbnRiLT52bnRiX3ZpZDsKIAlwY2lfdm50 Yl90YWJsZVswXS52ZW5kb3IgPSBudGItPnZudGJfdmlkOwogCXBjaV92bnRiX3RhYmxlWzBdLmRl dmljZSA9IG50Yi0+dm50Yl9waWQ7Ci0tIAoyLjM1LjEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==