Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751385AbdFTCi2 (ORCPT ); Mon, 19 Jun 2017 22:38:28 -0400 Received: from mail-by2nam03on0051.outbound.protection.outlook.com ([104.47.42.51]:19088 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750844AbdFTCiX (ORCPT ); Mon, 19 Jun 2017 22:38:23 -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: Tue, 20 Jun 2017 10:37:46 +0800 From: Peter Chen To: Ulf Hansson CC: Peter Chen , Mark Rutland , Heiko Stuebner , Stephen Boyd , , "linux-kernel@vger.kernel.org" , 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" , Sebastian Reichel , Mark Brown , Philipp Zabel , Shawn Guo , Subject: Re: [PATCH v15 2/7] power: add power sequence library Message-ID: <20170620023746.GB23731@b29397-desktop> References: <20170614015338.GA4635@b29397-desktop> <20170615065854.GA24157@b29397-desktop> <20170615091131.GB24157@b29397-desktop> <20170615100604.GC24157@b29397-desktop> <20170619090259.GA23731@b29397-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-EOPAttributedMessage: 0 X-Matching-Connectors: 131423998998064293;(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)(39450400003)(39410400002)(39860400002)(39850400002)(39840400002)(39400400002)(39380400002)(2980300002)(24454002)(199003)(189002)(9170700003)(83322999)(87572001)(8676002)(93886004)(81166006)(33656002)(5660300001)(305945005)(46406003)(106466001)(81442002)(73972006)(7416002)(7406005)(104016004)(50466002)(68736007)(50986999)(76176999)(54356999)(8936002)(73392002)(105596002)(498600001)(77096006)(23726003)(1076002)(53936002)(83506001)(82202002)(229853002)(4326008)(47776003)(54906002)(33716001)(8656002)(55016002)(9686003)(6260500002)(189998001)(76482006)(6246003)(2906002)(38730400002)(110136004)(356003)(4001350100001)(39060400002)(86362001)(2950100002)(97756001)(6916009)(6666003)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0301MB2003;H:tx30smr01.am.freescale.net;FPR:;SPF:SoftFail;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD027;1:pZDr1/yoRfZ3ZuFEe8lbor56XlPppOdlflS67O2sKzjEAs8b3vAR0EGfHgxGmLuCQQFJmclTi53Ka2CCHk4G4V11J26WXhTxF1N6PoYAWBiFbPOCkBOZJfqDZxqmj1ksRn6nkb1CQvq0ERQzEy6rsbh0xnjsEk9lO4Ekga/gI8baumNga4+08PoTEFR1Z2g2fqDIwHb81U+mwtXSRs0gKfTJlCo5MrzkgLdzHkOLOmFtWeSrkinwYPbsxix43fl908QVkDmYQB5lVIFsgmx+bPAmz4MHYB4bBW4bKTZUpC0fvfZaeETkUAzCZqqx+z7FNd0c6wE2MCCyp7aJBahAMJ3oHvCaj0cUVpnYjclRXpjuLTBMfAGHABsqal19Jmz6vh0ON6YEn5+U3ZRI7oSdfFeDgVkYMWnX9XSP8Mv4UFjIDiUnUdWQBzM/mG4Ekdfs8B0zStGmizJXijp1NIXz4e35ldJQcE+YE5ONytM/dU8dSq85HL09sF7DpsUuLNgaQ++H38RecRy5KDC5W6uGDrwfAazXQf8QC8loFuv6+iPd8XzT6B1HMWwE5c7J0oDYazScKV3tRSDHvFUw80e8tigpXEAVSMdlajadJSy2Jmo= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc464bad-56ab-4bc8-4b44-08d4b78569b2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131430075)(201703131517081);SRVR:BLUPR0301MB2003; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2003;3:IxwA46CO8lon5lF3aNlGbwguVunVMRZqsnDH7Fz/GBJ3sQ1+jiUzaaREJ02Ds+nbtidqQImGsoY99mlBOhVKint82k9li//jYFMRYOdQQ0eKUhe7gbkrvpLDxC/PqZCPSKL32yqtPCEHbmySH+FBp77DpmxW8vXelkZSfkbnJqtyjyCHbNBRbKVXXECHZCDAfTsUv5CQSEF/iIYYDyhZP9Lw8wDwtuqzto22oLp2+g+EGD2Nl4HNTOPCnZa1o3MvHozl5v/KKAY9tzDbynnR81b/lsr0Gigu7+FJdxbFZClnCITnlD+fC3mIHqbzS6zmwfNMXxMN78c8iqIWXnZdhE26IoaSKvGdTe15VY6iYOnvorg1k4cOI/PDWXoK79l/nAkWc/i4l0bHKZVN1OXXiSvXwWvwTVlbzgkZvp6HA23VT/731JrY+cVhPBkFO3jW;25://aA29o85MmN85O2PiCtL/dK0opaDUSOikQ9I5ed9aYS5RwdyuigjOCKS8lLmzScD+mzNKS5HV4rFOFHv1Gcal06+EgAXVTjTm1AQ1cjF9JKcqwqDXG9GXi2ipOfKSdFxy3ne/mmiT1x8dxeZxvTw3rKHNGMq57Kkhr3J7qRA/TjTfA5fJVnrDcG13AE2scGERpx+VLTCpp0rd69OMjjh8JfrFLIjWHGUTgVi7m4XfKdCL/dveUhO1SvwZ+Oe/QMsVvQSFRcrh+ClPn5jQqzs228GUuGvFghiAMk48lw7mEt853No+akkKOxq461aiq4Nndmq+lQ9HXxS/2VD3Lf37VA+dGdXtHxpu9Z81gAL9dySpxFFlRTZ5/JZr96rt6CBMpGcoNxRAdBVAXtGVpqepRLnLduL+MhOyA7bev9ciRRzBSJU3mlY388//nnYCGd9oKHWdTQU4V/TK7LNaijHbauhrnY5OCUSm20DHOP/O4= X-MS-TrafficTypeDiagnostic: BLUPR0301MB2003: X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2003;31:en+SB1O7tO9Gg2EsdM7nh8EbXdvdq3wfvjdvwfUTD5fXoD4T/nQ81C6tR9TRBP4Aqd19rlzId67ZC7gAdarp0IGiit1BKGMDzq5apCW6XNIU7CsJSW0bb1TBL0XtEGLra4CJPJYG++qlQjtTSHc7QnRTzE/+eaMVY6NgeXZBcVybzCsIdvXLK9oXoTqxhvjWAHM/uEG4gye6t5jJHMU7vUIc2wZ+ko8HkPrPu4fNn6kEefoC7FL02J0HcOTBWSFRkEA2BG3h28bIviqtANMgjQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123556025)(20161123563025)(20161123561025)(20161123565025)(20161123559100)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BLUPR0301MB2003;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BLUPR0301MB2003; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB2003;4:P19wItdN/xZDCnYI/ODJzjJbfo7zFjonZXxG9QLk?= =?us-ascii?Q?44QHgCxcXE2k+JdN4yi3Uh17Mily2za5UugYa6Snha9L7+MG93kA/rz/c7PU?= =?us-ascii?Q?YimmJt1//IBnlnGhC5537EpvTetD4e1Y3ktSjml/LSoEAyXJ6yur78Q/N2xZ?= =?us-ascii?Q?4OGstGOPjBBT+/ZHhWE6idgTkIK6Jw/ghnGuT3nJnCz+ABrHO7pvTN1PqNGp?= =?us-ascii?Q?5mPL9fzGWUoXzDEzvJ/DAcMh+OJjqjuc7oKujyrbquMvJJlqRowtj8JENJjU?= =?us-ascii?Q?JTHp9+0LoVASbBYDum/sjgTEDDnQ0/81BWb0jvc8VRq6mviGNJIuhK4V6uim?= =?us-ascii?Q?WQy0WpIygLi1f/SXGiAljX5pmt2jhtr20Mu31C1NrB9Xxkp1MugDSTUJeC3w?= =?us-ascii?Q?T58gI1bKZTDZkS2pNfa8Q+LmZuaxYKarFBOKCTkQsvxNBREjBaxEGIAXopr0?= =?us-ascii?Q?RyVMkiyhSb+ezEDBJ0JlVgvJOfjk4l3SQ/HXZJE4NKUpenlNJwGEgzuqWEVV?= =?us-ascii?Q?gSYDVbns1EXS6pS4usbE6gVsxSlJ33y7XGkhPJAfWtCR1moMltiNxvsFYshW?= =?us-ascii?Q?wstacW3n3jEblASlnplmghpzC7F2KH4dsSzJGC4bpxxqOfD7AFuvaxxsKKiV?= =?us-ascii?Q?CBvYoTc1V68+Hz5Kes4QhTyxk/jsmC70sMEAOG8O25GxqGMdufkCBpXJ0NV0?= =?us-ascii?Q?6H4wLuH3VDTsVkFCj5sfzzvjho/Ho7UYN097SRv7sdsGcN5d2fO0Ry1gbiAM?= =?us-ascii?Q?4X6g65A5cgWkxK2FvFHcfpc9Xe+uTMbJ4+1g6CN6wT62ktKaAXrAFHiu7dA4?= =?us-ascii?Q?Yi9fp5AP8degqbDzyYYznimZzF+68ebEsSoo9AZ+FLfZxzv4egGnz8ewX14X?= =?us-ascii?Q?gcU3VlZEZUBAaAbTN3L9mdzoAxiqMLmJ+Hq1KuKhDvJXtAEt7p9Z+mnk0D1o?= =?us-ascii?Q?Opt61FJDEcveyXZc8FEfgV317ju18An+sEvitGetSB7w+5OMShStlrEAjW7O?= =?us-ascii?Q?yK2zW8fVoxaw8TNZhSU0eKUvbHkQpVhHW/eqf8C9E375rKexBfkO5y/Curc7?= =?us-ascii?Q?FnXb7lEl10bpr1ojt8M9ziM9/tbjl4X6fdftrR45V9cIdpthq+3VLcfiQpa+?= =?us-ascii?Q?+XcgwrgzGhoji7+q+i4TvmKX5Itfjvq9y6fNqJN9U0lgwSgw43O9E/r83br8?= =?us-ascii?Q?gO9ANSCjIaEejUJI5H5ZLAjY/ACL6yJ6/Efj8Cmdgd4joRrVQu/YJhwNsw?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 03449D5DD1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB2003;23:rx9ab/PVvVZK+Juvv1O/wb/C57HtxMu0exoGQfy?= =?us-ascii?Q?scQ9hJfhtChDfyQCR3e14eHwTOTOOr6hy9fbaO9SvecDjvcMQKlkTUgGNH2n?= =?us-ascii?Q?UzL4K7Yt1eZ8qD9vLmxemwbwzmteXC3jFgL01R0k37GDgrcsObsDDuW1RHyR?= =?us-ascii?Q?tZJFvErc/DqvjAUlOnZrP4RyBjT2q82tFmvvnu95sCcBCZfohX06lFRkXaae?= =?us-ascii?Q?OPI6SskxYNY0hNdfqoujZS5AqTcJe8JiRoba5FvPo3dC0JpvO6CKoJvT3Aos?= =?us-ascii?Q?XMnWJvnq1sLMzJmbVXe7dmtI5JOpxruOrrjSXSe3wXSPzlvlaAAfGTtiRehx?= =?us-ascii?Q?6B7P82CvG1zJ4nQuObwE9DJVyCp0Vsb35f4Lvt08poFDGP5lLCCn/ZpHZPP6?= =?us-ascii?Q?Kt58+Sp+V0H6HN8NI+cf1C2B+rfCzbXtaFw8vhQwErHmII/0syWSttghAx1e?= =?us-ascii?Q?KArJ4E4J2O/CyttqlnzhtnRaigN7mB29Ab4T/bNI0lA1BZeH1QiYB42ammFo?= =?us-ascii?Q?j2aRFyCEvlbQHK4PTbEG/FroQ4Fe9lGAxHZ9b7qmgxiacHzjEPiFbSqCipwG?= =?us-ascii?Q?nXAiAy3ASBar3VEkHOZiS/13rKDXqYYMRzfdRUguOvBJxRlXqTCpSw1ddWIQ?= =?us-ascii?Q?KMT9O9Lxk2FKGPHb6LMQCYA/h/gqACPfDP/3ZLLBk6EASaOlEOEQKhlJxzR0?= =?us-ascii?Q?xTUskD2tZkQjBS5g0SLBzpJR4wbt+gOsA+BKE8QJ2uZu3C/Zx0xjokG2yN3B?= =?us-ascii?Q?/jtCWuY97UL3RSoqgNgNcD8cHNRXBqzhRqjNYCLf0sfDUJqB4bLEhn6gINVv?= =?us-ascii?Q?vXy3QZHNnjC/iloJ1PcH9vkno4CxUatzClMjmxJLt21CNx2ippYiOiR+v/Dg?= =?us-ascii?Q?DDFOFbuNQGwZSoMQRT7PNVbnYgjkrB6Ky3uz5V69kue1bXBEiaoAupoGYkiR?= =?us-ascii?Q?EnqbuVKEUOideZcVq/DoTVfBGRuQfH05PV1Jzeun6XKoqCFZO3XSqwdtkoNr?= =?us-ascii?Q?fOP27d3JFXCjU8xg10duzJf+aRbvnbyI4iJH3w58ZzZ8YBmVYKVMnz3W+6Jl?= =?us-ascii?Q?9SWFDE/kq2ktgRBWH1gzrDL2NPcJaJREUNvGhFP7ECHj06miyO8wlNfld2k7?= =?us-ascii?Q?hm6jNhoYgFsdbbqErkkH69eH25860NG6ZsnYakySvX3eif1JF6e1LxffuoSA?= =?us-ascii?Q?+EMzngahReRbcPr2DPyDz47D0iptl4ffSIjMWW75xHpt9AacH/KKw3ziqqLa?= =?us-ascii?Q?b/2CnAIE5I7Ex0dobISUqEyUIF15x+zIMgM83FShnBBBKS3u3BuUU+MF6Fm0?= =?us-ascii?Q?SWlWBkThDZz+z+HhBa5LyhM8WI6RM3/Wx1YkcTaLiTT/CNmNYrquACr2AOAF?= =?us-ascii?Q?HLZK1OmaoHmMcarb1Qw1UypOREA6Q9LRNK6nCAax8PE5AbJd+6zJ2HN4H7aX?= =?us-ascii?Q?gy8Nu34pqLf5ZAFDxW3wqxmVVsnyusBCDXQK6HRhpB/Iye0KobFuqe9U3MsE?= =?us-ascii?Q?xCoLxxoWvOJDV6g4AK6pUlT5k5mjumPNct/LTuIcqXoyihaZv3Pd+bwOibeE?= =?us-ascii?Q?lnfNVUNz0HSH5GuaprNGg6Djk0mErT5Zt0HgWc6PTRsi1R/2KpgsPYTif4Uu?= =?us-ascii?Q?i2yfkPsAhgBvyjPDL1nEj1zI+EYqlAGZW6TxCsX+myF8=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0301MB2003;6:SLiYRMAIFDtlMBgTxj99aiay1ujvY8oGIBBkbUnd?= =?us-ascii?Q?0h+pRojoNQ9PSg94AJ15Kn3Tx5ChAvW2JT/LuU5HTFaY0fPdvRmvsfact1++?= =?us-ascii?Q?EUVPB2B+IDw/Qvor83VOSdzidVp2kHOc8QVJIywQEHdxj0qOFf3wqzkqy+ip?= =?us-ascii?Q?Z8ZPuD7R4OvXlvHrtIpKhKwtV3tTfd6YFC7pKelF5eYiQbbbIst+TTsK3pjF?= =?us-ascii?Q?YOpaQ64/l5zkzxjGGXb5UCgJ6vTvzpSDmAcu35n6LxL9NkPqn1z5gt2JNp1r?= =?us-ascii?Q?hYL0NquSqSMoQfMWiJzHG95bvxMtwnca2N7FOcNyr/fL+ZEtaPUwErC0hFTz?= =?us-ascii?Q?1BAj8ROIBTEqhrXCnGxHv1PyuCk3zqOlCphECKhdyOmdbN2zQAyn7+Gv2GX5?= =?us-ascii?Q?nEJCe5tjszdTDI7lJRht+zfUW5Eoti3ajxnabwy1EAzRlawNSnN8muFapa+X?= =?us-ascii?Q?rsRvDNkqlruIeUq6TiJwahAJCiseM9ILG8zBDxA5GdR9WMLWAdDxWUMNt6Tq?= =?us-ascii?Q?RXz3Dkt+kgz/e0Xddrg/iIS1AzuGDKZQnxBebqUKRWJlrWmDeopHNQDaCzHD?= =?us-ascii?Q?+xdZaFOGqNVUGX8m6fYDeCQ1tcF4LgRR1k084Anej6Pfg+Cl7aaI6lyY4XW7?= =?us-ascii?Q?0E3+s60gsLhjQ5xh+LAZGoJ65wyO04Htfr/YkIxVtT4J+svtn6Nqq7NnmQ/n?= =?us-ascii?Q?zJmwKS2VjM4LC53k9EXBAkVzws7X0bqsq/sNkAQpQXfqwPGO2IjNJo9RGAHb?= =?us-ascii?Q?HU0aYcwL6LxOr+LBHeYoUsNAjX4s7z/VGHYmYx/R2WT4EW6qoM1O90xZ3u3J?= =?us-ascii?Q?ZQPeBXEd6o43PfSgFtzzXkvMvfadUoePw7DxoIz17dO4g9RkaRxGAVLqJQmF?= =?us-ascii?Q?4j3VFZJmuKH/3KFn5ESN611DbutuNrIC28XoIrzT0PhvP8idy65saOACwyLn?= =?us-ascii?Q?MOx2Ps+jKUELSrPH8PWZ8LbR5UCfTYdG0jFlF0bc/g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2003;5:wIMXWaab+zJVDENM9bISlzxRP7PvbBYuMvNH6+fCPxx0Pw2nuwnNAGFwrcXInRKXjDU+MwpZ8UBg/jhcNXBTo3RLWBLY5t367hjQTcUYy8CQlsWsjgnQSWdZmD+voTKihDfT0SKBMqfu26DWr4Zp61lE+8ZkTcG1TqT7kX0shZph+9rMmsLZ1NpBCNcsL67aZkzUA58/5/EEro5Zmn3HpPKJ2I91ybXko8RSC49oBrshd97vM4MQNSSDTZYojQxjIyYwPLToAIJywYB6A9KQ6ZI/ADOR1wuQPv0Jj1N/8fBYbTpLGtAqAoM2QTPCLoAxAQXbFvxASdT18WfvHFuJLUrM4YoQmD/EWugL5M7gk5Wcqs2ZS60jc2eg1/73K0zT1MN7oFI6souFyHSUI5r4x+rNE78N2mdo0hd8F3jk4RJUGV56Tfis6zmF9hJ47zD5n/kJQJkazVX3MFTntm/dI+gr1U2f8Zfna9ttwxgfsPH+zCmnr7VKnYgizqZsL2xi67nVgh9ZgglP9nyMHKxm1A==;24:9PCUukORymifbQ6s1ODBAKJpjM677MahjkqBrZ4dM2lUdtr7f58bjMU8C5BefXCn3pDyK5ITT8Sg2lO0QhHPB2yvW6EqA7NsIgoFb1ow1K0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR0301MB2003;7:jobznNGqCDHbxINCRmQ7qMUvX8YbtIP24Wvik3luuP0+F44L3ks9OMUSDS6+SPxjlLXPAELKoOdY+yKDTErzBS0FwKfWmoA8DbOjphQaJAD8LqLolC5340TSD4AOOMdQjtXzT9z5+PjrbnH4YqX3NMeQZVeNSD+BGLh72mYjXAAQfm3tgD3aCOHYtFtmYUuSkZPfX9sJv8xK1ieiuVi1Hr2DGRgzcW3yM3w61AajBpNf8DeZSfrcglDvQ3Y9iPHIiBas7k4jzDSeR2FiA1wIgq2yo8lkmTwMroJ1X5llgzNCTFOXEdY0REOqXtyr4mwtEpYPm4UNRdJdV9xLuPLnasawXlNpfFArTxTwqtUi2ZqEEC4WKlq27RkrcraO5zHplGCFzuSkzy+kHHAVpkSCiq++wqGD5zXzcEXr8+swRQK72Md/WsPiXVJcEhcZ7Yx9B42m/ypOuOX4tc6WGxQ5fRUjw/ExsUa3Q05w3xp2y60vIvnQcnEhkOCPsyDJMHxJBxWBAX5KF2v99C+zLOd4BUDajkt1Voa/3vTS8oK32BLGa7P9F+L0xsC5pc1mLnsBa2RpBpfefiIP7jYwzgCphoe1doSRCcvtzfqDuIKnQZ0o/Y4q/YKwh+35DuVip2SZkPqk31jH0TnDFvZuRG9d6LksKCy49ey5qlJlXW2BtF+K5Vk8pfU8eh0rgpbv6qkhvUZW7JVHng+wGBozeOOs1sqH43+FOrABqnbqtgbhzyA0yiyWkHOiY2d986cli5oeiUBumNRpv19h/XxoG6IRSpi6pvQBmFmhL2lE2IIpKZk= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2017 02:38:19.4944 (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: BLUPR0301MB2003 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4216 Lines: 110 On Mon, Jun 19, 2017 at 11:48:05AM +0200, Ulf Hansson wrote: > [...] > > >> > > >> > 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. > >> > >> Then, how will you really be able to fetch the correct pwrseq library > >> instance for the device node? > >> > >> Suppose their is a *list* of pwrseq library instances available. In > >> pwrseq_find_available_instance() you call of_match_node(table, np). > >> The "table" there corresponds to the compatible for the pwrseq library > >> and the np is the device node provided by the caller of > >> of_pwrseq_on(). > >> > >> Why is this match done? > > > > The compatible in table is from the source code, and the compatible in > > np is from the dts. This is the current match way, I comment your > > suggestion below. > > > >> > >> Why can't the match be done before trying to fetch a library instance > > > > How? If there is no pwrseq instance, how can we do match? > > > >> and then in a second step, really try to fetch the instance? If only > >> the second step fails, returning -EPROBE_DEFER can be done, no? > >> > >> BTW, I didn't compatible for the generic pwrseq library being > >> documented in this series. > > Seems like you need to update the DT documentation for the below > compatible, which is used for the generic pwrseq library. Perhaps this > is what puzzles me a bit on *why* the match is done. > > +static const struct of_device_id generic_id_table[] = { > + { .compatible = "generic",}, > + { /* sentinel */ } > +}; Sorry, I should update this "generic" compatible at 1st binding-doc patch. > > [...] > > >> > > >> > 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. > >> > >> Why can't the compatible information be a static table, known by the > >> pwrseq core library? > >> > >> Then when of_pwrseq_on() is called, that static table is parsed and > >> matched, then a corresponding pwrseq library instance tries to be > >> fetched. > >> > > > > So, you suggest allocating and registering pwrseq instance on the > > demand? Eg, we maintain a power sequence static table, including > > compatible and allocate function. > > Yes, something like that. > > > > > static const struct pwrseq_match_table pwrseq_match_table_list[] = { > > { PWRSEQ_DEV(0x0204, 0x6025), .alloc_instance = pwrseq_AA_alloc_instance }, > > { PWRSEQ_DEV(0x0204, 0x6026), .alloc_instance = pwrseq_BB_alloc_instance }, > > { PWRSEQ_DEV(0xffff, 0xffff), .alloc_instance = pwrseq_generic_alloc_instance }, > > What does the PWRSEQ_DEV() macro do? In fact, this should be compatible string, I exampled it as USB vid,pid wrongly. > > Since the pwrseq_match_table_list is static, we can always do match, and > > will not return -EPROBE_DEFER anymore, one problem for this is we need > > always compile all pwrseq libraries. Any good suggestions? > > You never returned -EPROBE_DEFER in the first case. That's why I complained. :-) > > So, in case the OF match doesn't succeed, there are no reason to > propagate an error, but instead just bail out and returning 0 to the > caller. > > If the OF match succeeds, it means the device requires a pwrseq > library to be used. Then, pwrseq_XX_alloc_instance() will be called, > on demand and which tries to fetch the resources (clocks, gpios etc). > If any of those attempts fetching a resource fails, its corresponding > error code should be propagated to the caller - including > -EPROBE_DEFER. > > Regarding the "always compile all pwrseq libraries"; no we don't need > to do that. Instead we only need a to have a stub function for > pwrseq_XX_alloc_instance, in case its corresponding Kconfig option is > unset. That stub, should of course return an error code. > I will have a updated version for your suggestion, thanks. -- Best Regards, Peter Chen