From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44F1A350A12 for ; Fri, 9 Jan 2026 08:38:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767947923; cv=none; b=DMFbaN12CYXNRUigiBRIPLfbuMMPmZj4w5rXlrRFoB1IC/ZTFv8nw1kD5OE8LOF3coY4sgpSA+rbgTnaM7tRiMrR+7+tYgYz8MN5NmMBQMpl7mSoGQSJHphOlXCbKolNXEoQbRg7R5l62f8jugmHK8+tn681vZo1Nzi0T9W7mqs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767947923; c=relaxed/simple; bh=52xIe1h0MO0GTnxIFSBG5P8VQnLEURoUYBg053TfEzQ=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=HWWpYEztLe7MUkCHquiToc3khL45nm+SeeK3RfqOeXQQurmPqg6R40aKPQqziexAxLGXS3T1IdTpMPPpPW85qj3ovKXevprfQTXoM762LU+11JWQUJEXJ2hEgvCT4kFEBhjNu4/wVzsk7IhZ8WRx2kS7H6nyHkddtRsYrf4Hl0g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=xZ8ZWRBp; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="xZ8ZWRBp" Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-b7a02592efaso665849966b.1 for ; Fri, 09 Jan 2026 00:38:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767947919; x=1768552719; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=esKuYD6aCmq2vvpwjnzDbRh5emHvAtMR/z6XTcbCgew=; b=xZ8ZWRBpdZpaVJiv4pvRpkLxa/xhqPyQ1oIkOY33CovmaEIrS/7ckRyql40052ur2f j4ppcoMpNCZneHoqOraaXS9H8g9bMBZALdKXvK2pwXueU6VtaZJ0+Vp7ZZAoz2Tf5GU7 H/BsNkAjQRhxkYEjrbwEHOB5e9EHlvr9QZZlluC2hRY4WQU2pZ8M3rSoQ1vilsOA8t27 jW43q+WqrKAN7rXp5giL4zOg6JAIVkmepxnAcmcagQVG5Iu3C2TQk37PA4GY+uD1P1Tj BtYjM0GAnmXjkFwlMKI6y8SnonMyD4+KnWm8epJep+xGxW/E8UVz8Ijetb85U2nlJZVr 1+1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767947919; x=1768552719; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=esKuYD6aCmq2vvpwjnzDbRh5emHvAtMR/z6XTcbCgew=; b=jw94cNdmDEQxAkIYuzH1qhvksVZdWs2u+8J9bjNVwRh2gTNX5LpnAkjwoWp4yUnT3v lPCOsaswlCMwxcz4Jr1Hq9Hq/h927wzFM49GPWmmEnBOu8FSqIpwvg1uYeuMD3tjnmSw XXAigwA6IHYgRyyn+koReCsG6kRHTCiYJf9sGokI7ZylUieyXamI2RHI/1Dfi4F4iNiE CCsL2zuSWWj307KK+54R1Ky/PubKEki6kLhCdQs5NuijGut/2oEmJ8vs1MNpYPeGRnAB Pgq/OTJgonbPuwDQOMWZuK+IO8NeXuRnq5Zp0n2W2f6gyvJ75b9wKTAjTUrjS5bBin2e UXvQ== X-Forwarded-Encrypted: i=1; AJvYcCWqf4IV7qEESylDENk7hZSXx7DzWRgwwCAEiaIYYmyPfTHgjAjQ+3apxgpxLFgWBWCmECFZV+q34KRS88k=@vger.kernel.org X-Gm-Message-State: AOJu0YzG4Qtubb4mIRlSMi9oERkevvcWQsZ4Ux/u5nb9mulmerEJOCK7 gUy+/g0SDfWTD5q5o4/OW+JvgEzTMw/2mTmABNoRRWP72ajvcIkyJj4i3YJLk68D+fQ= X-Gm-Gg: AY/fxX6Jv6uJXVJ9iIYHrFDgQLpOh5YiSnKteq9nvOTBXHPefSDQHUAdhsNMoz7AD2V XfgIUGo7kTiDWz9X+nbr/yCNuRaGcvVLtCuh1pZ0wml83iBUBqwQmKnK7IQlrMDw181riB+zDDC OS4/sh+Cuc8ZoustG0bo9tezXwDQUb3cpONGBquNT5Rv4zfgG1sHnLRUnOLTl4zz8v5wHB+Xm9Q GKPo6xroZ7BkMtjmlaGA+qQhMCjPwA137su1ozWj+tPDwlcbcKz5X7HEJ5CnoBEK1qONdooNgik po8UK2dV9SGnrJ8056V+HxeyZH2j1RwG+TSxFuth1lONI+6y7+JBKjAx3z8BXixRANry4fkHcBJ cyUSsqusARv2vFksRhktZZF1boaCOv6JfF7M0wRNXAyMpSpFF6VRgXUrAuv9tZ7Z6KT+Xu7r70A 4loJPe1HKXsVSRxVB2OQoA4Pe1/h93P4kpxnDcxyv9pB5n4x/iNrpwLXW4+G3hcwGmgEtGSvjrv bQAWQ== X-Google-Smtp-Source: AGHT+IFy8fE5zhloMsInno9eWUwIGa17Tg51PZKJSt8eIEVeTO10+pTAvqTwzOvNLU8RqIHNiv2EQg== X-Received: by 2002:a17:907:7b9a:b0:b76:7e0e:4246 with SMTP id a640c23a62f3a-b8444c3fbfemr945982366b.12.1767947919042; Fri, 09 Jan 2026 00:38:39 -0800 (PST) Received: from puffmais2.c.googlers.com (244.175.141.34.bc.googleusercontent.com. [34.141.175.244]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6507be658b3sm9472950a12.18.2026.01.09.00.38.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Jan 2026 00:38:38 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Subject: [PATCH v2 0/8] regulator: core: allow regulator_register() with missing required supply Date: Fri, 09 Jan 2026 08:38:36 +0000 Message-Id: <20260109-regulators-defer-v2-0-1a25dc968e60@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAIy+YGkC/2WNwQqDMBBEf0X23BSzRis9+R/FQ9RNXBBTNm1oE f+9qdBTj2+YebNBJGGKcC02EEocOawZ8FTAONvVk+IpM2CJtUY0Ssg/F/sIEtVEjkS52jnbNK2 tXAN5dhdy/DqUtz7zzDG338dD0t/0J7v8y5JWpap0aQbEqTXj0C28WgnnIB76fd8/CYMJw7EAA AA= X-Change-ID: 20251224-regulators-defer-f5ffa668a3f6 To: Liam Girdwood , Mark Brown , Javier Martinez Canillas , Jon Hunter , Dmitry Baryshkov , Oleksij Rempel Cc: Peter Griffin , Tudor Ambarus , Will McVicker , Juan Yescas , kernel-team@android.com, linux-kernel@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Hi, With these attached patches it becomes possible again to support hardware designs with multiple PMICs where individual rails of each act as required supplies for rails of the other (due to the latter being e.g. always-on), and vice-versa. Google Pixel 6 and 6 Pro (oriole and raven) are examples of such designs. Rather than returning -EPORBE_DEFER in regulator_register() when set_machine_constraints() fails with -EPROBE_DEFER (due to missing required supplies), we still allow rail registration and try to reresolve supplies each time a new rail gets registered. This is implemented using a bus (regulator bus), which allows the core to reresolve supplies for regulators that still need them whenever new regulators (i.e. devices) are added. Using a bus also solves existing problems around late resolution of supplies as mentioned in the commit message introducing that bus. The series starts with a few bug fixes and the last two commits implement the changes mentioned above, but do depend on the bug fixes. Cheers, Andre' Signed-off-by: André Draszik --- Changes in v2: - drop fixes tag from patch 5 - Link to v1: https://lore.kernel.org/r/20251227-regulators-defer-v1-0-3104b22d84cb@linaro.org --- André Draszik (8): regulator: core: update two debug messages regulator: core: fix locking in regulator_resolve_supply() error path regulator: core: move supply check earlier in set_machine_constraints() regulator: core: streamline supply resolution for always-on/boot-on regulators regulator: core: remove dead code in regulator_resolve_supply() regulator: core: don't ignore errors from event forwarding setup regulator: core: reresolve unresolved supplies when available regulator: core: don't fail regulator_register() with missing required supply drivers/regulator/core.c | 351 ++++++++++++++++++++++++++++----------- include/linux/regulator/driver.h | 2 + 2 files changed, 254 insertions(+), 99 deletions(-) --- base-commit: f8f97927abf7c12382dddc93a144fc9df7919b77 change-id: 20251224-regulators-defer-f5ffa668a3f6 Best regards, -- André Draszik