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 X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1AAAC433B4 for ; Thu, 15 Apr 2021 08:20:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 96174611F1 for ; Thu, 15 Apr 2021 08:20:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231545AbhDOIU5 (ORCPT ); Thu, 15 Apr 2021 04:20:57 -0400 Received: from mail-mw2nam12on2081.outbound.protection.outlook.com ([40.107.244.81]:35297 "EHLO NAM12-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231518AbhDOIU4 (ORCPT ); Thu, 15 Apr 2021 04:20:56 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j5FhEkhrOwCLHdPWK2S+DYEn5PpP4N51bPA4usrOmeU08P5lnGGHEoNVlF7/nNGhU8X3eTdCRt6xPeGwhhHk6Y5Vh/B48eG1lnh/M+KTCvh91IdeEDr1IEDBJP7RQKn5uXykqPozrgrQy9GR1AaoysIfWC4GOV14nUhgbedyUWakKaAXsOqNm+nRDiBqg2tFLOK1SK9b2kt9+fHnCvwzpOpCJnZoGkvuZW+Cp+Q1hNCv2AACTld/LOMJ07QwnKbZJ7Jd+RlCfN8b3ice73twLd8GJ8Y8OrdfGowN+QUIdIFDojbHloqB6nOgybykkbFrPurCY4QpYp8qcLmj3nkS4g== 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-SenderADCheck; bh=biiP+f8iKsYkPECa+JeQzboeGU7/0CaFI0x4H007pqA=; b=LNx0Dz3t8f/ofJxG2fOYofDrv0VSPlMG4QoYhsrXluXk4qt/dbL3nlTX0s6s0O/NzCddVUqNLjSqzwhPf1C3Yn6dv1s3i7Fz9AtIzQ0cYjAd1JJQa1fiumIM44nq4BocQI86Kh+pQLQKV182bS3pkSEpy4htIy7shVVoI0kWF+EXgADtz4vXmn4mkgba8jCb245RgcQk5Iwn6xNvOSeJjhrLwdoWNwX+uh5Qn9fFM5OwYqSW7+JkZuwjxd2l8VapOHdaA5pEqsShV4TKgU2+1rMl6UYrLTpBfKFAyOf1PQ6hSvQVHgkfluImICkngbH/lKnzGCdqmMkeOk2Zuu4Vqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=biiP+f8iKsYkPECa+JeQzboeGU7/0CaFI0x4H007pqA=; b=Up4VMacvkR4KFG1SkJtbPU8IJ6sgGE8OH3PhpW0SU0uW5AiAEMwcEura9O1bsraPzZL3LktXp9ctIdwIce29Y8AUk30rsj6UzxEpvrGlobE+w9tgGkH9s69Pc1HFh0HQDayU3N8JXE5/p6uJlqDqm2dnjyzutOjuMh0RVSWuvUc= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=windriver.com; Received: from CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) by CY4PR1101MB2149.namprd11.prod.outlook.com (2603:10b6:910:1a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.18; Thu, 15 Apr 2021 08:20:31 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::f45f:e820:49f5:3725]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::f45f:e820:49f5:3725%6]) with mapi id 15.20.3999.037; Thu, 15 Apr 2021 08:20:31 +0000 Subject: Re: [PATCH] [v4] spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe To: Dinghao Liu , kjlu@umn.edu Cc: Mark Brown , Michal Simek , Naga Sureshkumar Relli , Shubhrajyoti Datta , linux-spi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210415074644.24646-1-dinghao.liu@zju.edu.cn> From: "quanyang.wang" Message-ID: <59f9e657-37e8-a91a-08a9-d2bdb734d9cd@windriver.com> Date: Thu, 15 Apr 2021 16:19:27 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: <20210415074644.24646-1-dinghao.liu@zju.edu.cn> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: HK2PR06CA0006.apcprd06.prod.outlook.com (2603:1096:202:2e::18) To CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.199] (60.247.85.82) by HK2PR06CA0006.apcprd06.prod.outlook.com (2603:1096:202:2e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Thu, 15 Apr 2021 08:20:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1474b319-4085-4217-4fff-08d8ffe755a6 X-MS-TrafficTypeDiagnostic: CY4PR1101MB2149: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ADlGFt/hUazj2wGbDxRJC5MHoYiiKNNrLQP0oBBucA32/uvcQ2vGUthIpcnEBHnUgBlUOguiZ2mNTQsyQ4RBL6vkCMowzSfGOunkG3svqVVjLGOIlf8XQc95qhf2tdTH3L/6FS1kfiVPKFZok6n5kEqVUofZgcPQl73hqGBc55NgTLyKDuOsIU2+X1LMLvl+nZ7pxr69dk1s1024RgMR6e2Wea9qJ3OxmFXY12sr0iPupyy1GRLtm4SA5mQuZkUFTZHRgtiIdOZuHwXey7l3lr87CNkD5gqZ2vxuLg1KbU/H42L+OOPUk/sbKkxPq3DNIm3koYvWj0cRDKqancjrjzTeCp0u2JfXAPLqXaqSEc3IFhJWuLIHa9ihXhhgZoR2H1tkT+AOvE9FPYKuHw0rMmDSHCcbED7F24Czb5C+QtXOlEKhah/Bym/ZnI18VS5zfSXBVAELkqwWGfJBOwc/m2UWTvYo47C8QiC0yqKBA3D8VzQTjc5e6tDUCPp5KaPvfc8QvZ46U2tzW82JtmquJX5biv+uG6HG6QgJHy13UQH/0eM4dgqYAxD8jFDBbjaNNqvdbvB24BBSfhYagJ1rHagPSNIe6+t3PeWbBnmUPZj3S+C3zIHcgA2lEuPEZVnzvzljpJnXv3jHDtG4qiH7WPuErHNszSdoJOGJs6M2tp2fdmPDhnNolUAAQtKsK9VDraBF5LUzftggWX+6zUVRIMFqLyy5fQCz3RwEVVGFYHhTirBrRNF67RIpWvmbi5Bq X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB0071.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(39850400004)(376002)(396003)(136003)(53546011)(4326008)(6486002)(66476007)(36756003)(8676002)(26005)(66556008)(31686004)(186003)(66946007)(5660300002)(16576012)(86362001)(316002)(16526019)(31696002)(54906003)(6706004)(52116002)(956004)(2616005)(2906002)(38100700002)(83380400001)(38350700002)(8936002)(478600001)(78286007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?WXRrOGdCMGJ5Y2dWOXVxUkRRTzhsQndqOW4ySEJoLzNjMmZpVU1PMXBYTk0w?= =?utf-8?B?Rjk1UmdtRnVza2pyRGlGNitQOEd3c3dLdkhTZC92c2w2ejRONlpSZU8rY1Qx?= =?utf-8?B?SHpwOHgvMWI4RDNZcmlpbmhhMXFxWHJiVXpsZ3cvT2ZOK1BtM2dENFg4aDF2?= =?utf-8?B?TUVON0dOcDBpQlRHQllxRjM4eUFQeFd5OFZNajhIei9DNzhMSW9vTFFpaFFk?= =?utf-8?B?U0FBNHhMN0xqQ0E0dDhSSjd0bzZSaE1yVU05VUVUQktJQkdVYVlHQktieVN0?= =?utf-8?B?SmVYaVJacXVQQWxlR2wxeDAyWXdMb2Y4NVNCSzR3VDIvRmsydUVEOHFQQkUv?= =?utf-8?B?OCtnUDl6ZTJYdkhSUHVLR054ZnVFYnVEV0ppWk03MnJuS1dOOURpSHE4Q0Jt?= =?utf-8?B?WXg0ZlpZL2pqRHhWaGZMcFdyUXY4NTAxeDNFa2paSWl2VitFM1JKelhjcEE3?= =?utf-8?B?TERpakw0S0VxL0xVZHlGVGhDdlZGSHV2WnVHeTdBdGgwK3lFcVl1cmJkOFpW?= =?utf-8?B?OERYVTZDK0VleU05OGJOL0d4d1BXWHVVZk9kNEVPMGd1bzR0eTIzd3FCZWhp?= =?utf-8?B?RkRXc0MvTHduS0VlZ3U3RC9Qc3dvM1dsVHpqRlJvUzVPNnROKzVIbk1UbmVu?= =?utf-8?B?Z2gvVTdDOEdZMWw1NmpPNnhnZXJmWVZ3UGVYcDV3MUV0V1AvV0VjWThvcVBk?= =?utf-8?B?YlptRjFvNzcrZm5yeS9GK3JHellGZjVOcHh0VUdIb2h3eW5CZW05bzhPV1kv?= =?utf-8?B?NWxKZy8vYXNRZVJVZ2plTEgzVVFrVlhPakQ0Ymt3MDZHdW1GVzFFb0Fma1Ja?= =?utf-8?B?QzZwQ3JRdkpHRzRBNkxTQ2xDamlxc3hDVVB2cEZsYzlwV3JYSUorZWh2R29E?= =?utf-8?B?WHNtaEJKM3h4d3EvSnN4SmhFN25UR2taVzd6T1pCQXZ6N0U0bThiZnN0c0dK?= =?utf-8?B?bGlwV1FhM1NmK2tTc1hCalJlQ3dyRFRHY3lBVG9ZK0NnZmVFdjlvQWlpVHFZ?= =?utf-8?B?YVFkZjJ6Vk9OWkcySnIyWERKbkdTdyt4Y3RiL0ZVYTFXU0l3c0VxbGRtekZL?= =?utf-8?B?MS9QeFNicWhjMk51YXNmeFQ1NFBacUM4dGlyRFFtU0labGdMWWZXOFJVOXFK?= =?utf-8?B?VnM3U0ZRbmdRV3dIMFNqNmRnc2t5NjRPQU1YNkdZeDAwVnZYT0FXSDNzUFpX?= =?utf-8?B?NEFPUzZ5K3kyZkJKK3Z0a0d3LzlqelcyVHYvaURrWTZnTHVMWjVMS25iLzFD?= =?utf-8?B?K1BhSVpoYlJha2NoL1V6MTBnbzVWbkdwUWM5V3BTMGZqbWE5YzZaTksrQ3lL?= =?utf-8?B?VE1WY2dPdjR6V2dYd3NjTTBqV1UwQUxybHJRWGRWV0dnN0JJUEpRdUlPRlM2?= =?utf-8?B?aTFpM0JwT1lZN3VxSWFSd2pPS2JKQUluSVFxZG5pSkx1aXMxd056bE9hWmpw?= =?utf-8?B?bEoraXNsOW82TXUzbmlmUURCT1RNQmtGRW90eGhycnVYNkVuZzJTSC9Sc05x?= =?utf-8?B?TGhCMGQzSmNLM2FMcnp5YWo1RXJmZVE3TWloZ3dDd2UwN0ViQ1EvcTdNWVBn?= =?utf-8?B?TEtrNkNJTDNEZUlYR3JtZFNxMStmLzQ5NXFpc3RVaFBwa0FxdEIwT2NCODVs?= =?utf-8?B?dnVUTFR3OVZiV1RPT0crZWg2Z0J1R0dmOE9ZSW1OclkycUFGWnFnK2pKRXJE?= =?utf-8?B?c2lyOUJoNzNabUQ1VGgzbEFMVzhhd2dtaU92VDI0dEl6YXJhRWVvTW5rd3V4?= =?utf-8?Q?faTMBzrmufCvAbq53+ZaBlC2lalY0o6h50eXWqi?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1474b319-4085-4217-4fff-08d8ffe755a6 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2021 08:20:31.5304 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UQnwdl3Uc1FX5xsYG2dPcmDjc5mi2gCVOvLNDaY+zMN7Yvfq7ntROdKrlYqvDGxWZST3o2K1a21Vsz7aBNqMZNtVrgD1dM0DkNmYStUeATU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2149 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/15/21 3:46 PM, Dinghao Liu wrote: > There is a PM usage counter decrement after zynqmp_qspi_init_hw() > without any refcount increment, which leads to refcount leak.Add > a refcount increment to balance the refcount. Also set > auto_runtime_pm to resume suspended spi controller. > > Fixes: 9e3a000362aec ("spi: zynqmp: Add pm runtime support") > Signed-off-by: Dinghao Liu > --- > > Changelog: > > v2: - Add a refcount increment to fix refcout leak instead of the > refcount decrement on error. > Set ctlr->auto_runtime_pm = true. > > v3: - Add fix tag. > Add a return value check against pm_runtime_get_sync(). > Move pm_runtime_{mark_last_busy & put_autosuspend} to the > end of current function. > > v4: - Add error message on failure of pm_runtime_get_sync(). > --- > drivers/spi/spi-zynqmp-gqspi.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c > index c8fa6ee18ae7..38f3ddd3ea7c 100644 > --- a/drivers/spi/spi-zynqmp-gqspi.c > +++ b/drivers/spi/spi-zynqmp-gqspi.c > @@ -1160,11 +1160,16 @@ static int zynqmp_qspi_probe(struct platform_device *pdev) > pm_runtime_set_autosuspend_delay(&pdev->dev, SPI_AUTOSUSPEND_TIMEOUT); > pm_runtime_set_active(&pdev->dev); > pm_runtime_enable(&pdev->dev); > + > + ret = pm_runtime_get_sync(&pdev->dev); > + if (ret < 0) { > + dev_err(&pdev->dev, "Failed to pm_runtime_get_sync: %d\n", ret); > + goto clk_dis_all; > + } > + > /* QSPI controller initializations */ > zynqmp_qspi_init_hw(xqspi); > > - pm_runtime_mark_last_busy(&pdev->dev); > - pm_runtime_put_autosuspend(&pdev->dev); > xqspi->irq = platform_get_irq(pdev, 0); > if (xqspi->irq <= 0) { > ret = -ENXIO; > @@ -1187,6 +1192,7 @@ static int zynqmp_qspi_probe(struct platform_device *pdev) > ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_RX_DUAL | SPI_RX_QUAD | > SPI_TX_DUAL | SPI_TX_QUAD; > ctlr->dev.of_node = np; > + ctlr->auto_runtime_pm = true; > > ret = devm_spi_register_controller(&pdev->dev, ctlr); > if (ret) { > @@ -1194,9 +1200,13 @@ static int zynqmp_qspi_probe(struct platform_device *pdev) > goto clk_dis_all; > } > > + pm_runtime_mark_last_busy(&pdev->dev); > + pm_runtime_put_autosuspend(&pdev->dev); > + > return 0; > > clk_dis_all: > + pm_runtime_put_sync(&pdev->dev); > pm_runtime_set_suspended(&pdev->dev); > pm_runtime_disable(&pdev->dev); > clk_disable_unprepare(xqspi->refclk); Test this patch at zcu102 board: root@xilinx-zynqmp:~# dmesg | grep domain2 [    0.905407] zynqmp_gpd_attach_dev() ff0f0000.spi attached to domain2 domain [    0.912390] zynqmp_gpd_power_on() Powered on domain2 domain [    4.350331] zynqmp_gpd_power_off() Powered off domain2 domain root@xilinx-zynqmp:~# flash_erase /dev/mtd3 0 0 Erasing 4 Kibyte @ 0 --  0 % complete [  153.125894] zynqmp_gpd_power_on() Powered on domain2 domain Erasing 4 Kibyte @ 2e8000 -- 49 % complete [  156.134884] zynqmp_gpd_power_off() Powered off domain2 domain [  156.142648] zynqmp_gpd_power_on() Powered on domain2 domain Erasing 4 Kibyte @ 5d5000 -- 99 % complete [  159.148329] zynqmp_gpd_power_off() Powered off domain2 domain [  159.154579] zynqmp_gpd_power_on() Powered on domain2 domain Erasing 4 Kibyte @ 5df000 -- 100 % complete root@xilinx-zynqmp:~# [  162.910329] zynqmp_gpd_power_off() Powered off domain2 domain pm_runtime works now. So Tested-by: Quanyang Wang Regards, Quanyang 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 X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 358A5C433B4 for ; Thu, 15 Apr 2021 08:22:32 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 90B47611AB for ; Thu, 15 Apr 2021 08:22:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90B47611AB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=windriver.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=0l+kvuvGHuGJxq1HdmeQjXbKUldgi9jAtuIbPKLKmgc=; b=dwRSIlLlGTI8674VKAE6Via0F oDcWDhLmeDNL9jPEKGV+mHI9AzmHtFhB/m6BakeRI9zPnTp/gOUhC9OGMltSoie1x+KIeipOR0fjF VudndN9arBcX3xt9FdAsZgRk+iUTUkIKkOpQ+GVGyjwEWeT1QOuQzEIQqfMvjyrC2fyVMF7QULEWy 8BgmKKtDqAJNcq963H0G5Z/D/H/LLpSXQsqmelarKHpqNcOip5kK/TkegDM0rqrRRxj7RTvcETftb HQr22f5Dykg3WaOGO4q6G1okCVifyF1CtQNtIrBqb1ZkkuT+nTAzMiNM3/xyLPmm2K8G8wFuDAgxp 3UUK+PQ9g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lWxEy-00FKlD-5v; Thu, 15 Apr 2021 08:20:45 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lWxEs-00FKki-Ua for linux-arm-kernel@desiato.infradead.org; Thu, 15 Apr 2021 08:20:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:Date:Message-ID:From: References:Cc:To:Subject:Sender:Reply-To:Content-ID:Content-Description; bh=biiP+f8iKsYkPECa+JeQzboeGU7/0CaFI0x4H007pqA=; b=lipHMEwY6628P1aphHEb5YFGii iEPpsHUYRwQndBzbxXfxnvKCIzZeSvZGJxeuEUVURMMT4kbV5+zaL5sFLanttbhGDAF0Z5PP8UzKk rI16Q6DfYgfUMotYN4KerNmgBnWnYnKI6jRkW5ZtI1DIfzZ8Vn5BEuGdlKVDusy+dWiYUSu8zYeKF mrc89Q8MddwI7XLtSsz71sPWQJ0rZ7nW+S4xRFKJXbQz8FNKEzVIrMiO0X8TLOZL3YVTHOFdSpOs7 r4ZwOf+R4tTs67P2Xv+h5ww8Jr3Nv8g289gp+yEH1bdkRNW7rVTD6bay8/zTRroCmveQ7lE4wIvYk 0iKLJciQ==; Received: from mail-mw2nam12on2080.outbound.protection.outlook.com ([40.107.244.80] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lWxEq-008MzI-B5 for linux-arm-kernel@lists.infradead.org; Thu, 15 Apr 2021 08:20:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j5FhEkhrOwCLHdPWK2S+DYEn5PpP4N51bPA4usrOmeU08P5lnGGHEoNVlF7/nNGhU8X3eTdCRt6xPeGwhhHk6Y5Vh/B48eG1lnh/M+KTCvh91IdeEDr1IEDBJP7RQKn5uXykqPozrgrQy9GR1AaoysIfWC4GOV14nUhgbedyUWakKaAXsOqNm+nRDiBqg2tFLOK1SK9b2kt9+fHnCvwzpOpCJnZoGkvuZW+Cp+Q1hNCv2AACTld/LOMJ07QwnKbZJ7Jd+RlCfN8b3ice73twLd8GJ8Y8OrdfGowN+QUIdIFDojbHloqB6nOgybykkbFrPurCY4QpYp8qcLmj3nkS4g== 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-SenderADCheck; bh=biiP+f8iKsYkPECa+JeQzboeGU7/0CaFI0x4H007pqA=; b=LNx0Dz3t8f/ofJxG2fOYofDrv0VSPlMG4QoYhsrXluXk4qt/dbL3nlTX0s6s0O/NzCddVUqNLjSqzwhPf1C3Yn6dv1s3i7Fz9AtIzQ0cYjAd1JJQa1fiumIM44nq4BocQI86Kh+pQLQKV182bS3pkSEpy4htIy7shVVoI0kWF+EXgADtz4vXmn4mkgba8jCb245RgcQk5Iwn6xNvOSeJjhrLwdoWNwX+uh5Qn9fFM5OwYqSW7+JkZuwjxd2l8VapOHdaA5pEqsShV4TKgU2+1rMl6UYrLTpBfKFAyOf1PQ6hSvQVHgkfluImICkngbH/lKnzGCdqmMkeOk2Zuu4Vqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=biiP+f8iKsYkPECa+JeQzboeGU7/0CaFI0x4H007pqA=; b=Up4VMacvkR4KFG1SkJtbPU8IJ6sgGE8OH3PhpW0SU0uW5AiAEMwcEura9O1bsraPzZL3LktXp9ctIdwIce29Y8AUk30rsj6UzxEpvrGlobE+w9tgGkH9s69Pc1HFh0HQDayU3N8JXE5/p6uJlqDqm2dnjyzutOjuMh0RVSWuvUc= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=windriver.com; Received: from CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) by CY4PR1101MB2149.namprd11.prod.outlook.com (2603:10b6:910:1a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.18; Thu, 15 Apr 2021 08:20:31 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::f45f:e820:49f5:3725]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::f45f:e820:49f5:3725%6]) with mapi id 15.20.3999.037; Thu, 15 Apr 2021 08:20:31 +0000 Subject: Re: [PATCH] [v4] spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe To: Dinghao Liu , kjlu@umn.edu Cc: Mark Brown , Michal Simek , Naga Sureshkumar Relli , Shubhrajyoti Datta , linux-spi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210415074644.24646-1-dinghao.liu@zju.edu.cn> From: "quanyang.wang" Message-ID: <59f9e657-37e8-a91a-08a9-d2bdb734d9cd@windriver.com> Date: Thu, 15 Apr 2021 16:19:27 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: <20210415074644.24646-1-dinghao.liu@zju.edu.cn> Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: HK2PR06CA0006.apcprd06.prod.outlook.com (2603:1096:202:2e::18) To CY4PR11MB0071.namprd11.prod.outlook.com (2603:10b6:910:7a::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.199] (60.247.85.82) by HK2PR06CA0006.apcprd06.prod.outlook.com (2603:1096:202:2e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Thu, 15 Apr 2021 08:20:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1474b319-4085-4217-4fff-08d8ffe755a6 X-MS-TrafficTypeDiagnostic: CY4PR1101MB2149: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ADlGFt/hUazj2wGbDxRJC5MHoYiiKNNrLQP0oBBucA32/uvcQ2vGUthIpcnEBHnUgBlUOguiZ2mNTQsyQ4RBL6vkCMowzSfGOunkG3svqVVjLGOIlf8XQc95qhf2tdTH3L/6FS1kfiVPKFZok6n5kEqVUofZgcPQl73hqGBc55NgTLyKDuOsIU2+X1LMLvl+nZ7pxr69dk1s1024RgMR6e2Wea9qJ3OxmFXY12sr0iPupyy1GRLtm4SA5mQuZkUFTZHRgtiIdOZuHwXey7l3lr87CNkD5gqZ2vxuLg1KbU/H42L+OOPUk/sbKkxPq3DNIm3koYvWj0cRDKqancjrjzTeCp0u2JfXAPLqXaqSEc3IFhJWuLIHa9ihXhhgZoR2H1tkT+AOvE9FPYKuHw0rMmDSHCcbED7F24Czb5C+QtXOlEKhah/Bym/ZnI18VS5zfSXBVAELkqwWGfJBOwc/m2UWTvYo47C8QiC0yqKBA3D8VzQTjc5e6tDUCPp5KaPvfc8QvZ46U2tzW82JtmquJX5biv+uG6HG6QgJHy13UQH/0eM4dgqYAxD8jFDBbjaNNqvdbvB24BBSfhYagJ1rHagPSNIe6+t3PeWbBnmUPZj3S+C3zIHcgA2lEuPEZVnzvzljpJnXv3jHDtG4qiH7WPuErHNszSdoJOGJs6M2tp2fdmPDhnNolUAAQtKsK9VDraBF5LUzftggWX+6zUVRIMFqLyy5fQCz3RwEVVGFYHhTirBrRNF67RIpWvmbi5Bq X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR11MB0071.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(39850400004)(376002)(396003)(136003)(53546011)(4326008)(6486002)(66476007)(36756003)(8676002)(26005)(66556008)(31686004)(186003)(66946007)(5660300002)(16576012)(86362001)(316002)(16526019)(31696002)(54906003)(6706004)(52116002)(956004)(2616005)(2906002)(38100700002)(83380400001)(38350700002)(8936002)(478600001)(78286007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?WXRrOGdCMGJ5Y2dWOXVxUkRRTzhsQndqOW4ySEJoLzNjMmZpVU1PMXBYTk0w?= =?utf-8?B?Rjk1UmdtRnVza2pyRGlGNitQOEd3c3dLdkhTZC92c2w2ejRONlpSZU8rY1Qx?= =?utf-8?B?SHpwOHgvMWI4RDNZcmlpbmhhMXFxWHJiVXpsZ3cvT2ZOK1BtM2dENFg4aDF2?= =?utf-8?B?TUVON0dOcDBpQlRHQllxRjM4eUFQeFd5OFZNajhIei9DNzhMSW9vTFFpaFFk?= =?utf-8?B?U0FBNHhMN0xqQ0E0dDhSSjd0bzZSaE1yVU05VUVUQktJQkdVYVlHQktieVN0?= =?utf-8?B?SmVYaVJacXVQQWxlR2wxeDAyWXdMb2Y4NVNCSzR3VDIvRmsydUVEOHFQQkUv?= =?utf-8?B?OCtnUDl6ZTJYdkhSUHVLR054ZnVFYnVEV0ppWk03MnJuS1dOOURpSHE4Q0Jt?= =?utf-8?B?WXg0ZlpZL2pqRHhWaGZMcFdyUXY4NTAxeDNFa2paSWl2VitFM1JKelhjcEE3?= =?utf-8?B?TERpakw0S0VxL0xVZHlGVGhDdlZGSHV2WnVHeTdBdGgwK3lFcVl1cmJkOFpW?= =?utf-8?B?OERYVTZDK0VleU05OGJOL0d4d1BXWHVVZk9kNEVPMGd1bzR0eTIzd3FCZWhp?= =?utf-8?B?RkRXc0MvTHduS0VlZ3U3RC9Qc3dvM1dsVHpqRlJvUzVPNnROKzVIbk1UbmVu?= =?utf-8?B?Z2gvVTdDOEdZMWw1NmpPNnhnZXJmWVZ3UGVYcDV3MUV0V1AvV0VjWThvcVBk?= =?utf-8?B?YlptRjFvNzcrZm5yeS9GK3JHellGZjVOcHh0VUdIb2h3eW5CZW05bzhPV1kv?= =?utf-8?B?NWxKZy8vYXNRZVJVZ2plTEgzVVFrVlhPakQ0Ymt3MDZHdW1GVzFFb0Fma1Ja?= =?utf-8?B?QzZwQ3JRdkpHRzRBNkxTQ2xDamlxc3hDVVB2cEZsYzlwV3JYSUorZWh2R29E?= =?utf-8?B?WHNtaEJKM3h4d3EvSnN4SmhFN25UR2taVzd6T1pCQXZ6N0U0bThiZnN0c0dK?= =?utf-8?B?bGlwV1FhM1NmK2tTc1hCalJlQ3dyRFRHY3lBVG9ZK0NnZmVFdjlvQWlpVHFZ?= =?utf-8?B?YVFkZjJ6Vk9OWkcySnIyWERKbkdTdyt4Y3RiL0ZVYTFXU0l3c0VxbGRtekZL?= =?utf-8?B?MS9QeFNicWhjMk51YXNmeFQ1NFBacUM4dGlyRFFtU0labGdMWWZXOFJVOXFK?= =?utf-8?B?VnM3U0ZRbmdRV3dIMFNqNmRnc2t5NjRPQU1YNkdZeDAwVnZYT0FXSDNzUFpX?= =?utf-8?B?NEFPUzZ5K3kyZkJKK3Z0a0d3LzlqelcyVHYvaURrWTZnTHVMWjVMS25iLzFD?= =?utf-8?B?K1BhSVpoYlJha2NoL1V6MTBnbzVWbkdwUWM5V3BTMGZqbWE5YzZaTksrQ3lL?= =?utf-8?B?VE1WY2dPdjR6V2dYd3NjTTBqV1UwQUxybHJRWGRWV0dnN0JJUEpRdUlPRlM2?= =?utf-8?B?aTFpM0JwT1lZN3VxSWFSd2pPS2JKQUluSVFxZG5pSkx1aXMxd056bE9hWmpw?= =?utf-8?B?bEoraXNsOW82TXUzbmlmUURCT1RNQmtGRW90eGhycnVYNkVuZzJTSC9Sc05x?= =?utf-8?B?TGhCMGQzSmNLM2FMcnp5YWo1RXJmZVE3TWloZ3dDd2UwN0ViQ1EvcTdNWVBn?= =?utf-8?B?TEtrNkNJTDNEZUlYR3JtZFNxMStmLzQ5NXFpc3RVaFBwa0FxdEIwT2NCODVs?= =?utf-8?B?dnVUTFR3OVZiV1RPT0crZWg2Z0J1R0dmOE9ZSW1OclkycUFGWnFnK2pKRXJE?= =?utf-8?B?c2lyOUJoNzNabUQ1VGgzbEFMVzhhd2dtaU92VDI0dEl6YXJhRWVvTW5rd3V4?= =?utf-8?Q?faTMBzrmufCvAbq53+ZaBlC2lalY0o6h50eXWqi?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1474b319-4085-4217-4fff-08d8ffe755a6 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2021 08:20:31.5304 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UQnwdl3Uc1FX5xsYG2dPcmDjc5mi2gCVOvLNDaY+zMN7Yvfq7ntROdKrlYqvDGxWZST3o2K1a21Vsz7aBNqMZNtVrgD1dM0DkNmYStUeATU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2149 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210415_012036_412147_F45D6D2A X-CRM114-Status: GOOD ( 21.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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDQvMTUvMjEgMzo0NiBQTSwgRGluZ2hhbyBMaXUgd3JvdGU6Cj4gVGhlcmUgaXMgYSBQTSB1 c2FnZSBjb3VudGVyIGRlY3JlbWVudCBhZnRlciB6eW5xbXBfcXNwaV9pbml0X2h3KCkKPiB3aXRo b3V0IGFueSByZWZjb3VudCBpbmNyZW1lbnQsIHdoaWNoIGxlYWRzIHRvIHJlZmNvdW50IGxlYWsu QWRkCj4gYSByZWZjb3VudCBpbmNyZW1lbnQgdG8gYmFsYW5jZSB0aGUgcmVmY291bnQuIEFsc28g c2V0Cj4gYXV0b19ydW50aW1lX3BtIHRvIHJlc3VtZSBzdXNwZW5kZWQgc3BpIGNvbnRyb2xsZXIu Cj4KPiBGaXhlczogOWUzYTAwMDM2MmFlYyAoInNwaTogenlucW1wOiBBZGQgcG0gcnVudGltZSBz dXBwb3J0IikKPiBTaWduZWQtb2ZmLWJ5OiBEaW5naGFvIExpdSA8ZGluZ2hhby5saXVAemp1LmVk dS5jbj4KPiAtLS0KPgo+IENoYW5nZWxvZzoKPgo+IHYyOiAtIEFkZCBhIHJlZmNvdW50IGluY3Jl bWVudCB0byBmaXggcmVmY291dCBsZWFrIGluc3RlYWQgb2YgdGhlCj4gICAgICAgIHJlZmNvdW50 IGRlY3JlbWVudCBvbiBlcnJvci4KPiAgICAgICAgU2V0IGN0bHItPmF1dG9fcnVudGltZV9wbSA9 IHRydWUuCj4KPiB2MzogLSBBZGQgZml4IHRhZy4KPiAgICAgICAgQWRkIGEgcmV0dXJuIHZhbHVl IGNoZWNrIGFnYWluc3QgcG1fcnVudGltZV9nZXRfc3luYygpLgo+ICAgICAgICBNb3ZlIHBtX3J1 bnRpbWVfe21hcmtfbGFzdF9idXN5ICYgcHV0X2F1dG9zdXNwZW5kfSB0byB0aGUKPiAgICAgICAg ZW5kIG9mIGN1cnJlbnQgZnVuY3Rpb24uCj4KPiB2NDogLSBBZGQgZXJyb3IgbWVzc2FnZSBvbiBm YWlsdXJlIG9mIHBtX3J1bnRpbWVfZ2V0X3N5bmMoKS4KPiAtLS0KPiAgIGRyaXZlcnMvc3BpL3Nw aS16eW5xbXAtZ3FzcGkuYyB8IDE0ICsrKysrKysrKysrKy0tCj4gICAxIGZpbGUgY2hhbmdlZCwg MTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3NwaS9zcGktenlucW1wLWdxc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGktenlucW1wLWdxc3BpLmMK PiBpbmRleCBjOGZhNmVlMThhZTcuLjM4ZjNkZGQzZWE3YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L3NwaS9zcGktenlucW1wLWdxc3BpLmMKPiArKysgYi9kcml2ZXJzL3NwaS9zcGktenlucW1wLWdx c3BpLmMKPiBAQCAtMTE2MCwxMSArMTE2MCwxNiBAQCBzdGF0aWMgaW50IHp5bnFtcF9xc3BpX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gICAJcG1fcnVudGltZV9zZXRfYXV0 b3N1c3BlbmRfZGVsYXkoJnBkZXYtPmRldiwgU1BJX0FVVE9TVVNQRU5EX1RJTUVPVVQpOwo+ICAg CXBtX3J1bnRpbWVfc2V0X2FjdGl2ZSgmcGRldi0+ZGV2KTsKPiAgIAlwbV9ydW50aW1lX2VuYWJs ZSgmcGRldi0+ZGV2KTsKPiArCj4gKwlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKCZwZGV2LT5k ZXYpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQg dG8gcG1fcnVudGltZV9nZXRfc3luYzogJWRcbiIsIHJldCk7Cj4gKwkJZ290byBjbGtfZGlzX2Fs bDsKPiArCX0KPiArCj4gICAJLyogUVNQSSBjb250cm9sbGVyIGluaXRpYWxpemF0aW9ucyAqLwo+ ICAgCXp5bnFtcF9xc3BpX2luaXRfaHcoeHFzcGkpOwo+ICAgCj4gLQlwbV9ydW50aW1lX21hcmtf bGFzdF9idXN5KCZwZGV2LT5kZXYpOwo+IC0JcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoJnBk ZXYtPmRldik7Cj4gICAJeHFzcGktPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Cj4g ICAJaWYgKHhxc3BpLT5pcnEgPD0gMCkgewo+ICAgCQlyZXQgPSAtRU5YSU87Cj4gQEAgLTExODcs NiArMTE5Miw3IEBAIHN0YXRpYyBpbnQgenlucW1wX3FzcGlfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiAgIAljdGxyLT5tb2RlX2JpdHMgPSBTUElfQ1BPTCB8IFNQSV9DUEhB IHwgU1BJX1JYX0RVQUwgfCBTUElfUlhfUVVBRCB8Cj4gICAJCQkgICAgU1BJX1RYX0RVQUwgfCBT UElfVFhfUVVBRDsKPiAgIAljdGxyLT5kZXYub2Zfbm9kZSA9IG5wOwo+ICsJY3Rsci0+YXV0b19y dW50aW1lX3BtID0gdHJ1ZTsKPiAgIAo+ICAgCXJldCA9IGRldm1fc3BpX3JlZ2lzdGVyX2NvbnRy b2xsZXIoJnBkZXYtPmRldiwgY3Rscik7Cj4gICAJaWYgKHJldCkgewo+IEBAIC0xMTk0LDkgKzEy MDAsMTMgQEAgc3RhdGljIGludCB6eW5xbXBfcXNwaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQo+ICAgCQlnb3RvIGNsa19kaXNfYWxsOwo+ICAgCX0KPiAgIAo+ICsJcG1fcnVu dGltZV9tYXJrX2xhc3RfYnVzeSgmcGRldi0+ZGV2KTsKPiArCXBtX3J1bnRpbWVfcHV0X2F1dG9z dXNwZW5kKCZwZGV2LT5kZXYpOwo+ICsKPiAgIAlyZXR1cm4gMDsKPiAgIAo+ICAgY2xrX2Rpc19h bGw6Cj4gKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZwZGV2LT5kZXYpOwo+ICAgCXBtX3J1bnRpbWVf c2V0X3N1c3BlbmRlZCgmcGRldi0+ZGV2KTsKPiAgIAlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYt PmRldik7Cj4gICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHhxc3BpLT5yZWZjbGspOwoKVGVzdCB0 aGlzIHBhdGNoIGF0IHpjdTEwMiBib2FyZDoKCnJvb3RAeGlsaW54LXp5bnFtcDp+IyBkbWVzZyB8 IGdyZXAgZG9tYWluMgpbwqDCoMKgIDAuOTA1NDA3XSB6eW5xbXBfZ3BkX2F0dGFjaF9kZXYoKSBm ZjBmMDAwMC5zcGkgYXR0YWNoZWQgdG8gZG9tYWluMiAKZG9tYWluClvCoMKgwqAgMC45MTIzOTBd IHp5bnFtcF9ncGRfcG93ZXJfb24oKSBQb3dlcmVkIG9uIGRvbWFpbjIgZG9tYWluClvCoMKgwqAg NC4zNTAzMzFdIHp5bnFtcF9ncGRfcG93ZXJfb2ZmKCkgUG93ZXJlZCBvZmYgZG9tYWluMiBkb21h aW4Kcm9vdEB4aWxpbngtenlucW1wOn4jIGZsYXNoX2VyYXNlIC9kZXYvbXRkMyAwIDAKRXJhc2lu ZyA0IEtpYnl0ZSBAIDAgLS3CoCAwICUgY29tcGxldGUgW8KgIDE1My4xMjU4OTRdIAp6eW5xbXBf Z3BkX3Bvd2VyX29uKCkgUG93ZXJlZCBvbiBkb21haW4yIGRvbWFpbgpFcmFzaW5nIDQgS2lieXRl IEAgMmU4MDAwIC0tIDQ5ICUgY29tcGxldGUgW8KgIDE1Ni4xMzQ4ODRdIAp6eW5xbXBfZ3BkX3Bv d2VyX29mZigpIFBvd2VyZWQgb2ZmIGRvbWFpbjIgZG9tYWluClvCoCAxNTYuMTQyNjQ4XSB6eW5x bXBfZ3BkX3Bvd2VyX29uKCkgUG93ZXJlZCBvbiBkb21haW4yIGRvbWFpbgpFcmFzaW5nIDQgS2li eXRlIEAgNWQ1MDAwIC0tIDk5ICUgY29tcGxldGUgW8KgIDE1OS4xNDgzMjldIAp6eW5xbXBfZ3Bk X3Bvd2VyX29mZigpIFBvd2VyZWQgb2ZmIGRvbWFpbjIgZG9tYWluClvCoCAxNTkuMTU0NTc5XSB6 eW5xbXBfZ3BkX3Bvd2VyX29uKCkgUG93ZXJlZCBvbiBkb21haW4yIGRvbWFpbgpFcmFzaW5nIDQg S2lieXRlIEAgNWRmMDAwIC0tIDEwMCAlIGNvbXBsZXRlCnJvb3RAeGlsaW54LXp5bnFtcDp+IyBb wqAgMTYyLjkxMDMyOV0genlucW1wX2dwZF9wb3dlcl9vZmYoKSBQb3dlcmVkIG9mZiAKZG9tYWlu MiBkb21haW4KCnBtX3J1bnRpbWUgd29ya3Mgbm93LiBTbwoKVGVzdGVkLWJ5OiBRdWFueWFuZyBX YW5nIDxxdWFueWFuZy53YW5nQHdpbmRyaXZlci5jb20+CgpSZWdhcmRzLAoKUXVhbnlhbmcKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==