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=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 ECE77C433E9 for ; Sun, 14 Mar 2021 09:11:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C77F664DD7 for ; Sun, 14 Mar 2021 09:11:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234924AbhCNJLR (ORCPT ); Sun, 14 Mar 2021 05:11:17 -0400 Received: from mga11.intel.com ([192.55.52.93]:53684 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234904AbhCNJLI (ORCPT ); Sun, 14 Mar 2021 05:11:08 -0400 IronPort-SDR: RUj4kGG1QLbyTle3TnbiOnSZ6GOIKXfIdcEFneo0CvHNs5KWG+KZRmaBpitJH5xobAyhOS1Dw8 slxCY5WX0rBw== X-IronPort-AV: E=McAfee;i="6000,8403,9922"; a="185622924" X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="185622924" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2021 01:11:05 -0800 IronPort-SDR: W4Pgrv411RMHKDlBXBestqy3b70NnWFlbNwtzC3925eFFTt0bxoJmYWcacH/mhfTD4wzGRqT0e BhyvAbVIkt5Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="590015788" Received: from ahunter-desktop.fi.intel.com (HELO [10.237.72.76]) ([10.237.72.76]) by orsmga005.jf.intel.com with ESMTP; 14 Mar 2021 01:10:56 -0800 Subject: Re: [PATCH v10 1/2] scsi: ufs: Enable power management for wlun To: "Asutosh Das (asd)" , Alan Stern , Bart Van Assche Cc: "Rafael J. Wysocki" , cang@codeaurora.org, "Martin K. Petersen" , "open list:TARGET SUBSYSTEM" , linux-arm-msm , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , Krzysztof Kozlowski , Stanley Chu , Andy Gross , Bjorn Andersson , Steven Rostedt , Ingo Molnar , Matthias Brugger , Kiwoong Kim , Bean Huo , Lee Jones , Wei Yongjun , Dinghao Liu , "Gustavo A. R. Silva" , Tomas Winkler , Jaegeuk Kim , Satya Tangirala , open list , "moderated list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "open list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "moderated list:UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER..." , Linux-PM mailing list References: <0576d6eae15486740c25767e2d8805f7e94eb79d.1614725302.git.asutoshd@codeaurora.org> <85086647-7292-b0a2-d842-290818bd2858@intel.com> <6e98724d-2e75-d1fe-188f-a7010f86c509@codeaurora.org> <20210306161616.GC74411@rowland.harvard.edu> <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: Date: Sun, 14 Mar 2021 11:11:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On 10/03/21 5:04 am, Asutosh Das (asd) wrote: > On 3/9/2021 7:56 AM, Asutosh Das (asd) wrote: >> On 3/8/2021 9:17 AM, Rafael J. Wysocki wrote: >>> On Mon, Mar 8, 2021 at 5:21 PM Rafael J. Wysocki wrote: >>>> >>>> On Sat, Mar 6, 2021 at 5:17 PM Alan Stern wrote: >>>>> >>>>> On Fri, Mar 05, 2021 at 06:54:24PM -0800, Asutosh Das (asd) wrote: >>>>> >>>>>> Now during my testing I see a weird issue sometimes (1 in 7). >>>>>> Scenario - bootups >>>>>> >>>>>> Issue: >>>>>> The supplier 'ufs_device_wlun 0:0:0:49488' goes into runtime suspend even >>>>>> when one/more of its consumers are in RPM_ACTIVE state. >>>>>> >>>>>> *Log: >>>>>> [   10.056379][  T206] sd 0:0:0:1: [sdb] Synchronizing SCSI cache >>>>>> [   10.062497][  T113] sd 0:0:0:5: [sdf] Synchronizing SCSI cache >>>>>> [   10.356600][   T32] sd 0:0:0:7: [sdh] Synchronizing SCSI cache >>>>>> [   10.362944][  T174] sd 0:0:0:3: [sdd] Synchronizing SCSI cache >>>>>> [   10.696627][   T83] sd 0:0:0:2: [sdc] Synchronizing SCSI cache >>>>>> [   10.704562][  T170] sd 0:0:0:6: [sdg] Synchronizing SCSI cache >>>>>> [   10.980602][    T5] sd 0:0:0:0: [sda] Synchronizing SCSI cache >>>>>> >>>>>> /** Printing all the consumer nodes of supplier **/ >>>>>> [   10.987327][    T5] ufs_device_wlun 0:0:0:49488: usage-count @ suspend: 0 >>>>>> <-- this is the usage_count >>>>>> [   10.994440][    T5] ufs_rpmb_wlun 0:0:0:49476: PM state - 2 >>>>>> [   11.000402][    T5] scsi 0:0:0:49456: PM state - 2 >>>>>> [   11.005453][    T5] sd 0:0:0:0: PM state - 2 >>>>>> [   11.009958][    T5] sd 0:0:0:1: PM state - 2 >>>>>> [   11.014469][    T5] sd 0:0:0:2: PM state - 2 >>>>>> [   11.019072][    T5] sd 0:0:0:3: PM state - 2 >>>>>> [   11.023595][    T5] sd 0:0:0:4: PM state - 0 << RPM_ACTIVE >>>>>> [   11.353298][    T5] sd 0:0:0:5: PM state - 2 >>>>>> [   11.357726][    T5] sd 0:0:0:6: PM state - 2 >>>>>> [   11.362155][    T5] sd 0:0:0:7: PM state - 2 >>>>>> [   11.366584][    T5] ufshcd-qcom 1d84000.ufshc: __ufshcd_wl_suspend - 8709 >>>>>> [   11.374366][    T5] ufs_device_wlun 0:0:0:49488: __ufshcd_wl_suspend - >>>>>> (0) has rpm_active flags >>>> >>>> Do you mean that rpm_active of the link between the consumer and the >>>> supplier is greater than 0 at this point and the consumer is >>> >>> I mean is rpm_active of the link greater than 1 (because 1 means "no >>> active references to the supplier")? >> Hi Rafael: >> No - it is not greater than 1. >> >> I'm trying to understand what's going on in it; will update when I've something. >> >>> >>>> RPM_ACTIVE, but the supplier suspends successfully nevertheless? >>>> >>>>>> [   11.383376][    T5] ufs_device_wlun 0:0:0:49488: >>>>>> ufshcd_wl_runtime_suspend <-- Supplier suspends fine. >>>>>> [   12.977318][  T174] sd 0:0:0:4: [sde] Synchronizing SCSI cache >>>>>> >>>>>> And the the suspend of sde is stuck now: >>>>>> schedule+0x9c/0xe0 >>>>>> schedule_timeout+0x40/0x128 >>>>>> io_schedule_timeout+0x44/0x68 >>>>>> wait_for_common_io+0x7c/0x100 >>>>>> wait_for_completion_io+0x14/0x20 >>>>>> blk_execute_rq+0x90/0xcc >>>>>> __scsi_execute+0x104/0x1c4 >>>>>> sd_sync_cache+0xf8/0x2a0 >>>>>> sd_suspend_common+0x74/0x11c >>>>>> sd_suspend_runtime+0x14/0x20 >>>>>> scsi_runtime_suspend+0x64/0x94 >>>>>> __rpm_callback+0x80/0x2a4 >>>>>> rpm_suspend+0x308/0x614 >>>>>> pm_runtime_work+0x98/0xa8 >>>>>> >>>>>> I added 'DL_FLAG_RPM_ACTIVE' while creating links. >>>>>>        if (hba->sdev_ufs_device) { >>>>>>                link = device_link_add(&sdev->sdev_gendev, >>>>>>                                    &hba->sdev_ufs_device->sdev_gendev, >>>>>>                                   DL_FLAG_PM_RUNTIME|DL_FLAG_RPM_ACTIVE); >>>>>> I didn't expect this to resolve the issue anyway and it didn't. >>>>>> >>>>>> Another interesting point here is when I resume any of the above suspended >>>>>> consumers, it all goes back to normal, which is kind of expected. I tried >>>>>> resuming the consumer and the supplier is resumed and the supplier is >>>>>> suspended when all the consumers are suspended. >>>>>> >>>>>> Any pointers on this issue please? >>>>>> >>>>>> @Bart/@Alan - Do you've any pointers please? >>>>> >>>>> It's very noticeable that although you seem to have isolated a bug in >>>>> the power management subsystem (supplier goes into runtime suspend >>>>> even when one of its consumers is still active), you did not CC the >>>>> power management maintainer or mailing list. >>>>> >>>>> I have added the appropriate CC's. >>>> >>>> Thanks Alan! >> >> > > Hello > I & Can (thanks CanG) debugged this further: > > Looks like this issue can occur if the sd probe is asynchronous. > > Essentially, the sd_probe() is done asynchronously and driver_probe_device() invokes pm_runtime_get_suppliers() before invoking sd_probe(). > > But scsi_probe_and_add_lun() runs in a separate context. > So the scsi_autopm_put_device() invoked from scsi_scan_host() context reduces the link->rpm_active to 1. And sd_probe() invokes scsi_autopm_put_device() and starts a timer. And then driver_probe_device() invoked from __device_attach_async_helper context reduces the link->rpm_active to 1 thus enabling the supplier to suspend before the consumer suspends. > > So if: > Context T1: > [1] scsi_probe_and_add_lun() > [2]    |- scsi_autopm_put_device() - reduce the link->rpm_active to 1 > > Context T2: > __device_attach_async_helper() >     |- driver_probe_device() >         |- sd_probe() > In between [1] and [2] say, driver_probe_device() -> sd_probe() is invoked in a separate context from __device_attach_async_helper(). > The driver_probe_device() -> pm_runtime_get_suppliers() but [2] would reduce link->rpm_active to 1. > Then sd_probe() would invoke rpm_resume() and proceed as is. > When sd_probe() invokes scsi_autopm_put_device() it'd start a timer, dev->power.timer_autosuspends = 1. > > Now then, pm_runtime_put_suppliers() is invoked from driver_probe_device() and that makes the link->rpm_active = 1. > But by now, the corresponding 'sd dev' (consumer) usage_count = 0, state = RPM_ACTIVE and link->rpm_active = 1. > At this point of time, all other 'sd dev' (consumers) _may_ be suspended or active but would have the link->rpm_active = 1. Is this with DL_FLAG_RPM_ACTIVE? In that case, wouldn't active consumers have link->rpm_active = 2 and also have incremented the supplier's usage_count? Another outstanding issue that comes to mind, is to ensure hba->sdev_ufs_device does not runtime suspend before it is probed. I suggest changing ufshcd_slave_configure() so it does not set sdev->rpm_autosuspend for hba->sdev_ufs_device, and instead do pm_runtime_allow / pm_runtime_forbid() in ufshcd_wl_probe() / ufshcd_wl_remove() respectively. However we still want to stop hba->sdev_ufs_device runtime suspending while consumers are being added. With that in mind, I would expect pm_runtime_get_noresume(&hba->sdev_ufs_device->sdev_gendev) in ufshcd_scsi_add_wlus() to come *before* ufshcd_blk_pm_runtime_init(hba->sdev_ufs_device). In fact, it would be more logical to make it, pm_runtime_get_sync() since we require hba->sdev_ufs_device to be active at that point. > > Since the supplier has 0 auto-suspend delay, it now suspends! > > > Context [T1] > Call trace: > dump_backtrace+0x0/0x1d4 > show_stack+0x18/0x24 > dump_stack+0xc4/0x144 > __pm_runtime_idle+0xb4/0x184 > scsi_autopm_put_device+0x18/0x24 > scsi_sysfs_add_sdev+0x26c/0x278 > scsi_probe_and_add_lun+0xbac/0xd48 > __scsi_scan_target+0x38c/0x510 > scsi_scan_host_selected+0x14c/0x1e4 > scsi_scan_host+0x1e0/0x228 > ufshcd_async_scan+0x39c/0x408 > async_run_entry_fn+0x48/0x128 > process_one_work+0x1f0/0x470 > worker_thread+0x26c/0x4c8 > kthread+0x13c/0x320 > ret_from_fork+0x10/0x18 > > > Context [T2] > Call trace: > dump_backtrace+0x0/0x1d4 > show_stack+0x18/0x24 > dump_stack+0xc4/0x144 > rpm_get_suppliers+0x48/0x1ac > __rpm_callback+0x58/0x12c > rpm_resume+0x3a4/0x618 > __pm_runtime_resume+0x50/0x80 > scsi_autopm_get_device+0x20/0x54 > sd_probe+0x40/0x3d0 > really_probe+0x1bc/0x4a0 > driver_probe_device+0x84/0xf0 > __device_attach_driver+0x114/0x138 > bus_for_each_drv+0x84/0xd0 > __device_attach_async_helper+0x7c/0xf0 > async_run_entry_fn+0x48/0x128 > process_one_work+0x1f0/0x470 > worker_thread+0x26c/0x4c8 > kthread+0x13c/0x320 > ret_from_fork+0x10/0x18 > > Below prints show how link->rpm_active becomes 1 for sd 0:0:0:4 > [    7.574654][  T212] Call trace: > [    7.574657][  T212]  dump_backtrace+0x0/0x1d4 > [    7.574661][  T212]  show_stack+0x18/0x24 > [    7.574665][  T212]  dump_stack+0xc4/0x144 > [    7.574668][  T212]  __pm_runtime_idle+0xb4/0x184 > [    7.574671][  T212]  scsi_autopm_put_device+0x18/0x24 > [    7.574675][  T212]  sd_probe+0x314/0x3d0 > [    7.574677][  T212]  really_probe+0x1bc/0x4a0 > [    7.574680][  T212]  driver_probe_device+0x84/0xf0 > [    7.574683][  T212]  __device_attach_driver+0x114/0x138 > [    7.574686][  T212]  bus_for_each_drv+0x84/0xd0 > [    7.574689][  T212]  __device_attach_async_helper+0x7c/0xf0 > [    7.574692][  T212]  async_run_entry_fn+0x48/0x128 > [    7.574695][  T212]  process_one_work+0x1f0/0x470 > [    7.574698][  T212]  worker_thread+0x26c/0x4c8 > [    7.574700][  T212]  kthread+0x13c/0x320 > [    7.574703][  T212]  ret_from_fork+0x10/0x18 > [    7.574706][  T212] sd 0:0:0:4: scsi_runtime_idle > [    7.574712][  T212] sd 0:0:0:4: __pm_runtime_idle: aft: [UFSDBG]: pwr.timer_autosuspends: 1 pwr.request_pending: 0 retval: -16 pwr.request: 0 usage_count: 0 rpm_status: 0 link-rpm_active:2 > [    7.574715][  T212] sd 0:0:0:4: sd_probe: [UFSDBG]: Exit > [    7.574738][  T212] sd 0:0:0:4: __pm_runtime_idle: b4: [UFSDBG]: pwr.request: 0 usage_count: 0 rpm_status: 0 link-rpm_active:2 > > [    7.574752][  T212] Workqueue: events_unbound async_run_entry_fn > [    7.574754][  T212] Call trace: > [    7.574758][  T212]  dump_backtrace+0x0/0x1d4 > [    7.574761][  T212]  show_stack+0x18/0x24 > [    7.574765][  T212]  dump_stack+0xc4/0x144 > [    7.574767][  T212]  __pm_runtime_idle+0xb4/0x184 > [    7.574770][  T212]  driver_probe_device+0x94/0xf0 > [    7.574773][  T212]  __device_attach_driver+0x114/0x138 > [    7.574775][  T212]  bus_for_each_drv+0x84/0xd0 > [    7.574778][  T212]  __device_attach_async_helper+0x7c/0xf0 > [    7.574781][  T212]  async_run_entry_fn+0x48/0x128 > [    7.574783][  T212]  process_one_work+0x1f0/0x470 > [    7.574786][  T212]  worker_thread+0x26c/0x4c8 > [    7.574788][  T212]  kthread+0x13c/0x320 > [    7.574791][  T212]  ret_from_fork+0x10/0x18 > [    7.574848][   T80] sd 0:0:0:4: scsi_runtime_idle > [    7.574858][  T212] sd 0:0:0:4: __pm_runtime_idle: aft: [UFSDBG]: pwr.timer_autosuspends: 1 pwr.request_pending: 0 retval: 0 pwr.request: 0 usage_count: 0 rpm_status: 0 link-rpm_active:2 > [    7.574863][  T212] sd 0:0:0:4: pm_runtime_put_suppliers: [UFSDBG]: rpm_status: 0 link-rpm_active:1 > [    7.574866][  T212] sd 0:0:0:4: async probe completed > [    7.574870][  T212] sd 0:0:0:4: __pm_runtime_idle: b4: [UFSDBG]: pwr.request: 0 usage_count: 0 rpm_status: 0 link-rpm_active:1 > > > So, from the above it looks like when async probe is enabled this is a possibility. > > I don't see a way around this. Please let me know if you (@Alan/@Bart/@Adrian) have any thoughts on this. > > Thanks, > -asd > 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=-5.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 3CD21C433E0 for ; Sun, 14 Mar 2021 09:11:30 +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 B49AC64EB6 for ; Sun, 14 Mar 2021 09:11:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B49AC64EB6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=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-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version: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=D41xunQeBz/pIw2ofECQBxQop7ZpMjg2JhtMnGB21OQ=; b=dbyCoq+WQM9zlsywtIBG+TSCY kPErUs6YkT97hDojoJGX01DVPuawIbHv5276DHbRNmTrv7ILfWmkqU5GigL+ljLUVMCDhNMvPtuLP quodbZiSFsIuaTeLXniY2T8b0QmZGb/N1UISG7sfcitwidp+Ry9ARNS+PuKMkWgQZgwYRVqY6o0nC 9Ba2L7PrhZozSATSSNYmGOQ3Yfcir1pCCawpLNe6yfHTZqtBwUCZCYJ8jXqJnet6Ypondd2kIazHU sVvd0iNvhHtDaLzdhS6MAUkIqnuaXBFCgbfdTVQXvJkDhI58DEnbC60VwozppHErdIk4TfgY3Kf7b or1QSPIyA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLMmM-00E3X5-9P; Sun, 14 Mar 2021 09:11:18 +0000 Received: from mga04.intel.com ([192.55.52.120]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLMmG-00E3VH-A4; Sun, 14 Mar 2021 09:11:15 +0000 IronPort-SDR: /PwmNH5qhcEwzWh3O31My7pD3QT3+jYuzIix+LQ83gQQVaK+ewDypwd82JXsfmMxppZXu8RzyU 3VqWPA3CLKnw== X-IronPort-AV: E=McAfee;i="6000,8403,9922"; a="186602038" X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="186602038" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2021 01:11:05 -0800 IronPort-SDR: W4Pgrv411RMHKDlBXBestqy3b70NnWFlbNwtzC3925eFFTt0bxoJmYWcacH/mhfTD4wzGRqT0e BhyvAbVIkt5Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="590015788" Received: from ahunter-desktop.fi.intel.com (HELO [10.237.72.76]) ([10.237.72.76]) by orsmga005.jf.intel.com with ESMTP; 14 Mar 2021 01:10:56 -0800 Subject: Re: [PATCH v10 1/2] scsi: ufs: Enable power management for wlun To: "Asutosh Das (asd)" , Alan Stern , Bart Van Assche Cc: "Rafael J. Wysocki" , cang@codeaurora.org, "Martin K. Petersen" , "open list:TARGET SUBSYSTEM" , linux-arm-msm , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , Krzysztof Kozlowski , Stanley Chu , Andy Gross , Bjorn Andersson , Steven Rostedt , Ingo Molnar , Matthias Brugger , Kiwoong Kim , Bean Huo , Lee Jones , Wei Yongjun , Dinghao Liu , "Gustavo A. R. Silva" , Tomas Winkler , Jaegeuk Kim , Satya Tangirala , open list , "moderated list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "open list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "moderated list:UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER..." , Linux-PM mailing list References: <0576d6eae15486740c25767e2d8805f7e94eb79d.1614725302.git.asutoshd@codeaurora.org> <85086647-7292-b0a2-d842-290818bd2858@intel.com> <6e98724d-2e75-d1fe-188f-a7010f86c509@codeaurora.org> <20210306161616.GC74411@rowland.harvard.edu> <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: Date: Sun, 14 Mar 2021 11:11:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210314_091112_943286_C30A0D85 X-CRM114-Status: GOOD ( 31.39 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org T24gMTAvMDMvMjEgNTowNCBhbSwgQXN1dG9zaCBEYXMgKGFzZCkgd3JvdGU6Cj4gT24gMy85LzIw MjEgNzo1NiBBTSwgQXN1dG9zaCBEYXMgKGFzZCkgd3JvdGU6Cj4+IE9uIDMvOC8yMDIxIDk6MTcg QU0sIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+Pj4gT24gTW9uLCBNYXIgOCwgMjAyMSBhdCA1 OjIxIFBNIFJhZmFlbCBKLiBXeXNvY2tpIDxyYWZhZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4+Pj4K Pj4+PiBPbiBTYXQsIE1hciA2LCAyMDIxIGF0IDU6MTcgUE0gQWxhbiBTdGVybiA8c3Rlcm5Acm93 bGFuZC5oYXJ2YXJkLmVkdT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+IE9uIEZyaSwgTWFyIDA1LCAyMDIx IGF0IDA2OjU0OjI0UE0gLTA4MDAsIEFzdXRvc2ggRGFzIChhc2QpIHdyb3RlOgo+Pj4+Pgo+Pj4+ Pj4gTm93IGR1cmluZyBteSB0ZXN0aW5nIEkgc2VlIGEgd2VpcmQgaXNzdWUgc29tZXRpbWVzICgx IGluIDcpLgo+Pj4+Pj4gU2NlbmFyaW8gLSBib290dXBzCj4+Pj4+Pgo+Pj4+Pj4gSXNzdWU6Cj4+ Pj4+PiBUaGUgc3VwcGxpZXIgJ3Vmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4OCcgZ29lcyBpbnRv IHJ1bnRpbWUgc3VzcGVuZCBldmVuCj4+Pj4+PiB3aGVuIG9uZS9tb3JlIG9mIGl0cyBjb25zdW1l cnMgYXJlIGluIFJQTV9BQ1RJVkUgc3RhdGUuCj4+Pj4+Pgo+Pj4+Pj4gKkxvZzoKPj4+Pj4+IFvC oMKgIDEwLjA1NjM3OV1bwqAgVDIwNl0gc2QgMDowOjA6MTogW3NkYl0gU3luY2hyb25pemluZyBT Q1NJIGNhY2hlCj4+Pj4+PiBbwqDCoCAxMC4wNjI0OTddW8KgIFQxMTNdIHNkIDA6MDowOjU6IFtz ZGZdIFN5bmNocm9uaXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4gW8KgwqAgMTAuMzU2NjAwXVvCoMKg IFQzMl0gc2QgMDowOjA6NzogW3NkaF0gU3luY2hyb25pemluZyBTQ1NJIGNhY2hlCj4+Pj4+PiBb wqDCoCAxMC4zNjI5NDRdW8KgIFQxNzRdIHNkIDA6MDowOjM6IFtzZGRdIFN5bmNocm9uaXppbmcg U0NTSSBjYWNoZQo+Pj4+Pj4gW8KgwqAgMTAuNjk2NjI3XVvCoMKgIFQ4M10gc2QgMDowOjA6Mjog W3NkY10gU3luY2hyb25pemluZyBTQ1NJIGNhY2hlCj4+Pj4+PiBbwqDCoCAxMC43MDQ1NjJdW8Kg IFQxNzBdIHNkIDA6MDowOjY6IFtzZGddIFN5bmNocm9uaXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4g W8KgwqAgMTAuOTgwNjAyXVvCoMKgwqAgVDVdIHNkIDA6MDowOjA6IFtzZGFdIFN5bmNocm9uaXpp bmcgU0NTSSBjYWNoZQo+Pj4+Pj4KPj4+Pj4+IC8qKiBQcmludGluZyBhbGwgdGhlIGNvbnN1bWVy IG5vZGVzIG9mIHN1cHBsaWVyICoqLwo+Pj4+Pj4gW8KgwqAgMTAuOTg3MzI3XVvCoMKgwqAgVDVd IHVmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4ODogdXNhZ2UtY291bnQgQCBzdXNwZW5kOiAwCj4+ Pj4+PiA8LS0gdGhpcyBpcyB0aGUgdXNhZ2VfY291bnQKPj4+Pj4+IFvCoMKgIDEwLjk5NDQ0MF1b wqDCoMKgIFQ1XSB1ZnNfcnBtYl93bHVuIDA6MDowOjQ5NDc2OiBQTSBzdGF0ZSAtIDIKPj4+Pj4+ IFvCoMKgIDExLjAwMDQwMl1bwqDCoMKgIFQ1XSBzY3NpIDA6MDowOjQ5NDU2OiBQTSBzdGF0ZSAt IDIKPj4+Pj4+IFvCoMKgIDExLjAwNTQ1M11bwqDCoMKgIFQ1XSBzZCAwOjA6MDowOiBQTSBzdGF0 ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAwOTk1OF1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoxOiBQTSBz dGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAxNDQ2OV1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoyOiBQ TSBzdGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAxOTA3Ml1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoz OiBQTSBzdGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAyMzU5NV1bwqDCoMKgIFQ1XSBzZCAwOjA6 MDo0OiBQTSBzdGF0ZSAtIDAgPDwgUlBNX0FDVElWRQo+Pj4+Pj4gW8KgwqAgMTEuMzUzMjk4XVvC oMKgwqAgVDVdIHNkIDA6MDowOjU6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEuMzU3NzI2 XVvCoMKgwqAgVDVdIHNkIDA6MDowOjY6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEuMzYy MTU1XVvCoMKgwqAgVDVdIHNkIDA6MDowOjc6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEu MzY2NTg0XVvCoMKgwqAgVDVdIHVmc2hjZC1xY29tIDFkODQwMDAudWZzaGM6IF9fdWZzaGNkX3ds X3N1c3BlbmQgLSA4NzA5Cj4+Pj4+PiBbwqDCoCAxMS4zNzQzNjZdW8KgwqDCoCBUNV0gdWZzX2Rl dmljZV93bHVuIDA6MDowOjQ5NDg4OiBfX3Vmc2hjZF93bF9zdXNwZW5kIC0KPj4+Pj4+ICgwKSBo YXMgcnBtX2FjdGl2ZSBmbGFncwo+Pj4+Cj4+Pj4gRG8geW91IG1lYW4gdGhhdCBycG1fYWN0aXZl IG9mIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNvbnN1bWVyIGFuZCB0aGUKPj4+PiBzdXBwbGllciBp cyBncmVhdGVyIHRoYW4gMCBhdCB0aGlzIHBvaW50IGFuZCB0aGUgY29uc3VtZXIgaXMKPj4+Cj4+ PiBJIG1lYW4gaXMgcnBtX2FjdGl2ZSBvZiB0aGUgbGluayBncmVhdGVyIHRoYW4gMSAoYmVjYXVz ZSAxIG1lYW5zICJubwo+Pj4gYWN0aXZlIHJlZmVyZW5jZXMgdG8gdGhlIHN1cHBsaWVyIik/Cj4+ IEhpIFJhZmFlbDoKPj4gTm8gLSBpdCBpcyBub3QgZ3JlYXRlciB0aGFuIDEuCj4+Cj4+IEknbSB0 cnlpbmcgdG8gdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24gaW4gaXQ7IHdpbGwgdXBkYXRlIHdo ZW4gSSd2ZSBzb21ldGhpbmcuCj4+Cj4+Pgo+Pj4+IFJQTV9BQ1RJVkUsIGJ1dCB0aGUgc3VwcGxp ZXIgc3VzcGVuZHMgc3VjY2Vzc2Z1bGx5IG5ldmVydGhlbGVzcz8KPj4+Pgo+Pj4+Pj4gW8KgwqAg MTEuMzgzMzc2XVvCoMKgwqAgVDVdIHVmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4ODoKPj4+Pj4+ IHVmc2hjZF93bF9ydW50aW1lX3N1c3BlbmQgPC0tIFN1cHBsaWVyIHN1c3BlbmRzIGZpbmUuCj4+ Pj4+PiBbwqDCoCAxMi45NzczMThdW8KgIFQxNzRdIHNkIDA6MDowOjQ6IFtzZGVdIFN5bmNocm9u aXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4KPj4+Pj4+IEFuZCB0aGUgdGhlIHN1c3BlbmQgb2Ygc2Rl IGlzIHN0dWNrIG5vdzoKPj4+Pj4+IHNjaGVkdWxlKzB4OWMvMHhlMAo+Pj4+Pj4gc2NoZWR1bGVf dGltZW91dCsweDQwLzB4MTI4Cj4+Pj4+PiBpb19zY2hlZHVsZV90aW1lb3V0KzB4NDQvMHg2OAo+ Pj4+Pj4gd2FpdF9mb3JfY29tbW9uX2lvKzB4N2MvMHgxMDAKPj4+Pj4+IHdhaXRfZm9yX2NvbXBs ZXRpb25faW8rMHgxNC8weDIwCj4+Pj4+PiBibGtfZXhlY3V0ZV9ycSsweDkwLzB4Y2MKPj4+Pj4+ IF9fc2NzaV9leGVjdXRlKzB4MTA0LzB4MWM0Cj4+Pj4+PiBzZF9zeW5jX2NhY2hlKzB4ZjgvMHgy YTAKPj4+Pj4+IHNkX3N1c3BlbmRfY29tbW9uKzB4NzQvMHgxMWMKPj4+Pj4+IHNkX3N1c3BlbmRf cnVudGltZSsweDE0LzB4MjAKPj4+Pj4+IHNjc2lfcnVudGltZV9zdXNwZW5kKzB4NjQvMHg5NAo+ Pj4+Pj4gX19ycG1fY2FsbGJhY2srMHg4MC8weDJhNAo+Pj4+Pj4gcnBtX3N1c3BlbmQrMHgzMDgv MHg2MTQKPj4+Pj4+IHBtX3J1bnRpbWVfd29yaysweDk4LzB4YTgKPj4+Pj4+Cj4+Pj4+PiBJIGFk ZGVkICdETF9GTEFHX1JQTV9BQ1RJVkUnIHdoaWxlIGNyZWF0aW5nIGxpbmtzLgo+Pj4+Pj4gwqDC oMKgwqDCoMKgIGlmIChoYmEtPnNkZXZfdWZzX2RldmljZSkgewo+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBsaW5rID0gZGV2aWNlX2xpbmtfYWRkKCZzZGV2LT5zZGV2X2dlbmRl diwKPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICZoYmEtPnNkZXZfdWZzX2RldmljZS0+c2Rldl9nZW5kZXYs Cj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgRExfRkxBR19QTV9SVU5USU1FfERMX0ZMQUdfUlBNX0FDVElWRSk7 Cj4+Pj4+PiBJIGRpZG4ndCBleHBlY3QgdGhpcyB0byByZXNvbHZlIHRoZSBpc3N1ZSBhbnl3YXkg YW5kIGl0IGRpZG4ndC4KPj4+Pj4+Cj4+Pj4+PiBBbm90aGVyIGludGVyZXN0aW5nIHBvaW50IGhl cmUgaXMgd2hlbiBJIHJlc3VtZSBhbnkgb2YgdGhlIGFib3ZlIHN1c3BlbmRlZAo+Pj4+Pj4gY29u c3VtZXJzLCBpdCBhbGwgZ29lcyBiYWNrIHRvIG5vcm1hbCwgd2hpY2ggaXMga2luZCBvZiBleHBl Y3RlZC4gSSB0cmllZAo+Pj4+Pj4gcmVzdW1pbmcgdGhlIGNvbnN1bWVyIGFuZCB0aGUgc3VwcGxp ZXIgaXMgcmVzdW1lZCBhbmQgdGhlIHN1cHBsaWVyIGlzCj4+Pj4+PiBzdXNwZW5kZWQgd2hlbiBh bGwgdGhlIGNvbnN1bWVycyBhcmUgc3VzcGVuZGVkLgo+Pj4+Pj4KPj4+Pj4+IEFueSBwb2ludGVy cyBvbiB0aGlzIGlzc3VlIHBsZWFzZT8KPj4+Pj4+Cj4+Pj4+PiBAQmFydC9AQWxhbiAtIERvIHlv dSd2ZSBhbnkgcG9pbnRlcnMgcGxlYXNlPwo+Pj4+Pgo+Pj4+PiBJdCdzIHZlcnkgbm90aWNlYWJs ZSB0aGF0IGFsdGhvdWdoIHlvdSBzZWVtIHRvIGhhdmUgaXNvbGF0ZWQgYSBidWcgaW4KPj4+Pj4g dGhlIHBvd2VyIG1hbmFnZW1lbnQgc3Vic3lzdGVtIChzdXBwbGllciBnb2VzIGludG8gcnVudGlt ZSBzdXNwZW5kCj4+Pj4+IGV2ZW4gd2hlbiBvbmUgb2YgaXRzIGNvbnN1bWVycyBpcyBzdGlsbCBh Y3RpdmUpLCB5b3UgZGlkIG5vdCBDQyB0aGUKPj4+Pj4gcG93ZXIgbWFuYWdlbWVudCBtYWludGFp bmVyIG9yIG1haWxpbmcgbGlzdC4KPj4+Pj4KPj4+Pj4gSSBoYXZlIGFkZGVkIHRoZSBhcHByb3By aWF0ZSBDQydzLgo+Pj4+Cj4+Pj4gVGhhbmtzIEFsYW4hCj4+Cj4+Cj4gCj4gSGVsbG8KPiBJICYg Q2FuICh0aGFua3MgQ2FuRykgZGVidWdnZWQgdGhpcyBmdXJ0aGVyOgo+IAo+IExvb2tzIGxpa2Ug dGhpcyBpc3N1ZSBjYW4gb2NjdXIgaWYgdGhlIHNkIHByb2JlIGlzIGFzeW5jaHJvbm91cy4KPiAK PiBFc3NlbnRpYWxseSwgdGhlIHNkX3Byb2JlKCkgaXMgZG9uZSBhc3luY2hyb25vdXNseSBhbmQg ZHJpdmVyX3Byb2JlX2RldmljZSgpIGludm9rZXMgcG1fcnVudGltZV9nZXRfc3VwcGxpZXJzKCkg YmVmb3JlIGludm9raW5nIHNkX3Byb2JlKCkuCj4gCj4gQnV0IHNjc2lfcHJvYmVfYW5kX2FkZF9s dW4oKSBydW5zIGluIGEgc2VwYXJhdGUgY29udGV4dC4KPiBTbyB0aGUgc2NzaV9hdXRvcG1fcHV0 X2RldmljZSgpIGludm9rZWQgZnJvbSBzY3NpX3NjYW5faG9zdCgpIGNvbnRleHQgcmVkdWNlcyB0 aGUgbGluay0+cnBtX2FjdGl2ZSB0byAxLiBBbmQgc2RfcHJvYmUoKSBpbnZva2VzIHNjc2lfYXV0 b3BtX3B1dF9kZXZpY2UoKSBhbmQgc3RhcnRzIGEgdGltZXIuIEFuZCB0aGVuIGRyaXZlcl9wcm9i ZV9kZXZpY2UoKSBpbnZva2VkIGZyb20gX19kZXZpY2VfYXR0YWNoX2FzeW5jX2hlbHBlciBjb250 ZXh0IHJlZHVjZXMgdGhlIGxpbmstPnJwbV9hY3RpdmUgdG8gMSB0aHVzIGVuYWJsaW5nIHRoZSBz dXBwbGllciB0byBzdXNwZW5kIGJlZm9yZSB0aGUgY29uc3VtZXIgc3VzcGVuZHMuCj4gCj4gU28g aWY6Cj4gQ29udGV4dCBUMToKPiBbMV0gc2NzaV9wcm9iZV9hbmRfYWRkX2x1bigpCj4gWzJdwqDC oMKgIHwtIHNjc2lfYXV0b3BtX3B1dF9kZXZpY2UoKSAtIHJlZHVjZSB0aGUgbGluay0+cnBtX2Fj dGl2ZSB0byAxCj4gCj4gQ29udGV4dCBUMjoKPiBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVy KCkKPiDCoMKgwqDCoHwtIGRyaXZlcl9wcm9iZV9kZXZpY2UoKQo+IMKgwqDCoMKgwqDCoMKgIHwt IHNkX3Byb2JlKCkKPiBJbiBiZXR3ZWVuIFsxXSBhbmQgWzJdIHNheSwgZHJpdmVyX3Byb2JlX2Rl dmljZSgpIC0+IHNkX3Byb2JlKCkgaXMgaW52b2tlZCBpbiBhIHNlcGFyYXRlIGNvbnRleHQgZnJv bSBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKCkuCj4gVGhlIGRyaXZlcl9wcm9iZV9kZXZp Y2UoKSAtPiBwbV9ydW50aW1lX2dldF9zdXBwbGllcnMoKSBidXQgWzJdIHdvdWxkIHJlZHVjZSBs aW5rLT5ycG1fYWN0aXZlIHRvIDEuCj4gVGhlbiBzZF9wcm9iZSgpIHdvdWxkIGludm9rZSBycG1f cmVzdW1lKCkgYW5kIHByb2NlZWQgYXMgaXMuCj4gV2hlbiBzZF9wcm9iZSgpIGludm9rZXMgc2Nz aV9hdXRvcG1fcHV0X2RldmljZSgpIGl0J2Qgc3RhcnQgYSB0aW1lciwgZGV2LT5wb3dlci50aW1l cl9hdXRvc3VzcGVuZHMgPSAxLgo+IAo+IE5vdyB0aGVuLCBwbV9ydW50aW1lX3B1dF9zdXBwbGll cnMoKSBpcyBpbnZva2VkIGZyb20gZHJpdmVyX3Byb2JlX2RldmljZSgpIGFuZCB0aGF0IG1ha2Vz IHRoZSBsaW5rLT5ycG1fYWN0aXZlID0gMS4KPiBCdXQgYnkgbm93LCB0aGUgY29ycmVzcG9uZGlu ZyAnc2QgZGV2JyAoY29uc3VtZXIpIHVzYWdlX2NvdW50ID0gMCwgc3RhdGUgPSBSUE1fQUNUSVZF IGFuZCBsaW5rLT5ycG1fYWN0aXZlID0gMS4KPiBBdCB0aGlzIHBvaW50IG9mIHRpbWUsIGFsbCBv dGhlciAnc2QgZGV2JyAoY29uc3VtZXJzKSBfbWF5XyBiZSBzdXNwZW5kZWQgb3IgYWN0aXZlIGJ1 dCB3b3VsZCBoYXZlIHRoZSBsaW5rLT5ycG1fYWN0aXZlID0gMS4KCklzIHRoaXMgd2l0aCBETF9G TEFHX1JQTV9BQ1RJVkU/ICBJbiB0aGF0IGNhc2UsIHdvdWxkbid0IGFjdGl2ZQpjb25zdW1lcnMg aGF2ZSBsaW5rLT5ycG1fYWN0aXZlID0gMiBhbmQgYWxzbyBoYXZlIGluY3JlbWVudGVkCnRoZSBz dXBwbGllcidzIHVzYWdlX2NvdW50PwoKQW5vdGhlciBvdXRzdGFuZGluZyBpc3N1ZSB0aGF0IGNv bWVzIHRvIG1pbmQsIGlzIHRvIGVuc3VyZQpoYmEtPnNkZXZfdWZzX2RldmljZSBkb2VzIG5vdCBy dW50aW1lIHN1c3BlbmQgYmVmb3JlIGl0IGlzIHByb2JlZC4KSSBzdWdnZXN0IGNoYW5naW5nIHVm c2hjZF9zbGF2ZV9jb25maWd1cmUoKSBzbyBpdCBkb2VzIG5vdCBzZXQKc2Rldi0+cnBtX2F1dG9z dXNwZW5kIGZvciBoYmEtPnNkZXZfdWZzX2RldmljZSwgYW5kIGluc3RlYWQgZG8KcG1fcnVudGlt ZV9hbGxvdyAvIHBtX3J1bnRpbWVfZm9yYmlkKCkgaW4gdWZzaGNkX3dsX3Byb2JlKCkgLwp1ZnNo Y2Rfd2xfcmVtb3ZlKCkgcmVzcGVjdGl2ZWx5LgoKSG93ZXZlciB3ZSBzdGlsbCB3YW50IHRvIHN0 b3AgaGJhLT5zZGV2X3Vmc19kZXZpY2UgcnVudGltZQpzdXNwZW5kaW5nIHdoaWxlIGNvbnN1bWVy cyBhcmUgYmVpbmcgYWRkZWQuICBXaXRoIHRoYXQgaW4gbWluZCwKSSB3b3VsZCBleHBlY3QgcG1f cnVudGltZV9nZXRfbm9yZXN1bWUoJmhiYS0+c2Rldl91ZnNfZGV2aWNlLT5zZGV2X2dlbmRldikK aW4gdWZzaGNkX3Njc2lfYWRkX3dsdXMoKSB0byBjb21lICpiZWZvcmUqCnVmc2hjZF9ibGtfcG1f cnVudGltZV9pbml0KGhiYS0+c2Rldl91ZnNfZGV2aWNlKS4gIEluIGZhY3QsIGl0IHdvdWxkCmJl IG1vcmUgbG9naWNhbCB0byBtYWtlIGl0LCBwbV9ydW50aW1lX2dldF9zeW5jKCkgc2luY2Ugd2Ug cmVxdWlyZQpoYmEtPnNkZXZfdWZzX2RldmljZSB0byBiZSBhY3RpdmUgYXQgdGhhdCBwb2ludC4K Cgo+IAo+IFNpbmNlIHRoZSBzdXBwbGllciBoYXMgMCBhdXRvLXN1c3BlbmQgZGVsYXksIGl0IG5v dyBzdXNwZW5kcyEKPiAKPiAKPiBDb250ZXh0IFtUMV0KPiBDYWxsIHRyYWNlOgo+IGR1bXBfYmFj a3RyYWNlKzB4MC8weDFkNAo+IHNob3dfc3RhY2srMHgxOC8weDI0Cj4gZHVtcF9zdGFjaysweGM0 LzB4MTQ0Cj4gX19wbV9ydW50aW1lX2lkbGUrMHhiNC8weDE4NAo+IHNjc2lfYXV0b3BtX3B1dF9k ZXZpY2UrMHgxOC8weDI0Cj4gc2NzaV9zeXNmc19hZGRfc2RldisweDI2Yy8weDI3OAo+IHNjc2lf cHJvYmVfYW5kX2FkZF9sdW4rMHhiYWMvMHhkNDgKPiBfX3Njc2lfc2Nhbl90YXJnZXQrMHgzOGMv MHg1MTAKPiBzY3NpX3NjYW5faG9zdF9zZWxlY3RlZCsweDE0Yy8weDFlNAo+IHNjc2lfc2Nhbl9o b3N0KzB4MWUwLzB4MjI4Cj4gdWZzaGNkX2FzeW5jX3NjYW4rMHgzOWMvMHg0MDgKPiBhc3luY19y dW5fZW50cnlfZm4rMHg0OC8weDEyOAo+IHByb2Nlc3Nfb25lX3dvcmsrMHgxZjAvMHg0NzAKPiB3 b3JrZXJfdGhyZWFkKzB4MjZjLzB4NGM4Cj4ga3RocmVhZCsweDEzYy8weDMyMAo+IHJldF9mcm9t X2ZvcmsrMHgxMC8weDE4Cj4gCj4gCj4gQ29udGV4dCBbVDJdCj4gQ2FsbCB0cmFjZToKPiBkdW1w X2JhY2t0cmFjZSsweDAvMHgxZDQKPiBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IGR1bXBfc3RhY2sr MHhjNC8weDE0NAo+IHJwbV9nZXRfc3VwcGxpZXJzKzB4NDgvMHgxYWMKPiBfX3JwbV9jYWxsYmFj aysweDU4LzB4MTJjCj4gcnBtX3Jlc3VtZSsweDNhNC8weDYxOAo+IF9fcG1fcnVudGltZV9yZXN1 bWUrMHg1MC8weDgwCj4gc2NzaV9hdXRvcG1fZ2V0X2RldmljZSsweDIwLzB4NTQKPiBzZF9wcm9i ZSsweDQwLzB4M2QwCj4gcmVhbGx5X3Byb2JlKzB4MWJjLzB4NGEwCj4gZHJpdmVyX3Byb2JlX2Rl dmljZSsweDg0LzB4ZjAKPiBfX2RldmljZV9hdHRhY2hfZHJpdmVyKzB4MTE0LzB4MTM4Cj4gYnVz X2Zvcl9lYWNoX2RydisweDg0LzB4ZDAKPiBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKzB4 N2MvMHhmMAo+IGFzeW5jX3J1bl9lbnRyeV9mbisweDQ4LzB4MTI4Cj4gcHJvY2Vzc19vbmVfd29y aysweDFmMC8weDQ3MAo+IHdvcmtlcl90aHJlYWQrMHgyNmMvMHg0YzgKPiBrdGhyZWFkKzB4MTNj LzB4MzIwCj4gcmV0X2Zyb21fZm9yaysweDEwLzB4MTgKPiAKPiBCZWxvdyBwcmludHMgc2hvdyBo b3cgbGluay0+cnBtX2FjdGl2ZSBiZWNvbWVzIDEgZm9yIHNkIDA6MDowOjQKPiBbwqDCoMKgIDcu NTc0NjU0XVvCoCBUMjEyXSBDYWxsIHRyYWNlOgo+IFvCoMKgwqAgNy41NzQ2NTddW8KgIFQyMTJd wqAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWQ0Cj4gW8KgwqDCoCA3LjU3NDY2MV1bwqAgVDIxMl3C oCBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IFvCoMKgwqAgNy41NzQ2NjVdW8KgIFQyMTJdwqAgZHVt cF9zdGFjaysweGM0LzB4MTQ0Cj4gW8KgwqDCoCA3LjU3NDY2OF1bwqAgVDIxMl3CoCBfX3BtX3J1 bnRpbWVfaWRsZSsweGI0LzB4MTg0Cj4gW8KgwqDCoCA3LjU3NDY3MV1bwqAgVDIxMl3CoCBzY3Np X2F1dG9wbV9wdXRfZGV2aWNlKzB4MTgvMHgyNAo+IFvCoMKgwqAgNy41NzQ2NzVdW8KgIFQyMTJd wqAgc2RfcHJvYmUrMHgzMTQvMHgzZDAKPiBbwqDCoMKgIDcuNTc0Njc3XVvCoCBUMjEyXcKgIHJl YWxseV9wcm9iZSsweDFiYy8weDRhMAo+IFvCoMKgwqAgNy41NzQ2ODBdW8KgIFQyMTJdwqAgZHJp dmVyX3Byb2JlX2RldmljZSsweDg0LzB4ZjAKPiBbwqDCoMKgIDcuNTc0NjgzXVvCoCBUMjEyXcKg IF9fZGV2aWNlX2F0dGFjaF9kcml2ZXIrMHgxMTQvMHgxMzgKPiBbwqDCoMKgIDcuNTc0Njg2XVvC oCBUMjEyXcKgIGJ1c19mb3JfZWFjaF9kcnYrMHg4NC8weGQwCj4gW8KgwqDCoCA3LjU3NDY4OV1b wqAgVDIxMl3CoCBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKzB4N2MvMHhmMAo+IFvCoMKg wqAgNy41NzQ2OTJdW8KgIFQyMTJdwqAgYXN5bmNfcnVuX2VudHJ5X2ZuKzB4NDgvMHgxMjgKPiBb wqDCoMKgIDcuNTc0Njk1XVvCoCBUMjEyXcKgIHByb2Nlc3Nfb25lX3dvcmsrMHgxZjAvMHg0NzAK PiBbwqDCoMKgIDcuNTc0Njk4XVvCoCBUMjEyXcKgIHdvcmtlcl90aHJlYWQrMHgyNmMvMHg0YzgK PiBbwqDCoMKgIDcuNTc0NzAwXVvCoCBUMjEyXcKgIGt0aHJlYWQrMHgxM2MvMHgzMjAKPiBbwqDC oMKgIDcuNTc0NzAzXVvCoCBUMjEyXcKgIHJldF9mcm9tX2ZvcmsrMHgxMC8weDE4Cj4gW8KgwqDC oCA3LjU3NDcwNl1bwqAgVDIxMl0gc2QgMDowOjA6NDogc2NzaV9ydW50aW1lX2lkbGUKPiBbwqDC oMKgIDcuNTc0NzEyXVvCoCBUMjEyXSBzZCAwOjA6MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYWZ0 OiBbVUZTREJHXTogcHdyLnRpbWVyX2F1dG9zdXNwZW5kczogMSBwd3IucmVxdWVzdF9wZW5kaW5n OiAwIHJldHZhbDogLTE2IHB3ci5yZXF1ZXN0OiAwIHVzYWdlX2NvdW50OiAwIHJwbV9zdGF0dXM6 IDAgbGluay1ycG1fYWN0aXZlOjIKPiBbwqDCoMKgIDcuNTc0NzE1XVvCoCBUMjEyXSBzZCAwOjA6 MDo0OiBzZF9wcm9iZTogW1VGU0RCR106IEV4aXQKPiBbwqDCoMKgIDcuNTc0NzM4XVvCoCBUMjEy XSBzZCAwOjA6MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYjQ6IFtVRlNEQkddOiBwd3IucmVxdWVz dDogMCB1c2FnZV9jb3VudDogMCBycG1fc3RhdHVzOiAwIGxpbmstcnBtX2FjdGl2ZToyCj4gCj4g W8KgwqDCoCA3LjU3NDc1Ml1bwqAgVDIxMl0gV29ya3F1ZXVlOiBldmVudHNfdW5ib3VuZCBhc3lu Y19ydW5fZW50cnlfZm4KPiBbwqDCoMKgIDcuNTc0NzU0XVvCoCBUMjEyXSBDYWxsIHRyYWNlOgo+ IFvCoMKgwqAgNy41NzQ3NThdW8KgIFQyMTJdwqAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWQ0Cj4g W8KgwqDCoCA3LjU3NDc2MV1bwqAgVDIxMl3CoCBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IFvCoMKg wqAgNy41NzQ3NjVdW8KgIFQyMTJdwqAgZHVtcF9zdGFjaysweGM0LzB4MTQ0Cj4gW8KgwqDCoCA3 LjU3NDc2N11bwqAgVDIxMl3CoCBfX3BtX3J1bnRpbWVfaWRsZSsweGI0LzB4MTg0Cj4gW8KgwqDC oCA3LjU3NDc3MF1bwqAgVDIxMl3CoCBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4OTQvMHhmMAo+IFvC oMKgwqAgNy41NzQ3NzNdW8KgIFQyMTJdwqAgX19kZXZpY2VfYXR0YWNoX2RyaXZlcisweDExNC8w eDEzOAo+IFvCoMKgwqAgNy41NzQ3NzVdW8KgIFQyMTJdwqAgYnVzX2Zvcl9lYWNoX2RydisweDg0 LzB4ZDAKPiBbwqDCoMKgIDcuNTc0Nzc4XVvCoCBUMjEyXcKgIF9fZGV2aWNlX2F0dGFjaF9hc3lu Y19oZWxwZXIrMHg3Yy8weGYwCj4gW8KgwqDCoCA3LjU3NDc4MV1bwqAgVDIxMl3CoCBhc3luY19y dW5fZW50cnlfZm4rMHg0OC8weDEyOAo+IFvCoMKgwqAgNy41NzQ3ODNdW8KgIFQyMTJdwqAgcHJv Y2Vzc19vbmVfd29yaysweDFmMC8weDQ3MAo+IFvCoMKgwqAgNy41NzQ3ODZdW8KgIFQyMTJdwqAg d29ya2VyX3RocmVhZCsweDI2Yy8weDRjOAo+IFvCoMKgwqAgNy41NzQ3ODhdW8KgIFQyMTJdwqAg a3RocmVhZCsweDEzYy8weDMyMAo+IFvCoMKgwqAgNy41NzQ3OTFdW8KgIFQyMTJdwqAgcmV0X2Zy b21fZm9yaysweDEwLzB4MTgKPiBbwqDCoMKgIDcuNTc0ODQ4XVvCoMKgIFQ4MF0gc2QgMDowOjA6 NDogc2NzaV9ydW50aW1lX2lkbGUKPiBbwqDCoMKgIDcuNTc0ODU4XVvCoCBUMjEyXSBzZCAwOjA6 MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYWZ0OiBbVUZTREJHXTogcHdyLnRpbWVyX2F1dG9zdXNw ZW5kczogMSBwd3IucmVxdWVzdF9wZW5kaW5nOiAwIHJldHZhbDogMCBwd3IucmVxdWVzdDogMCB1 c2FnZV9jb3VudDogMCBycG1fc3RhdHVzOiAwIGxpbmstcnBtX2FjdGl2ZToyCj4gW8KgwqDCoCA3 LjU3NDg2M11bwqAgVDIxMl0gc2QgMDowOjA6NDogcG1fcnVudGltZV9wdXRfc3VwcGxpZXJzOiBb VUZTREJHXTogcnBtX3N0YXR1czogMCBsaW5rLXJwbV9hY3RpdmU6MQo+IFvCoMKgwqAgNy41NzQ4 NjZdW8KgIFQyMTJdIHNkIDA6MDowOjQ6IGFzeW5jIHByb2JlIGNvbXBsZXRlZAo+IFvCoMKgwqAg Ny41NzQ4NzBdW8KgIFQyMTJdIHNkIDA6MDowOjQ6IF9fcG1fcnVudGltZV9pZGxlOiBiNDogW1VG U0RCR106IHB3ci5yZXF1ZXN0OiAwIHVzYWdlX2NvdW50OiAwIHJwbV9zdGF0dXM6IDAgbGluay1y cG1fYWN0aXZlOjEKPiAKPiAKPiBTbywgZnJvbSB0aGUgYWJvdmUgaXQgbG9va3MgbGlrZSB3aGVu IGFzeW5jIHByb2JlIGlzIGVuYWJsZWQgdGhpcyBpcyBhIHBvc3NpYmlsaXR5Lgo+IAo+IEkgZG9u J3Qgc2VlIGEgd2F5IGFyb3VuZCB0aGlzLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgeW91IChAQWxh bi9AQmFydC9AQWRyaWFuKSBoYXZlIGFueSB0aG91Z2h0cyBvbiB0aGlzLgo+IAo+IFRoYW5rcywK PiAtYXNkCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KTGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0CkxpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1tZWRpYXRlawo= 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=-5.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 DB331C433DB for ; Sun, 14 Mar 2021 09:13:04 +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 4D20E64EB6 for ; Sun, 14 Mar 2021 09:13:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D20E64EB6 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.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-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version: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=hOOvbjEvXx9tcZOP6BBNniStOKG5fn1uOtt+PONRx+8=; b=B+1PnVQmARUTamj8XSQ5x60I7 hQ2qPQ6vLVZ/E/0qgEnImTPN7j0vJd/AZNDi/CjGs0o09scAVwC3MAv2Qf3tqhZkp+qD5bCKXi5Hk FpHBs11nKa0cui9BlsYqD5elca+LynTZP61/4nbV2ViAA2/e50qcAEP7CkNeiqABO0jQarVWMhhFt ThprXfFQKAFSs1xbCq0iX/Nz9BQrDL3WS9RWNjkSr9WyeyxlCxQr2212rfMF89oRZjwSnN8ZL2Zu8 V0/I5cEKtaGytwke7Kwkjw3lew1+Lezhdb1mbqk93JKZxcXbmZV5Xd8nU5OmSDtp3gcdmxMrEUg3u n3qZQ5ZNA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLMmP-00E3Xc-Gi; Sun, 14 Mar 2021 09:11:21 +0000 Received: from mga04.intel.com ([192.55.52.120]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLMmG-00E3VH-A4; Sun, 14 Mar 2021 09:11:15 +0000 IronPort-SDR: /PwmNH5qhcEwzWh3O31My7pD3QT3+jYuzIix+LQ83gQQVaK+ewDypwd82JXsfmMxppZXu8RzyU 3VqWPA3CLKnw== X-IronPort-AV: E=McAfee;i="6000,8403,9922"; a="186602038" X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="186602038" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2021 01:11:05 -0800 IronPort-SDR: W4Pgrv411RMHKDlBXBestqy3b70NnWFlbNwtzC3925eFFTt0bxoJmYWcacH/mhfTD4wzGRqT0e BhyvAbVIkt5Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,245,1610438400"; d="scan'208";a="590015788" Received: from ahunter-desktop.fi.intel.com (HELO [10.237.72.76]) ([10.237.72.76]) by orsmga005.jf.intel.com with ESMTP; 14 Mar 2021 01:10:56 -0800 Subject: Re: [PATCH v10 1/2] scsi: ufs: Enable power management for wlun To: "Asutosh Das (asd)" , Alan Stern , Bart Van Assche Cc: "Rafael J. Wysocki" , cang@codeaurora.org, "Martin K. Petersen" , "open list:TARGET SUBSYSTEM" , linux-arm-msm , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , Krzysztof Kozlowski , Stanley Chu , Andy Gross , Bjorn Andersson , Steven Rostedt , Ingo Molnar , Matthias Brugger , Kiwoong Kim , Bean Huo , Lee Jones , Wei Yongjun , Dinghao Liu , "Gustavo A. R. Silva" , Tomas Winkler , Jaegeuk Kim , Satya Tangirala , open list , "moderated list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "open list:ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES" , "moderated list:UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER..." , Linux-PM mailing list References: <0576d6eae15486740c25767e2d8805f7e94eb79d.1614725302.git.asutoshd@codeaurora.org> <85086647-7292-b0a2-d842-290818bd2858@intel.com> <6e98724d-2e75-d1fe-188f-a7010f86c509@codeaurora.org> <20210306161616.GC74411@rowland.harvard.edu> <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: Date: Sun, 14 Mar 2021 11:11:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <2bd90336-18a9-9acd-5abb-5b52b27fc535@codeaurora.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210314_091112_943286_C30A0D85 X-CRM114-Status: GOOD ( 31.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTAvMDMvMjEgNTowNCBhbSwgQXN1dG9zaCBEYXMgKGFzZCkgd3JvdGU6Cj4gT24gMy85LzIw MjEgNzo1NiBBTSwgQXN1dG9zaCBEYXMgKGFzZCkgd3JvdGU6Cj4+IE9uIDMvOC8yMDIxIDk6MTcg QU0sIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+Pj4gT24gTW9uLCBNYXIgOCwgMjAyMSBhdCA1 OjIxIFBNIFJhZmFlbCBKLiBXeXNvY2tpIDxyYWZhZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4+Pj4K Pj4+PiBPbiBTYXQsIE1hciA2LCAyMDIxIGF0IDU6MTcgUE0gQWxhbiBTdGVybiA8c3Rlcm5Acm93 bGFuZC5oYXJ2YXJkLmVkdT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+IE9uIEZyaSwgTWFyIDA1LCAyMDIx IGF0IDA2OjU0OjI0UE0gLTA4MDAsIEFzdXRvc2ggRGFzIChhc2QpIHdyb3RlOgo+Pj4+Pgo+Pj4+ Pj4gTm93IGR1cmluZyBteSB0ZXN0aW5nIEkgc2VlIGEgd2VpcmQgaXNzdWUgc29tZXRpbWVzICgx IGluIDcpLgo+Pj4+Pj4gU2NlbmFyaW8gLSBib290dXBzCj4+Pj4+Pgo+Pj4+Pj4gSXNzdWU6Cj4+ Pj4+PiBUaGUgc3VwcGxpZXIgJ3Vmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4OCcgZ29lcyBpbnRv IHJ1bnRpbWUgc3VzcGVuZCBldmVuCj4+Pj4+PiB3aGVuIG9uZS9tb3JlIG9mIGl0cyBjb25zdW1l cnMgYXJlIGluIFJQTV9BQ1RJVkUgc3RhdGUuCj4+Pj4+Pgo+Pj4+Pj4gKkxvZzoKPj4+Pj4+IFvC oMKgIDEwLjA1NjM3OV1bwqAgVDIwNl0gc2QgMDowOjA6MTogW3NkYl0gU3luY2hyb25pemluZyBT Q1NJIGNhY2hlCj4+Pj4+PiBbwqDCoCAxMC4wNjI0OTddW8KgIFQxMTNdIHNkIDA6MDowOjU6IFtz ZGZdIFN5bmNocm9uaXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4gW8KgwqAgMTAuMzU2NjAwXVvCoMKg IFQzMl0gc2QgMDowOjA6NzogW3NkaF0gU3luY2hyb25pemluZyBTQ1NJIGNhY2hlCj4+Pj4+PiBb wqDCoCAxMC4zNjI5NDRdW8KgIFQxNzRdIHNkIDA6MDowOjM6IFtzZGRdIFN5bmNocm9uaXppbmcg U0NTSSBjYWNoZQo+Pj4+Pj4gW8KgwqAgMTAuNjk2NjI3XVvCoMKgIFQ4M10gc2QgMDowOjA6Mjog W3NkY10gU3luY2hyb25pemluZyBTQ1NJIGNhY2hlCj4+Pj4+PiBbwqDCoCAxMC43MDQ1NjJdW8Kg IFQxNzBdIHNkIDA6MDowOjY6IFtzZGddIFN5bmNocm9uaXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4g W8KgwqAgMTAuOTgwNjAyXVvCoMKgwqAgVDVdIHNkIDA6MDowOjA6IFtzZGFdIFN5bmNocm9uaXpp bmcgU0NTSSBjYWNoZQo+Pj4+Pj4KPj4+Pj4+IC8qKiBQcmludGluZyBhbGwgdGhlIGNvbnN1bWVy IG5vZGVzIG9mIHN1cHBsaWVyICoqLwo+Pj4+Pj4gW8KgwqAgMTAuOTg3MzI3XVvCoMKgwqAgVDVd IHVmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4ODogdXNhZ2UtY291bnQgQCBzdXNwZW5kOiAwCj4+ Pj4+PiA8LS0gdGhpcyBpcyB0aGUgdXNhZ2VfY291bnQKPj4+Pj4+IFvCoMKgIDEwLjk5NDQ0MF1b wqDCoMKgIFQ1XSB1ZnNfcnBtYl93bHVuIDA6MDowOjQ5NDc2OiBQTSBzdGF0ZSAtIDIKPj4+Pj4+ IFvCoMKgIDExLjAwMDQwMl1bwqDCoMKgIFQ1XSBzY3NpIDA6MDowOjQ5NDU2OiBQTSBzdGF0ZSAt IDIKPj4+Pj4+IFvCoMKgIDExLjAwNTQ1M11bwqDCoMKgIFQ1XSBzZCAwOjA6MDowOiBQTSBzdGF0 ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAwOTk1OF1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoxOiBQTSBz dGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAxNDQ2OV1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoyOiBQ TSBzdGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAxOTA3Ml1bwqDCoMKgIFQ1XSBzZCAwOjA6MDoz OiBQTSBzdGF0ZSAtIDIKPj4+Pj4+IFvCoMKgIDExLjAyMzU5NV1bwqDCoMKgIFQ1XSBzZCAwOjA6 MDo0OiBQTSBzdGF0ZSAtIDAgPDwgUlBNX0FDVElWRQo+Pj4+Pj4gW8KgwqAgMTEuMzUzMjk4XVvC oMKgwqAgVDVdIHNkIDA6MDowOjU6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEuMzU3NzI2 XVvCoMKgwqAgVDVdIHNkIDA6MDowOjY6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEuMzYy MTU1XVvCoMKgwqAgVDVdIHNkIDA6MDowOjc6IFBNIHN0YXRlIC0gMgo+Pj4+Pj4gW8KgwqAgMTEu MzY2NTg0XVvCoMKgwqAgVDVdIHVmc2hjZC1xY29tIDFkODQwMDAudWZzaGM6IF9fdWZzaGNkX3ds X3N1c3BlbmQgLSA4NzA5Cj4+Pj4+PiBbwqDCoCAxMS4zNzQzNjZdW8KgwqDCoCBUNV0gdWZzX2Rl dmljZV93bHVuIDA6MDowOjQ5NDg4OiBfX3Vmc2hjZF93bF9zdXNwZW5kIC0KPj4+Pj4+ICgwKSBo YXMgcnBtX2FjdGl2ZSBmbGFncwo+Pj4+Cj4+Pj4gRG8geW91IG1lYW4gdGhhdCBycG1fYWN0aXZl IG9mIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNvbnN1bWVyIGFuZCB0aGUKPj4+PiBzdXBwbGllciBp cyBncmVhdGVyIHRoYW4gMCBhdCB0aGlzIHBvaW50IGFuZCB0aGUgY29uc3VtZXIgaXMKPj4+Cj4+ PiBJIG1lYW4gaXMgcnBtX2FjdGl2ZSBvZiB0aGUgbGluayBncmVhdGVyIHRoYW4gMSAoYmVjYXVz ZSAxIG1lYW5zICJubwo+Pj4gYWN0aXZlIHJlZmVyZW5jZXMgdG8gdGhlIHN1cHBsaWVyIik/Cj4+ IEhpIFJhZmFlbDoKPj4gTm8gLSBpdCBpcyBub3QgZ3JlYXRlciB0aGFuIDEuCj4+Cj4+IEknbSB0 cnlpbmcgdG8gdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24gaW4gaXQ7IHdpbGwgdXBkYXRlIHdo ZW4gSSd2ZSBzb21ldGhpbmcuCj4+Cj4+Pgo+Pj4+IFJQTV9BQ1RJVkUsIGJ1dCB0aGUgc3VwcGxp ZXIgc3VzcGVuZHMgc3VjY2Vzc2Z1bGx5IG5ldmVydGhlbGVzcz8KPj4+Pgo+Pj4+Pj4gW8KgwqAg MTEuMzgzMzc2XVvCoMKgwqAgVDVdIHVmc19kZXZpY2Vfd2x1biAwOjA6MDo0OTQ4ODoKPj4+Pj4+ IHVmc2hjZF93bF9ydW50aW1lX3N1c3BlbmQgPC0tIFN1cHBsaWVyIHN1c3BlbmRzIGZpbmUuCj4+ Pj4+PiBbwqDCoCAxMi45NzczMThdW8KgIFQxNzRdIHNkIDA6MDowOjQ6IFtzZGVdIFN5bmNocm9u aXppbmcgU0NTSSBjYWNoZQo+Pj4+Pj4KPj4+Pj4+IEFuZCB0aGUgdGhlIHN1c3BlbmQgb2Ygc2Rl IGlzIHN0dWNrIG5vdzoKPj4+Pj4+IHNjaGVkdWxlKzB4OWMvMHhlMAo+Pj4+Pj4gc2NoZWR1bGVf dGltZW91dCsweDQwLzB4MTI4Cj4+Pj4+PiBpb19zY2hlZHVsZV90aW1lb3V0KzB4NDQvMHg2OAo+ Pj4+Pj4gd2FpdF9mb3JfY29tbW9uX2lvKzB4N2MvMHgxMDAKPj4+Pj4+IHdhaXRfZm9yX2NvbXBs ZXRpb25faW8rMHgxNC8weDIwCj4+Pj4+PiBibGtfZXhlY3V0ZV9ycSsweDkwLzB4Y2MKPj4+Pj4+ IF9fc2NzaV9leGVjdXRlKzB4MTA0LzB4MWM0Cj4+Pj4+PiBzZF9zeW5jX2NhY2hlKzB4ZjgvMHgy YTAKPj4+Pj4+IHNkX3N1c3BlbmRfY29tbW9uKzB4NzQvMHgxMWMKPj4+Pj4+IHNkX3N1c3BlbmRf cnVudGltZSsweDE0LzB4MjAKPj4+Pj4+IHNjc2lfcnVudGltZV9zdXNwZW5kKzB4NjQvMHg5NAo+ Pj4+Pj4gX19ycG1fY2FsbGJhY2srMHg4MC8weDJhNAo+Pj4+Pj4gcnBtX3N1c3BlbmQrMHgzMDgv MHg2MTQKPj4+Pj4+IHBtX3J1bnRpbWVfd29yaysweDk4LzB4YTgKPj4+Pj4+Cj4+Pj4+PiBJIGFk ZGVkICdETF9GTEFHX1JQTV9BQ1RJVkUnIHdoaWxlIGNyZWF0aW5nIGxpbmtzLgo+Pj4+Pj4gwqDC oMKgwqDCoMKgIGlmIChoYmEtPnNkZXZfdWZzX2RldmljZSkgewo+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBsaW5rID0gZGV2aWNlX2xpbmtfYWRkKCZzZGV2LT5zZGV2X2dlbmRl diwKPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICZoYmEtPnNkZXZfdWZzX2RldmljZS0+c2Rldl9nZW5kZXYs Cj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgRExfRkxBR19QTV9SVU5USU1FfERMX0ZMQUdfUlBNX0FDVElWRSk7 Cj4+Pj4+PiBJIGRpZG4ndCBleHBlY3QgdGhpcyB0byByZXNvbHZlIHRoZSBpc3N1ZSBhbnl3YXkg YW5kIGl0IGRpZG4ndC4KPj4+Pj4+Cj4+Pj4+PiBBbm90aGVyIGludGVyZXN0aW5nIHBvaW50IGhl cmUgaXMgd2hlbiBJIHJlc3VtZSBhbnkgb2YgdGhlIGFib3ZlIHN1c3BlbmRlZAo+Pj4+Pj4gY29u c3VtZXJzLCBpdCBhbGwgZ29lcyBiYWNrIHRvIG5vcm1hbCwgd2hpY2ggaXMga2luZCBvZiBleHBl Y3RlZC4gSSB0cmllZAo+Pj4+Pj4gcmVzdW1pbmcgdGhlIGNvbnN1bWVyIGFuZCB0aGUgc3VwcGxp ZXIgaXMgcmVzdW1lZCBhbmQgdGhlIHN1cHBsaWVyIGlzCj4+Pj4+PiBzdXNwZW5kZWQgd2hlbiBh bGwgdGhlIGNvbnN1bWVycyBhcmUgc3VzcGVuZGVkLgo+Pj4+Pj4KPj4+Pj4+IEFueSBwb2ludGVy cyBvbiB0aGlzIGlzc3VlIHBsZWFzZT8KPj4+Pj4+Cj4+Pj4+PiBAQmFydC9AQWxhbiAtIERvIHlv dSd2ZSBhbnkgcG9pbnRlcnMgcGxlYXNlPwo+Pj4+Pgo+Pj4+PiBJdCdzIHZlcnkgbm90aWNlYWJs ZSB0aGF0IGFsdGhvdWdoIHlvdSBzZWVtIHRvIGhhdmUgaXNvbGF0ZWQgYSBidWcgaW4KPj4+Pj4g dGhlIHBvd2VyIG1hbmFnZW1lbnQgc3Vic3lzdGVtIChzdXBwbGllciBnb2VzIGludG8gcnVudGlt ZSBzdXNwZW5kCj4+Pj4+IGV2ZW4gd2hlbiBvbmUgb2YgaXRzIGNvbnN1bWVycyBpcyBzdGlsbCBh Y3RpdmUpLCB5b3UgZGlkIG5vdCBDQyB0aGUKPj4+Pj4gcG93ZXIgbWFuYWdlbWVudCBtYWludGFp bmVyIG9yIG1haWxpbmcgbGlzdC4KPj4+Pj4KPj4+Pj4gSSBoYXZlIGFkZGVkIHRoZSBhcHByb3By aWF0ZSBDQydzLgo+Pj4+Cj4+Pj4gVGhhbmtzIEFsYW4hCj4+Cj4+Cj4gCj4gSGVsbG8KPiBJICYg Q2FuICh0aGFua3MgQ2FuRykgZGVidWdnZWQgdGhpcyBmdXJ0aGVyOgo+IAo+IExvb2tzIGxpa2Ug dGhpcyBpc3N1ZSBjYW4gb2NjdXIgaWYgdGhlIHNkIHByb2JlIGlzIGFzeW5jaHJvbm91cy4KPiAK PiBFc3NlbnRpYWxseSwgdGhlIHNkX3Byb2JlKCkgaXMgZG9uZSBhc3luY2hyb25vdXNseSBhbmQg ZHJpdmVyX3Byb2JlX2RldmljZSgpIGludm9rZXMgcG1fcnVudGltZV9nZXRfc3VwcGxpZXJzKCkg YmVmb3JlIGludm9raW5nIHNkX3Byb2JlKCkuCj4gCj4gQnV0IHNjc2lfcHJvYmVfYW5kX2FkZF9s dW4oKSBydW5zIGluIGEgc2VwYXJhdGUgY29udGV4dC4KPiBTbyB0aGUgc2NzaV9hdXRvcG1fcHV0 X2RldmljZSgpIGludm9rZWQgZnJvbSBzY3NpX3NjYW5faG9zdCgpIGNvbnRleHQgcmVkdWNlcyB0 aGUgbGluay0+cnBtX2FjdGl2ZSB0byAxLiBBbmQgc2RfcHJvYmUoKSBpbnZva2VzIHNjc2lfYXV0 b3BtX3B1dF9kZXZpY2UoKSBhbmQgc3RhcnRzIGEgdGltZXIuIEFuZCB0aGVuIGRyaXZlcl9wcm9i ZV9kZXZpY2UoKSBpbnZva2VkIGZyb20gX19kZXZpY2VfYXR0YWNoX2FzeW5jX2hlbHBlciBjb250 ZXh0IHJlZHVjZXMgdGhlIGxpbmstPnJwbV9hY3RpdmUgdG8gMSB0aHVzIGVuYWJsaW5nIHRoZSBz dXBwbGllciB0byBzdXNwZW5kIGJlZm9yZSB0aGUgY29uc3VtZXIgc3VzcGVuZHMuCj4gCj4gU28g aWY6Cj4gQ29udGV4dCBUMToKPiBbMV0gc2NzaV9wcm9iZV9hbmRfYWRkX2x1bigpCj4gWzJdwqDC oMKgIHwtIHNjc2lfYXV0b3BtX3B1dF9kZXZpY2UoKSAtIHJlZHVjZSB0aGUgbGluay0+cnBtX2Fj dGl2ZSB0byAxCj4gCj4gQ29udGV4dCBUMjoKPiBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVy KCkKPiDCoMKgwqDCoHwtIGRyaXZlcl9wcm9iZV9kZXZpY2UoKQo+IMKgwqDCoMKgwqDCoMKgIHwt IHNkX3Byb2JlKCkKPiBJbiBiZXR3ZWVuIFsxXSBhbmQgWzJdIHNheSwgZHJpdmVyX3Byb2JlX2Rl dmljZSgpIC0+IHNkX3Byb2JlKCkgaXMgaW52b2tlZCBpbiBhIHNlcGFyYXRlIGNvbnRleHQgZnJv bSBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKCkuCj4gVGhlIGRyaXZlcl9wcm9iZV9kZXZp Y2UoKSAtPiBwbV9ydW50aW1lX2dldF9zdXBwbGllcnMoKSBidXQgWzJdIHdvdWxkIHJlZHVjZSBs aW5rLT5ycG1fYWN0aXZlIHRvIDEuCj4gVGhlbiBzZF9wcm9iZSgpIHdvdWxkIGludm9rZSBycG1f cmVzdW1lKCkgYW5kIHByb2NlZWQgYXMgaXMuCj4gV2hlbiBzZF9wcm9iZSgpIGludm9rZXMgc2Nz aV9hdXRvcG1fcHV0X2RldmljZSgpIGl0J2Qgc3RhcnQgYSB0aW1lciwgZGV2LT5wb3dlci50aW1l cl9hdXRvc3VzcGVuZHMgPSAxLgo+IAo+IE5vdyB0aGVuLCBwbV9ydW50aW1lX3B1dF9zdXBwbGll cnMoKSBpcyBpbnZva2VkIGZyb20gZHJpdmVyX3Byb2JlX2RldmljZSgpIGFuZCB0aGF0IG1ha2Vz IHRoZSBsaW5rLT5ycG1fYWN0aXZlID0gMS4KPiBCdXQgYnkgbm93LCB0aGUgY29ycmVzcG9uZGlu ZyAnc2QgZGV2JyAoY29uc3VtZXIpIHVzYWdlX2NvdW50ID0gMCwgc3RhdGUgPSBSUE1fQUNUSVZF IGFuZCBsaW5rLT5ycG1fYWN0aXZlID0gMS4KPiBBdCB0aGlzIHBvaW50IG9mIHRpbWUsIGFsbCBv dGhlciAnc2QgZGV2JyAoY29uc3VtZXJzKSBfbWF5XyBiZSBzdXNwZW5kZWQgb3IgYWN0aXZlIGJ1 dCB3b3VsZCBoYXZlIHRoZSBsaW5rLT5ycG1fYWN0aXZlID0gMS4KCklzIHRoaXMgd2l0aCBETF9G TEFHX1JQTV9BQ1RJVkU/ICBJbiB0aGF0IGNhc2UsIHdvdWxkbid0IGFjdGl2ZQpjb25zdW1lcnMg aGF2ZSBsaW5rLT5ycG1fYWN0aXZlID0gMiBhbmQgYWxzbyBoYXZlIGluY3JlbWVudGVkCnRoZSBz dXBwbGllcidzIHVzYWdlX2NvdW50PwoKQW5vdGhlciBvdXRzdGFuZGluZyBpc3N1ZSB0aGF0IGNv bWVzIHRvIG1pbmQsIGlzIHRvIGVuc3VyZQpoYmEtPnNkZXZfdWZzX2RldmljZSBkb2VzIG5vdCBy dW50aW1lIHN1c3BlbmQgYmVmb3JlIGl0IGlzIHByb2JlZC4KSSBzdWdnZXN0IGNoYW5naW5nIHVm c2hjZF9zbGF2ZV9jb25maWd1cmUoKSBzbyBpdCBkb2VzIG5vdCBzZXQKc2Rldi0+cnBtX2F1dG9z dXNwZW5kIGZvciBoYmEtPnNkZXZfdWZzX2RldmljZSwgYW5kIGluc3RlYWQgZG8KcG1fcnVudGlt ZV9hbGxvdyAvIHBtX3J1bnRpbWVfZm9yYmlkKCkgaW4gdWZzaGNkX3dsX3Byb2JlKCkgLwp1ZnNo Y2Rfd2xfcmVtb3ZlKCkgcmVzcGVjdGl2ZWx5LgoKSG93ZXZlciB3ZSBzdGlsbCB3YW50IHRvIHN0 b3AgaGJhLT5zZGV2X3Vmc19kZXZpY2UgcnVudGltZQpzdXNwZW5kaW5nIHdoaWxlIGNvbnN1bWVy cyBhcmUgYmVpbmcgYWRkZWQuICBXaXRoIHRoYXQgaW4gbWluZCwKSSB3b3VsZCBleHBlY3QgcG1f cnVudGltZV9nZXRfbm9yZXN1bWUoJmhiYS0+c2Rldl91ZnNfZGV2aWNlLT5zZGV2X2dlbmRldikK aW4gdWZzaGNkX3Njc2lfYWRkX3dsdXMoKSB0byBjb21lICpiZWZvcmUqCnVmc2hjZF9ibGtfcG1f cnVudGltZV9pbml0KGhiYS0+c2Rldl91ZnNfZGV2aWNlKS4gIEluIGZhY3QsIGl0IHdvdWxkCmJl IG1vcmUgbG9naWNhbCB0byBtYWtlIGl0LCBwbV9ydW50aW1lX2dldF9zeW5jKCkgc2luY2Ugd2Ug cmVxdWlyZQpoYmEtPnNkZXZfdWZzX2RldmljZSB0byBiZSBhY3RpdmUgYXQgdGhhdCBwb2ludC4K Cgo+IAo+IFNpbmNlIHRoZSBzdXBwbGllciBoYXMgMCBhdXRvLXN1c3BlbmQgZGVsYXksIGl0IG5v dyBzdXNwZW5kcyEKPiAKPiAKPiBDb250ZXh0IFtUMV0KPiBDYWxsIHRyYWNlOgo+IGR1bXBfYmFj a3RyYWNlKzB4MC8weDFkNAo+IHNob3dfc3RhY2srMHgxOC8weDI0Cj4gZHVtcF9zdGFjaysweGM0 LzB4MTQ0Cj4gX19wbV9ydW50aW1lX2lkbGUrMHhiNC8weDE4NAo+IHNjc2lfYXV0b3BtX3B1dF9k ZXZpY2UrMHgxOC8weDI0Cj4gc2NzaV9zeXNmc19hZGRfc2RldisweDI2Yy8weDI3OAo+IHNjc2lf cHJvYmVfYW5kX2FkZF9sdW4rMHhiYWMvMHhkNDgKPiBfX3Njc2lfc2Nhbl90YXJnZXQrMHgzOGMv MHg1MTAKPiBzY3NpX3NjYW5faG9zdF9zZWxlY3RlZCsweDE0Yy8weDFlNAo+IHNjc2lfc2Nhbl9o b3N0KzB4MWUwLzB4MjI4Cj4gdWZzaGNkX2FzeW5jX3NjYW4rMHgzOWMvMHg0MDgKPiBhc3luY19y dW5fZW50cnlfZm4rMHg0OC8weDEyOAo+IHByb2Nlc3Nfb25lX3dvcmsrMHgxZjAvMHg0NzAKPiB3 b3JrZXJfdGhyZWFkKzB4MjZjLzB4NGM4Cj4ga3RocmVhZCsweDEzYy8weDMyMAo+IHJldF9mcm9t X2ZvcmsrMHgxMC8weDE4Cj4gCj4gCj4gQ29udGV4dCBbVDJdCj4gQ2FsbCB0cmFjZToKPiBkdW1w X2JhY2t0cmFjZSsweDAvMHgxZDQKPiBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IGR1bXBfc3RhY2sr MHhjNC8weDE0NAo+IHJwbV9nZXRfc3VwcGxpZXJzKzB4NDgvMHgxYWMKPiBfX3JwbV9jYWxsYmFj aysweDU4LzB4MTJjCj4gcnBtX3Jlc3VtZSsweDNhNC8weDYxOAo+IF9fcG1fcnVudGltZV9yZXN1 bWUrMHg1MC8weDgwCj4gc2NzaV9hdXRvcG1fZ2V0X2RldmljZSsweDIwLzB4NTQKPiBzZF9wcm9i ZSsweDQwLzB4M2QwCj4gcmVhbGx5X3Byb2JlKzB4MWJjLzB4NGEwCj4gZHJpdmVyX3Byb2JlX2Rl dmljZSsweDg0LzB4ZjAKPiBfX2RldmljZV9hdHRhY2hfZHJpdmVyKzB4MTE0LzB4MTM4Cj4gYnVz X2Zvcl9lYWNoX2RydisweDg0LzB4ZDAKPiBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKzB4 N2MvMHhmMAo+IGFzeW5jX3J1bl9lbnRyeV9mbisweDQ4LzB4MTI4Cj4gcHJvY2Vzc19vbmVfd29y aysweDFmMC8weDQ3MAo+IHdvcmtlcl90aHJlYWQrMHgyNmMvMHg0YzgKPiBrdGhyZWFkKzB4MTNj LzB4MzIwCj4gcmV0X2Zyb21fZm9yaysweDEwLzB4MTgKPiAKPiBCZWxvdyBwcmludHMgc2hvdyBo b3cgbGluay0+cnBtX2FjdGl2ZSBiZWNvbWVzIDEgZm9yIHNkIDA6MDowOjQKPiBbwqDCoMKgIDcu NTc0NjU0XVvCoCBUMjEyXSBDYWxsIHRyYWNlOgo+IFvCoMKgwqAgNy41NzQ2NTddW8KgIFQyMTJd wqAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWQ0Cj4gW8KgwqDCoCA3LjU3NDY2MV1bwqAgVDIxMl3C oCBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IFvCoMKgwqAgNy41NzQ2NjVdW8KgIFQyMTJdwqAgZHVt cF9zdGFjaysweGM0LzB4MTQ0Cj4gW8KgwqDCoCA3LjU3NDY2OF1bwqAgVDIxMl3CoCBfX3BtX3J1 bnRpbWVfaWRsZSsweGI0LzB4MTg0Cj4gW8KgwqDCoCA3LjU3NDY3MV1bwqAgVDIxMl3CoCBzY3Np X2F1dG9wbV9wdXRfZGV2aWNlKzB4MTgvMHgyNAo+IFvCoMKgwqAgNy41NzQ2NzVdW8KgIFQyMTJd wqAgc2RfcHJvYmUrMHgzMTQvMHgzZDAKPiBbwqDCoMKgIDcuNTc0Njc3XVvCoCBUMjEyXcKgIHJl YWxseV9wcm9iZSsweDFiYy8weDRhMAo+IFvCoMKgwqAgNy41NzQ2ODBdW8KgIFQyMTJdwqAgZHJp dmVyX3Byb2JlX2RldmljZSsweDg0LzB4ZjAKPiBbwqDCoMKgIDcuNTc0NjgzXVvCoCBUMjEyXcKg IF9fZGV2aWNlX2F0dGFjaF9kcml2ZXIrMHgxMTQvMHgxMzgKPiBbwqDCoMKgIDcuNTc0Njg2XVvC oCBUMjEyXcKgIGJ1c19mb3JfZWFjaF9kcnYrMHg4NC8weGQwCj4gW8KgwqDCoCA3LjU3NDY4OV1b wqAgVDIxMl3CoCBfX2RldmljZV9hdHRhY2hfYXN5bmNfaGVscGVyKzB4N2MvMHhmMAo+IFvCoMKg wqAgNy41NzQ2OTJdW8KgIFQyMTJdwqAgYXN5bmNfcnVuX2VudHJ5X2ZuKzB4NDgvMHgxMjgKPiBb wqDCoMKgIDcuNTc0Njk1XVvCoCBUMjEyXcKgIHByb2Nlc3Nfb25lX3dvcmsrMHgxZjAvMHg0NzAK PiBbwqDCoMKgIDcuNTc0Njk4XVvCoCBUMjEyXcKgIHdvcmtlcl90aHJlYWQrMHgyNmMvMHg0YzgK PiBbwqDCoMKgIDcuNTc0NzAwXVvCoCBUMjEyXcKgIGt0aHJlYWQrMHgxM2MvMHgzMjAKPiBbwqDC oMKgIDcuNTc0NzAzXVvCoCBUMjEyXcKgIHJldF9mcm9tX2ZvcmsrMHgxMC8weDE4Cj4gW8KgwqDC oCA3LjU3NDcwNl1bwqAgVDIxMl0gc2QgMDowOjA6NDogc2NzaV9ydW50aW1lX2lkbGUKPiBbwqDC oMKgIDcuNTc0NzEyXVvCoCBUMjEyXSBzZCAwOjA6MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYWZ0 OiBbVUZTREJHXTogcHdyLnRpbWVyX2F1dG9zdXNwZW5kczogMSBwd3IucmVxdWVzdF9wZW5kaW5n OiAwIHJldHZhbDogLTE2IHB3ci5yZXF1ZXN0OiAwIHVzYWdlX2NvdW50OiAwIHJwbV9zdGF0dXM6 IDAgbGluay1ycG1fYWN0aXZlOjIKPiBbwqDCoMKgIDcuNTc0NzE1XVvCoCBUMjEyXSBzZCAwOjA6 MDo0OiBzZF9wcm9iZTogW1VGU0RCR106IEV4aXQKPiBbwqDCoMKgIDcuNTc0NzM4XVvCoCBUMjEy XSBzZCAwOjA6MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYjQ6IFtVRlNEQkddOiBwd3IucmVxdWVz dDogMCB1c2FnZV9jb3VudDogMCBycG1fc3RhdHVzOiAwIGxpbmstcnBtX2FjdGl2ZToyCj4gCj4g W8KgwqDCoCA3LjU3NDc1Ml1bwqAgVDIxMl0gV29ya3F1ZXVlOiBldmVudHNfdW5ib3VuZCBhc3lu Y19ydW5fZW50cnlfZm4KPiBbwqDCoMKgIDcuNTc0NzU0XVvCoCBUMjEyXSBDYWxsIHRyYWNlOgo+ IFvCoMKgwqAgNy41NzQ3NThdW8KgIFQyMTJdwqAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MWQ0Cj4g W8KgwqDCoCA3LjU3NDc2MV1bwqAgVDIxMl3CoCBzaG93X3N0YWNrKzB4MTgvMHgyNAo+IFvCoMKg wqAgNy41NzQ3NjVdW8KgIFQyMTJdwqAgZHVtcF9zdGFjaysweGM0LzB4MTQ0Cj4gW8KgwqDCoCA3 LjU3NDc2N11bwqAgVDIxMl3CoCBfX3BtX3J1bnRpbWVfaWRsZSsweGI0LzB4MTg0Cj4gW8KgwqDC oCA3LjU3NDc3MF1bwqAgVDIxMl3CoCBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4OTQvMHhmMAo+IFvC oMKgwqAgNy41NzQ3NzNdW8KgIFQyMTJdwqAgX19kZXZpY2VfYXR0YWNoX2RyaXZlcisweDExNC8w eDEzOAo+IFvCoMKgwqAgNy41NzQ3NzVdW8KgIFQyMTJdwqAgYnVzX2Zvcl9lYWNoX2RydisweDg0 LzB4ZDAKPiBbwqDCoMKgIDcuNTc0Nzc4XVvCoCBUMjEyXcKgIF9fZGV2aWNlX2F0dGFjaF9hc3lu Y19oZWxwZXIrMHg3Yy8weGYwCj4gW8KgwqDCoCA3LjU3NDc4MV1bwqAgVDIxMl3CoCBhc3luY19y dW5fZW50cnlfZm4rMHg0OC8weDEyOAo+IFvCoMKgwqAgNy41NzQ3ODNdW8KgIFQyMTJdwqAgcHJv Y2Vzc19vbmVfd29yaysweDFmMC8weDQ3MAo+IFvCoMKgwqAgNy41NzQ3ODZdW8KgIFQyMTJdwqAg d29ya2VyX3RocmVhZCsweDI2Yy8weDRjOAo+IFvCoMKgwqAgNy41NzQ3ODhdW8KgIFQyMTJdwqAg a3RocmVhZCsweDEzYy8weDMyMAo+IFvCoMKgwqAgNy41NzQ3OTFdW8KgIFQyMTJdwqAgcmV0X2Zy b21fZm9yaysweDEwLzB4MTgKPiBbwqDCoMKgIDcuNTc0ODQ4XVvCoMKgIFQ4MF0gc2QgMDowOjA6 NDogc2NzaV9ydW50aW1lX2lkbGUKPiBbwqDCoMKgIDcuNTc0ODU4XVvCoCBUMjEyXSBzZCAwOjA6 MDo0OiBfX3BtX3J1bnRpbWVfaWRsZTogYWZ0OiBbVUZTREJHXTogcHdyLnRpbWVyX2F1dG9zdXNw ZW5kczogMSBwd3IucmVxdWVzdF9wZW5kaW5nOiAwIHJldHZhbDogMCBwd3IucmVxdWVzdDogMCB1 c2FnZV9jb3VudDogMCBycG1fc3RhdHVzOiAwIGxpbmstcnBtX2FjdGl2ZToyCj4gW8KgwqDCoCA3 LjU3NDg2M11bwqAgVDIxMl0gc2QgMDowOjA6NDogcG1fcnVudGltZV9wdXRfc3VwcGxpZXJzOiBb VUZTREJHXTogcnBtX3N0YXR1czogMCBsaW5rLXJwbV9hY3RpdmU6MQo+IFvCoMKgwqAgNy41NzQ4 NjZdW8KgIFQyMTJdIHNkIDA6MDowOjQ6IGFzeW5jIHByb2JlIGNvbXBsZXRlZAo+IFvCoMKgwqAg Ny41NzQ4NzBdW8KgIFQyMTJdIHNkIDA6MDowOjQ6IF9fcG1fcnVudGltZV9pZGxlOiBiNDogW1VG U0RCR106IHB3ci5yZXF1ZXN0OiAwIHVzYWdlX2NvdW50OiAwIHJwbV9zdGF0dXM6IDAgbGluay1y cG1fYWN0aXZlOjEKPiAKPiAKPiBTbywgZnJvbSB0aGUgYWJvdmUgaXQgbG9va3MgbGlrZSB3aGVu IGFzeW5jIHByb2JlIGlzIGVuYWJsZWQgdGhpcyBpcyBhIHBvc3NpYmlsaXR5Lgo+IAo+IEkgZG9u J3Qgc2VlIGEgd2F5IGFyb3VuZCB0aGlzLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgeW91IChAQWxh bi9AQmFydC9AQWRyaWFuKSBoYXZlIGFueSB0aG91Z2h0cyBvbiB0aGlzLgo+IAo+IFRoYW5rcywK PiAtYXNkCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=