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 95DFAC6FA82 for ; Thu, 22 Sep 2022 16:16:30 +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=NgXr/ESGrzg/4uazpH0dH1ZylIIWc5qIoRwicU8bHZk=; b=Ol/h17BZQY1PQb uB4j29yhv5wLk9aCE365W5xT1x2kJwE4AsSDi7LEJhTil4bfVmgq6FYEjPJKD/Tz37nj7YIcV5804 lSWDBRP2t5THFtguR3/PXEUWqEb0+6qgOE1NXRzsd1T86OF834eP/+qGM/is9xRRxvcUwE9IZ8WtT cyVump9tgJjaE9grzUqJHz/gccZS+0TYVa6UuPNysq8rWBunVQvG2S7Ox79/20JZBsSg18J+nZlYO NbQ20YYDs1qlAslEBfQBYYiB5y2Ev5OXUA5FD0wUiwkFJ4NezEPA1NuXTElNNB1VPG3MCLStwfVvY QjY6k6RmK2Mrz91OgBfg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1obOr3-00GfTK-Jo; Thu, 22 Sep 2022 16:15:14 +0000 Received: from mail-eopbgr70079.outbound.protection.outlook.com ([40.107.7.79] helo=EUR04-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1obOpt-00GetQ-GY for linux-arm-kernel@lists.infradead.org; Thu, 22 Sep 2022 16:14:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kXebeBFGqN9oN/398IVvX8/cWo02xRCaEiHGezvogpv2s6QMg/6/zFSkEvmOLnz2EEKl2GEtVUM/NzxGIyyMnDFNUgRo9M6yWiVpMARd4CLm6jLvDSflfY372Xv5s7mkWrClT8ErXc0BWG5cv4Qnk5fU1wKBwLrSUSQ67GN/PR80kAI456dIqnkEhLkbReFWVTyWQqVHFDL84fSAtVPUCN4KtH5YPeZMPu3m4iq9mStMIi/ep0Z+4zpldXPfgAJB/nJlFcLVXhFkEUK3csJjDB9pcEXVi5BBj884nw+W2mqPhjebpTcO0kNpgCxVDdnELZrk4aMPKX8VbZFrxnQrUw== 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=l8JUx96keiGr1tQ4OD3B9n3DTWQBrLQzOEmt0GmiB7M=; b=nSAWIBnH0Yvu1jpgs2ZoD6LQxTCQrd/mUCum1n2ysG3fo8t1Qi/2oGU4IoQdo1KfADXAZuQERzi65/GoGk8EdrE0b5fWrD+cuPpRyk7UYYwk8vJasC93PP1uIfe0zqHb/jcrN1q+JvaNRczGT2AJ19/+4CCNtElA+fia18jVh7VwayoXshRNHm2yUSIfNAvctYP15ihvn7JFTUXIK1hG4xkEmXrpIJXHaoZuZlurvOKUfBumTuqqecN2MbZh3Uvsga0upz9MMi7sWwf+Fzys6pKIdN3ItMXMPa42vLZaPyJC0FIh9bgSy3GSukocPzzMOUO0qFkNUNBMT3cwhsXXIQ== 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=l8JUx96keiGr1tQ4OD3B9n3DTWQBrLQzOEmt0GmiB7M=; b=Uw9XpGgg3RmoGPoo2V2yXSyswauisPO3dSMNdeH+l1E6KMx4zWMeKkvJAyZ0thnccl+BU8R9CegGtIuosSC4VGZDUJ0tYKsmBbXhzEoy6eyXSrQ0WczCQZ1vXMKalgKxOiXFCY6onYiZ8SZmqJ1eGnPhSaN60WtQVqTp5yTlBcw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8789.eurprd04.prod.outlook.com (2603:10a6:10:2e0::11) by AS8PR04MB7541.eurprd04.prod.outlook.com (2603:10a6:20b:29a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.17; Thu, 22 Sep 2022 16:13:59 +0000 Received: from DU2PR04MB8789.eurprd04.prod.outlook.com ([fe80::5c5d:d0e4:cd13:6428]) by DU2PR04MB8789.eurprd04.prod.outlook.com ([fe80::5c5d:d0e4:cd13:6428%5]) with mapi id 15.20.5654.018; Thu, 22 Sep 2022 16:13:59 +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 v12 6/6] PCI: endpoint: Add vNTB MSI support Date: Thu, 22 Sep 2022 11:12:46 -0500 Message-Id: <20220922161246.20586-7-Frank.Li@nxp.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220922161246.20586-1-Frank.Li@nxp.com> References: <20220922161246.20586-1-Frank.Li@nxp.com> X-ClientProxiedBy: BY3PR05CA0016.namprd05.prod.outlook.com (2603:10b6:a03:254::21) To DU2PR04MB8789.eurprd04.prod.outlook.com (2603:10a6:10:2e0::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8789:EE_|AS8PR04MB7541:EE_ X-MS-Office365-Filtering-Correlation-Id: e753f173-4b89-4095-057b-08da9cb574b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TrcDWnWEBo9Ffo0Z+ihQ3e22txuO1nRCVqOYjgKV2drw5cvKzSgUd28othD8nVHBs+CCWLhNo55Q0q9T5dSZj/CR31fB6XmJ/M1Imm9LKQPxxuBU/eNpEuz8EiTUyhqMZMzuK7r2oIRKJT2u7qzd9j86v7BaRL2fAgWMvO6+cQp5iq9xtD9D3Obknrn7NeuDtL3pPOohcozgcpnbAiRqum74gQEIF3q9bUEz8WwXF9yq/9dqGoaE++9fVcMwx8+gUAU+UMrMk6OYPxH3n0nTJSCqeBMti0n4E9nL1DoGSz82DjFvGh7jSHnGR0sp18OsIWqmIASYutjSZ87FolmBOHvEAwNrkmgaqXLQKmN0oEbKQ/4ekZm2o5HuxYuEQ5eyAOjouc/a8tF/6CZXPZns+hkET/FwUYWHiJWNXBPY13UwHu6HzMPw24Q9WjZSdeTmOUE4bGkb3qLhHsTzbAjv1f8UYIUmRerCcmgMpT79kcueFMuNoQljXfwu7bQn77ARxv0dlSNv6szuBpJu+4Ob/fKcfbzTUuip8xbHKzryd5r3PkeGpmW/dQUzVGeNNl3XrOQMv4PDu8nO+s9pjnG2LTguVCiCSum2vpfI6vT7mHc9HJ4EFmo8P3XyxY6f/DGYsiKv6ZKueHprYRz6VyPwNVcFPTp9+976CdPmp9DUDs1BjwQ+BYjm40pRQAKAqs3R5S9M2jwIExgzbOgZqemeLASlw2WnpYtcxts4Si/fsS1qyCsbXq0LC9tW+8JoneCL6NOWXMOBjWSh2UznREmysQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8789.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(451199015)(83380400001)(1076003)(2616005)(6512007)(186003)(38100700002)(52116002)(66556008)(38350700002)(66476007)(8936002)(5660300002)(41300700001)(478600001)(2906002)(6506007)(6486002)(26005)(7416002)(6666004)(66946007)(4326008)(8676002)(36756003)(316002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a0UxYjJqTjFESWxXNkFIQW9JV3B1YWhPNFFHZlJJT2lCZkx0cmRic1grR0lE?= =?utf-8?B?U2FvUG00eDZxYzd3ODU5UHFXNFAwNXR3L0crTHcycmlGU3Z1eFNaNDRNK1FQ?= =?utf-8?B?RXZGY1F0cUNLVWZtS2hpN1JudnNwdFVwTjRnS25TTlhKcHJXdWxyN0pzQ0oz?= =?utf-8?B?TkJ4clJESHNyd0NnM2ZqYmx0enlvK3F4TXBYaklyU3ZQZExRTGRIYXR2bzl6?= =?utf-8?B?TG9wTXloM3d5eFBYTHZsY2VITC9VOVdxQVVaNEIzd2tjZkVxbjRuaHZXQldH?= =?utf-8?B?S25nSVBkZmVjR2I5UGdDR1dJTUx3YXNSOUJNR0pVZkRKcWtUWHMzdTlndFRJ?= =?utf-8?B?SFRwOFVOcEJ3cEJZQk96ek8rT3hTTmJUbDkzTG9LQmRrYVduODUrMnhoT0da?= =?utf-8?B?ZlRHWVpzTCtnWDlDeWRDRW1kRWdhY0UwRGx1UTlQMmxIQWdCUjVFdnlrTGVK?= =?utf-8?B?UTZPWjB3K1NQYURzbGlvSmt4YlZkUTl0OGZ3RHJhUFZJczlBOVBEc1FWMlNM?= =?utf-8?B?TTNBVHR5clYzbFRHbHVpdUVOOVhiaDI4bElpbFdaZ2U0QkRaY0d2QnFiQTE0?= =?utf-8?B?MHJMNkovcWl6b3hwQVVRNVUzTjViUnlQeW1pSDVCUEVhZGVwSmNTaXhxYUxS?= =?utf-8?B?NHFTSThleUxUTElmVHZmcXNiTW1wanB2T1RldUdTU0hub09xUVZZeFd3eWFo?= =?utf-8?B?aDZVMndlUWlHeDI4eENLRnpXWWJUMFYyWllvK2lkQTNBYXFJRWVEN2RRSjdI?= =?utf-8?B?eGRBcG0wMzdQVVcwelJucS9BTjJjYXA5RXhseEsyU0dvWXVPQS95Qm5QTDkv?= =?utf-8?B?cW9yQmNyZkZVS3hsT1crK0xhdWFSQzZhWFZHdEdxRkc0Y1Y0SDg1S0c2ZkNm?= =?utf-8?B?RGZ4ZWtFSVdoNFN4R255RUpCT2lIRkpUemg4Q0E0SXRFWHFHc0ErSXp0R09B?= =?utf-8?B?L3BjR0N2Z2EycU8yTU00SU9jYzZ5NXBka3RaUGs3cFp5Z2hxRENYdXoycWlF?= =?utf-8?B?NjdTMVBKeFhyeGNDR1BQRTh1WUZYWnhOR0REaVJZSzJVN3ltUG95dmRLL1do?= =?utf-8?B?dFJsUXFkY3R6WDJpQ21GMWpNOUl2b2J3cTBFbVg4bFBaN3pmWDFGWUNOamhC?= =?utf-8?B?WitEa3JLR2pPa3ZpUzI1UFJlUVA5ZUU0RTl0emsrczl1NXlwaHZYOEFoNFhW?= =?utf-8?B?K0h3SzY2K00xT2x5bWI0R2x5cWhQR2FwOFplMkdSNHpEcndBSGhQUEE2WDVB?= =?utf-8?B?bkVGdVNKOEV6UXJUU0g4VjRtZkRXZlhTK2RvcGpwWjZHcE1kRjJScExYWEcx?= =?utf-8?B?cERTTU42L3JXWkFDK1NyNUVMbDZ4Q3NYbDZaZzZyNk9wa0NzYTVTNXJybTNw?= =?utf-8?B?ZnNKWXdaNUtZLzN2RjZQQVJrWHpaKzlhZXQ5YllZV2pMNStEYXhPN1Bnc0FU?= =?utf-8?B?V1JrY29IZlJhTVQyZFMzREJ2NVc1U0RDQ1pIRWk0aXpNL2YzcFZNSXFKaFRi?= =?utf-8?B?bDBBMm1uZWh3c0RnZklpajRsRldRQUkvRUxRSzJMSVZ6WWw1bnVva2puZUM0?= =?utf-8?B?NStoTFovdUtPclZsNlRBZW1BTGZjVFp2S3ozaWpZVWpxUnExMTQzZm1VN2Rz?= =?utf-8?B?YktvSWdQczVxTmx5cHFLSHBFZ3NSTklUZ1NDVGxMM1dGNDBzaHJsV0ttQkVM?= =?utf-8?B?YnQ3b3h4ZXUvMUV5V2tZcFhuZGNyNFdSTmIyK2hIRGJJaDlCdE92S2czRDR4?= =?utf-8?B?cHJnYlIzL00rR0ZOR3RUR3R1aUhhakZ6Z0k3VEFGbzNRd003T1ErNW0wNEk5?= =?utf-8?B?aXhZbkdlSGdRL01lVzRaVHdwMGljUlNlakd1T1VQQlNpMnkrVFVvN0FBMHE5?= =?utf-8?B?SjZ3OEdLejdmcVZOZXlRWWh5WXg2Rm1VUHVIakZuWG5xNHAydE55K0Fzb0tS?= =?utf-8?B?OTlLa3ZRKzE3K1p1VURoM2xQV1BpNzRlVER6dk9OWlY4WE15SGtiYzdpRll1?= =?utf-8?B?R1BPOU03OGkzbDBpb1lhRnR6T2lxZFJ4NEdXb3BtMU1QenF4em9nenlPb090?= =?utf-8?B?VTJMVXFVNGdxMFFkdVZSckRwbzAvdSt1Qnl2QlQ3VmhrWlEva0xGdzMyMEhy?= =?utf-8?Q?Ej/Sc0EIXT0kgeyK3/nhq4yxA?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e753f173-4b89-4095-057b-08da9cb574b3 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8789.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2022 16:13:59.0061 (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: q97chNE2FekQdpMvl+yvI3J89D2sKyJa+vCNbYX7yWbfNthLln7rHZIODF3l+nwK/BR9bTt2lCLYYm/YvIOVTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7541 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220922_091401_749552_FF2B0F9F X-CRM114-Status: GOOD ( 22.12 ) 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 aW9ucy9wY2ktZXBmLXZudGIuYyB8IDE0OCArKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jIGIvZHJpdmVycy9wY2kv ZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jCmluZGV4IGFjZWE3NTNhZjI5ZWQuLjhm ZGVhYzIyMDFlMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9w Y2ktZXBmLXZudGIuYworKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVw Zi12bnRiLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2ktZXBjLmg+CiAj aW5jbHVkZSA8bGludXgvcGNpLWVwZi5oPgogI2luY2x1ZGUgPGxpbnV4L250Yi5oPgorI2luY2x1 ZGUgPGxpbnV4L21zaS5oPgogCiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmtwY2lu dGJfd29ya3F1ZXVlOwogCkBAIC0xMzcsMTEgKzEzOCwxNCBAQCBzdHJ1Y3QgZXBmX250YiB7CiAJ c3RydWN0IGVwZl9udGJfY3RybCAqcmVnOwogCiAJdTMyICplcGZfZGI7CisJcGh5c19hZGRyX3Qg ZXBmX2RiX3BoeXM7CiAKIAlwaHlzX2FkZHJfdCB2cGNpX213X3BoeVtNQVhfTVddOwogCXZvaWQg X19pb21lbSAqdnBjaV9td19hZGRyW01BWF9NV107CiAKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGNt ZF9oYW5kbGVyOworCisJaW50IG1zaV92aXJxYmFzZTsKIH07CiAKICNkZWZpbmUgdG9fZXBmX250 YihlcGZfZ3JvdXApIGNvbnRhaW5lcl9vZigoZXBmX2dyb3VwKSwgc3RydWN0IGVwZl9udGIsIGdy b3VwKQpAQCAtMjU2LDEwICsyNjAsMTMgQEAgc3RhdGljIHZvaWQgZXBmX250Yl9jbWRfaGFuZGxl cihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAludGIgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0IGVwZl9udGIsIGNtZF9oYW5kbGVyLndvcmspOwogCi0JZm9yIChpID0gMTsgaSA8IG50 Yi0+ZGJfY291bnQ7IGkrKykgewotCQlpZiAobnRiLT5lcGZfZGJbaV0pIHsKLQkJCW50Yl9kYl9l dmVudCgmbnRiLT5udGIsIGkpOwotCQkJbnRiLT5lcGZfZGJbaV0gPSAwOworCWlmICghbnRiLT5l cGZfZGJfcGh5cykgeworCQlmb3IgKGkgPSAxOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7CisJ CQlpZiAobnRiLT5lcGZfZGJbaV0pIHsKKwkJCQludGItPmRiIHw9IDEgPDwgKGkgLSAxKTsKKwkJ CQludGJfZGJfZXZlbnQoJm50Yi0+bnRiLCBpKTsKKwkJCQludGItPmVwZl9kYltpXSA9IDA7CisJ CQl9CiAJCX0KIAl9CiAKQEAgLTQ2NCw3ICs0NzEsNyBAQCBzdGF0aWMgaW50IGVwZl9udGJfY29u ZmlnX3NwYWRfYmFyX2FsbG9jKHN0cnVjdCBlcGZfbnRiICpudGIpCiAKIAlmb3IgKGkgPSAwOyBp IDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7CiAJCW50Yi0+cmVnLT5kYl9kYXRhW2ldID0gMSArIGk7 Ci0JCW50Yi0+cmVnLT5kYl9vZmZzZXRbaV0gPSAwOworCQludGItPnJlZy0+ZGJfb2Zmc2V0W2ld ID0gc2l6ZW9mKHUzMikgKiBpOwogCX0KIAogCXJldHVybiAwOwpAQCAtNTE3LDYgKzUyNCwyOCBA QCBzdGF0aWMgaW50IGVwZl9udGJfY29uZmlndXJlX2ludGVycnVwdChzdHJ1Y3QgZXBmX250YiAq bnRiKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGVwZl9udGJfZGJfc2l6ZShzdHJ1Y3Qg ZXBmX250YiAqbnRiKQoreworCWNvbnN0IHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzICplcGNfZmVh dHVyZXM7CisJc2l6ZV90IHNpemUgPSBzaXplb2YodTMyKSAqIG50Yi0+ZGJfY291bnQ7CisJdTMy IGFsaWduOworCisJZXBjX2ZlYXR1cmVzID0gcGNpX2VwY19nZXRfZmVhdHVyZXMobnRiLT5lcGYt PmVwYywKKwkJCQkJICAgIG50Yi0+ZXBmLT5mdW5jX25vLAorCQkJCQkgICAgbnRiLT5lcGYtPnZm dW5jX25vKTsKKwlhbGlnbiA9IGVwY19mZWF0dXJlcy0+YWxpZ247CisKKwlpZiAoc2l6ZSA8IDEy OCkKKwkJc2l6ZSA9IDEyODsKKworCWlmIChhbGlnbikKKwkJc2l6ZSA9IEFMSUdOKHNpemUsIGFs aWduKTsKKwllbHNlCisJCXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oc2l6ZSk7CisKKwlyZXR1 cm4gc2l6ZTsKK30KKwogLyoqCiAgKiBlcGZfbnRiX2RiX2Jhcl9pbml0KCkgLSBDb25maWd1cmUg RG9vcmJlbGwgd2luZG93IEJBUnMKICAqIEBudGI6IE5UQiBkZXZpY2UgdGhhdCBmYWNpbGl0YXRl cyBjb21tdW5pY2F0aW9uIGJldHdlZW4gSE9TVCBhbmQgVkhPU1QKQEAgLTU0MCwyNyArNTY5LDI2 IEBAIHN0YXRpYyBpbnQgZXBmX250Yl9kYl9iYXJfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQog CQkJCQkgICAgbnRiLT5lcGYtPmZ1bmNfbm8sCiAJCQkJCSAgICBudGItPmVwZi0+dmZ1bmNfbm8p OwogCWFsaWduID0gZXBjX2ZlYXR1cmVzLT5hbGlnbjsKLQotCWlmIChzaXplIDwgMTI4KQotCQlz aXplID0gMTI4OwotCi0JaWYgKGFsaWduKQotCQlzaXplID0gQUxJR04oc2l6ZSwgYWxpZ24pOwot CWVsc2UKLQkJc2l6ZSA9IHJvdW5kdXBfcG93X29mX3R3byhzaXplKTsKKwlzaXplID0gZXBmX250 Yl9kYl9zaXplKG50Yik7CiAKIAliYXJubyA9IG50Yi0+ZXBmX250Yl9iYXJbQkFSX0RCXTsKKwll cGZfYmFyID0gJm50Yi0+ZXBmLT5iYXJbYmFybm9dOwogCi0JbXdfYWRkciA9IHBjaV9lcGZfYWxs b2Nfc3BhY2UobnRiLT5lcGYsIHNpemUsIGJhcm5vLCBhbGlnbiwgMCk7Ci0JaWYgKCFtd19hZGRy KSB7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIE9CIGFkZHJlc3NcbiIpOwot CQlyZXR1cm4gLUVOT01FTTsKKwlpZiAobnRiLT5lcGZfZGJfcGh5cykgeworCQltd19hZGRyID0g TlVMTDsKKwkJZXBmX2Jhci0+cGh5c19hZGRyID0gbnRiLT5lcGZfZGJfcGh5czsKKwkJZXBmX2Jh ci0+YmFybm8gPSBiYXJubzsKKwkJZXBmX2Jhci0+c2l6ZSA9IHNpemU7CisJfSBlbHNlIHsKKwkJ bXdfYWRkciA9IHBjaV9lcGZfYWxsb2Nfc3BhY2UobnRiLT5lcGYsIHNpemUsIGJhcm5vLCBhbGln biwgMCk7CisJCWlmICghbXdfYWRkcikgeworCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWxs b2NhdGUgZG9vcmJlbGwgYWRkcmVzc1xuIik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQogCX0K IAogCW50Yi0+ZXBmX2RiID0gbXdfYWRkcjsKIAotCWVwZl9iYXIgPSAmbnRiLT5lcGYtPmJhclti YXJub107Ci0KIAlyZXQgPSBwY2lfZXBjX3NldF9iYXIobnRiLT5lcGYtPmVwYywgbnRiLT5lcGYt PmZ1bmNfbm8sIG50Yi0+ZXBmLT52ZnVuY19ubywgZXBmX2Jhcik7CiAJaWYgKHJldCkgewogCQlk ZXZfZXJyKGRldiwgIkRvb3JiZWxsIEJBUiBzZXQgZmFpbGVkXG4iKTsKQEAgLTcxOSw2ICs3NDcs ODMgQEAgc3RhdGljIGludCBlcGZfbnRiX2luaXRfZXBjX2JhcihzdHJ1Y3QgZXBmX250YiAqbnRi KQogCXJldHVybiAwOwogfQogCisjaWZkZWYgQ09ORklHX0dFTkVSSUNfTVNJX0lSUV9ET01BSU4K K3N0YXRpYyB2b2lkIGVwZl9udGJfd3JpdGVfbXNpX21zZyhzdHJ1Y3QgbXNpX2Rlc2MgKmRlc2Ms IHN0cnVjdCBtc2lfbXNnICptc2cpCit7CisJc3RydWN0IGVwZl9udGIgKm50YiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXNjLT5kZXYpOworCXN0cnVjdCBlcGZfbnRiX2N0cmwgKnJlZyA9IG50Yi0+cmVn OworCWludCBzaXplID0gZXBmX250Yl9kYl9zaXplKG50Yik7CisJdTY0IGFkZHI7CisKKwlhZGRy ID0gbXNnLT5hZGRyZXNzX2hpOworCWFkZHIgPDw9IDMyOworCWFkZHIgfD0gbXNnLT5hZGRyZXNz X2xvOworCisJcmVnLT5kYl9kYXRhW2Rlc2MtPm1zaV9pbmRleF0gPSBtc2ctPmRhdGE7CisKKwlp ZiAoIWRlc2MtPm1zaV9pbmRleCkKKwkJbnRiLT5lcGZfZGJfcGh5cyA9IHJvdW5kX2Rvd24oYWRk ciwgc2l6ZSk7CisKKwlyZWctPmRiX29mZnNldFtkZXNjLT5tc2lfaW5kZXhdID0gYWRkciAtIG50 Yi0+ZXBmX2RiX3BoeXM7Cit9CisjZW5kaWYKKworc3RhdGljIGlycXJldHVybl90IGVwZl9udGJf aW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZXBmX250 YiAqbnRiID0gZGF0YTsKKwlpbnQgaW5kZXg7CisKKwlpbmRleCA9IGlycSAtIG50Yi0+bXNpX3Zp cnFiYXNlOworCW50Yi0+ZGIgfD0gMSA8PCAoaW5kZXggLSAxKTsKKwludGJfZGJfZXZlbnQoJm50 Yi0+bnRiLCBpbmRleCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKyNpZmRlZiBDT05G SUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTgorc3RhdGljIHZvaWQgZXBmX250Yl9lcGNfbXNpX2lu aXQoc3RydWN0IGVwZl9udGIgKm50YikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmbnRiLT5l cGYtPmRldjsKKwlzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluOworCWludCB2aXJxOworCWludCBy ZXQ7CisJaW50IGk7CisKKwlkb21haW4gPSBkZXZfZ2V0X21zaV9kb21haW4obnRiLT5lcGYtPmVw Yy0+ZGV2LnBhcmVudCk7CisJaWYgKCFkb21haW4pCisJCXJldHVybjsKKworCWRldl9zZXRfbXNp X2RvbWFpbihkZXYsIGRvbWFpbik7CisKKwlpZiAocGxhdGZvcm1fbXNpX2RvbWFpbl9hbGxvY19p cnFzKCZudGItPmVwZi0+ZGV2LAorCQludGItPmRiX2NvdW50LAorCQllcGZfbnRiX3dyaXRlX21z aV9tc2cpKSB7CisJCWRldl9lcnIoZGV2LCAiQ2FuJ3QgYWxsb2NhdGUgTVNJLCBmYWxsaW5nIGJh Y2sgdG8gcG9sbGluZyBtb2RlXG4iKTsKKwkJcmV0dXJuOworCX0KKwlkZXZfaW5mbyhkZXYsICJV c2luZyBNU0kgYXMgZG9vcmJlbGxcbiIpOworCisJZm9yIChpID0gMDsgaSA8IG50Yi0+ZGJfY291 bnQ7IGkrKykgeworCQl2aXJxID0gbXNpX2dldF92aXJxKGRldiwgaSk7CisJCXJldCA9IGRldm1f cmVxdWVzdF9pcnEoZGV2LCB2aXJxLAorCQkJICAgICAgIGVwZl9udGJfaW50ZXJydXB0X2hhbmRs ZXIsIDAsCisJCQkgICAgICAgInBjaV9lcGZfdm50YiIsIG50Yik7CisKKwkJaWYgKHJldCkgewor CQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBkb29yYmVsbCBJUlEhIEZhbGxpbmcg YmFjayB0byBwb2xsaW5nIG1vZGUiKTsKKwkJCW50Yi0+ZXBmX2RiX3BoeXMgPSAwOworCQkJYnJl YWs7CisJCX0KKworCQlpZiAoIWkpCisJCQludGItPm1zaV92aXJxYmFzZSA9IHZpcnE7IC8qIG1z aSBzdGFydCB2aXJxIG51bWJlciAqLworCX0KK30KKyNlbHNlCitzdGF0aWMgdm9pZCBlcGZfbnRi X2VwY19tc2lfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQoreworfQorI2VuZGlmIC8qIENPTkZJ R19HRU5FUklDX01TSV9JUlFfRE9NQUlOICovCiAvKioKICAqIGVwZl9udGJfZXBjX2luaXQoKSAt IEluaXRpYWxpemUgTlRCIGludGVyZmFjZQogICogQG50YjogTlRCIGRldmljZSB0aGF0IGZhY2ls aXRhdGVzIGNvbW11bmljYXRpb24gYmV0d2VlbiBIT1NUIGFuZCBWSE9TVApAQCAtMTMyMCwxNCAr MTQyNSwxNSBAQCBzdGF0aWMgaW50IGVwZl9udGJfYmluZChzdHJ1Y3QgcGNpX2VwZiAqZXBmKQog CQlnb3RvIGVycl9iYXJfYWxsb2M7CiAJfQogCisJZXBmX3NldF9kcnZkYXRhKGVwZiwgbnRiKTsK KwllcGZfbnRiX2VwY19tc2lfaW5pdChudGIpOworCiAJcmV0ID0gZXBmX250Yl9lcGNfaW5pdChu dGIpOwogCWlmIChyZXQpIHsKIAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBF UENcbiIpOwogCQlnb3RvIGVycl9iYXJfYWxsb2M7CiAJfQogCi0JZXBmX3NldF9kcnZkYXRhKGVw ZiwgbnRiKTsKLQogCXBjaV9zcGFjZVswXSA9IChudGItPnZudGJfcGlkIDw8IDE2KSB8IG50Yi0+ dm50Yl92aWQ7CiAJcGNpX3ZudGJfdGFibGVbMF0udmVuZG9yID0gbnRiLT52bnRiX3ZpZDsKIAlw Y2lfdm50Yl90YWJsZVswXS5kZXZpY2UgPSBudGItPnZudGJfcGlkOwotLSAKMi4zNS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=