Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp99492ybl; Wed, 11 Dec 2019 14:43:34 -0800 (PST) X-Google-Smtp-Source: APXvYqzcjuHFqIsSBB+5QLIsVOY44f5raRJ4r5q8mRAxb+5yzuJADmLq6ca+mml1XjI5VjfhBLGY X-Received: by 2002:a9d:6181:: with SMTP id g1mr4541270otk.104.1576104214654; Wed, 11 Dec 2019 14:43:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576104214; cv=none; d=google.com; s=arc-20160816; b=Brv8dI++RGvx3+k2B3s8inIqpzTFa+8k349VW0E99UAZPsgjJWAFtUa/NWVD9eRq3u FGYm+Ak7RqGlY5RIQeTROLqFvkJ6jzYGR+3NnC59+tepBNIwwI8v7vpSnZmsoe0Uji8s htZgRD2AW0XSXpd16pXMty2aPFvgBA88AtB7XfCfb/jlkP3HIsRsglxyj8gQAPIIAz5f xr2EPpKd0O1qAzF5NBdOZ+eo1FdTl2TB0MGNgX6HPPCb0ezIEdYC6rXYEWTEKuolnl+D xMud38hSTpJPTH3wtkbXVXz1QiItYqnEhxsnxC1tKepey422gPBy+7OSDLUx7zuGmxWp K1rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject:reply-to:dkim-signature; bh=Yhi5hEMZ+Ae+X8SD1+uU4vreLy3h/DwzRNV3Gr2Oyog=; b=FCZDPNcIc6GXITwB6fbHUpLUnpvbMMYyMTUIxy0rEhAuzCcWyepSpahqu3ii/1s8DH QmaytDthCJOdTYBtiBgDKqKnQZiGOtwjffCBJq53dhebu8NkYUMewZNq5r0WutXj0NRE 66YYVhcQVYk9RbXwpqDfBdMx45jlWaZhme7KwWtuSsJ3g3XScz9yyx1ZYKmkQx4ReOFe S/WWJgkjDJqMfzF3B1Ztl6R8s5yrkvqD1uHteKlPltp0hFyNb30c3kbZrE4nBFJYBu9a CLjug7xzF5kzyKMtQvYPyCRn2h49/ux150qPkTmj/db49VrW8fH5KTvoLPx/CPscNy5p hcfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=ZVx8uTD1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m82si1978697oig.129.2019.12.11.14.43.21; Wed, 11 Dec 2019 14:43:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=ZVx8uTD1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbfLKWmu (ORCPT + 99 others); Wed, 11 Dec 2019 17:42:50 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:35748 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726404AbfLKWmu (ORCPT ); Wed, 11 Dec 2019 17:42:50 -0500 Received: from [192.168.0.20] (cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D4C119D6; Wed, 11 Dec 2019 23:42:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1576104167; bh=lMgSa0SNr+HPX38wchwUZz0XON4bjQEc4SadsB/SUVc=; h=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From; b=ZVx8uTD1A+w9VZNfOpqr4isjmtfsDeHo5KTup1XF+SXMXYuz6fPQGQN+aQt9WxsP1 m1S5wBrMATGHBdFdTdXGsBpEZxgI7COFOwFj11ZQRzOnbPaFnDlKE7MBPoeoqtssSG Kdhia/Yd4zReF+EvNjizrGDAhF/6Hkso5YuNgKQM= Reply-To: kieran.bingham@ideasonboard.com Subject: Re: Regulator probe on demand (or circular dependencies) To: Mark Brown Cc: Linux-Renesas , Liam Girdwood , Linux Kernel Mailing List , Laurent Pinchart , Jacopo Mondi , =?UTF-8?Q?Niklas_S=c3=b6derlund?= References: <23236201-a387-7257-35a4-ee4ed2f6bfd0@ideasonboard.com> <20191209163755.GF5483@sirena.org.uk> From: Kieran Bingham Openpgp: preference=signencrypt Autocrypt: addr=kieran.bingham@ideasonboard.com; keydata= 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 WZw01QYHU/GUV/zHJSFk Organization: Ideas on Board Message-ID: Date: Wed, 11 Dec 2019 22:42:43 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191209163755.GF5483@sirena.org.uk> Content-Type: text/plain; charset=windows-1252 Content-Language: en-GB Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Mark, On 09/12/2019 16:37, Mark Brown wrote: > On Fri, Dec 06, 2019 at 04:38:04PM +0000, Kieran Bingham wrote: > >> The MAX9286 also exposes 2 GPIO pins, as such I have configured the >> MAX9286 driver [1] to expose a gpio-chip [2]. > > So this seems like a MFD then? The nice thing about using the MFD > subsystem is that it means that the drivers for the various subsystems > on the device can instantiate in any order and defer separately without > interfering with each other which seems like it's the issue here. As long as we can defer and not break the other layers this could potentially work. Breaking the GMSL driver out to have it's own bus (generically for serdes buses) and allowing the MAX9286 to probe fully before probing any subdevices is another alternative suggestion I've had (but much more work I think). >> - is there anything I can do here within regulator_dev_lookup() to >> attempt creating the regulator_dev 'on-demand' when >> of_find_regulator_by_node(node) returns empty? (or is that crazy, and >> just a rabbit-hole?) > > This seems like a terrible idea, you'll have a half baked regulator in Ohh eep, I just re-read my description, and I don't think I described my intention very well at all. (or at all!) I wouldn't want to have just a half baked struct regulator_dev on it's own ... I was more wondering if we can kick the core driver framework to fully probe this regulator (which would thus create the required regulator_dev structures). It was more a question of can we guide the core driver framework that it really needs to probe this device immediately ... I was sort of wondering if something like this could optimise away some of the -EPROBE_DEFER iterations at a more global level, but I don't know how or if that would work anyway. > the system which will need special casing all over the place and > doubtless be an ongoing source of bugs. Indeed, I wasn't expecting to have some different case non-probed regulator ... Anyway, it's possibly a moot point I think - Niklas has suggested that he can indeed resolve the -EPROBE_DEFER restrictions. I'm not yet sure if we want to go full MFD yet ... so I've left this feature out of my latest posting for the driver - and we'll discuss the direction for solving this in our team. Thanks again, -- Regards -- Kieran