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,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, 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 A78DCC433E0 for ; Wed, 17 Mar 2021 11:51:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 564EC64F70 for ; Wed, 17 Mar 2021 11:51:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231452AbhCQLuw (ORCPT ); Wed, 17 Mar 2021 07:50:52 -0400 Received: from mail-bn8nam12on2046.outbound.protection.outlook.com ([40.107.237.46]:26529 "EHLO NAM12-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231453AbhCQLur (ORCPT ); Wed, 17 Mar 2021 07:50:47 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NFV6BtDkwFqPWCdzfiR19/CvCa1ikZGXgKf0bZWOWVhydaDHdabC4nm3VXNpXjk/S5MWICNBpl7d2RwcJlLbdXL6A9JBWS7lsbFoQji9HxjOw+1/EdG3tNrr5o/BRxdLoxe3Vv3M5nbei7kX2ehk1D9Ic+iSNX5+559fFud6PX2UU+wuFYj6JejB32C3j5urh3ZfyV0VtMo1t8R06CUhp7YbJh4JDSbmdx5ucELfguK7rkhS1zHry85W6PZIjuOErFxo9zjWGybekjEpRyEAPlXC3oZQBmEkhOTn1fWDmkr6QlHsNelGaGwsVUVaGy+ayTyT330OTdkubdPRGHrFLA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=lmhxLwC18kCUpL6zkeYVnjvR5NR/qVn/+hsduns/7I+VfU/Hz6EzQ/BEXoNJdXEu664HgsyZBUOioKrBfxrdHHBU0oUJJbBcwbq8BoD4mN/1L1B0qYzBAOazC6jw5tZOmIaMhnTJDTdZOc7IEZJCgfyNwNq+ngF8Gv8AjJgz4p6R42Gwgk0jYCZNqy30zy1dHpVgp3qOwsXjnf0DwncWvN773SmgPKsr/sNYfHQShdjPG36IlsOJm5/Q02V2hW/h8cigm6SP33Wl5LEZL0ZdEmj0kdqZOQGHI/wkqs4+KFUnHV2/TOOX6WkQJZtHHEM+oF6U/3gbLoD/B4ewDvBRwA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=jxGEKCilTUYZSK5ZAq33Zm60Q7SrYrDXpztFzTWIUbxpR7huQdiLf2XREbyq8Ok9UAtw31KA1WMtt6D2r/rpYJbflVmFB/ubNZ309zZWftHF8EeRvrklT8wyVLKySvdPkIVCYZzooiKPDpBgi3mqTZj0MdCeJaw0xud1C5mT01A= 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 CY4PR11MB1544.namprd11.prod.outlook.com (2603:10b6:910:d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31; Wed, 17 Mar 2021 11:50:44 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0%5]) with mapi id 15.20.3933.032; Wed, 17 Mar 2021 11:50:44 +0000 Subject: Re: [PATCH] drm: xlnx: call pm_runtime_get_sync before setting pixel clock To: Rohit Visavalia , Michal Simek , Laurent Pinchart Cc: Hyun Kwon , David Airlie , Daniel Vetter , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: <20210310045945.3034364-1-quanyang.wang@windriver.com> <72a24e1f-8708-7f87-b1b5-a2b171bf4576@xilinx.com> From: "quanyang.wang" Message-ID: <31f7b1fb-6bb9-4ae5-9a9a-c1a7c094a6fd@windriver.com> Date: Wed, 17 Mar 2021 19:50:01 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: 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: BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) 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 BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.11 via Frontend Transport; Wed, 17 Mar 2021 11:50:39 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-TrafficTypeDiagnostic: CY4PR11MB1544: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Hda9ibmdSjcLSo+oh+KzoJpTrjcO9Muklx7jcuEvMKeYfnfxhAcOQDnjpeufUGC/lyNJqYemSnr/A+wnpr7yUpxqt17/Q5UKDqStV/7NMh+CHZ5x44C2L90K7M7LgAx5h9QxBGPVk37F/0TXEeySUil3QvpJInvSySk+SgW8j5luGLaAbx8jTzwlIQicDwjqo9wKkIg7Jge1bvePkZd3huEy1Q6MQJ+vYMCKUoVhohUFzYniSzTCWPihV7y8Bvm2S3XufRFIIsy29K0169bf3sfCDCY7BfaH6jp6Z/sAoutefwas1nuvqNwmKK2ZGHA/puDp+YL0ewJkOnbkkloE377LQWc3LVO2yNpCvWUm0e2eGpAPyqQf+EhH231bxwRgoE6Bd8OenvIvuwx6Iu0ieNErH7YEjduN6mPBNQM+TgkSYqlx4vxXLD9GEes46sqbGf/eqDl2lIGqJlEgriLLN2EHXz/OW9LGop2Nucm1ARm8rRjVk6VBJVl2zzZ9fh9YHtOwqcNXDfFSN9hh1Db/yOk6EJcJeSNAqJqkd8RsmbTpGnyiM2eYi/FFox2mG1fFF0lVSXOVkMDIoE6abAHeNaMNeusoq57NbppDBT+h5WUCGarWz8PfMRh6AXPWO2FGt5hiOSekLEXveYsxLMZJ4Bo1GgSElHjzOubv2FOxGs0= 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)(376002)(346002)(366004)(396003)(39850400004)(136003)(110136005)(6666004)(16526019)(36756003)(83380400001)(8936002)(4326008)(5660300002)(30864003)(31686004)(45080400002)(478600001)(86362001)(186003)(2906002)(8676002)(956004)(16576012)(2616005)(66556008)(66946007)(54906003)(6706004)(26005)(31696002)(6486002)(316002)(53546011)(52116002)(66476007)(78286007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NmppNGllZmZxdlBWUHprcjhHMGNOQ0pmQ3NZaVRBVG1HVE9nc0dHbFRBVk9E?= =?utf-8?B?TWZoNnZ2c2NwQnZiTFNrb1AvRVI2Yy9GeThEVDBpZGtlK0lENkVLN3FCcWxG?= =?utf-8?B?a3FwMnBaRC9MVWRwYTRvWGhIRENiaGhpdVhGYjZpbWYvQTNKTmVHZE4rNFBS?= =?utf-8?B?Tk85U1Y0U2VCek9mb1BGYXdNMEFSSUh1N1R4UWFKcFd0QlBRT1pYQnFzOHBk?= =?utf-8?B?cVpLZ0JqK0tocld2bVd1ZWk4VU5HdHRyR3BmczBKeGlyR2xHak5NNUhuTFFL?= =?utf-8?B?SWJiTnhQMHAwN1I2K1hCS2ZnWkswSGlYZU9La0NqejB3RmZPd1NIR0FabnNS?= =?utf-8?B?TGd5S0J2eUxXaGNQTUl5SXp3bkJoZEFCTmlaeHJBYVUxTU01RitZRHRPSThR?= =?utf-8?B?NzZwSDZOc2pkeFh1NlpIQWI1TnhWZVNHWFNubFZkblFHUWU2cXBzYWJ3eXBx?= =?utf-8?B?LzUwSzViUGVWZ0JGZFp0OW1naDVUcFBvbzU3b0tERXZmUStzMmxSelpuWlZI?= =?utf-8?B?OXZOaWlYUUN2WnE2Z204TU1sbkVEUjZLQU1mWTlhcnZIZ3ZXUEtINE1rbUY0?= =?utf-8?B?RHNFTTVwR3VBTE5McFFScWVKMEQ4RjlidUtKb3hNcTZaWFcwZHVYRVVJd3k5?= =?utf-8?B?QzJNM3JqS2VreUgwN09QNVRVZXhLZCtJcXU0RENrK1dUaXZ6cGwwVFFQQkRZ?= =?utf-8?B?Z1RxTEZ0ZFMxalNRK1BibDNiRWNpUzVKY2xkUTlWZDhGamNxUGJsMGFRb2U3?= =?utf-8?B?dUxyVi9ucndZSTN0VU9uZitQaXVpa3dmMHY4Q3BzcUtsNDJnbUtQbjJQUGZH?= =?utf-8?B?WGUrVmh0bkFVY1MyUXM1UE41bzlRZjgxN0w4VEw1TDk1c0Ivcmh5dVYxNjlp?= =?utf-8?B?bXB1aE9CK1l5Q1JuRWhlQ2VRK3pzTHV6eHBUQWFwblNyNzNzTW5acTV6R3hj?= =?utf-8?B?ejBSY2hxLzZwa0w2SjQzY0JKZitoaXdsWm03ZGZmd3Rmald1OWhwVUtJbzdV?= =?utf-8?B?cDlxUGF2dlYyWk81djg5WEZiNEp6anQxbytSa0ZKdWlQY2tMU2RXTmpiWGRl?= =?utf-8?B?NnZFRkV4MERodEUrcEtqdEg1djFRbHo0U1FibERtZW9MSnRRL3JhelB5cW41?= =?utf-8?B?NXBmVUx2UzhVVENyeU13aC9xNldpZDVRcW04T3o1bFpwMXZWM0s2cDhsUzBR?= =?utf-8?B?aSsvbk5BYSt1UEt3OU96WDRFanZkS1RheTdCNzZyYlplRXdrbEt4RmlvM2Qw?= =?utf-8?B?MnpVUTdpa3BQYkRGTXpOZTNTR0JJOXZHTmtXUEdzbGFrbUpzZmt6cUVyTnlX?= =?utf-8?B?RTEvZTMrd0J1QzJiTTlieU11SDhDellvSkM1MGc2cVZzaGNKSmVBRVpPdzhD?= =?utf-8?B?Z0NrZTdpUUE1NWRaWEdKOFFUc1JBZnE5WUdtS0RCM0VBMHdvQlVlUjhkbjY2?= =?utf-8?B?cE8vWEUreHVSOHlZVkJRQ0ZReDBQUndBcVVkVXNzSTI4UWtxdlJwYWVLYlRj?= =?utf-8?B?U012Z1NBdEpYck9oQmh2dW1FNkFVN01kbWtQVXR1VVdCdkhWYlJneWxGcTNj?= =?utf-8?B?S3hJemkyb0pTRXk0T3dXQWhtbDVGWWxmSzRPN2t3M3ZUOXJ1T0lqNnE5aldP?= =?utf-8?B?ZHczYjJEK0k0WEs1QkJuRjRNZ0w1YW16a2lOQmR3YndLdUtkMk9MTDlOME8z?= =?utf-8?B?dWVIZUZCaUpsOVdTdWY5OG1BZFNiTjQ2aWdHY3Y4QkpBU1V6SVFTcTRjMGMw?= =?utf-8?Q?/p7ElcTATeZ2EY7ngwM03GzIWCtvc3+dkEftaD8?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2021 11:50:44.6127 (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: i/KhDZMWFCb742a6+Aa8AlfeSqffEzkBijHVvUjQdEPCEfzlp7HIgBNc75nXQCLD3VoipQ9znef5T9WCwckmY/d5kl+ks6ND8bUNVMc8D+Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1544 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rohit, On 3/17/21 7:17 PM, Rohit Visavalia wrote: > Hi Quanyang & Laurent, > > I tested this patch(which moves pm_runtime_get_sync at the very beginning of the function zynqmp_disp_crtc_atomic_enable), i don't see any behavior change with patch, means with patch also DP display is not getting up and it is required to resolution change to make it up. > Also valid bit is not getting set for VPLL_FRAC_CFG on bootup, same behavior as without patch. Thank you for your test. This patch works under the condition of applying the below patch (drm: xlnx: set PLL_MODE_FRAC mode to VPLL_FRAC_CFG by re-enabling disp->pclk) (Patch 1) first. Without Patch 1, the VPLL mode isn't set correctly and clk_prepare_enable don't take effect. DP monitor can't receive any signal since the clk is wrong. After applying Patch 1, there will be error log in the boot message: [    1.325602] zynqmp_pll_enable() clock enable failed for vpll_int, ret = -22 [    1.325614] zynqmp-dpsub fd4a0000.display: failed to enable a pixel clock [    1.456106] ------------[ cut here ]------------ [    1.456109] [CRTC:33:crtc-0] vblank wait timed out [    1.456152] WARNING: CPU: 2 PID: 75 at drivers/gpu/drm/drm_atomic_helper.c:1512 drm_atomic_helper_wait_for_vblanks.part.0+0x27c/0x298 [    1.456172] Modules linked in: [    1.456181] CPU: 2 PID: 75 Comm: kworker/2:1 Not tainted 5.12.0-rc2-00338-gf78d76e72a46-dirty #4 [    1.456188] Hardware name: ZynqMP ZCU102 Rev1.0 (DT) [    1.456194] Workqueue: events deferred_probe_work_func Then applying this patch ( drm: xlnx: call pm_runtime_get_sync before setting pixel clock), this issue  will be fixed, DP monitor will receive signal, but screen is still black. Then applying the below patch (drm: xlnx: configure alpha value to make graphic layer opaque) (Patch 2), the DP will work well. Thanks, Quanyang > > Thanks, > Rohit > >> -----Original Message----- >> From: Michal Simek >> Sent: Wednesday, March 17, 2021 1:56 PM >> To: quanyang.wang ; Laurent Pinchart >> ; Rohit Visavalia >> >> Cc: Hyun Kwon ; David Airlie ; >> Daniel Vetter ; Michal Simek ; dri- >> devel@lists.freedesktop.org; linux-arm-kernel@lists.infradead.org; linux- >> kernel@vger.kernel.org >> Subject: Re: [PATCH] drm: xlnx: call pm_runtime_get_sync before setting pixel >> clock >> >> +Rohit >> >> On 3/17/21 4:00 AM, quanyang.wang wrote: >>> Hi Laurent, >>> >>> On 3/17/21 4:32 AM, Laurent Pinchart wrote: >>>> Hi Quanyang, >>>> >>>> Thank you for the patch. >>>> >>>> On Wed, Mar 10, 2021 at 12:59:45PM +0800, >> quanyang.wang@windriver.com >>>> wrote: >>>>> From: Quanyang Wang >>>>> >>>>> The Runtime PM subsystem will force the device "fd4a0000.zynqmp- >> display" >>>>> to enter suspend state while booting if the following conditions are >>>>> met: >>>>> - the usage counter is zero (pm_runtime_get_sync hasn't been called >>>>> yet) >>>>> - no 'active' children (no zynqmp-dp-snd-xx node under dpsub node) >>>>> - no other device in the same power domain (dpdma node has no >>>>>         "power-domains = <&zynqmp_firmware PD_DP>" property) >>>>> >>>>> So there is a scenario as below: >>>>> 1) DP device enters suspend state   <- call zynqmp_gpd_power_off >>>>> 2) zynqmp_disp_crtc_setup_clock        <- configurate register >>>>> VPLL_FRAC_CFG >>>>> 3) pm_runtime_get_sync            <- call zynqmp_gpd_power_on and >>>>> clear previous >>>>>                        VPLL_FRAC_CFG configuration >>>>> 4) clk_prepare_enable(disp->pclk)   <- enable failed since >>>>> VPLL_FRAC_CFG >>>>>                        configuration is corrupted >>>>> >>>>>  From above, we can see that pm_runtime_get_sync may clear register >>>>> VPLL_FRAC_CFG configuration and result the failure of clk enabling. >>>>> Putting pm_runtime_get_sync at the very beginning of the function >>>>> zynqmp_disp_crtc_atomic_enable can resolve this issue. >>>> Isn't this an issue in the firmware though, which shouldn't clear the >>>> previous VPLLF_FRAC_CFG ? >>> Thank you for your review.  I used to look into the atf and PWU code >>> and it seems (I didn't add debug code >>> >>> to PMU to make sure if PMU really does this, I only in kernel call >>> zynqmp_pm_get_pll_frac_data to make sure that >>> >>> the value in data field of VPLL_FRAC_CFG register is changed from >>> 0x4000 to 0x0 after run pm_runtime_get_sync) >>> >>> that PMU intends to reset VPLL when there is an  Off and On in DP >>> Powerdomain. >>> >>> >>> Linux ATF                                 PWU >>> >>> zynqmp_gpd_power_on >>> ->zynqmp_pm_set_requirement >>> -->send PM_SET_REQUIREMENT to ATF  ==>        ATF send ipi to PWU >>> ==>   PmSetRequirement >>>                                     ->PmRequirementUpdate >>>                                     -->PmUpdateSlave(masterReq->slave) >>>                                     --->PmSlaveChangeState >>>                                      ---->PmSlaveChangeState >>>                                      ----->PmSlaveClearAfterState >>>                                      ------>PmClockRelease >>> >>> ------->PmClockReleaseInt(&ch->clock->base) >>>                                      -------->clk->class->release(clk) >>>                                      --------->PmPllBypassAndReset >>> //Here reset the VPLL then VPLL_FRAC_CFG is cleared. >>> >>>>> Signed-off-by: Quanyang Wang >>>> Nonetheless, this change looks good to me, I actually had the same >>>> patch in my tree while investigation issues related to the clock >>>> rate, so >>>> >>>> Reviewed-by: Laurent Pinchart >>>> Tested-by: Laurent Pinchart >>>> >>>> I was hoping it would solve the issue I'm experiencing with the DP >>>> clock, but that's not the case :-( In a nutshell, when the DP is >>>> first started, the clock frequency is incorrect. The following quick >>>> & dirty patch fixes the problem: >>>> >>>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>> b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>> index 74ac0a064eb5..fdbe1b0640aa 100644 >>>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>> @@ -1439,6 +1439,10 @@ zynqmp_disp_crtc_atomic_enable(struct >> drm_crtc >>>> *crtc, >>>> >>>>       pm_runtime_get_sync(disp->dev); >>>> >>>> +    ret = clk_prepare_enable(disp->pclk); >>>> +    if (!ret) >>>> +        clk_disable_unprepare(disp->pclk); >>>> + >>>>       zynqmp_disp_crtc_setup_clock(crtc, adjusted_mode); >>>> >>>>       ret = clk_prepare_enable(disp->pclk); >>>> >>>> The problem doesn't seem to be in the kernel, but on the TF-A or PMU >>>> firmware side. Have you experienced this by any chance ? >>> Yes,  I bumped into the same issue and I used to make a patch (Patch >>> 1) as below. >>> >>> I didn't send it to mainline because it seems not to be a driver issue. >>> The mode of VPLL >>> >>> is not set correctly because: >>> >>> 1) VPLL is enabled before linux >>> >>> 2) linux calling pm_clock_set_pll_mode can't really set register >>> because in ATF >>> >>> it only store the mode value to a structure and wait a clk-enable >>> request to do >>> >>> the register-set operation. >>> >>> 3) linux call clk_enable will not send a clk-enable request since it >>> checks that >>> >>> the VPLL is already hardware-enabled because of 1). >>> >>> So the firmware should disable VPLL when it exits and also in linux >>> zynqmp clk driver >>> >>> there should be a check list to reset some clks to a predefined state. >>> >>> >>> By the way, there is a tiny patch (Patch 2) to fix the black screen >>> issue in DP. I think you may >>> >>> be preparing a big patch which add drm properties to this driver and >>> it may contain this modification, >>> >>> so I didn't send it. >>> >>> >>> Thanks, >>> >>> Quanyang >>> >>> Patch 1: >>> >>> From 93311de2c61e87f2426b89259d81cded71aee673 Mon Sep 17 00:00:00 >> 2001 >>> From: Quanyang Wang >>> Date: Thu, 3 Dec 2020 19:19:50 +0800 >>> Subject: [PATCH 1/3] drm: xlnx: set PLL_MODE_FRAC mode to >>> VPLL_FRAC_CFG by >>>  re-enabling disp->pclk >>> >>> When the function clk_set_rate configures the rate of disp->pclk, >>> zynqmp_pm_set_pll_frac_mode will be called to set VPLL's mode to be >>> PLL_MODE_FRAC or PLL_MODE_INT by invoking an SMC call to ATF. >>> But in ATF, the service pm_clock_set_pll_mode doesn't really set the >>> VPLL_FRAC_CFG register but only stores the mode value to struct pm_pll >>> *pll. The operation that sets the register must be triggered by >>> zynqmp_pm_clock_enable. >>> >>> Since disp->pclk is enabled in hardware before linux booting, >>> clk_prepare_enable will skip over zynqmp_pm_clock_enable. So we have >>> to enable then disable disp->pclk, and re-enable it to make sure that >>> zynqmp_pm_clock_enable is triggered and the mode is set to >>> VPLL_FRAC_CFG. Or else VPLL will work in an incorrect mode. >>> >>> Signed-off-by: Quanyang Wang >>> --- >>>  drivers/gpu/drm/xlnx/zynqmp_disp.c | 5 +++++ >>>  1 file changed, 5 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> index 98bd48f13fd1..19753ffc424e 100644 >>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> @@ -1668,6 +1668,11 @@ int zynqmp_disp_probe(struct zynqmp_dpsub >>> *dpsub, struct drm_device *drm) >>>             dev_err(disp->dev, "failed to init any video clock\n"); >>>             return PTR_ERR(disp->pclk); >>>         } >>> + >>> +       /* Make sure that disp->pclk is disabled in hardware */ >>> +       ret = clk_prepare_enable(disp->pclk); >>> +       clk_disable_unprepare(disp->pclk); >>> + >>>         disp->pclk_from_ps = true; >>>     } >>> >>> Patch 2: >>> >>> From 8c6d36bcb4e79e0e5f8e157446cd994b4a2126f0 Mon Sep 17 00:00:00 >> 2001 >>> From: Quanyang Wang >>> Date: Thu, 3 Dec 2020 19:32:56 +0800 >>> Subject: [PATCH 2/3] drm: xlnx: configure alpha value to make graphic >>> layer >>>  opaque >>> >>> Since graphics layer is primary, and video layer is overaly, we need >>> to configure the V_BLEND_SET_GLOBAL_ALPHA_REG register to make graphic >>> layer opaque by default, or else graphic layer will be transparent and >>> invisible. >>> >>> Signed-off-by: Quanyang Wang >>> --- >>>  drivers/gpu/drm/xlnx/zynqmp_disp.c      | 3 ++- >>>  drivers/gpu/drm/xlnx/zynqmp_disp_regs.h | 1 + >>>  2 files changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> index 19753ffc424e..5c84589e1899 100644 >>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>> @@ -1468,7 +1468,8 @@ zynqmp_disp_crtc_atomic_enable(struct drm_crtc >>> *crtc, >>>     zynqmp_disp_blend_set_output_format(&disp->blend, >>>                         ZYNQMP_DPSUB_FORMAT_RGB); >>>     zynqmp_disp_blend_set_bg_color(&disp->blend, 0, 0, 0); >>> -   zynqmp_disp_blend_set_global_alpha(&disp->blend, false, 0); >>> +   zynqmp_disp_blend_set_global_alpha(&disp->blend, true, >>> +                  ZYNQMP_DISP_V_BLEND_SET_GLOBAL_ALPHA_MAX); >>> >>>     zynqmp_disp_enable(disp); >>> >>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp_regs.h >>> b/drivers/gpu/drm/xlnx/zynqmp_disp_regs.h >>> index f92a006d5070..ef409aca11ad 100644 >>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp_regs.h >>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp_regs.h >>> @@ -22,6 +22,7 @@ >>>  #define ZYNQMP_DISP_V_BLEND_SET_GLOBAL_ALPHA       0xc >>>  #define ZYNQMP_DISP_V_BLEND_SET_GLOBAL_ALPHA_VALUE(n)  ((n) << 1) >>>  #define ZYNQMP_DISP_V_BLEND_SET_GLOBAL_ALPHA_EN        BIT(0) >>> +#define ZYNQMP_DISP_V_BLEND_SET_GLOBAL_ALPHA_MAX   0xff >>>  #define ZYNQMP_DISP_V_BLEND_OUTPUT_VID_FMT     0x14 >>>  #define ZYNQMP_DISP_V_BLEND_OUTPUT_VID_FMT_RGB     0x0 >>>  #define ZYNQMP_DISP_V_BLEND_OUTPUT_VID_FMT_YCBCR444    0x1 >>> >>>>> --- >>>>>   drivers/gpu/drm/xlnx/zynqmp_disp.c | 3 ++- >>>>>   1 file changed, 2 insertions(+), 1 deletion(-) >>>>> >>>>> diff --git a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>>> b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>>> index 148add0ca1d6..909e6c265406 100644 >>>>> --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>>> +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c >>>>> @@ -1445,9 +1445,10 @@ zynqmp_disp_crtc_atomic_enable(struct >>>>> drm_crtc *crtc, >>>>>       struct drm_display_mode *adjusted_mode = >>>>> &crtc->state->adjusted_mode; >>>>>       int ret, vrefresh; >>>>>   +    pm_runtime_get_sync(disp->dev); >>>>> + >>>>>       zynqmp_disp_crtc_setup_clock(crtc, adjusted_mode); >>>>>   -    pm_runtime_get_sync(disp->dev); >>>>>       ret = clk_prepare_enable(disp->pclk); >>>>>       if (ret) { >>>>>           dev_err(disp->dev, "failed to enable a pixel clock\n"); 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.5 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,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 0A563C433DB for ; Wed, 17 Mar 2021 11:52:39 +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 200BC64F64 for ; Wed, 17 Mar 2021 11:52:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 200BC64F64 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=i84HGqTHZIWF4dCQo2mp3sDOaCKP+t1+cmCHxoHG11c=; b=B6d4V498RFxKBi2ulFDLQjGgx iSdcQIIiS5HeaRSbZLTWT3dzvDFLMTFw/zXNS6j3a6G2tMlKvvsutFnIiCi/aEQmOg0hyr3geNpgQ 1tYqt48VC6YlCVHlUvikV2PoDhumfQfQjNjm/HxSSHak5Iinm2Dih3wKqS+VJmxVzmP7BMsoMu64t u6Flmfqtj6YloFehXLuZ8nj9riK2h7ZL4txBLzmYOe1af8gHxjF/bXAdMyTbyvhhBaNeP82vp9bht CRd8bcdmvv+kO8ZFOdqFaiOyVwXXPYQYgtKCEgYU20TJn4wS35UaMl+sYgXjOx0uDkKQa9NrNL+B3 j1YA/0SSw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMUhW-0032ss-4N; Wed, 17 Mar 2021 11:50:58 +0000 Received: from mail-bn8nam12on2047.outbound.protection.outlook.com ([40.107.237.47] helo=NAM12-BN8-obe.outbound.protection.outlook.com) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMUhQ-0032rQ-IO for linux-arm-kernel@lists.infradead.org; Wed, 17 Mar 2021 11:50:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NFV6BtDkwFqPWCdzfiR19/CvCa1ikZGXgKf0bZWOWVhydaDHdabC4nm3VXNpXjk/S5MWICNBpl7d2RwcJlLbdXL6A9JBWS7lsbFoQji9HxjOw+1/EdG3tNrr5o/BRxdLoxe3Vv3M5nbei7kX2ehk1D9Ic+iSNX5+559fFud6PX2UU+wuFYj6JejB32C3j5urh3ZfyV0VtMo1t8R06CUhp7YbJh4JDSbmdx5ucELfguK7rkhS1zHry85W6PZIjuOErFxo9zjWGybekjEpRyEAPlXC3oZQBmEkhOTn1fWDmkr6QlHsNelGaGwsVUVaGy+ayTyT330OTdkubdPRGHrFLA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=lmhxLwC18kCUpL6zkeYVnjvR5NR/qVn/+hsduns/7I+VfU/Hz6EzQ/BEXoNJdXEu664HgsyZBUOioKrBfxrdHHBU0oUJJbBcwbq8BoD4mN/1L1B0qYzBAOazC6jw5tZOmIaMhnTJDTdZOc7IEZJCgfyNwNq+ngF8Gv8AjJgz4p6R42Gwgk0jYCZNqy30zy1dHpVgp3qOwsXjnf0DwncWvN773SmgPKsr/sNYfHQShdjPG36IlsOJm5/Q02V2hW/h8cigm6SP33Wl5LEZL0ZdEmj0kdqZOQGHI/wkqs4+KFUnHV2/TOOX6WkQJZtHHEM+oF6U/3gbLoD/B4ewDvBRwA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=jxGEKCilTUYZSK5ZAq33Zm60Q7SrYrDXpztFzTWIUbxpR7huQdiLf2XREbyq8Ok9UAtw31KA1WMtt6D2r/rpYJbflVmFB/ubNZ309zZWftHF8EeRvrklT8wyVLKySvdPkIVCYZzooiKPDpBgi3mqTZj0MdCeJaw0xud1C5mT01A= 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 CY4PR11MB1544.namprd11.prod.outlook.com (2603:10b6:910:d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31; Wed, 17 Mar 2021 11:50:44 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0%5]) with mapi id 15.20.3933.032; Wed, 17 Mar 2021 11:50:44 +0000 Subject: Re: [PATCH] drm: xlnx: call pm_runtime_get_sync before setting pixel clock To: Rohit Visavalia , Michal Simek , Laurent Pinchart Cc: Hyun Kwon , David Airlie , Daniel Vetter , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" References: <20210310045945.3034364-1-quanyang.wang@windriver.com> <72a24e1f-8708-7f87-b1b5-a2b171bf4576@xilinx.com> From: "quanyang.wang" Message-ID: <31f7b1fb-6bb9-4ae5-9a9a-c1a7c094a6fd@windriver.com> Date: Wed, 17 Mar 2021 19:50:01 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) 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 BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.11 via Frontend Transport; Wed, 17 Mar 2021 11:50:39 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-TrafficTypeDiagnostic: CY4PR11MB1544: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Hda9ibmdSjcLSo+oh+KzoJpTrjcO9Muklx7jcuEvMKeYfnfxhAcOQDnjpeufUGC/lyNJqYemSnr/A+wnpr7yUpxqt17/Q5UKDqStV/7NMh+CHZ5x44C2L90K7M7LgAx5h9QxBGPVk37F/0TXEeySUil3QvpJInvSySk+SgW8j5luGLaAbx8jTzwlIQicDwjqo9wKkIg7Jge1bvePkZd3huEy1Q6MQJ+vYMCKUoVhohUFzYniSzTCWPihV7y8Bvm2S3XufRFIIsy29K0169bf3sfCDCY7BfaH6jp6Z/sAoutefwas1nuvqNwmKK2ZGHA/puDp+YL0ewJkOnbkkloE377LQWc3LVO2yNpCvWUm0e2eGpAPyqQf+EhH231bxwRgoE6Bd8OenvIvuwx6Iu0ieNErH7YEjduN6mPBNQM+TgkSYqlx4vxXLD9GEes46sqbGf/eqDl2lIGqJlEgriLLN2EHXz/OW9LGop2Nucm1ARm8rRjVk6VBJVl2zzZ9fh9YHtOwqcNXDfFSN9hh1Db/yOk6EJcJeSNAqJqkd8RsmbTpGnyiM2eYi/FFox2mG1fFF0lVSXOVkMDIoE6abAHeNaMNeusoq57NbppDBT+h5WUCGarWz8PfMRh6AXPWO2FGt5hiOSekLEXveYsxLMZJ4Bo1GgSElHjzOubv2FOxGs0= 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)(376002)(346002)(366004)(396003)(39850400004)(136003)(110136005)(6666004)(16526019)(36756003)(83380400001)(8936002)(4326008)(5660300002)(30864003)(31686004)(45080400002)(478600001)(86362001)(186003)(2906002)(8676002)(956004)(16576012)(2616005)(66556008)(66946007)(54906003)(6706004)(26005)(31696002)(6486002)(316002)(53546011)(52116002)(66476007)(78286007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NmppNGllZmZxdlBWUHprcjhHMGNOQ0pmQ3NZaVRBVG1HVE9nc0dHbFRBVk9E?= =?utf-8?B?TWZoNnZ2c2NwQnZiTFNrb1AvRVI2Yy9GeThEVDBpZGtlK0lENkVLN3FCcWxG?= =?utf-8?B?a3FwMnBaRC9MVWRwYTRvWGhIRENiaGhpdVhGYjZpbWYvQTNKTmVHZE4rNFBS?= =?utf-8?B?Tk85U1Y0U2VCek9mb1BGYXdNMEFSSUh1N1R4UWFKcFd0QlBRT1pYQnFzOHBk?= =?utf-8?B?cVpLZ0JqK0tocld2bVd1ZWk4VU5HdHRyR3BmczBKeGlyR2xHak5NNUhuTFFL?= =?utf-8?B?SWJiTnhQMHAwN1I2K1hCS2ZnWkswSGlYZU9La0NqejB3RmZPd1NIR0FabnNS?= =?utf-8?B?TGd5S0J2eUxXaGNQTUl5SXp3bkJoZEFCTmlaeHJBYVUxTU01RitZRHRPSThR?= =?utf-8?B?NzZwSDZOc2pkeFh1NlpIQWI1TnhWZVNHWFNubFZkblFHUWU2cXBzYWJ3eXBx?= =?utf-8?B?LzUwSzViUGVWZ0JGZFp0OW1naDVUcFBvbzU3b0tERXZmUStzMmxSelpuWlZI?= =?utf-8?B?OXZOaWlYUUN2WnE2Z204TU1sbkVEUjZLQU1mWTlhcnZIZ3ZXUEtINE1rbUY0?= =?utf-8?B?RHNFTTVwR3VBTE5McFFScWVKMEQ4RjlidUtKb3hNcTZaWFcwZHVYRVVJd3k5?= =?utf-8?B?QzJNM3JqS2VreUgwN09QNVRVZXhLZCtJcXU0RENrK1dUaXZ6cGwwVFFQQkRZ?= =?utf-8?B?Z1RxTEZ0ZFMxalNRK1BibDNiRWNpUzVKY2xkUTlWZDhGamNxUGJsMGFRb2U3?= =?utf-8?B?dUxyVi9ucndZSTN0VU9uZitQaXVpa3dmMHY4Q3BzcUtsNDJnbUtQbjJQUGZH?= =?utf-8?B?WGUrVmh0bkFVY1MyUXM1UE41bzlRZjgxN0w4VEw1TDk1c0Ivcmh5dVYxNjlp?= =?utf-8?B?bXB1aE9CK1l5Q1JuRWhlQ2VRK3pzTHV6eHBUQWFwblNyNzNzTW5acTV6R3hj?= =?utf-8?B?ejBSY2hxLzZwa0w2SjQzY0JKZitoaXdsWm03ZGZmd3Rmald1OWhwVUtJbzdV?= =?utf-8?B?cDlxUGF2dlYyWk81djg5WEZiNEp6anQxbytSa0ZKdWlQY2tMU2RXTmpiWGRl?= =?utf-8?B?NnZFRkV4MERodEUrcEtqdEg1djFRbHo0U1FibERtZW9MSnRRL3JhelB5cW41?= =?utf-8?B?NXBmVUx2UzhVVENyeU13aC9xNldpZDVRcW04T3o1bFpwMXZWM0s2cDhsUzBR?= =?utf-8?B?aSsvbk5BYSt1UEt3OU96WDRFanZkS1RheTdCNzZyYlplRXdrbEt4RmlvM2Qw?= =?utf-8?B?MnpVUTdpa3BQYkRGTXpOZTNTR0JJOXZHTmtXUEdzbGFrbUpzZmt6cUVyTnlX?= =?utf-8?B?RTEvZTMrd0J1QzJiTTlieU11SDhDellvSkM1MGc2cVZzaGNKSmVBRVpPdzhD?= =?utf-8?B?Z0NrZTdpUUE1NWRaWEdKOFFUc1JBZnE5WUdtS0RCM0VBMHdvQlVlUjhkbjY2?= =?utf-8?B?cE8vWEUreHVSOHlZVkJRQ0ZReDBQUndBcVVkVXNzSTI4UWtxdlJwYWVLYlRj?= =?utf-8?B?U012Z1NBdEpYck9oQmh2dW1FNkFVN01kbWtQVXR1VVdCdkhWYlJneWxGcTNj?= =?utf-8?B?S3hJemkyb0pTRXk0T3dXQWhtbDVGWWxmSzRPN2t3M3ZUOXJ1T0lqNnE5aldP?= =?utf-8?B?ZHczYjJEK0k0WEs1QkJuRjRNZ0w1YW16a2lOQmR3YndLdUtkMk9MTDlOME8z?= =?utf-8?B?dWVIZUZCaUpsOVdTdWY5OG1BZFNiTjQ2aWdHY3Y4QkpBU1V6SVFTcTRjMGMw?= =?utf-8?Q?/p7ElcTATeZ2EY7ngwM03GzIWCtvc3+dkEftaD8?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2021 11:50:44.6127 (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: i/KhDZMWFCb742a6+Aa8AlfeSqffEzkBijHVvUjQdEPCEfzlp7HIgBNc75nXQCLD3VoipQ9znef5T9WCwckmY/d5kl+ks6ND8bUNVMc8D+Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1544 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210317_115052_814790_F6F77E15 X-CRM114-Status: GOOD ( 25.73 ) 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 SGkgUm9oaXQsCgpPbiAzLzE3LzIxIDc6MTcgUE0sIFJvaGl0IFZpc2F2YWxpYSB3cm90ZToKPiBI aSBRdWFueWFuZyAmIExhdXJlbnQsCj4KPiBJIHRlc3RlZCB0aGlzIHBhdGNoKHdoaWNoIG1vdmVz IHBtX3J1bnRpbWVfZ2V0X3N5bmMgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlv biB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUpLCBpIGRvbid0IHNlZSBhbnkgYmVoYXZp b3IgY2hhbmdlIHdpdGggcGF0Y2gsIG1lYW5zIHdpdGggcGF0Y2ggYWxzbyBEUCBkaXNwbGF5IGlz IG5vdCBnZXR0aW5nIHVwIGFuZCBpdCBpcyByZXF1aXJlZCB0byByZXNvbHV0aW9uIGNoYW5nZSB0 byBtYWtlIGl0IHVwLgo+IEFsc28gdmFsaWQgYml0IGlzIG5vdCBnZXR0aW5nIHNldCBmb3IgVlBM TF9GUkFDX0NGRyBvbiBib290dXAsIHNhbWUgYmVoYXZpb3IgYXMgd2l0aG91dCBwYXRjaC4KClRo YW5rIHlvdSBmb3IgeW91ciB0ZXN0LgoKVGhpcyBwYXRjaCB3b3JrcyB1bmRlciB0aGUgY29uZGl0 aW9uIG9mIGFwcGx5aW5nIHRoZSBiZWxvdyBwYXRjaCAoZHJtOiAKeGxueDogc2V0IFBMTF9NT0RF X0ZSQUMgbW9kZSB0byBWUExMX0ZSQUNfQ0ZHIGJ5IHJlLWVuYWJsaW5nIGRpc3AtPnBjbGspIAoo UGF0Y2ggMSkgZmlyc3QuCgpXaXRob3V0IFBhdGNoIDEsIHRoZSBWUExMIG1vZGUgaXNuJ3Qgc2V0 IGNvcnJlY3RseSBhbmQgCmNsa19wcmVwYXJlX2VuYWJsZSBkb24ndCB0YWtlIGVmZmVjdC4gRFAg bW9uaXRvciBjYW4ndCByZWNlaXZlCgphbnkgc2lnbmFsIHNpbmNlIHRoZSBjbGsgaXMgd3Jvbmcu CgpBZnRlciBhcHBseWluZyBQYXRjaCAxLCB0aGVyZSB3aWxsIGJlIGVycm9yIGxvZyBpbiB0aGUg Ym9vdCBtZXNzYWdlOgoKW8KgwqDCoCAxLjMyNTYwMl0genlucW1wX3BsbF9lbmFibGUoKSBjbG9j ayBlbmFibGUgZmFpbGVkIGZvciB2cGxsX2ludCwgcmV0IAo9IC0yMgpbwqDCoMKgIDEuMzI1NjE0 XSB6eW5xbXAtZHBzdWIgZmQ0YTAwMDAuZGlzcGxheTogZmFpbGVkIHRvIGVuYWJsZSBhIHBpeGVs IGNsb2NrClvCoMKgwqAgMS40NTYxMDZdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t LS0tLQpbwqDCoMKgIDEuNDU2MTA5XSBbQ1JUQzozMzpjcnRjLTBdIHZibGFuayB3YWl0IHRpbWVk IG91dApbwqDCoMKgIDEuNDU2MTUyXSBXQVJOSU5HOiBDUFU6IDIgUElEOiA3NSBhdCAKZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmM6MTUxMiAKZHJtX2F0b21pY19oZWxwZXJfd2Fp dF9mb3JfdmJsYW5rcy5wYXJ0LjArMHgyN2MvMHgyOTgKW8KgwqDCoCAxLjQ1NjE3Ml0gTW9kdWxl cyBsaW5rZWQgaW46ClvCoMKgwqAgMS40NTYxODFdIENQVTogMiBQSUQ6IDc1IENvbW06IGt3b3Jr ZXIvMjoxIE5vdCB0YWludGVkIAo1LjEyLjAtcmMyLTAwMzM4LWdmNzhkNzZlNzJhNDYtZGlydHkg IzQKW8KgwqDCoCAxLjQ1NjE4OF0gSGFyZHdhcmUgbmFtZTogWnlucU1QIFpDVTEwMiBSZXYxLjAg KERUKQpbwqDCoMKgIDEuNDU2MTk0XSBXb3JrcXVldWU6IGV2ZW50cyBkZWZlcnJlZF9wcm9iZV93 b3JrX2Z1bmMKClRoZW4gYXBwbHlpbmcgdGhpcyBwYXRjaCAoIGRybTogeGxueDogY2FsbCBwbV9y dW50aW1lX2dldF9zeW5jIGJlZm9yZSAKc2V0dGluZyBwaXhlbCBjbG9jayksIHRoaXMgaXNzdWXC oCB3aWxsIGJlIGZpeGVkLCBEUCBtb25pdG9yCgp3aWxsIHJlY2VpdmUgc2lnbmFsLCBidXQgc2Ny ZWVuIGlzIHN0aWxsIGJsYWNrLiBUaGVuIGFwcGx5aW5nIHRoZSBiZWxvdyAKcGF0Y2ggKGRybTog eGxueDogY29uZmlndXJlIGFscGhhIHZhbHVlIHRvIG1ha2UgZ3JhcGhpYyBsYXllciBvcGFxdWUp IAooUGF0Y2ggMiksCgp0aGUgRFAgd2lsbCB3b3JrIHdlbGwuCgpUaGFua3MsCgpRdWFueWFuZwoK Pgo+IFRoYW5rcywKPiBSb2hpdAo+Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZy b206IE1pY2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+Cj4+IFNlbnQ6IFdlZG5l c2RheSwgTWFyY2ggMTcsIDIwMjEgMTo1NiBQTQo+PiBUbzogcXVhbnlhbmcud2FuZyA8cXVhbnlh bmcud2FuZ0B3aW5kcml2ZXIuY29tPjsgTGF1cmVudCBQaW5jaGFydAo+PiA8bGF1cmVudC5waW5j aGFydEBpZGVhc29uYm9hcmQuY29tPjsgUm9oaXQgVmlzYXZhbGlhCj4+IDxSVklTQVZBTEB4aWxp bnguY29tPgo+PiBDYzogSHl1biBLd29uIDxoeXVua0B4bG54LnhpbGlueC5jb20+OyBEYXZpZCBB aXJsaWUgPGFpcmxpZWRAbGludXguaWU+Owo+PiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwu Y2g+OyBNaWNoYWwgU2ltZWsgPG1pY2hhbHNAeGlsaW54LmNvbT47IGRyaS0KPj4gZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7 IGxpbnV4LQo+PiBrZXJuZWxAdmdlci5rZXJuZWwub3JnCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IGRybTogeGxueDogY2FsbCBwbV9ydW50aW1lX2dldF9zeW5jIGJlZm9yZSBzZXR0aW5nIHBpeGVs Cj4+IGNsb2NrCj4+Cj4+ICtSb2hpdAo+Pgo+PiBPbiAzLzE3LzIxIDQ6MDAgQU0sIHF1YW55YW5n Lndhbmcgd3JvdGU6Cj4+PiBIaSBMYXVyZW50LAo+Pj4KPj4+IE9uIDMvMTcvMjEgNDozMiBBTSwg TGF1cmVudCBQaW5jaGFydCB3cm90ZToKPj4+PiBIaSBRdWFueWFuZywKPj4+Pgo+Pj4+IFRoYW5r IHlvdSBmb3IgdGhlIHBhdGNoLgo+Pj4+Cj4+Pj4gT24gV2VkLCBNYXIgMTAsIDIwMjEgYXQgMTI6 NTk6NDVQTSArMDgwMCwKPj4gcXVhbnlhbmcud2FuZ0B3aW5kcml2ZXIuY29tCj4+Pj4gd3JvdGU6 Cj4+Pj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbT4K Pj4+Pj4KPj4+Pj4gVGhlIFJ1bnRpbWUgUE0gc3Vic3lzdGVtIHdpbGwgZm9yY2UgdGhlIGRldmlj ZSAiZmQ0YTAwMDAuenlucW1wLQo+PiBkaXNwbGF5Igo+Pj4+PiB0byBlbnRlciBzdXNwZW5kIHN0 YXRlIHdoaWxlIGJvb3RpbmcgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQo+Pj4+PiBt ZXQ6Cj4+Pj4+IC0gdGhlIHVzYWdlIGNvdW50ZXIgaXMgemVybyAocG1fcnVudGltZV9nZXRfc3lu YyBoYXNuJ3QgYmVlbiBjYWxsZWQKPj4+Pj4geWV0KQo+Pj4+PiAtIG5vICdhY3RpdmUnIGNoaWxk cmVuIChubyB6eW5xbXAtZHAtc25kLXh4IG5vZGUgdW5kZXIgZHBzdWIgbm9kZSkKPj4+Pj4gLSBu byBvdGhlciBkZXZpY2UgaW4gdGhlIHNhbWUgcG93ZXIgZG9tYWluIChkcGRtYSBub2RlIGhhcyBu bwo+Pj4+PiAgwqDCoMKgwqDCoMKgwqAgInBvd2VyLWRvbWFpbnMgPSA8Jnp5bnFtcF9maXJtd2Fy ZSBQRF9EUD4iIHByb3BlcnR5KQo+Pj4+Pgo+Pj4+PiBTbyB0aGVyZSBpcyBhIHNjZW5hcmlvIGFz IGJlbG93Ogo+Pj4+PiAxKSBEUCBkZXZpY2UgZW50ZXJzIHN1c3BlbmQgc3RhdGXCoMKgIDwtIGNh bGwgenlucW1wX2dwZF9wb3dlcl9vZmYKPj4+Pj4gMikgenlucW1wX2Rpc3BfY3J0Y19zZXR1cF9j bG9ja8KgwqDCoMKgwqDCoMKgIDwtIGNvbmZpZ3VyYXRlIHJlZ2lzdGVyCj4+Pj4+IFZQTExfRlJB Q19DRkcKPj4+Pj4gMykgcG1fcnVudGltZV9nZXRfc3luY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg PC0gY2FsbCB6eW5xbXBfZ3BkX3Bvd2VyX29uIGFuZAo+Pj4+PiBjbGVhciBwcmV2aW91cwo+Pj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgVlBMTF9GUkFD X0NGRyBjb25maWd1cmF0aW9uCj4+Pj4+IDQpIGNsa19wcmVwYXJlX2VuYWJsZShkaXNwLT5wY2xr KcKgwqAgPC0gZW5hYmxlIGZhaWxlZCBzaW5jZQo+Pj4+PiBWUExMX0ZSQUNfQ0ZHCj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25maWd1cmF0aW9u IGlzIGNvcnJ1cHRlZAo+Pj4+Pgo+Pj4+PiAgwqBGcm9tIGFib3ZlLCB3ZSBjYW4gc2VlIHRoYXQg cG1fcnVudGltZV9nZXRfc3luYyBtYXkgY2xlYXIgcmVnaXN0ZXIKPj4+Pj4gVlBMTF9GUkFDX0NG RyBjb25maWd1cmF0aW9uIGFuZCByZXN1bHQgdGhlIGZhaWx1cmUgb2YgY2xrIGVuYWJsaW5nLgo+ Pj4+PiBQdXR0aW5nIHBtX3J1bnRpbWVfZ2V0X3N5bmMgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9m IHRoZSBmdW5jdGlvbgo+Pj4+PiB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUgY2FuIHJl c29sdmUgdGhpcyBpc3N1ZS4KPj4+PiBJc24ndCB0aGlzIGFuIGlzc3VlIGluIHRoZSBmaXJtd2Fy ZSB0aG91Z2gsIHdoaWNoIHNob3VsZG4ndCBjbGVhciB0aGUKPj4+PiBwcmV2aW91cyBWUExMRl9G UkFDX0NGRyA/Cj4+PiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LsKgIEkgdXNlZCB0byBsb29r IGludG8gdGhlIGF0ZiBhbmQgUFdVIGNvZGUKPj4+IGFuZCBpdCBzZWVtcyAoSSBkaWRuJ3QgYWRk IGRlYnVnIGNvZGUKPj4+Cj4+PiB0byBQTVUgdG8gbWFrZSBzdXJlIGlmIFBNVSByZWFsbHkgZG9l cyB0aGlzLCBJIG9ubHkgaW4ga2VybmVsIGNhbGwKPj4+IHp5bnFtcF9wbV9nZXRfcGxsX2ZyYWNf ZGF0YSB0byBtYWtlIHN1cmUgdGhhdAo+Pj4KPj4+IHRoZSB2YWx1ZSBpbiBkYXRhIGZpZWxkIG9m IFZQTExfRlJBQ19DRkcgcmVnaXN0ZXIgaXMgY2hhbmdlZCBmcm9tCj4+PiAweDQwMDAgdG8gMHgw IGFmdGVyIHJ1biBwbV9ydW50aW1lX2dldF9zeW5jKQo+Pj4KPj4+IHRoYXQgUE1VIGludGVuZHMg dG8gcmVzZXQgVlBMTCB3aGVuIHRoZXJlIGlzIGFuwqAgT2ZmIGFuZCBPbiBpbiBEUAo+Pj4gUG93 ZXJkb21haW4uCj4+Pgo+Pj4KPj4+IExpbnV4IEFURsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDC oMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIFBXVQo+Pj4KPj4+IHp5bnFtcF9ncGRf cG93ZXJfb24KPj4+IC0+enlucW1wX3BtX3NldF9yZXF1aXJlbWVudAo+Pj4gLS0+c2VuZCBQTV9T RVRfUkVRVUlSRU1FTlQgdG8gQVRGwqAgPT0+wqDCoMKgwqDCoMKgwqAgQVRGIHNlbmQgaXBpIHRv IFBXVQo+Pj4gPT0+wqDCoCBQbVNldFJlcXVpcmVtZW50Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtPlBt UmVxdWlyZW1lbnRVcGRhdGUKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tPlBtVXBkYXRlU2xhdmUobWFz dGVyUmVxLT5zbGF2ZSkKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tLT5QbVNsYXZlQ2hhbmdlU3RhdGUK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLT5QbVNsYXZlQ2hhbmdlU3RhdGUKPj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLS0tLS0+UG1TbGF2ZUNsZWFyQWZ0ZXJTdGF0ZQo+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAtLS0tLS0+UG1DbG9ja1JlbGVhc2UKPj4+Cj4+PiAtLS0tLS0tPlBtQ2xvY2tSZWxlYXNlSW50 KCZjaC0+Y2xvY2stPmJhc2UpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tLS0tLS0tPmNsay0+Y2xh c3MtPnJlbGVhc2UoY2xrKQo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtLS0tLS0tLS0+UG1QbGxCeXBh c3NBbmRSZXNldAo+Pj4gLy9IZXJlIHJlc2V0IHRoZSBWUExMIHRoZW4gVlBMTF9GUkFDX0NGRyBp cyBjbGVhcmVkLgo+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogUXVhbnlhbmcgV2FuZyA8cXVhbnlh bmcud2FuZ0B3aW5kcml2ZXIuY29tPgo+Pj4+IE5vbmV0aGVsZXNzLCB0aGlzIGNoYW5nZSBsb29r cyBnb29kIHRvIG1lLCBJIGFjdHVhbGx5IGhhZCB0aGUgc2FtZQo+Pj4+IHBhdGNoIGluIG15IHRy ZWUgd2hpbGUgaW52ZXN0aWdhdGlvbiBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgY2xvY2sKPj4+PiBy YXRlLCBzbwo+Pj4+Cj4+Pj4gUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQu cGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPj4+PiBUZXN0ZWQtYnk6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPj4+Pgo+Pj4+IEkgd2FzIGhv cGluZyBpdCB3b3VsZCBzb2x2ZSB0aGUgaXNzdWUgSSdtIGV4cGVyaWVuY2luZyB3aXRoIHRoZSBE UAo+Pj4+IGNsb2NrLCBidXQgdGhhdCdzIG5vdCB0aGUgY2FzZSA6LSggSW4gYSBudXRzaGVsbCwg d2hlbiB0aGUgRFAgaXMKPj4+PiBmaXJzdCBzdGFydGVkLCB0aGUgY2xvY2sgZnJlcXVlbmN5IGlz IGluY29ycmVjdC4gVGhlIGZvbGxvd2luZyBxdWljawo+Pj4+ICYgZGlydHkgcGF0Y2ggZml4ZXMg dGhlIHByb2JsZW06Cj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngv enlucW1wX2Rpc3AuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+ Pj4+IGluZGV4IDc0YWMwYTA2NGViNS4uZmRiZTFiMDY0MGFhIDEwMDY0NAo+Pj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0veGxueC96eW5xbXBfZGlzcC5jCj4+Pj4gQEAgLTE0MzksNiArMTQzOSwxMCBAQCB6eW5xbXBf ZGlzcF9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0Cj4+IGRybV9jcnRjCj4+Pj4gKmNydGMsCj4+ Pj4KPj4+PiAgwqDCoMKgwqDCoCBwbV9ydW50aW1lX2dldF9zeW5jKGRpc3AtPmRldik7Cj4+Pj4K Pj4+PiArwqDCoMKgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkaXNwLT5wY2xrKTsKPj4+PiAr wqDCoMKgIGlmICghcmV0KQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBh cmUoZGlzcC0+cGNsayk7Cj4+Pj4gKwo+Pj4+ICDCoMKgwqDCoMKgIHp5bnFtcF9kaXNwX2NydGNf c2V0dXBfY2xvY2soY3J0YywgYWRqdXN0ZWRfbW9kZSk7Cj4+Pj4KPj4+PiAgwqDCoMKgwqDCoCBy ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZGlzcC0+cGNsayk7Cj4+Pj4KPj4+PiBUaGUgcHJvYmxl bSBkb2Vzbid0IHNlZW0gdG8gYmUgaW4gdGhlIGtlcm5lbCwgYnV0IG9uIHRoZSBURi1BIG9yIFBN VQo+Pj4+IGZpcm13YXJlIHNpZGUuIEhhdmUgeW91IGV4cGVyaWVuY2VkIHRoaXMgYnkgYW55IGNo YW5jZSA/Cj4+PiBZZXMswqAgSSBidW1wZWQgaW50byB0aGUgc2FtZSBpc3N1ZSBhbmQgSSB1c2Vk IHRvIG1ha2UgYSBwYXRjaCAoUGF0Y2gKPj4+IDEpIGFzIGJlbG93Lgo+Pj4KPj4+IEkgZGlkbid0 IHNlbmQgaXQgdG8gbWFpbmxpbmUgYmVjYXVzZSBpdCBzZWVtcyBub3QgdG8gYmUgYSBkcml2ZXIg aXNzdWUuCj4+PiBUaGUgbW9kZSBvZiBWUExMCj4+Pgo+Pj4gaXMgbm90IHNldCBjb3JyZWN0bHkg YmVjYXVzZToKPj4+Cj4+PiAxKSBWUExMIGlzIGVuYWJsZWQgYmVmb3JlIGxpbnV4Cj4+Pgo+Pj4g MikgbGludXggY2FsbGluZyBwbV9jbG9ja19zZXRfcGxsX21vZGUgY2FuJ3QgcmVhbGx5IHNldCBy ZWdpc3Rlcgo+Pj4gYmVjYXVzZSBpbiBBVEYKPj4+Cj4+PiBpdCBvbmx5IHN0b3JlIHRoZSBtb2Rl IHZhbHVlIHRvIGEgc3RydWN0dXJlIGFuZCB3YWl0IGEgY2xrLWVuYWJsZQo+Pj4gcmVxdWVzdCB0 byBkbwo+Pj4KPj4+IHRoZSByZWdpc3Rlci1zZXQgb3BlcmF0aW9uLgo+Pj4KPj4+IDMpIGxpbnV4 IGNhbGwgY2xrX2VuYWJsZSB3aWxsIG5vdCBzZW5kIGEgY2xrLWVuYWJsZSByZXF1ZXN0IHNpbmNl IGl0Cj4+PiBjaGVja3MgdGhhdAo+Pj4KPj4+IHRoZSBWUExMIGlzIGFscmVhZHkgaGFyZHdhcmUt ZW5hYmxlZCBiZWNhdXNlIG9mIDEpLgo+Pj4KPj4+IFNvIHRoZSBmaXJtd2FyZSBzaG91bGQgZGlz YWJsZSBWUExMIHdoZW4gaXQgZXhpdHMgYW5kIGFsc28gaW4gbGludXgKPj4+IHp5bnFtcCBjbGsg ZHJpdmVyCj4+Pgo+Pj4gdGhlcmUgc2hvdWxkIGJlIGEgY2hlY2sgbGlzdCB0byByZXNldCBzb21l IGNsa3MgdG8gYSBwcmVkZWZpbmVkIHN0YXRlLgo+Pj4KPj4+Cj4+PiBCeSB0aGUgd2F5LCB0aGVy ZSBpcyBhIHRpbnkgcGF0Y2ggKFBhdGNoIDIpIHRvIGZpeCB0aGUgYmxhY2sgc2NyZWVuCj4+PiBp c3N1ZSBpbiBEUC4gSSB0aGluayB5b3UgbWF5Cj4+Pgo+Pj4gYmUgcHJlcGFyaW5nIGEgYmlnIHBh dGNoIHdoaWNoIGFkZCBkcm0gcHJvcGVydGllcyB0byB0aGlzIGRyaXZlciBhbmQKPj4+IGl0IG1h eSBjb250YWluIHRoaXMgbW9kaWZpY2F0aW9uLAo+Pj4KPj4+IHNvIEkgZGlkbid0IHNlbmQgaXQu Cj4+Pgo+Pj4KPj4+IFRoYW5rcywKPj4+Cj4+PiBRdWFueWFuZwo+Pj4KPj4+IFBhdGNoIDE6Cj4+ Pgo+Pj4gIEZyb20gOTMzMTFkZTJjNjFlODdmMjQyNmI4OTI1OWQ4MWNkZWQ3MWFlZTY3MyBNb24g U2VwIDE3IDAwOjAwOjAwCj4+IDIwMDEKPj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5n LndhbmdAd2luZHJpdmVyLmNvbT4KPj4+IERhdGU6IFRodSwgMyBEZWMgMjAyMCAxOToxOTo1MCAr MDgwMAo+Pj4gU3ViamVjdDogW1BBVENIIDEvM10gZHJtOiB4bG54OiBzZXQgUExMX01PREVfRlJB QyBtb2RlIHRvCj4+PiBWUExMX0ZSQUNfQ0ZHIGJ5Cj4+PiAgwqByZS1lbmFibGluZyBkaXNwLT5w Y2xrCj4+Pgo+Pj4gV2hlbiB0aGUgZnVuY3Rpb24gY2xrX3NldF9yYXRlIGNvbmZpZ3VyZXMgdGhl IHJhdGUgb2YgZGlzcC0+cGNsaywKPj4+IHp5bnFtcF9wbV9zZXRfcGxsX2ZyYWNfbW9kZSB3aWxs IGJlIGNhbGxlZCB0byBzZXQgVlBMTCdzIG1vZGUgdG8gYmUKPj4+IFBMTF9NT0RFX0ZSQUMgb3Ig UExMX01PREVfSU5UIGJ5IGludm9raW5nIGFuIFNNQyBjYWxsIHRvIEFURi4KPj4+IEJ1dCBpbiBB VEYsIHRoZSBzZXJ2aWNlIHBtX2Nsb2NrX3NldF9wbGxfbW9kZSBkb2Vzbid0IHJlYWxseSBzZXQg dGhlCj4+PiBWUExMX0ZSQUNfQ0ZHIHJlZ2lzdGVyIGJ1dCBvbmx5IHN0b3JlcyB0aGUgbW9kZSB2 YWx1ZSB0byBzdHJ1Y3QgcG1fcGxsCj4+PiAqcGxsLiBUaGUgb3BlcmF0aW9uIHRoYXQgc2V0cyB0 aGUgcmVnaXN0ZXIgbXVzdCBiZSB0cmlnZ2VyZWQgYnkKPj4+IHp5bnFtcF9wbV9jbG9ja19lbmFi bGUuCj4+Pgo+Pj4gU2luY2UgZGlzcC0+cGNsayBpcyBlbmFibGVkIGluIGhhcmR3YXJlIGJlZm9y ZSBsaW51eCBib290aW5nLAo+Pj4gY2xrX3ByZXBhcmVfZW5hYmxlIHdpbGwgc2tpcCBvdmVyIHp5 bnFtcF9wbV9jbG9ja19lbmFibGUuIFNvIHdlIGhhdmUKPj4+IHRvIGVuYWJsZSB0aGVuIGRpc2Fi bGUgZGlzcC0+cGNsaywgYW5kIHJlLWVuYWJsZSBpdCB0byBtYWtlIHN1cmUgdGhhdAo+Pj4genlu cW1wX3BtX2Nsb2NrX2VuYWJsZSBpcyB0cmlnZ2VyZWQgYW5kIHRoZSBtb2RlIGlzIHNldCB0bwo+ Pj4gVlBMTF9GUkFDX0NGRy4gT3IgZWxzZSBWUExMIHdpbGwgd29yayBpbiBhbiBpbmNvcnJlY3Qg bW9kZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBRdWFueWFuZyBXYW5nIDxxdWFueWFuZy53YW5n QHdpbmRyaXZlci5jb20+Cj4+PiAtLS0KPj4+ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFt cF9kaXNwLmMgfCA1ICsrKysrCj4+PiAgwqAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMK Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+Pj4gaW5kZXggOThiZDQ4 ZjEzZmQxLi4xOTc1M2ZmYzQyNGUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGxu eC96eW5xbXBfZGlzcC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlz cC5jCj4+PiBAQCAtMTY2OCw2ICsxNjY4LDExIEBAIGludCB6eW5xbXBfZGlzcF9wcm9iZShzdHJ1 Y3QgenlucW1wX2Rwc3ViCj4+PiAqZHBzdWIsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRpc3AtPmRldiwgImZhaWxlZCB0byBpbml0 IGFueSB2aWRlbyBjbG9ja1xuIik7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g UFRSX0VSUihkaXNwLT5wY2xrKTsKPj4+ICDCoMKgwqDCoMKgwqDCoCB9Cj4+PiArCj4+PiArwqDC oMKgwqDCoMKgIC8qIE1ha2Ugc3VyZSB0aGF0IGRpc3AtPnBjbGsgaXMgZGlzYWJsZWQgaW4gaGFy ZHdhcmUgKi8KPj4+ICvCoMKgwqDCoMKgwqAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRpc3At PnBjbGspOwo+Pj4gK8KgwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUoZGlzcC0+cGNs ayk7Cj4+PiArCj4+PiAgwqDCoMKgwqDCoMKgwqAgZGlzcC0+cGNsa19mcm9tX3BzID0gdHJ1ZTsK Pj4+ICDCoMKgwqAgfQo+Pj4KPj4+IFBhdGNoIDI6Cj4+Pgo+Pj4gIEZyb20gOGM2ZDM2YmNiNGU3 OWUwZTVmOGUxNTc0NDZjZDk5NGI0YTIxMjZmMCBNb24gU2VwIDE3IDAwOjAwOjAwCj4+IDIwMDEK Pj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbT4KPj4+ IERhdGU6IFRodSwgMyBEZWMgMjAyMCAxOTozMjo1NiArMDgwMAo+Pj4gU3ViamVjdDogW1BBVENI IDIvM10gZHJtOiB4bG54OiBjb25maWd1cmUgYWxwaGEgdmFsdWUgdG8gbWFrZSBncmFwaGljCj4+ PiBsYXllcgo+Pj4gIMKgb3BhcXVlCj4+Pgo+Pj4gU2luY2UgZ3JhcGhpY3MgbGF5ZXIgaXMgcHJp bWFyeSwgYW5kIHZpZGVvIGxheWVyIGlzIG92ZXJhbHksIHdlIG5lZWQKPj4+IHRvIGNvbmZpZ3Vy ZSB0aGUgVl9CTEVORF9TRVRfR0xPQkFMX0FMUEhBX1JFRyByZWdpc3RlciB0byBtYWtlIGdyYXBo aWMKPj4+IGxheWVyIG9wYXF1ZSBieSBkZWZhdWx0LCBvciBlbHNlIGdyYXBoaWMgbGF5ZXIgd2ls bCBiZSB0cmFuc3BhcmVudCBhbmQKPj4+IGludmlzaWJsZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5 OiBRdWFueWFuZyBXYW5nIDxxdWFueWFuZy53YW5nQHdpbmRyaXZlci5jb20+Cj4+PiAtLS0KPj4+ ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmPCoMKgwqDCoMKgIHwgMyArKy0K Pj4+ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwX3JlZ3MuaCB8IDEgKwo+Pj4g IMKgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4+Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+Pj4gYi9k cml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlzcC5jCj4+PiBpbmRleCAxOTc1M2ZmYzQyNGUu LjVjODQ1ODllMTg5OSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFt cF9kaXNwLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+ IEBAIC0xNDY4LDcgKzE0NjgsOCBAQCB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUoc3Ry dWN0IGRybV9jcnRjCj4+PiAqY3J0YywKPj4+ICDCoMKgwqAgenlucW1wX2Rpc3BfYmxlbmRfc2V0 X291dHB1dF9mb3JtYXQoJmRpc3AtPmJsZW5kLAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWllOUU1QX0RQU1VCX0ZPUk1BVF9SR0IpOwo+Pj4gIMKg wqDCoCB6eW5xbXBfZGlzcF9ibGVuZF9zZXRfYmdfY29sb3IoJmRpc3AtPmJsZW5kLCAwLCAwLCAw KTsKPj4+IC3CoMKgIHp5bnFtcF9kaXNwX2JsZW5kX3NldF9nbG9iYWxfYWxwaGEoJmRpc3AtPmJs ZW5kLCBmYWxzZSwgMCk7Cj4+PiArwqDCoCB6eW5xbXBfZGlzcF9ibGVuZF9zZXRfZ2xvYmFsX2Fs cGhhKCZkaXNwLT5ibGVuZCwgdHJ1ZSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFpZTlFNUF9ESVNQX1ZfQkxFTkRfU0VUX0dMT0JBTF9BTFBIQV9NQVgpOwo+Pj4KPj4+ ICDCoMKgwqAgenlucW1wX2Rpc3BfZW5hYmxlKGRpc3ApOwo+Pj4KPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlzcF9yZWdzLmgKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL3hsbngvenlucW1wX2Rpc3BfcmVncy5oCj4+PiBpbmRleCBmOTJhMDA2ZDUwNzAuLmVmNDA5 YWNhMTFhZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNw X3JlZ3MuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3BfcmVncy5o Cj4+PiBAQCAtMjIsNiArMjIsNyBAQAo+Pj4gIMKgI2RlZmluZSBaWU5RTVBfRElTUF9WX0JMRU5E X1NFVF9HTE9CQUxfQUxQSEHCoMKgwqDCoMKgwqAgMHhjCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9E SVNQX1ZfQkxFTkRfU0VUX0dMT0JBTF9BTFBIQV9WQUxVRShuKcKgICgobikgPDwgMSkKPj4+ICDC oCNkZWZpbmUgWllOUU1QX0RJU1BfVl9CTEVORF9TRVRfR0xPQkFMX0FMUEhBX0VOwqDCoMKgwqDC oMKgwqAgQklUKDApCj4+PiArI2RlZmluZSBaWU5RTVBfRElTUF9WX0JMRU5EX1NFVF9HTE9CQUxf QUxQSEFfTUFYwqDCoCAweGZmCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9ESVNQX1ZfQkxFTkRfT1VU UFVUX1ZJRF9GTVTCoMKgwqDCoCAweDE0Cj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9ESVNQX1ZfQkxF TkRfT1VUUFVUX1ZJRF9GTVRfUkdCwqDCoMKgwqAgMHgwCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9E SVNQX1ZfQkxFTkRfT1VUUFVUX1ZJRF9GTVRfWUNCQ1I0NDTCoMKgwqAgMHgxCj4+Pgo+Pj4+PiAt LS0KPj4+Pj4gIMKgIGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMgfCAzICsrLQo+ Pj4+PiAgwqAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3Au Ywo+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+Pj4gaW5kZXgg MTQ4YWRkMGNhMWQ2Li45MDllNmMyNjU0MDYgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngv enlucW1wX2Rpc3AuYwo+Pj4+PiBAQCAtMTQ0NSw5ICsxNDQ1LDEwIEBAIHp5bnFtcF9kaXNwX2Ny dGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QKPj4+Pj4gZHJtX2NydGMgKmNydGMsCj4+Pj4+ICDCoMKg wqDCoMKgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPj4+Pj4gJmNy dGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+Pj4+PiAgwqDCoMKgwqDCoCBpbnQgcmV0LCB2cmVm cmVzaDsKPj4+Pj4gIMKgICvCoMKgwqAgcG1fcnVudGltZV9nZXRfc3luYyhkaXNwLT5kZXYpOwo+ Pj4+PiArCj4+Pj4+ICDCoMKgwqDCoMKgIHp5bnFtcF9kaXNwX2NydGNfc2V0dXBfY2xvY2soY3J0 YywgYWRqdXN0ZWRfbW9kZSk7Cj4+Pj4+ICDCoCAtwqDCoMKgIHBtX3J1bnRpbWVfZ2V0X3N5bmMo ZGlzcC0+ZGV2KTsKPj4+Pj4gIMKgwqDCoMKgwqAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRp c3AtPnBjbGspOwo+Pj4+PiAgwqDCoMKgwqDCoCBpZiAocmV0KSB7Cj4+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqAgZGV2X2VycihkaXNwLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIGEgcGl4ZWwgY2xv Y2tcbiIpOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo= 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.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, 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 B8678C433DB for ; Wed, 17 Mar 2021 11:50:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 3AA1564F64 for ; Wed, 17 Mar 2021 11:50:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3AA1564F64 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=windriver.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F1E6F6E525; Wed, 17 Mar 2021 11:50:47 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2043.outbound.protection.outlook.com [40.107.237.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A4A06E525 for ; Wed, 17 Mar 2021 11:50:47 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NFV6BtDkwFqPWCdzfiR19/CvCa1ikZGXgKf0bZWOWVhydaDHdabC4nm3VXNpXjk/S5MWICNBpl7d2RwcJlLbdXL6A9JBWS7lsbFoQji9HxjOw+1/EdG3tNrr5o/BRxdLoxe3Vv3M5nbei7kX2ehk1D9Ic+iSNX5+559fFud6PX2UU+wuFYj6JejB32C3j5urh3ZfyV0VtMo1t8R06CUhp7YbJh4JDSbmdx5ucELfguK7rkhS1zHry85W6PZIjuOErFxo9zjWGybekjEpRyEAPlXC3oZQBmEkhOTn1fWDmkr6QlHsNelGaGwsVUVaGy+ayTyT330OTdkubdPRGHrFLA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=lmhxLwC18kCUpL6zkeYVnjvR5NR/qVn/+hsduns/7I+VfU/Hz6EzQ/BEXoNJdXEu664HgsyZBUOioKrBfxrdHHBU0oUJJbBcwbq8BoD4mN/1L1B0qYzBAOazC6jw5tZOmIaMhnTJDTdZOc7IEZJCgfyNwNq+ngF8Gv8AjJgz4p6R42Gwgk0jYCZNqy30zy1dHpVgp3qOwsXjnf0DwncWvN773SmgPKsr/sNYfHQShdjPG36IlsOJm5/Q02V2hW/h8cigm6SP33Wl5LEZL0ZdEmj0kdqZOQGHI/wkqs4+KFUnHV2/TOOX6WkQJZtHHEM+oF6U/3gbLoD/B4ewDvBRwA== 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=HUcvGIGle7jHdbaBFwdy4214C6jnzxO+vikGHZqx+d0=; b=jxGEKCilTUYZSK5ZAq33Zm60Q7SrYrDXpztFzTWIUbxpR7huQdiLf2XREbyq8Ok9UAtw31KA1WMtt6D2r/rpYJbflVmFB/ubNZ309zZWftHF8EeRvrklT8wyVLKySvdPkIVCYZzooiKPDpBgi3mqTZj0MdCeJaw0xud1C5mT01A= 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 CY4PR11MB1544.namprd11.prod.outlook.com (2603:10b6:910:d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31; Wed, 17 Mar 2021 11:50:44 +0000 Received: from CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0]) by CY4PR11MB0071.namprd11.prod.outlook.com ([fe80::d4fe:8135:d8fa:81c0%5]) with mapi id 15.20.3933.032; Wed, 17 Mar 2021 11:50:44 +0000 Subject: Re: [PATCH] drm: xlnx: call pm_runtime_get_sync before setting pixel clock To: Rohit Visavalia , Michal Simek , Laurent Pinchart References: <20210310045945.3034364-1-quanyang.wang@windriver.com> <72a24e1f-8708-7f87-b1b5-a2b171bf4576@xilinx.com> From: "quanyang.wang" Message-ID: <31f7b1fb-6bb9-4ae5-9a9a-c1a7c094a6fd@windriver.com> Date: Wed, 17 Mar 2021 19:50:01 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) 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 BYAPR05CA0046.namprd05.prod.outlook.com (2603:10b6:a03:74::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.11 via Frontend Transport; Wed, 17 Mar 2021 11:50:39 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-TrafficTypeDiagnostic: CY4PR11MB1544: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Hda9ibmdSjcLSo+oh+KzoJpTrjcO9Muklx7jcuEvMKeYfnfxhAcOQDnjpeufUGC/lyNJqYemSnr/A+wnpr7yUpxqt17/Q5UKDqStV/7NMh+CHZ5x44C2L90K7M7LgAx5h9QxBGPVk37F/0TXEeySUil3QvpJInvSySk+SgW8j5luGLaAbx8jTzwlIQicDwjqo9wKkIg7Jge1bvePkZd3huEy1Q6MQJ+vYMCKUoVhohUFzYniSzTCWPihV7y8Bvm2S3XufRFIIsy29K0169bf3sfCDCY7BfaH6jp6Z/sAoutefwas1nuvqNwmKK2ZGHA/puDp+YL0ewJkOnbkkloE377LQWc3LVO2yNpCvWUm0e2eGpAPyqQf+EhH231bxwRgoE6Bd8OenvIvuwx6Iu0ieNErH7YEjduN6mPBNQM+TgkSYqlx4vxXLD9GEes46sqbGf/eqDl2lIGqJlEgriLLN2EHXz/OW9LGop2Nucm1ARm8rRjVk6VBJVl2zzZ9fh9YHtOwqcNXDfFSN9hh1Db/yOk6EJcJeSNAqJqkd8RsmbTpGnyiM2eYi/FFox2mG1fFF0lVSXOVkMDIoE6abAHeNaMNeusoq57NbppDBT+h5WUCGarWz8PfMRh6AXPWO2FGt5hiOSekLEXveYsxLMZJ4Bo1GgSElHjzOubv2FOxGs0= 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)(376002)(346002)(366004)(396003)(39850400004)(136003)(110136005)(6666004)(16526019)(36756003)(83380400001)(8936002)(4326008)(5660300002)(30864003)(31686004)(45080400002)(478600001)(86362001)(186003)(2906002)(8676002)(956004)(16576012)(2616005)(66556008)(66946007)(54906003)(6706004)(26005)(31696002)(6486002)(316002)(53546011)(52116002)(66476007)(78286007)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NmppNGllZmZxdlBWUHprcjhHMGNOQ0pmQ3NZaVRBVG1HVE9nc0dHbFRBVk9E?= =?utf-8?B?TWZoNnZ2c2NwQnZiTFNrb1AvRVI2Yy9GeThEVDBpZGtlK0lENkVLN3FCcWxG?= =?utf-8?B?a3FwMnBaRC9MVWRwYTRvWGhIRENiaGhpdVhGYjZpbWYvQTNKTmVHZE4rNFBS?= =?utf-8?B?Tk85U1Y0U2VCek9mb1BGYXdNMEFSSUh1N1R4UWFKcFd0QlBRT1pYQnFzOHBk?= =?utf-8?B?cVpLZ0JqK0tocld2bVd1ZWk4VU5HdHRyR3BmczBKeGlyR2xHak5NNUhuTFFL?= =?utf-8?B?SWJiTnhQMHAwN1I2K1hCS2ZnWkswSGlYZU9La0NqejB3RmZPd1NIR0FabnNS?= =?utf-8?B?TGd5S0J2eUxXaGNQTUl5SXp3bkJoZEFCTmlaeHJBYVUxTU01RitZRHRPSThR?= =?utf-8?B?NzZwSDZOc2pkeFh1NlpIQWI1TnhWZVNHWFNubFZkblFHUWU2cXBzYWJ3eXBx?= =?utf-8?B?LzUwSzViUGVWZ0JGZFp0OW1naDVUcFBvbzU3b0tERXZmUStzMmxSelpuWlZI?= =?utf-8?B?OXZOaWlYUUN2WnE2Z204TU1sbkVEUjZLQU1mWTlhcnZIZ3ZXUEtINE1rbUY0?= =?utf-8?B?RHNFTTVwR3VBTE5McFFScWVKMEQ4RjlidUtKb3hNcTZaWFcwZHVYRVVJd3k5?= =?utf-8?B?QzJNM3JqS2VreUgwN09QNVRVZXhLZCtJcXU0RENrK1dUaXZ6cGwwVFFQQkRZ?= =?utf-8?B?Z1RxTEZ0ZFMxalNRK1BibDNiRWNpUzVKY2xkUTlWZDhGamNxUGJsMGFRb2U3?= =?utf-8?B?dUxyVi9ucndZSTN0VU9uZitQaXVpa3dmMHY4Q3BzcUtsNDJnbUtQbjJQUGZH?= =?utf-8?B?WGUrVmh0bkFVY1MyUXM1UE41bzlRZjgxN0w4VEw1TDk1c0Ivcmh5dVYxNjlp?= =?utf-8?B?bXB1aE9CK1l5Q1JuRWhlQ2VRK3pzTHV6eHBUQWFwblNyNzNzTW5acTV6R3hj?= =?utf-8?B?ejBSY2hxLzZwa0w2SjQzY0JKZitoaXdsWm03ZGZmd3Rmald1OWhwVUtJbzdV?= =?utf-8?B?cDlxUGF2dlYyWk81djg5WEZiNEp6anQxbytSa0ZKdWlQY2tMU2RXTmpiWGRl?= =?utf-8?B?NnZFRkV4MERodEUrcEtqdEg1djFRbHo0U1FibERtZW9MSnRRL3JhelB5cW41?= =?utf-8?B?NXBmVUx2UzhVVENyeU13aC9xNldpZDVRcW04T3o1bFpwMXZWM0s2cDhsUzBR?= =?utf-8?B?aSsvbk5BYSt1UEt3OU96WDRFanZkS1RheTdCNzZyYlplRXdrbEt4RmlvM2Qw?= =?utf-8?B?MnpVUTdpa3BQYkRGTXpOZTNTR0JJOXZHTmtXUEdzbGFrbUpzZmt6cUVyTnlX?= =?utf-8?B?RTEvZTMrd0J1QzJiTTlieU11SDhDellvSkM1MGc2cVZzaGNKSmVBRVpPdzhD?= =?utf-8?B?Z0NrZTdpUUE1NWRaWEdKOFFUc1JBZnE5WUdtS0RCM0VBMHdvQlVlUjhkbjY2?= =?utf-8?B?cE8vWEUreHVSOHlZVkJRQ0ZReDBQUndBcVVkVXNzSTI4UWtxdlJwYWVLYlRj?= =?utf-8?B?U012Z1NBdEpYck9oQmh2dW1FNkFVN01kbWtQVXR1VVdCdkhWYlJneWxGcTNj?= =?utf-8?B?S3hJemkyb0pTRXk0T3dXQWhtbDVGWWxmSzRPN2t3M3ZUOXJ1T0lqNnE5aldP?= =?utf-8?B?ZHczYjJEK0k0WEs1QkJuRjRNZ0w1YW16a2lOQmR3YndLdUtkMk9MTDlOME8z?= =?utf-8?B?dWVIZUZCaUpsOVdTdWY5OG1BZFNiTjQ2aWdHY3Y4QkpBU1V6SVFTcTRjMGMw?= =?utf-8?Q?/p7ElcTATeZ2EY7ngwM03GzIWCtvc3+dkEftaD8?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8321192-b1c1-4176-41bb-08d8e93ae453 X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB0071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2021 11:50:44.6127 (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: i/KhDZMWFCb742a6+Aa8AlfeSqffEzkBijHVvUjQdEPCEfzlp7HIgBNc75nXQCLD3VoipQ9znef5T9WCwckmY/d5kl+ks6ND8bUNVMc8D+Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1544 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hyun Kwon , David Airlie , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-arm-kernel@lists.infradead.org" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgUm9oaXQsCgpPbiAzLzE3LzIxIDc6MTcgUE0sIFJvaGl0IFZpc2F2YWxpYSB3cm90ZToKPiBI aSBRdWFueWFuZyAmIExhdXJlbnQsCj4KPiBJIHRlc3RlZCB0aGlzIHBhdGNoKHdoaWNoIG1vdmVz IHBtX3J1bnRpbWVfZ2V0X3N5bmMgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlv biB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUpLCBpIGRvbid0IHNlZSBhbnkgYmVoYXZp b3IgY2hhbmdlIHdpdGggcGF0Y2gsIG1lYW5zIHdpdGggcGF0Y2ggYWxzbyBEUCBkaXNwbGF5IGlz IG5vdCBnZXR0aW5nIHVwIGFuZCBpdCBpcyByZXF1aXJlZCB0byByZXNvbHV0aW9uIGNoYW5nZSB0 byBtYWtlIGl0IHVwLgo+IEFsc28gdmFsaWQgYml0IGlzIG5vdCBnZXR0aW5nIHNldCBmb3IgVlBM TF9GUkFDX0NGRyBvbiBib290dXAsIHNhbWUgYmVoYXZpb3IgYXMgd2l0aG91dCBwYXRjaC4KClRo YW5rIHlvdSBmb3IgeW91ciB0ZXN0LgoKVGhpcyBwYXRjaCB3b3JrcyB1bmRlciB0aGUgY29uZGl0 aW9uIG9mIGFwcGx5aW5nIHRoZSBiZWxvdyBwYXRjaCAoZHJtOiAKeGxueDogc2V0IFBMTF9NT0RF X0ZSQUMgbW9kZSB0byBWUExMX0ZSQUNfQ0ZHIGJ5IHJlLWVuYWJsaW5nIGRpc3AtPnBjbGspIAoo UGF0Y2ggMSkgZmlyc3QuCgpXaXRob3V0IFBhdGNoIDEsIHRoZSBWUExMIG1vZGUgaXNuJ3Qgc2V0 IGNvcnJlY3RseSBhbmQgCmNsa19wcmVwYXJlX2VuYWJsZSBkb24ndCB0YWtlIGVmZmVjdC4gRFAg bW9uaXRvciBjYW4ndCByZWNlaXZlCgphbnkgc2lnbmFsIHNpbmNlIHRoZSBjbGsgaXMgd3Jvbmcu CgpBZnRlciBhcHBseWluZyBQYXRjaCAxLCB0aGVyZSB3aWxsIGJlIGVycm9yIGxvZyBpbiB0aGUg Ym9vdCBtZXNzYWdlOgoKW8KgwqDCoCAxLjMyNTYwMl0genlucW1wX3BsbF9lbmFibGUoKSBjbG9j ayBlbmFibGUgZmFpbGVkIGZvciB2cGxsX2ludCwgcmV0IAo9IC0yMgpbwqDCoMKgIDEuMzI1NjE0 XSB6eW5xbXAtZHBzdWIgZmQ0YTAwMDAuZGlzcGxheTogZmFpbGVkIHRvIGVuYWJsZSBhIHBpeGVs IGNsb2NrClvCoMKgwqAgMS40NTYxMDZdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t LS0tLQpbwqDCoMKgIDEuNDU2MTA5XSBbQ1JUQzozMzpjcnRjLTBdIHZibGFuayB3YWl0IHRpbWVk IG91dApbwqDCoMKgIDEuNDU2MTUyXSBXQVJOSU5HOiBDUFU6IDIgUElEOiA3NSBhdCAKZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmM6MTUxMiAKZHJtX2F0b21pY19oZWxwZXJfd2Fp dF9mb3JfdmJsYW5rcy5wYXJ0LjArMHgyN2MvMHgyOTgKW8KgwqDCoCAxLjQ1NjE3Ml0gTW9kdWxl cyBsaW5rZWQgaW46ClvCoMKgwqAgMS40NTYxODFdIENQVTogMiBQSUQ6IDc1IENvbW06IGt3b3Jr ZXIvMjoxIE5vdCB0YWludGVkIAo1LjEyLjAtcmMyLTAwMzM4LWdmNzhkNzZlNzJhNDYtZGlydHkg IzQKW8KgwqDCoCAxLjQ1NjE4OF0gSGFyZHdhcmUgbmFtZTogWnlucU1QIFpDVTEwMiBSZXYxLjAg KERUKQpbwqDCoMKgIDEuNDU2MTk0XSBXb3JrcXVldWU6IGV2ZW50cyBkZWZlcnJlZF9wcm9iZV93 b3JrX2Z1bmMKClRoZW4gYXBwbHlpbmcgdGhpcyBwYXRjaCAoIGRybTogeGxueDogY2FsbCBwbV9y dW50aW1lX2dldF9zeW5jIGJlZm9yZSAKc2V0dGluZyBwaXhlbCBjbG9jayksIHRoaXMgaXNzdWXC oCB3aWxsIGJlIGZpeGVkLCBEUCBtb25pdG9yCgp3aWxsIHJlY2VpdmUgc2lnbmFsLCBidXQgc2Ny ZWVuIGlzIHN0aWxsIGJsYWNrLiBUaGVuIGFwcGx5aW5nIHRoZSBiZWxvdyAKcGF0Y2ggKGRybTog eGxueDogY29uZmlndXJlIGFscGhhIHZhbHVlIHRvIG1ha2UgZ3JhcGhpYyBsYXllciBvcGFxdWUp IAooUGF0Y2ggMiksCgp0aGUgRFAgd2lsbCB3b3JrIHdlbGwuCgpUaGFua3MsCgpRdWFueWFuZwoK Pgo+IFRoYW5rcywKPiBSb2hpdAo+Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZy b206IE1pY2hhbCBTaW1layA8bWljaGFsLnNpbWVrQHhpbGlueC5jb20+Cj4+IFNlbnQ6IFdlZG5l c2RheSwgTWFyY2ggMTcsIDIwMjEgMTo1NiBQTQo+PiBUbzogcXVhbnlhbmcud2FuZyA8cXVhbnlh bmcud2FuZ0B3aW5kcml2ZXIuY29tPjsgTGF1cmVudCBQaW5jaGFydAo+PiA8bGF1cmVudC5waW5j aGFydEBpZGVhc29uYm9hcmQuY29tPjsgUm9oaXQgVmlzYXZhbGlhCj4+IDxSVklTQVZBTEB4aWxp bnguY29tPgo+PiBDYzogSHl1biBLd29uIDxoeXVua0B4bG54LnhpbGlueC5jb20+OyBEYXZpZCBB aXJsaWUgPGFpcmxpZWRAbGludXguaWU+Owo+PiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwu Y2g+OyBNaWNoYWwgU2ltZWsgPG1pY2hhbHNAeGlsaW54LmNvbT47IGRyaS0KPj4gZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7 IGxpbnV4LQo+PiBrZXJuZWxAdmdlci5rZXJuZWwub3JnCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IGRybTogeGxueDogY2FsbCBwbV9ydW50aW1lX2dldF9zeW5jIGJlZm9yZSBzZXR0aW5nIHBpeGVs Cj4+IGNsb2NrCj4+Cj4+ICtSb2hpdAo+Pgo+PiBPbiAzLzE3LzIxIDQ6MDAgQU0sIHF1YW55YW5n Lndhbmcgd3JvdGU6Cj4+PiBIaSBMYXVyZW50LAo+Pj4KPj4+IE9uIDMvMTcvMjEgNDozMiBBTSwg TGF1cmVudCBQaW5jaGFydCB3cm90ZToKPj4+PiBIaSBRdWFueWFuZywKPj4+Pgo+Pj4+IFRoYW5r IHlvdSBmb3IgdGhlIHBhdGNoLgo+Pj4+Cj4+Pj4gT24gV2VkLCBNYXIgMTAsIDIwMjEgYXQgMTI6 NTk6NDVQTSArMDgwMCwKPj4gcXVhbnlhbmcud2FuZ0B3aW5kcml2ZXIuY29tCj4+Pj4gd3JvdGU6 Cj4+Pj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbT4K Pj4+Pj4KPj4+Pj4gVGhlIFJ1bnRpbWUgUE0gc3Vic3lzdGVtIHdpbGwgZm9yY2UgdGhlIGRldmlj ZSAiZmQ0YTAwMDAuenlucW1wLQo+PiBkaXNwbGF5Igo+Pj4+PiB0byBlbnRlciBzdXNwZW5kIHN0 YXRlIHdoaWxlIGJvb3RpbmcgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQo+Pj4+PiBt ZXQ6Cj4+Pj4+IC0gdGhlIHVzYWdlIGNvdW50ZXIgaXMgemVybyAocG1fcnVudGltZV9nZXRfc3lu YyBoYXNuJ3QgYmVlbiBjYWxsZWQKPj4+Pj4geWV0KQo+Pj4+PiAtIG5vICdhY3RpdmUnIGNoaWxk cmVuIChubyB6eW5xbXAtZHAtc25kLXh4IG5vZGUgdW5kZXIgZHBzdWIgbm9kZSkKPj4+Pj4gLSBu byBvdGhlciBkZXZpY2UgaW4gdGhlIHNhbWUgcG93ZXIgZG9tYWluIChkcGRtYSBub2RlIGhhcyBu bwo+Pj4+PiAgwqDCoMKgwqDCoMKgwqAgInBvd2VyLWRvbWFpbnMgPSA8Jnp5bnFtcF9maXJtd2Fy ZSBQRF9EUD4iIHByb3BlcnR5KQo+Pj4+Pgo+Pj4+PiBTbyB0aGVyZSBpcyBhIHNjZW5hcmlvIGFz IGJlbG93Ogo+Pj4+PiAxKSBEUCBkZXZpY2UgZW50ZXJzIHN1c3BlbmQgc3RhdGXCoMKgIDwtIGNh bGwgenlucW1wX2dwZF9wb3dlcl9vZmYKPj4+Pj4gMikgenlucW1wX2Rpc3BfY3J0Y19zZXR1cF9j bG9ja8KgwqDCoMKgwqDCoMKgIDwtIGNvbmZpZ3VyYXRlIHJlZ2lzdGVyCj4+Pj4+IFZQTExfRlJB Q19DRkcKPj4+Pj4gMykgcG1fcnVudGltZV9nZXRfc3luY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg PC0gY2FsbCB6eW5xbXBfZ3BkX3Bvd2VyX29uIGFuZAo+Pj4+PiBjbGVhciBwcmV2aW91cwo+Pj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgVlBMTF9GUkFD X0NGRyBjb25maWd1cmF0aW9uCj4+Pj4+IDQpIGNsa19wcmVwYXJlX2VuYWJsZShkaXNwLT5wY2xr KcKgwqAgPC0gZW5hYmxlIGZhaWxlZCBzaW5jZQo+Pj4+PiBWUExMX0ZSQUNfQ0ZHCj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25maWd1cmF0aW9u IGlzIGNvcnJ1cHRlZAo+Pj4+Pgo+Pj4+PiAgwqBGcm9tIGFib3ZlLCB3ZSBjYW4gc2VlIHRoYXQg cG1fcnVudGltZV9nZXRfc3luYyBtYXkgY2xlYXIgcmVnaXN0ZXIKPj4+Pj4gVlBMTF9GUkFDX0NG RyBjb25maWd1cmF0aW9uIGFuZCByZXN1bHQgdGhlIGZhaWx1cmUgb2YgY2xrIGVuYWJsaW5nLgo+ Pj4+PiBQdXR0aW5nIHBtX3J1bnRpbWVfZ2V0X3N5bmMgYXQgdGhlIHZlcnkgYmVnaW5uaW5nIG9m IHRoZSBmdW5jdGlvbgo+Pj4+PiB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUgY2FuIHJl c29sdmUgdGhpcyBpc3N1ZS4KPj4+PiBJc24ndCB0aGlzIGFuIGlzc3VlIGluIHRoZSBmaXJtd2Fy ZSB0aG91Z2gsIHdoaWNoIHNob3VsZG4ndCBjbGVhciB0aGUKPj4+PiBwcmV2aW91cyBWUExMRl9G UkFDX0NGRyA/Cj4+PiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LsKgIEkgdXNlZCB0byBsb29r IGludG8gdGhlIGF0ZiBhbmQgUFdVIGNvZGUKPj4+IGFuZCBpdCBzZWVtcyAoSSBkaWRuJ3QgYWRk IGRlYnVnIGNvZGUKPj4+Cj4+PiB0byBQTVUgdG8gbWFrZSBzdXJlIGlmIFBNVSByZWFsbHkgZG9l cyB0aGlzLCBJIG9ubHkgaW4ga2VybmVsIGNhbGwKPj4+IHp5bnFtcF9wbV9nZXRfcGxsX2ZyYWNf ZGF0YSB0byBtYWtlIHN1cmUgdGhhdAo+Pj4KPj4+IHRoZSB2YWx1ZSBpbiBkYXRhIGZpZWxkIG9m IFZQTExfRlJBQ19DRkcgcmVnaXN0ZXIgaXMgY2hhbmdlZCBmcm9tCj4+PiAweDQwMDAgdG8gMHgw IGFmdGVyIHJ1biBwbV9ydW50aW1lX2dldF9zeW5jKQo+Pj4KPj4+IHRoYXQgUE1VIGludGVuZHMg dG8gcmVzZXQgVlBMTCB3aGVuIHRoZXJlIGlzIGFuwqAgT2ZmIGFuZCBPbiBpbiBEUAo+Pj4gUG93 ZXJkb21haW4uCj4+Pgo+Pj4KPj4+IExpbnV4IEFURsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDC oMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIFBXVQo+Pj4KPj4+IHp5bnFtcF9ncGRf cG93ZXJfb24KPj4+IC0+enlucW1wX3BtX3NldF9yZXF1aXJlbWVudAo+Pj4gLS0+c2VuZCBQTV9T RVRfUkVRVUlSRU1FTlQgdG8gQVRGwqAgPT0+wqDCoMKgwqDCoMKgwqAgQVRGIHNlbmQgaXBpIHRv IFBXVQo+Pj4gPT0+wqDCoCBQbVNldFJlcXVpcmVtZW50Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtPlBt UmVxdWlyZW1lbnRVcGRhdGUKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tPlBtVXBkYXRlU2xhdmUobWFz dGVyUmVxLT5zbGF2ZSkKPj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tLT5QbVNsYXZlQ2hhbmdlU3RhdGUK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLT5QbVNsYXZlQ2hhbmdlU3RhdGUKPj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLS0tLS0+UG1TbGF2ZUNsZWFyQWZ0ZXJTdGF0ZQo+Pj4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAtLS0tLS0+UG1DbG9ja1JlbGVhc2UKPj4+Cj4+PiAtLS0tLS0tPlBtQ2xvY2tSZWxlYXNlSW50 KCZjaC0+Y2xvY2stPmJhc2UpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tLS0tLS0tPmNsay0+Y2xh c3MtPnJlbGVhc2UoY2xrKQo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtLS0tLS0tLS0+UG1QbGxCeXBh c3NBbmRSZXNldAo+Pj4gLy9IZXJlIHJlc2V0IHRoZSBWUExMIHRoZW4gVlBMTF9GUkFDX0NGRyBp cyBjbGVhcmVkLgo+Pj4KPj4+Pj4gU2lnbmVkLW9mZi1ieTogUXVhbnlhbmcgV2FuZyA8cXVhbnlh bmcud2FuZ0B3aW5kcml2ZXIuY29tPgo+Pj4+IE5vbmV0aGVsZXNzLCB0aGlzIGNoYW5nZSBsb29r cyBnb29kIHRvIG1lLCBJIGFjdHVhbGx5IGhhZCB0aGUgc2FtZQo+Pj4+IHBhdGNoIGluIG15IHRy ZWUgd2hpbGUgaW52ZXN0aWdhdGlvbiBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgY2xvY2sKPj4+PiBy YXRlLCBzbwo+Pj4+Cj4+Pj4gUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQu cGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPj4+PiBUZXN0ZWQtYnk6IExhdXJlbnQgUGluY2hh cnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPj4+Pgo+Pj4+IEkgd2FzIGhv cGluZyBpdCB3b3VsZCBzb2x2ZSB0aGUgaXNzdWUgSSdtIGV4cGVyaWVuY2luZyB3aXRoIHRoZSBE UAo+Pj4+IGNsb2NrLCBidXQgdGhhdCdzIG5vdCB0aGUgY2FzZSA6LSggSW4gYSBudXRzaGVsbCwg d2hlbiB0aGUgRFAgaXMKPj4+PiBmaXJzdCBzdGFydGVkLCB0aGUgY2xvY2sgZnJlcXVlbmN5IGlz IGluY29ycmVjdC4gVGhlIGZvbGxvd2luZyBxdWljawo+Pj4+ICYgZGlydHkgcGF0Y2ggZml4ZXMg dGhlIHByb2JsZW06Cj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngv enlucW1wX2Rpc3AuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+ Pj4+IGluZGV4IDc0YWMwYTA2NGViNS4uZmRiZTFiMDY0MGFhIDEwMDY0NAo+Pj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0veGxueC96eW5xbXBfZGlzcC5jCj4+Pj4gQEAgLTE0MzksNiArMTQzOSwxMCBAQCB6eW5xbXBf ZGlzcF9jcnRjX2F0b21pY19lbmFibGUoc3RydWN0Cj4+IGRybV9jcnRjCj4+Pj4gKmNydGMsCj4+ Pj4KPj4+PiAgwqDCoMKgwqDCoCBwbV9ydW50aW1lX2dldF9zeW5jKGRpc3AtPmRldik7Cj4+Pj4K Pj4+PiArwqDCoMKgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkaXNwLT5wY2xrKTsKPj4+PiAr wqDCoMKgIGlmICghcmV0KQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBh cmUoZGlzcC0+cGNsayk7Cj4+Pj4gKwo+Pj4+ICDCoMKgwqDCoMKgIHp5bnFtcF9kaXNwX2NydGNf c2V0dXBfY2xvY2soY3J0YywgYWRqdXN0ZWRfbW9kZSk7Cj4+Pj4KPj4+PiAgwqDCoMKgwqDCoCBy ZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZGlzcC0+cGNsayk7Cj4+Pj4KPj4+PiBUaGUgcHJvYmxl bSBkb2Vzbid0IHNlZW0gdG8gYmUgaW4gdGhlIGtlcm5lbCwgYnV0IG9uIHRoZSBURi1BIG9yIFBN VQo+Pj4+IGZpcm13YXJlIHNpZGUuIEhhdmUgeW91IGV4cGVyaWVuY2VkIHRoaXMgYnkgYW55IGNo YW5jZSA/Cj4+PiBZZXMswqAgSSBidW1wZWQgaW50byB0aGUgc2FtZSBpc3N1ZSBhbmQgSSB1c2Vk IHRvIG1ha2UgYSBwYXRjaCAoUGF0Y2gKPj4+IDEpIGFzIGJlbG93Lgo+Pj4KPj4+IEkgZGlkbid0 IHNlbmQgaXQgdG8gbWFpbmxpbmUgYmVjYXVzZSBpdCBzZWVtcyBub3QgdG8gYmUgYSBkcml2ZXIg aXNzdWUuCj4+PiBUaGUgbW9kZSBvZiBWUExMCj4+Pgo+Pj4gaXMgbm90IHNldCBjb3JyZWN0bHkg YmVjYXVzZToKPj4+Cj4+PiAxKSBWUExMIGlzIGVuYWJsZWQgYmVmb3JlIGxpbnV4Cj4+Pgo+Pj4g MikgbGludXggY2FsbGluZyBwbV9jbG9ja19zZXRfcGxsX21vZGUgY2FuJ3QgcmVhbGx5IHNldCBy ZWdpc3Rlcgo+Pj4gYmVjYXVzZSBpbiBBVEYKPj4+Cj4+PiBpdCBvbmx5IHN0b3JlIHRoZSBtb2Rl IHZhbHVlIHRvIGEgc3RydWN0dXJlIGFuZCB3YWl0IGEgY2xrLWVuYWJsZQo+Pj4gcmVxdWVzdCB0 byBkbwo+Pj4KPj4+IHRoZSByZWdpc3Rlci1zZXQgb3BlcmF0aW9uLgo+Pj4KPj4+IDMpIGxpbnV4 IGNhbGwgY2xrX2VuYWJsZSB3aWxsIG5vdCBzZW5kIGEgY2xrLWVuYWJsZSByZXF1ZXN0IHNpbmNl IGl0Cj4+PiBjaGVja3MgdGhhdAo+Pj4KPj4+IHRoZSBWUExMIGlzIGFscmVhZHkgaGFyZHdhcmUt ZW5hYmxlZCBiZWNhdXNlIG9mIDEpLgo+Pj4KPj4+IFNvIHRoZSBmaXJtd2FyZSBzaG91bGQgZGlz YWJsZSBWUExMIHdoZW4gaXQgZXhpdHMgYW5kIGFsc28gaW4gbGludXgKPj4+IHp5bnFtcCBjbGsg ZHJpdmVyCj4+Pgo+Pj4gdGhlcmUgc2hvdWxkIGJlIGEgY2hlY2sgbGlzdCB0byByZXNldCBzb21l IGNsa3MgdG8gYSBwcmVkZWZpbmVkIHN0YXRlLgo+Pj4KPj4+Cj4+PiBCeSB0aGUgd2F5LCB0aGVy ZSBpcyBhIHRpbnkgcGF0Y2ggKFBhdGNoIDIpIHRvIGZpeCB0aGUgYmxhY2sgc2NyZWVuCj4+PiBp c3N1ZSBpbiBEUC4gSSB0aGluayB5b3UgbWF5Cj4+Pgo+Pj4gYmUgcHJlcGFyaW5nIGEgYmlnIHBh dGNoIHdoaWNoIGFkZCBkcm0gcHJvcGVydGllcyB0byB0aGlzIGRyaXZlciBhbmQKPj4+IGl0IG1h eSBjb250YWluIHRoaXMgbW9kaWZpY2F0aW9uLAo+Pj4KPj4+IHNvIEkgZGlkbid0IHNlbmQgaXQu Cj4+Pgo+Pj4KPj4+IFRoYW5rcywKPj4+Cj4+PiBRdWFueWFuZwo+Pj4KPj4+IFBhdGNoIDE6Cj4+ Pgo+Pj4gIEZyb20gOTMzMTFkZTJjNjFlODdmMjQyNmI4OTI1OWQ4MWNkZWQ3MWFlZTY3MyBNb24g U2VwIDE3IDAwOjAwOjAwCj4+IDIwMDEKPj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5n LndhbmdAd2luZHJpdmVyLmNvbT4KPj4+IERhdGU6IFRodSwgMyBEZWMgMjAyMCAxOToxOTo1MCAr MDgwMAo+Pj4gU3ViamVjdDogW1BBVENIIDEvM10gZHJtOiB4bG54OiBzZXQgUExMX01PREVfRlJB QyBtb2RlIHRvCj4+PiBWUExMX0ZSQUNfQ0ZHIGJ5Cj4+PiAgwqByZS1lbmFibGluZyBkaXNwLT5w Y2xrCj4+Pgo+Pj4gV2hlbiB0aGUgZnVuY3Rpb24gY2xrX3NldF9yYXRlIGNvbmZpZ3VyZXMgdGhl IHJhdGUgb2YgZGlzcC0+cGNsaywKPj4+IHp5bnFtcF9wbV9zZXRfcGxsX2ZyYWNfbW9kZSB3aWxs IGJlIGNhbGxlZCB0byBzZXQgVlBMTCdzIG1vZGUgdG8gYmUKPj4+IFBMTF9NT0RFX0ZSQUMgb3Ig UExMX01PREVfSU5UIGJ5IGludm9raW5nIGFuIFNNQyBjYWxsIHRvIEFURi4KPj4+IEJ1dCBpbiBB VEYsIHRoZSBzZXJ2aWNlIHBtX2Nsb2NrX3NldF9wbGxfbW9kZSBkb2Vzbid0IHJlYWxseSBzZXQg dGhlCj4+PiBWUExMX0ZSQUNfQ0ZHIHJlZ2lzdGVyIGJ1dCBvbmx5IHN0b3JlcyB0aGUgbW9kZSB2 YWx1ZSB0byBzdHJ1Y3QgcG1fcGxsCj4+PiAqcGxsLiBUaGUgb3BlcmF0aW9uIHRoYXQgc2V0cyB0 aGUgcmVnaXN0ZXIgbXVzdCBiZSB0cmlnZ2VyZWQgYnkKPj4+IHp5bnFtcF9wbV9jbG9ja19lbmFi bGUuCj4+Pgo+Pj4gU2luY2UgZGlzcC0+cGNsayBpcyBlbmFibGVkIGluIGhhcmR3YXJlIGJlZm9y ZSBsaW51eCBib290aW5nLAo+Pj4gY2xrX3ByZXBhcmVfZW5hYmxlIHdpbGwgc2tpcCBvdmVyIHp5 bnFtcF9wbV9jbG9ja19lbmFibGUuIFNvIHdlIGhhdmUKPj4+IHRvIGVuYWJsZSB0aGVuIGRpc2Fi bGUgZGlzcC0+cGNsaywgYW5kIHJlLWVuYWJsZSBpdCB0byBtYWtlIHN1cmUgdGhhdAo+Pj4genlu cW1wX3BtX2Nsb2NrX2VuYWJsZSBpcyB0cmlnZ2VyZWQgYW5kIHRoZSBtb2RlIGlzIHNldCB0bwo+ Pj4gVlBMTF9GUkFDX0NGRy4gT3IgZWxzZSBWUExMIHdpbGwgd29yayBpbiBhbiBpbmNvcnJlY3Qg bW9kZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBRdWFueWFuZyBXYW5nIDxxdWFueWFuZy53YW5n QHdpbmRyaXZlci5jb20+Cj4+PiAtLS0KPj4+ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFt cF9kaXNwLmMgfCA1ICsrKysrCj4+PiAgwqAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMK Pj4+IGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+Pj4gaW5kZXggOThiZDQ4 ZjEzZmQxLi4xOTc1M2ZmYzQyNGUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGxu eC96eW5xbXBfZGlzcC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlz cC5jCj4+PiBAQCAtMTY2OCw2ICsxNjY4LDExIEBAIGludCB6eW5xbXBfZGlzcF9wcm9iZShzdHJ1 Y3QgenlucW1wX2Rwc3ViCj4+PiAqZHBzdWIsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGRpc3AtPmRldiwgImZhaWxlZCB0byBpbml0 IGFueSB2aWRlbyBjbG9ja1xuIik7Cj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g UFRSX0VSUihkaXNwLT5wY2xrKTsKPj4+ICDCoMKgwqDCoMKgwqDCoCB9Cj4+PiArCj4+PiArwqDC oMKgwqDCoMKgIC8qIE1ha2Ugc3VyZSB0aGF0IGRpc3AtPnBjbGsgaXMgZGlzYWJsZWQgaW4gaGFy ZHdhcmUgKi8KPj4+ICvCoMKgwqDCoMKgwqAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRpc3At PnBjbGspOwo+Pj4gK8KgwqDCoMKgwqDCoCBjbGtfZGlzYWJsZV91bnByZXBhcmUoZGlzcC0+cGNs ayk7Cj4+PiArCj4+PiAgwqDCoMKgwqDCoMKgwqAgZGlzcC0+cGNsa19mcm9tX3BzID0gdHJ1ZTsK Pj4+ICDCoMKgwqAgfQo+Pj4KPj4+IFBhdGNoIDI6Cj4+Pgo+Pj4gIEZyb20gOGM2ZDM2YmNiNGU3 OWUwZTVmOGUxNTc0NDZjZDk5NGI0YTIxMjZmMCBNb24gU2VwIDE3IDAwOjAwOjAwCj4+IDIwMDEK Pj4+IEZyb206IFF1YW55YW5nIFdhbmcgPHF1YW55YW5nLndhbmdAd2luZHJpdmVyLmNvbT4KPj4+ IERhdGU6IFRodSwgMyBEZWMgMjAyMCAxOTozMjo1NiArMDgwMAo+Pj4gU3ViamVjdDogW1BBVENI IDIvM10gZHJtOiB4bG54OiBjb25maWd1cmUgYWxwaGEgdmFsdWUgdG8gbWFrZSBncmFwaGljCj4+ PiBsYXllcgo+Pj4gIMKgb3BhcXVlCj4+Pgo+Pj4gU2luY2UgZ3JhcGhpY3MgbGF5ZXIgaXMgcHJp bWFyeSwgYW5kIHZpZGVvIGxheWVyIGlzIG92ZXJhbHksIHdlIG5lZWQKPj4+IHRvIGNvbmZpZ3Vy ZSB0aGUgVl9CTEVORF9TRVRfR0xPQkFMX0FMUEhBX1JFRyByZWdpc3RlciB0byBtYWtlIGdyYXBo aWMKPj4+IGxheWVyIG9wYXF1ZSBieSBkZWZhdWx0LCBvciBlbHNlIGdyYXBoaWMgbGF5ZXIgd2ls bCBiZSB0cmFuc3BhcmVudCBhbmQKPj4+IGludmlzaWJsZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5 OiBRdWFueWFuZyBXYW5nIDxxdWFueWFuZy53YW5nQHdpbmRyaXZlci5jb20+Cj4+PiAtLS0KPj4+ ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmPCoMKgwqDCoMKgIHwgMyArKy0K Pj4+ICDCoGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwX3JlZ3MuaCB8IDEgKwo+Pj4g IMKgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4+Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3AuYwo+Pj4gYi9k cml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlzcC5jCj4+PiBpbmRleCAxOTc1M2ZmYzQyNGUu LjVjODQ1ODllMTg5OSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFt cF9kaXNwLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+ IEBAIC0xNDY4LDcgKzE0NjgsOCBAQCB6eW5xbXBfZGlzcF9jcnRjX2F0b21pY19lbmFibGUoc3Ry dWN0IGRybV9jcnRjCj4+PiAqY3J0YywKPj4+ICDCoMKgwqAgenlucW1wX2Rpc3BfYmxlbmRfc2V0 X291dHB1dF9mb3JtYXQoJmRpc3AtPmJsZW5kLAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgWllOUU1QX0RQU1VCX0ZPUk1BVF9SR0IpOwo+Pj4gIMKg wqDCoCB6eW5xbXBfZGlzcF9ibGVuZF9zZXRfYmdfY29sb3IoJmRpc3AtPmJsZW5kLCAwLCAwLCAw KTsKPj4+IC3CoMKgIHp5bnFtcF9kaXNwX2JsZW5kX3NldF9nbG9iYWxfYWxwaGEoJmRpc3AtPmJs ZW5kLCBmYWxzZSwgMCk7Cj4+PiArwqDCoCB6eW5xbXBfZGlzcF9ibGVuZF9zZXRfZ2xvYmFsX2Fs cGhhKCZkaXNwLT5ibGVuZCwgdHJ1ZSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFpZTlFNUF9ESVNQX1ZfQkxFTkRfU0VUX0dMT0JBTF9BTFBIQV9NQVgpOwo+Pj4KPj4+ ICDCoMKgwqAgenlucW1wX2Rpc3BfZW5hYmxlKGRpc3ApOwo+Pj4KPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZGlzcF9yZWdzLmgKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL3hsbngvenlucW1wX2Rpc3BfcmVncy5oCj4+PiBpbmRleCBmOTJhMDA2ZDUwNzAuLmVmNDA5 YWNhMTFhZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNw X3JlZ3MuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3BfcmVncy5o Cj4+PiBAQCAtMjIsNiArMjIsNyBAQAo+Pj4gIMKgI2RlZmluZSBaWU5RTVBfRElTUF9WX0JMRU5E X1NFVF9HTE9CQUxfQUxQSEHCoMKgwqDCoMKgwqAgMHhjCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9E SVNQX1ZfQkxFTkRfU0VUX0dMT0JBTF9BTFBIQV9WQUxVRShuKcKgICgobikgPDwgMSkKPj4+ICDC oCNkZWZpbmUgWllOUU1QX0RJU1BfVl9CTEVORF9TRVRfR0xPQkFMX0FMUEhBX0VOwqDCoMKgwqDC oMKgwqAgQklUKDApCj4+PiArI2RlZmluZSBaWU5RTVBfRElTUF9WX0JMRU5EX1NFVF9HTE9CQUxf QUxQSEFfTUFYwqDCoCAweGZmCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9ESVNQX1ZfQkxFTkRfT1VU UFVUX1ZJRF9GTVTCoMKgwqDCoCAweDE0Cj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9ESVNQX1ZfQkxF TkRfT1VUUFVUX1ZJRF9GTVRfUkdCwqDCoMKgwqAgMHgwCj4+PiAgwqAjZGVmaW5lIFpZTlFNUF9E SVNQX1ZfQkxFTkRfT1VUUFVUX1ZJRF9GTVRfWUNCQ1I0NDTCoMKgwqAgMHgxCj4+Pgo+Pj4+PiAt LS0KPj4+Pj4gIMKgIGRyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMgfCAzICsrLQo+ Pj4+PiAgwqAgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rpc3Au Ywo+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+Pj4gaW5kZXgg MTQ4YWRkMGNhMWQ2Li45MDllNmMyNjU0MDYgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS94bG54L3p5bnFtcF9kaXNwLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngv enlucW1wX2Rpc3AuYwo+Pj4+PiBAQCAtMTQ0NSw5ICsxNDQ1LDEwIEBAIHp5bnFtcF9kaXNwX2Ny dGNfYXRvbWljX2VuYWJsZShzdHJ1Y3QKPj4+Pj4gZHJtX2NydGMgKmNydGMsCj4+Pj4+ICDCoMKg wqDCoMKgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPj4+Pj4gJmNy dGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+Pj4+PiAgwqDCoMKgwqDCoCBpbnQgcmV0LCB2cmVm cmVzaDsKPj4+Pj4gIMKgICvCoMKgwqAgcG1fcnVudGltZV9nZXRfc3luYyhkaXNwLT5kZXYpOwo+ Pj4+PiArCj4+Pj4+ICDCoMKgwqDCoMKgIHp5bnFtcF9kaXNwX2NydGNfc2V0dXBfY2xvY2soY3J0 YywgYWRqdXN0ZWRfbW9kZSk7Cj4+Pj4+ICDCoCAtwqDCoMKgIHBtX3J1bnRpbWVfZ2V0X3N5bmMo ZGlzcC0+ZGV2KTsKPj4+Pj4gIMKgwqDCoMKgwqAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGRp c3AtPnBjbGspOwo+Pj4+PiAgwqDCoMKgwqDCoCBpZiAocmV0KSB7Cj4+Pj4+ICDCoMKgwqDCoMKg wqDCoMKgwqAgZGV2X2VycihkaXNwLT5kZXYsICJmYWlsZWQgdG8gZW5hYmxlIGEgcGl4ZWwgY2xv Y2tcbiIpOwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK