Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753348AbdFSA7n (ORCPT ); Sun, 18 Jun 2017 20:59:43 -0400 Received: from mail-sn1nam02on0047.outbound.protection.outlook.com ([104.47.36.47]:48784 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753020AbdFSA7i (ORCPT ); Sun, 18 Jun 2017 20:59:38 -0400 Authentication-Results: spf=softfail (sender IP is 192.88.168.50) smtp.mailfrom=gmail.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=gmail.com; Date: Mon, 19 Jun 2017 08:59:02 +0800 From: Peter Chen To: Ulf Hansson CC: Mark Rutland , Peter Chen , Heiko Stuebner , Stephen Boyd , , Sebastian Reichel , Gary Bisson , Fabio Estevam , Joshua Clayton , Arnd Bergmann , Dmitry Eremin-Solenikov , Vaibhav Hiremath , Krzysztof Kozlowski , , Alan Stern , "devicetree@vger.kernel.org" , "Maciej S. Szmigiero" , Pawel Moll , "linux-pm@vger.kernel.org" , Sascha Hauer , , Rob Herring , "linux-arm-kernel@lists.infradead.org" , , , Greg Kroah-Hartman , Linux USB List , "Rafael J. Wysocki" , "linux-kernel@vger.kernel.org" , Mark Brown , Philipp Zabel , Shawn Guo , Subject: Re: [PATCH v15 2/7] power: add power sequence library Message-ID: <20170619005902.GA6456@b29397-desktop> References: <1497319166-17287-1-git-send-email-peter.chen@nxp.com> <1497319166-17287-3-git-send-email-peter.chen@nxp.com> <20170614015338.GA4635@b29397-desktop> <20170615065854.GA24157@b29397-desktop> <20170615091131.GB24157@b29397-desktop> <20170615100604.GC24157@b29397-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20170615100604.GC24157@b29397-desktop> User-Agent: Mutt/1.5.24 (2015-08-30) X-EOPAttributedMessage: 0 X-Matching-Connectors: 131423075757441583;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(39850400002)(39380400002)(39400400002)(39410400002)(39450400003)(39860400002)(39840400002)(2980300002)(199003)(189002)(24454002)(9170700003)(33716001)(189998001)(97756001)(47776003)(46406003)(55016002)(50466002)(305945005)(53546009)(6306002)(6260500002)(1720100001)(106466001)(7406005)(81442002)(73972006)(73392002)(105596002)(83322999)(1076002)(87572001)(83506001)(5660300001)(23726003)(8656002)(38730400002)(6916009)(2950100002)(76176999)(6666003)(50986999)(82202002)(54906002)(77096006)(54356999)(9686003)(229853002)(498600001)(6246003)(110136004)(53936002)(966005)(104016004)(8936002)(7416002)(93886004)(4001350100001)(4326008)(81166006)(39060400002)(33656002)(86362001)(2906002)(356003)(76482006)(8676002)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0301MB0608;H:tx30smr01.am.freescale.net;FPR:;SPF:SoftFail;MLV:ovr;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD017;1:pMuqb/L+lsds7pNZLLZAMjp5+TIN8zSvgUHR1pAfAsztRf8UwWHtoebxFFUEC03ILsn7eddgUbVlxeCh41rQO0rzUjWMdnKmxQ/8tuOuWakEnHSxFtf8vNe00E4iU4cMKLksfFuB9qFN9uMZx4OunwbeREzPsLV5Q4WjBIFHilFmLbvFKurKN25s6xl711V+BXkjRVA7AqWj9UoKNegHhAjK89W5Ei2Z3fn4OMlq3fTxRAcKqgjFPk2pLGxEZawxAlmgmE5C/Kd49ZT8cxV1M9i8pT0A1Dh3vTLafG3smoyRHRyN0dJi++9ps2vlOta9vdxpbs5ADm2egfHFyW4B/hsTEobagip7y1jtEWHaoXMY+IWq7baO09+W4OKdcELpJs9FSIV9CVUBQTMFbSjD5zEpUOZuMZJM46lR6/BQvh6ka1DwcmYYWcsQJzyipC7zEC0hh6CO+LizQUzSGY7xvuMZt3SLydZAr9XvtX7pWMCp99vcvEIOebJHJvt0p5O76PcyYgdyrwpUsfW2SnZJ5rDyPwEMFea/1rMBIBOXO0IexoIuZ2OgePto851cAavtX2GUjB8yMJFlihRRKiu08eB8NGH458xCFYb4vY56l0M= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4f0016fc-f312-460a-c22f-08d4b6ae7446 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131430075)(201703131517081);SRVR:DM2PR0301MB0608; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0608;3:8Kge/c6vnqFetpG8J1AJPipmTmlWXeC43TYa8kB9oSGPrGwIKAIpWL7BbpSct7v42EqdU3a+tZapFptbvL8d9ShNEsA3sawqvKWy3WAP9dkmNLj/OzuFuy1/AT7ZQLYWOg277TKtj7ed2f1S9da5Tfi7QJf3yHXtFuNw1zdNS3oMpsAUmr4ue9qPz9gMWCND7qVIiGfN16jv1t/1iqrYUjLUOpBXJ+SXObJlF6pMA0wIdNcNcbtD/aeWdpH/os+u7wZkXG8z+Z+Z9xsV5CGqwdC5eYa6+linZtJ2IxazanFFVD9YSbqKvqrG7vaENAUaDwVt5At9VVlvtjNvDbgez7A/9gxl8EEPwz+tdICbxshXNacgkDMrxlnpr5ncYJOY0CF9juPIHFS8Eauyamqdeuu1Cdd7Swuh4TDdo8HkLVxOYL98Xt7x6FPzVfCB/Ekv X-MS-TrafficTypeDiagnostic: DM2PR0301MB0608: X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0608;25:2ZtH+D400NVgnTxVtRZagIp6WWuvxE8Ci+3EyKpQIiO4r3yp28J8MRseAHfzPxq3hAq6hhI3bINPorSSc+qbVTxb9X1Tcf8RDs/CyB+Vac+sQTNF1V01UVKtS5H5pjDZJzzfo9FDwMJlrzvq5kVgBVnR8PWwpLqzUqiFIb5jACDPu0IzQaWU1NRl3XyWPrJPo46Lpn9WFf4kIV8SdkhXzsFGgqbJFTzVkGN8SGfXn4sFXagkUhbedwHilIrzu0xSahdPnUCik2mKomKqWRE0ilxTq1kH9+uhMaBDTckr6yYMRsZ6QlXEr5Ojcf5s67aCrhm//nArxCRZ3N4lLbqCtIWhMKWgaxYmNbb23BoBmJYlJZquzAkw4YH4JZ42bYhU1kPArfxm83WyDZXIRwKiOpHJgtVpKYwzsyJVa5AZ0/ZqsNGaN9o1n9ZCU3SVO4sXesfFX8mlPt9IjXJsyyvyO+6CQ4S/l5yTkYE7sxus4wAWgUk39SJsewZy6kghOrPMsUEHw/igclcCxQQY08TWtIluPr2KEGBzq6W83E/NcesENBVZOniYY7YCgsmv5YyOa5RVV1uhEwbx0zCb6gsno5ynLozI9bVzoCMuMA9VXVdobv9yXSH1meo79tsDiVaEIrQixE4EhppNCVF7Aq5YqjVuW1UDW6J8P1Ks5Q/2juN/PnqZxxQOHS3SYBwO3JfVjtADCqmWRRF8yqvVEM/PFsPnMYM2yKNQqkHDDYcdSFtkiQRbvyynr+UTQgAbQz4JslRvrIoxcREvQMtDGCtDrchxbTxWCLC5OmjXiOJjgkf/3yxdE0rMCJRU0XgfJxsd7sAy6TzX4yodG9poMIvqdNhoees5vUIOG0HgUCxL3nZFQG3ASV+HVqR2vaDaEiq3XuopadjsZUOKdmSyJPLXsxExZF4NlF1Jp5HAdgKOmdk= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0608;31:mvhoVXZNDkLuWHcbXqgHBTzBY9a75H+0c4TZIs60ffXEglJ3Gd9H9VFcL0zKUXAWrX43bCsR49tMIw83s2CIoX2iq6aaU3Y10nscdJ+a93fBSu5vLhcah4MdPXsz65DuLP6IsMijvTw8kqegk0TCutHOEYFl4xc6WlEcZSBa1+3VzIfFjf/DFSsxaTshtJfk47yi91OL16vGErTGSoqrpt+zgF+AC0IHTdnMF8Pa5pTWyE9bV/z7c9/G75oRh0CCdoBI9Oe/kioESel87PjPLYdT/qwuSDXqs5mQuMOzFi5mep6svGFj05DoPg93fVRPsTZRS9UWA5kuATp76i1AMN9eiAj3+FJV/ZTMe8XKWaVGLU2U1CbEAZHLSjBlCXVgu3PqhDXja1WbaVwglSHRw0CfhpEUbnyYabawO/mg/YOSZexqCqYmXr/Qn2Qy+xIZMKVbu8h/A8HTUu2yeVR89vBCAet1MSfem1dgD/NEn7RxFw8/v7eYqWGK0jaC89gG3y6AdbVKzr80aZiXEoGrCltsv0FjhAmYQgKWjUjv9mtJ8iKfhDJhX+Cbc94FAC07MB/bbexWBiI4OY+kQFHO2BUR81Z5RxdNqgObQ3dVEBc5e1/ACjYXa0qbUzNoY6OB+3orYazED3/KBhtwcOVlXpNrCzN0atVYsXKrTfRh7trVDOAdooK1PK6i6JLCrkjjfhFZgeFC17DCz01pStRiqw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(258649278758335); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123561025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123559100)(20161123563025)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR0301MB0608;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR0301MB0608; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB0608;4:h4wGK9qPg7NcVMRvSDzGQxRvlf9Uprc2mUXzmSjX?= =?us-ascii?Q?t9f/qF7TnlzKposb3iGAdp4W73u5+aErVfMd7zM2AQyS9hg6Ri9Ipku84GHB?= =?us-ascii?Q?KQatoxr4MoPNcAn8hB2CLx8tRmjDmny+k5qgvgm3AVrpgZVwUL/GUpFiHzAD?= =?us-ascii?Q?Co5wejSd5V2g3CH/wg2i2p9GJRu33acUXQ1YjKVdlHAEcYV8x2QpeCxuRJ41?= =?us-ascii?Q?PpL5NW5VTsDye09Kdnl55X3B/MqASvq6WhFf+FvwD1chAzdD0wobUjCdFtHC?= =?us-ascii?Q?GB+IGei1snb1iFi+swJfUanYppcLiXsTpFm6VF4qyyBjnzgOOFRLBCQhTMAi?= =?us-ascii?Q?BzOKfu8JQSQrBrHFhfjM5YCZfOalcS5+XnyDRYRc5XISzLz11zDaph0LbGzr?= =?us-ascii?Q?jRa4PaoNC8MoxgLWYbhwEXRV3AI7SVLAVuLLqZ46cj1ykTEnaa6TAdpWOqJ7?= =?us-ascii?Q?K9X3WWq6vpGeESa6kpiwtFoWP7Swso84m1uLszKf1tEHPIhtMfq7b1R0SXJn?= =?us-ascii?Q?pnZQKs+/vQDGYQxwUWqzqoJiCnTb33U0RJHW+N2ktT0h2jvvK/0uQIjmxxhT?= =?us-ascii?Q?jSzgp/ztKu08DjMtYU2cK8VeWte7E/K3hd3YG3yugVOtEdHPlVTc6hs1vb/g?= =?us-ascii?Q?6WuH/8E9mAhmZuVVPjP5O5C7C3bPzwKney5dRJ0du3wJTPOOk+75KzdqfFds?= =?us-ascii?Q?4ijOasuDtllqFQHPyND53Jo1kZHHbcBazKnq1dkgWs6P6HKByICpDOlIL9e2?= =?us-ascii?Q?vQt5eZ8dTftFL8bawn0oBc7y4n5Ur9TI7kJEowWmsnMZ7pko7dyclf79vU6N?= =?us-ascii?Q?Fe2fTxelYk0oaoH5yPQRitNZzfgBmP7BGuFFJchedwWlNyfdK9cvS6QcZMwR?= =?us-ascii?Q?NV6LdshgiWNB17xPZIJV5N9rydq//A0/KKWee9ZdsLvaMyvOxkhpXCPICe+4?= =?us-ascii?Q?DcatdbHNV19w+Wk018F5UAuKLpRxfewzhJWRmEddzf9lBp5LqMfYe/X+9aJN?= =?us-ascii?Q?oA8kfdkkoh0qzgR9YfAswdfu619Cv0mKZDfQ5xoIOt2BcOn2c+8bh+FWR1cG?= =?us-ascii?Q?nAhxjrhy6iAMaMCWoUarTNmufC3dOYOCx/OConNzVZxBOiSW20VK81wGuH86?= =?us-ascii?Q?VBTKsyhiLPwW8wtbNryQ709o/nWd2ApQdVsYydz8Yaz5q+Yz0u667HIb5i8J?= =?us-ascii?Q?eaLNUsBW4A1Iy8gu4uiD319hucy21fM43kpo0/faL13r5ISUnoFkAiuxdCXj?= =?us-ascii?Q?gEqLlIApzJnGzDdoTsZAYl5NXVV15EEm1vchutgH?= X-Forefront-PRVS: 0343AC1D30 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB0608;23:C8Uzs9QNuSKHxXSPccE1nsJA3Me7p0YVmTX1dIh?= =?us-ascii?Q?7tYb1WhumPnOoIGuUDq8GmUSaI5/HtXgeS+wld9uv90Z+Z4hrApNJGYzpXDi?= =?us-ascii?Q?5ocivhFyBOM212RM/ekVnTRFNhTJO+AFtbA3049mD+EsKJXGsULnM5iEfSxI?= =?us-ascii?Q?+DGcFTGESwFlfqwlmWKmyEVT3bS6oDoaZ3YU0YXzQCs44Nl+KQlibQVE3syL?= =?us-ascii?Q?s4mrxIgM86qYAehG3OPYK5bYDtet4vHssu1pEavonKbw0sqkhceDpgyJrnHu?= =?us-ascii?Q?+Ioqn+rsK0ugEUkq57FiZCrLS9wNYnoZN3uD9NJ15HcJg9exmbDnlS+dR0bm?= =?us-ascii?Q?AU23SDZkHBJwpJLd+fTVu9gGJpGhf8GqFUwgOflfXLA5ax1rHBvWIPculuNN?= =?us-ascii?Q?1Rgx8eBkmHH2nhVcjjCroyiBPEJgQiyJTV6Jooc/RwsZsL0bswUs27jzN2xz?= =?us-ascii?Q?9s3NCq9NgJ97cB0sokD7VJ9ihd1C0cTtbwiCXnO36QOV8sr263mIZFJd6/M2?= =?us-ascii?Q?zrcBf4xB5QLH4zCQv4k4Dit4PkY7ZdUQZ9COh49U5a2TqvvXdnmVwOy7JD+f?= =?us-ascii?Q?eGwq3R9gtpI9Y+plR1+hxsMbkwXHuc41tY+4TC26sJDsie/yhbVuQHS36VyB?= =?us-ascii?Q?ViL7nbEtaFT1vI+jCzjUcJHDSVXyG72Yxh9Q9NhQ7sZo2SJVkc7XkvUi5aIj?= =?us-ascii?Q?3S13WRGlGp8FOzzlIySLCbU3lIJTlC60Nc22OFg7+pbJVpHgJmiYQcg5nKwj?= =?us-ascii?Q?pxDOB/YIXc5LImc/2Iloe4bdgm5dhz/5phtzWO35dgMCtrs1283BbJ8yjib9?= =?us-ascii?Q?1URyx6TqgeZ/Z/fjPuyMLsSF08cgWnle7soq3rdF2AeckZwYWj+6GH+nXEll?= =?us-ascii?Q?8wqyqzwoPfBdkB7WXMBpgOpVtY/supMA2uQHHdBiJtiPe8tKA2rJI+dZFyAZ?= =?us-ascii?Q?6lBSpH8pKhv6hz76evCoPY32B3JDeWt6CeeItYLVUepubbzaSgenlAh7kqSz?= =?us-ascii?Q?fbSxxHftslFDG5x0XW1WyOjiHTLxelPPkXtjGbd1I+35tcMYEktFQUXwdvuC?= =?us-ascii?Q?zP/6RGGZMAzV5ga4RNW1/S2jrPZBF4Ny+NjKSTo4S5h/frQmvbcqNOwWbOgz?= =?us-ascii?Q?oTGv6L3HXrakHCmNARHA/4/FiLjwvSpvV3/w954SokfESke3PGOgMsDhiWMw?= =?us-ascii?Q?f1Ho6Wc0YW8yXjp0FJ0CLNbuxB1W2/VUZa5b/i19sWYaF/qtmQLmzllQdyjP?= =?us-ascii?Q?bxMMtNma25+Rk6yc2CKSXGi8eYotAfC8KHQ88KGlnHS1PbxqmxthA8pw5Yg9?= =?us-ascii?Q?ayBETZVLBUyB1YcqGYes5vai3ar33I5FC9RhWIR8LyKo9z8VoEuUEqWljoed?= =?us-ascii?Q?pF1ADKFB5FZn2kqggdlp3P52EQp28C5cwhWx5ygolyUeOu7F9UhaCsPP8aX+?= =?us-ascii?Q?6ytMtZJObSO+3ce48evRWNxIlNmW32xbGarLm+/YcapVHx0whimxLEe3nltn?= =?us-ascii?Q?MhgH0Iwumuo+1jbwm/Mv4bTqb9LN+bxEacT1I2tfxSI5TP2TYanCuS7ZFCjw?= =?us-ascii?Q?KiVJ2NcgDZz3SzTcKcijSLXEw5AtFlBQW6iBgaf47IwkSs3elKHGjGpD+/MV?= =?us-ascii?Q?eXUwrUbLWzFw3QxbShX0W35fJwMcz7XVwYEtn7ckKCgCBavWMU1/yGupVMx9?= =?us-ascii?Q?cOYWt4NsDMS9CitoPLt9lsC/eIxt20EAyRt0Eq9EI3b1ran0=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB0608;6:ghkTPJTU9l4ghTV+g4R5r63Cwua2H/vGMEfSP1dK?= =?us-ascii?Q?wu2EAhHM/izFE0fLc6Fy2+v6DhdKnbCj2z9FcVtzApSXxfXKz0bZ4TQlJ/y8?= =?us-ascii?Q?QT6ej1aSVg8pXt4gB9zsyS2EZKzPVC5Gm9Apr1oe/JsTM9jDKKIonZEdYxd6?= =?us-ascii?Q?bQqfNlO1ruJ6viqOb3MopmMjKJl1sv28z7Bc39JEvzkkOYcdfCv2v5OJXxl7?= =?us-ascii?Q?Ov3SeFFFNA8IWhsq3elOFFJsgQuMWEqrShznMqflG5661urEZ+Lzmm9zpe0W?= =?us-ascii?Q?hPU5WG+auIBNuoa49jippiZ7Uroreib2FzYFmAShZwATUyZybbnM53yvkSbG?= =?us-ascii?Q?qep9xkjA0eoaYhxi2Il70uS9+MFTafxXR6LDhW4sM6SEtSM1062ZkDzOQHdZ?= =?us-ascii?Q?0iLfHMHxlTwI7iDNq6v/Ko8sMQ3PCpreSGARUo+rVNEDq+CLMCK368rO1rig?= =?us-ascii?Q?BxDuQB1OynvpP5mU97yAzub6l5tP+J9+e4Dbr3yGBW0ySBtg5fpDotTFXe00?= =?us-ascii?Q?pnGel1vNwFpYokph4Wc54vlqeTU2TT+76uRPtT7bTsh9tL2FSh6FVQcS+PDY?= =?us-ascii?Q?aVWzrzlVmfuBRSh9j86sL+fkyYR3/pX56an0xz1jdSq7qWQU7wN5Dg+3rIjq?= =?us-ascii?Q?YM+bq7Qwapr7ZcXZ1VbA1Iq2837nbCMnjhYvH4AWBdjx5Z5NSc6p2eOQhNyj?= =?us-ascii?Q?45SyAQrR0d+WLV7xa6Fn+BQQCAaQaFggZwVtOSyPdY4ibTj7Vxb+2iwneE4q?= =?us-ascii?Q?7PosgHsWJP+rnvwr/Zen/78aZkxD6FZtFhUT/i8/tuEIVC/1UmRMvgugo9Dw?= =?us-ascii?Q?Xx6sz54Y+0S6AT4sTb2ep49awr+WG/SanatdnqyH81JzRSyMf7CERn4c9R5P?= =?us-ascii?Q?VmDXFwGP9AwIkNwvN6ULzDXTECNPUcoKSKRbrkPmRqksIsqQ69Wn95eCmVCt?= =?us-ascii?Q?MgKT6wucomQFBfACnmTG9cub3qeIf3tUMyV4VArkww=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0608;5:l0C4GTXdjl88Z5lMebXu9JU1LF50P49k/yTW71/dFCfFZ+JdzMl0IR0Uy7oTAH3TsLLD1WCtEBEBlYIXu0wi6bxkIlQKo6uOlyiKdXerUXfrMA4w8uenA8LdkEdhE0aPoTHJzDJPv0i5z6ctumB2vcvdyImjzR62YNtsLZSmlw0e3acej5IOpv0xQVdMp0Rn3l0H0/eBGWsrUWFkuQ3Y0gAjj4S+ho0gN8EFmx1/Fm7TAHtbB3XPIWk/9dyzfkXnSyKBZ3tH68OmUW72b1102PBwUOj29advQiBFbVLOawkpnTIpZv3iVk4vgSWDCXkTMyXLfNK4hVjS94Kvwz4h7naeu5m2DdayOZx/DAdWUGmQ+JCsP2nSeyZs0SvAOa5lToiWCno7SaBnz+eOPYiX2fv/G/rSKz2sZ3e/SHQ78MW+d82fTAr9Q+E7FQ3P8B/+wn9vCst3erh7POeRswX/NktmX7d4gGo26zNQM42wnhY5bj9jKIrI0z6UhN0DaoRiw0Hs/hVsRzXQIvTdUHzvgg==;24:qsCtwYE3ZJ4NMkwx4s4WSKpWAiGIxjPos/U7FE9MR1A8f7KNwa/iCrMDg67OMfv8XrK+YDkimmpygtQzxfKqCBoC0xzXQr5F+FrI1URQm0Q= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0608;7:lpG3WITHkVzshXr02Suu6Y9J4MEok7I+FxcVhCaDE27SI1W9c0bxiZ+Nsfx2oa9z81eTUXF4vbHgGpbWtOhPkuKqS9gWCyuuvsX/G21UUksLnld6XtBeNGmkn+W4Dlb8DrQOSsdEMVFIcsVcSB7kYN1rwbHwG+VpS3WjBdVRiYhBnEpdCQPKV0uuDx8EtUKGRkSocATqWPFeKbLxz1Q0x0JErmGWdJvxoDYqpXgDuaoB3xIYz/Iway4o5bp4pZCkyIfduiVQ6qpZCp7ITuGCEGhfeNdJvuR8nTi+Kd2k6nAbyf/e829HoxZBXoqV6WK7Qs5QOW6Uaj7cEmMlD4g3Px9X4uZEc40Yc12T1+t+VcHiUuy4iiKwAc2DJhjEjO/lyNKQCQrG9WWnSXpqQ2zDUP26G/Cl5dFis9+91pJdwGYjIlUs3W+qrQouBRuWBoSWgDWurODVSwebT1Wt3c9URUF9AV0IcxwMzOWojZR537hODSKfvxGqhD95bP0gUQ2DtWZkfWZMDkx9ryL05R6dL2CRpnGT0iAqyFZSfOyt8z4aSgzNrwGKYH8bo/yQUZEsZcz7oh6RrpaTMmJ+qru3RkfoXCK7R8jNlzcDRhLVUEi6G5BNfWTX8KIBFIfQVxC+4IxfzVzcZFtA5Nefx2kQxZ7Od8SIGhsX1L1/6YplSAbJrmyQwNdqrKDG9NTJ+C/BSDuzSyVqHIJjXUMziy9IghFdlPR4BifetUV/5QX2J/cyeiw3JnZfz+Gfeg27K2wUw+zChO1pQaBcl94oBTPOOH6dLDkW0AGkN/OOUWd0bbg= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2017 00:59:35.4789 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0608 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4083 Lines: 97 On Thu, Jun 15, 2017 at 06:06:04PM +0800, Peter Chen wrote: > On Thu, Jun 15, 2017 at 11:35:20AM +0200, Ulf Hansson wrote: > > On 15 June 2017 at 11:11, Peter Chen wrote: > > > On Thu, Jun 15, 2017 at 10:11:45AM +0200, Ulf Hansson wrote: > > >> > Yes, you are right. This is the limitation for this power sequence > > >> > library, the registration for the 1st power sequence instance must > > >> > be finished before device driver uses it. I am appreciated that > > >> > you can supply some suggestions for it. > > >> > > >> In general this kind of problems is solved by first parsing the DTB, > > >> which means you will find out whether there is a resource (a pwrseq) > > >> required for the device. Then you try to fetch that resource, and if > > >> that fails, it means the resource is not yet available, and hence you > > >> want to retry later and should return -EPROBE_DEFER. > > >> > > >> In this case, of_pwrseq_on() needs to be converted to start looking > > >> for a pwrseq compatible in it's child node - I guess. Then if that is > > >> found, you try to fetch the instance of the corresponding library. > > >> Failing to fetch the library instance should then cause a return > > >> -EPROBE_DEFER. > > > > > > The most difficulty for this is we can't know whether the requested > > > pwrseq instance will be registered or not, the kernel configuration > > > for this pwrseq library may not be chosen at all. > > > > In such case it is still correct to return -EPROBE_DEFER, because the > > driver that tries to probe its device will fail unless it can run the > > needed pwrseq. Right? > > > > Unlike the MMC design, there is no dts entry to indicate whether this > device needs pwrseq or not at this design, it will only carry out power > on sequence after matching. So, return -EPROBE_DEFER may not work since > this device may never need pwrseq. > Ulf, since it is the use case limitation, it can't work like device driver. Do you have more comments for it, thanks. Peter > > > > > >> > > >> > > > >> >> Moreover, I have found yet another severe problem but reviewing the code: > > >> >> In the struct pwrseq, you have a "bool used", which you are setting to > > >> >> "true" once the pwrseq has been hooked up with the device, when a > > >> >> driver calls of_pwrseq_on(). Setting that variable to true, will also > > >> >> prevent another driver from using the same instance of the pwrseq for > > >> >> its device. So, to cope with multiple users, you register a new > > >> >> instance of the same pwrseq library that got hooked up, once the > > >> >> ->get() callback is about to complete. > > >> >> > > >> >> The problem the occurs, when there is another driver calling > > >> >> of_pwrseq_on() in between, meaning that the new instance has not yet > > >> >> been registered. This will simply fail, won't it? > > >> > > > >> > Yes, you are right, thanks for pointing that, I will add mutex_lock for > > >> > of_pwrseq_on. > > >> > > >> Another option is to entirely skip to two step approach. > > >> > > >> In other words, make the library to cope with multiple users via the > > >> same registered library instance. > > >> > > > > > > No, the pwrseq instance stores dtb information (clock, gpio, etc), it > > > needs to be per device. > > > > I think you misunderstood my suggestion here. Of course you need to > > allocate one pwrseq data per device. > > > > However, my point is that you shouldn't need more than one instance of > > the library functions to be registered in the list of available pwrseq > > libraries. > > > > This additional instance is used to store compatible information for > this pwrseq library, it is used for the next matching between device > and pwrseq library, it just likes we need the first pwrseq instance > registered at boot stage. > > -- > > Best Regards, > Peter Chen > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- Best Regards, Peter Chen