From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751673AbdAYNsD (ORCPT ); Wed, 25 Jan 2017 08:48:03 -0500 Received: from mail-sn1nam02on0074.outbound.protection.outlook.com ([104.47.36.74]:37088 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751497AbdAYNsB (ORCPT ); Wed, 25 Jan 2017 08:48:01 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jan.Glauber@cavium.com; Date: Wed, 25 Jan 2017 14:47:48 +0100 From: Jan Glauber To: Ulf Hansson CC: "linux-mmc@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] mmc: core: Pass node pointer to mmc_of_parse Message-ID: <20170125134748.GD3033@hardcore> References: <20170121105956.13020-1-jglauber@cavium.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [88.67.142.24] X-ClientProxiedBy: DB5PR06CA0038.eurprd06.prod.outlook.com (10.162.165.48) To CO2PR07MB2582.namprd07.prod.outlook.com (10.166.201.21) X-MS-Office365-Filtering-Correlation-Id: 560a324f-dbba-4cda-98dd-08d44528c631 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CO2PR07MB2582; X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;3:5uddV5wVylZU8QlppNi0KHkpD+f3uSmsNBl+FEw7Le8M94svCpgIpXirhFfoAdiVZaXn/eBaDhNR7SZsBNLgK9U8q1LkAcHRyvSWlhNts/KqbfRCwa6hfD72RrRBUGWGeK86opxjqb7rH2KBoG9ddKHzJ1aEuPwgFsPlx0xsiSdm5K7Z41B+VvOo2Hv3T9JP2XboA5YcowLRdSnun3ykyJ0arzCVNmS5lEXsbxgRlLH5+DGXzR78H1deZjx0xhn/wJXXJn8S4gUsayXxEGUbIw== X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;25:/eunH1EbtK8VE0zabGOhrUtouFsB14GcoPc94X5QVv0T4LkCPI1ItvBLsQQ3nDBpjrSd5Zp7v6BOXnWvgS/+3BcwMIxqbKrDBsyJL59SUW96MUNIUjBegLkvQ5oUGcRWM0GdYPLrozboyzoVdrTh9Y+0xZOsispXlbU54NDtpzhUZiryJauGljJTyRIqkWgFVvACa98oo7TMIo8ZuMRuW6pq9g47KDuNGohcYvYwX6Wyq1iN7j28Eoexu4Qo7iJwFOjXQEA8wO8B1We2uUjj+uhG26TUZiwWZi18FDe9IKdZtCUR9vUhEdw9OQ2lFfCYSD0idBJA61DS1w6oFe1LenhW61lpm215/KAzA3bTY5GfCpPRVIhUZrlxwJoCy4HYhv0gVk2a1uZxbSdwGOVetYIRaaI8a4CsU2QIRtya0hkaxIda2AeClCiPvaepFawGqMdmrdobBk41Y1txOKLsZ4CKlchWZAfMyD87c5yif4SHkWo4dAgZ4bANcLjUPwhfzHKD0JjolqJWjnOQKrbVF6u9llQNmi82bPrZNsoIGr2Qx3FYx3IO3HVzaxCQqLwS5DKlpTobGOHbvyKL44TceHLsfm6ICjPiphBgPtTCKqcoPySeOu5dyD1Hl1RqyoFw/vxw07TUdIKCGWypi663XEqODcdsbYwB0Xjjb0mleyJsJ5nycmaOXEOWRT32RdSV/YKWnMiADnpoxg80a68M/trpdCNcnHDgAA1EE16GnQBJ3CVHCehfvecfGM+Zgj2zIe7Ut0ItHUE2bXyY+FQMpB1us3tKQ11oNLoOFCVkA5w= X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;31:qspsQoYKDkcgDNg5S2QOAdFV5APJXIGfK7TYc2leXbxznbr0n/sQfisTk+7smFFtQjjK+GUJRV5TV3K/iCJEnJcgNUWXKAnpsWj0r4uL7iSp4K1y4CsR+OPZzeH71lbyyFZLb+RMMiH6sXXPgZ3Rnh3pNJ6ol8V/s9XuIc5QjCb3rpS+Vlmi/dcfj0ONQp2LRSJWBbfjXVL/f9hlDNVUmIAi27sjaFPAIMSvTPSpqXrntILNknR2TCl3EMs3kDUmFy1Xz6HX1e5pbq4xnyiky98sIIDOBydwA5EEER/b6wE=;20:hAL5M+yh9Axw/N9CQmwQrHTdlxuZ9e/J+7CSatetWoG3Wu/hWF2jY9uqqjQlO9a5cIUg10mw5l4n/ySG7hU0yWH3L4gtKqHY30OPM7EGGXu+dWJwkTi3crDU8jht0yjz2lM+OsY5sFHY2ImAZg4R4CwfVX/Vw1Y1Q9eOfjLlexDsMXAYRLyQpiZcFNE29a+8dh4nOx2ON1r2otUy1irLAks+y6fZsxJ3hTXTOTqMRo+zIHZyiC0ieiz8mjMTho2t1rWoEA3pyndKinYUVBBc1TIEoY7i4av2iw9MLsX3RMp8njv1ONPjH/KsYZLxrR6OJo9DG8SnqHNg0AESmWx3TKH85GwlJNJODjCPmKGYKPpgw7R4BTVk8qoTwafuDmRZC5dCptTfI6VSfhkwyk6p/8uiBnT+y7DC7KzMVcdUGLfLj7Xt/tpjOAPeHNjQVfjtqpGV1mZHePhH6Zl3sxecIruF6ZOfsInmfUcmt/CODpSXrd5TECvXrPfTPYREJWeoGfShut+YPsjFGm42WihqvdYpu4ylytrJCKi7EUyVo2p3KnaellJdjZrhLQLcoMLAhkP29kW0rW3gxUVE3B2Ur+iNXYTHS7FRa3mqWrZ1YXI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(6072148);SRVR:CO2PR07MB2582;BCL:0;PCL:0;RULEID:;SRVR:CO2PR07MB2582; X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;4:HYMfoaXiOyAz25Qd1F8/lTnXLw2RySU2U9Zkz8Iuwg4Uul9Hs2P9enkMqN/vus3wDKMdE2H86Yon10FoR8HNvWnSvRAFtmzgbr5jmk4kNP9H1LlaovYi74mABcaQWKWR5o6SmPOSdtkzDxmtO0o/CrjYf5ezm1g2aBvkLk1QvbZKq6uSwo6mIIP+sRohhchI8oTSZ6029gl0uzvb/xKFU8cKwNRwROwAkX9UbOHsycK+2Wgk/M2PIMyt9WmOkXaSdM0/rnwXjzw9rQFyxXugnb0c0siqQyxfrYYJYbX8WZLgRCZJDKXs4CFTp9/6Y58SX7OcW2tTYePjqPtvzi81Soayr9YtTiog/GgnGk+UlbWo5A0gvYmJ3H7fInR1GsYL4u958npZfnbZFq2qDlGYi8YFl2RIYrDvFSSEgHgw5OZWfyBfX4172JAmVH1+PFf83V3hja2yKpFqlln1dWUt4ebzx7Gu9it5GBsAko2rfRcPzW/GfqVrzZua2L/X4FljAsj0GDJYxaPuWR925uuQCc5BSwjhdvY6pq4jmIZ0fS9Xqq39pEt+l/Wnu/sryEanQt2G1DFOp0/KvvsrQyvyRQ== X-Forefront-PRVS: 01986AE76B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(189002)(199003)(24454002)(305945005)(54906002)(92566002)(97736004)(110136003)(81156014)(1076002)(9686003)(33656002)(68736007)(54356999)(23726003)(3846002)(83506001)(4001350100001)(50986999)(6496003)(55016002)(76176999)(7736002)(81166006)(4326007)(25786008)(6116002)(2906002)(106356001)(42186005)(6666003)(46406003)(33716001)(47776003)(50466002)(105586002)(38730400001)(189998001)(6916009)(53936002)(101416001)(42882006)(2950100002)(229853002)(97756001)(5660300001)(66066001)(8676002)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR07MB2582;H:hardcore;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO2PR07MB2582;23:2qDbF2Z30/efgryp8VR+8mohAffn5IRsi92GD4khc?= =?us-ascii?Q?II62GuNNPDj6qRKW7SgllkHTgmrzzJvWv9aaVESKgRaUGnDLdNPc1R4rmYrZ?= =?us-ascii?Q?z0d6z+7dn6ddnmFwpYoADhN6tS1LGJs8vFiNCmFOKcEg1NuohuvzHqZ85Rbw?= =?us-ascii?Q?98I+HR/rf9LXfwq3Bh/QwmUPjgdlH8aGmst2AhD+XgVmrofZu0wMi9D84h4I?= =?us-ascii?Q?wEj6tSH+/m1njISYlJebX0hKMui0ymFlMAIbonCQDhzzMDDB0cvv2KKwNIER?= =?us-ascii?Q?vlZ7f3Tqr0MssRbuiRNxlJ+OUhiKkoK6fEuFA8CZA1fcVhTy6ojmf6N+O7/4?= =?us-ascii?Q?KJWzr1u+i8cmvioc7z4cmQw1vaJgRQhSQQDQM9gl1iJoix0WJ+OM1mmoP4b0?= =?us-ascii?Q?Q+YjZ+h4siMCR5j6usNUYmMZMp77694DlsLixlGGcLIIUzRwmOUTgFQcKI/1?= =?us-ascii?Q?AtWUW7R4o4pOEnq87RiG8shX+AJ9a1QxPkzArA58Oa1vXgDywqLO1igNmj/O?= =?us-ascii?Q?yLhzGY0lgg0DIYI686I7Lw0WV2JIeUICk00dNrUrTFB1be7bHmUn9QsRe6QX?= =?us-ascii?Q?W85bT3utDQCmYpvMGpnbR4fJd5cGqhkM2P3MKEm5u0MmJTcLLnSg+mrjnmdv?= =?us-ascii?Q?daqkHy2d3NSfaCVQytuG629GS5+72hKBWVVKSBYiT8Iwe6EghFbaPKEAXbNC?= =?us-ascii?Q?ZQALsabQLcOMKAzjaKWs0P2hEbmdKmaAeMK0AGklSIMrttJOBCdDGWLyL/Yk?= =?us-ascii?Q?Tq7hs6kwA7qq44OXw/YeAaXXN+GGdtcZOeliMqfv/+sitPGjNXDWNhTXjxdU?= =?us-ascii?Q?58ZP6upTEzkoWMlunIqpQmxez/+4g1s4UQlw15p6Hqx3QpOAZlzINmZxtXSa?= =?us-ascii?Q?2fr3khS+molAw7dpa92eLXF8FLIEwtYkjOujp0Xd0RbokIfGixVkhFjYVD17?= =?us-ascii?Q?oBqmSR6+og01OlzX1C8t1fJYqjuIpxGs5SVpQ+gCz12yS5q6oxwIgjlzWglw?= =?us-ascii?Q?OQb2TMNhzIi5fIscqbgEgdFeXczosApdKOoZWaZ2sq0xnYZz1FXLAffemgd7?= =?us-ascii?Q?+4ndLnaAyaEYqmJKAD1lH89z9WOEjzKW+Z22e2SlPz+WyvGrRh8GcOgf01FI?= =?us-ascii?Q?ra3Xz2fpSZ5W/q24R+IF21Cu1T5nHEGavBfqmIHiaT3UAymQXy+P0BPRZZxa?= =?us-ascii?Q?7MqHD+3w9FteJRwB16EAckMH075HENi3YBcfpb0My/RQpwKRwz+pGhFPRihg?= =?us-ascii?Q?oU3ycyJ7VJ05tTTapydsY/zdmVt3iugjrBTDAbG?= X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;6:eFlFvx0/oEpNsACmR4dP9PlcpDMuB8SQn/UrZTegG5oojEPikK2CwDtYRoYNJj3P9aSxuJF6yQUWtlLCbZo2g/ono9Q2dJ+woQirHCv3KI8bVehxssZvlf9nNRn+jsjMlKZq2cqWBN7IFkDIylcNpOl5FrWcqq/KLEmRSWD/qh0hAo6UJ5+c152UCKDD4US8w26rip92v4GK/2vk4KIMMQampZ7uLQlcSq5SUmz/9Ijo7cDd9QiUo2ViP9WtOHPkzRTkMrx83crKi11Axq+472f9jHnF4dIMRIq8XGQ2DKiBN0cjuFtkW4sH+YqN9z9Ym27J1Rn5IqB8sAUHAZIcypWGORzYBJHX0haCuXXEwwyajrtWU3cuJFzq4UWkRDRc5acw3LS0gBHk2X98EiyMY00IhPJ8+d1dzQbo0TbJ+tE=;5:DO6+VgzKkvjn/2acsko9zUqHR17LFyj19d0pa1SgMbNV+1gWmKDg4v7wnUhfOljXNK398KU7T4ZA99Mn68YdBqSDIdZvfWSoTAwwtce9s0FYdchLdbrH/WEvmUuwr9NNNlVbigc0l7/hozWkS3W3HA==;24:a4kkjQa9IQV9KdRDDxAtiifHV2KOpfD9a/HEifFLkuX//jpQsu+Hhx/0f7B5EOGdQRenz2a4Slks0FVU9Hi3SOJC24pVhytY5Cy4UIlHQmI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;7:UVS4+huGF7FFAddiTERaxQqpIjoSqOW7/vobS3YWdBqXgLtL+G9LzVkqP2k5b9uqRaJY6heXYkOdK2hUCmrowQWI6eyW7/Eb/8bH69IEm7AnOiFkAu62MPwhucUoNmcQzLppYFpf/mZVLauy+Mqf6Er+Y8UOZ2/KnIu1mdJh6Df+GHBQuLDw+XTB0PH7L4KQNj41Xxy5wJBqX5pYcLDxHmK1iThJGhh3roVMsQJ2sNqnZPhhzMChAMSkBEVw0ot8mvZrfy9sqJy2FwPGoNlq7M3Sn1cSYnzPmbRLZQStWlVo9oqi2J2+6WQJ46S+K0kElWxd8aHVqnoG3TLbDf5uPdRuuJjs+zZ8x48zQD4k4ACFgK25Fm3mmYnprSNP28L4H/+N1jMm4XJsSvrXiG0ZM6RMWmwpXZoinvPp1qLIh1HDCKM88UQKxeaC8ZkRS6k+EnnUpJpfb8CUp7hHozB4KA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2017 13:47:57.9799 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR07MB2582 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 24, 2017 at 09:56:55AM +0100, Ulf Hansson wrote: > On 21 January 2017 at 11:59, Jan Glauber wrote: > > Extend mmc_of_parse to get the device node pointer as an > > additional argument instead of using the device node of the > > mmc device. > > > > While this has no effect for the current users it allows > > mmc_of_parse to be used by mmc controllers with multiple slots > > per device. These controllers can then pass the child node of the > > slot. > > > > Signed-off-by: Jan Glauber > > --- > > drivers/mmc/core/host.c | 8 +++----- > > drivers/mmc/host/davinci_mmc.c | 2 +- > > drivers/mmc/host/dw_mmc.c | 2 +- > > drivers/mmc/host/meson-gx-mmc.c | 2 +- > > drivers/mmc/host/mmci.c | 2 +- > > drivers/mmc/host/moxart-mmc.c | 2 +- > > drivers/mmc/host/mtk-sd.c | 2 +- > > drivers/mmc/host/mvsdio.c | 2 +- > > drivers/mmc/host/mxcmmc.c | 2 +- > > drivers/mmc/host/mxs-mmc.c | 2 +- > > drivers/mmc/host/omap_hsmmc.c | 2 +- > > drivers/mmc/host/sdhci-bcm-kona.c | 2 +- > > drivers/mmc/host/sdhci-brcmstb.c | 2 +- > > drivers/mmc/host/sdhci-cadence.c | 2 +- > > drivers/mmc/host/sdhci-dove.c | 2 +- > > drivers/mmc/host/sdhci-esdhc-imx.c | 2 +- > > drivers/mmc/host/sdhci-iproc.c | 2 +- > > drivers/mmc/host/sdhci-msm.c | 2 +- > > drivers/mmc/host/sdhci-of-arasan.c | 2 +- > > drivers/mmc/host/sdhci-of-at91.c | 2 +- > > drivers/mmc/host/sdhci-of-esdhc.c | 2 +- > > drivers/mmc/host/sdhci-pic32.c | 2 +- > > drivers/mmc/host/sdhci-pxav3.c | 2 +- > > drivers/mmc/host/sdhci-s3c.c | 2 +- > > drivers/mmc/host/sdhci-st.c | 2 +- > > drivers/mmc/host/sdhci-tegra.c | 2 +- > > drivers/mmc/host/sdhci_f_sdh30.c | 2 +- > > drivers/mmc/host/sh_mmcif.c | 2 +- > > drivers/mmc/host/sunxi-mmc.c | 2 +- > > drivers/mmc/host/tmio_mmc_pio.c | 2 +- > > drivers/mmc/host/usdhi6rol0.c | 2 +- > > include/linux/mmc/host.h | 2 +- > > 32 files changed, 34 insertions(+), 36 deletions(-) > > > > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > > index 98f25ff..444faac 100644 > > --- a/drivers/mmc/core/host.c > > +++ b/drivers/mmc/core/host.c > > @@ -171,25 +171,23 @@ static void mmc_retune_timer(unsigned long data) > > /** > > * mmc_of_parse() - parse host's device-tree node > > * @host: host whose node should be parsed. > > + * @np: node that should be parsed. > > * > > * To keep the rest of the MMC subsystem unaware of whether DT has been > > * used to to instantiate and configure this host instance or not, we > > * parse the properties and set respective generic mmc-host flags and > > * parameters. > > */ > > -int mmc_of_parse(struct mmc_host *host) > > +int mmc_of_parse(struct mmc_host *host, struct device_node *np) > > { > > - struct device_node *np; > > u32 bus_width; > > int ret; > > bool cd_cap_invert, cd_gpio_invert = false; > > bool ro_cap_invert, ro_gpio_invert = false; > > > > - if (!host->parent || !host->parent->of_node) > > + if (!np) > > return 0; > > > > - np = host->parent->of_node; > > - > > This doesn't work because of mmc_of_parse() calls the below functions, > which uses the parent device associated with the mmc host. > > 1) mmc_gpiod_request_cd() > 2) mmc_gpiod_request_ro() > 3) mmc_pwrseq_alloc() > > Please have a look to see how we can change these first. Yes, I've missed these. While 3) would be easy to adopt I don't see how we can change 1) and 2) to parse the child nodes. Both functions call devm_gpiod_get_index() which is agnostic to DT nodes but uses the struct device *. So I think this kills my plan of adopting mmc_of_parse, looks like I really need to create one device per child node. thanks, Jan > One way that might help to simplify the implementation could be to > optionally store the of_node in the mmc host, while it's being > allocated. When it's set, it could indicate we have a child/slot-node. > Just an idea... > > Kind regards > Uffe