From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E79C117A309 for ; Mon, 5 Jan 2026 14:16:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767622568; cv=none; b=kp0g1gsQoH31JzS0wxRqUe94yhpXZ6hmwiCShj93DEC2qePHiByr6Yq6SnDzpnXw9i9Nlieko5zuWHa7R/8muhAJC6ePVqhgCmlQfEMAjo5ERWsgXXp8VL0lIWSE0MZJlYWQjij69qeezSjrRDPR7oqx1RfhQ7760cON498P5DA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767622568; c=relaxed/simple; bh=YkqYNXKkH+Sfuds7u1ZZhaBVE8j1F9lqlb1CbWuMTNc=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=nIdnfvK/ZSdmCCCH2Acs3wrxztsRHtuYvMFaYsY7FBEX1ZZFIyx+5uxWcAHT31TAAezUPdHYwJHHylD3JDLrICwsgQPf4dRrvrT5Wl+bCKDinLekO/R3HAXqjK8e7aa7yTXFgdLAPLr7vSlxRYFRX6F/CrvlMjnS5dTEjde5/go= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=FF+3wK7/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c7YbX1zB; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="FF+3wK7/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c7YbX1zB" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6058514E978642 for ; Mon, 5 Jan 2026 14:16:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=synmyGP1kcMpXsKLlJQZGc 2+gA4nx81oL6howE8jfHg=; b=FF+3wK7/6S1RUaEKcagN2vNkWcrZSgc5luzvWO 2X5zFzr4kePo4DzNyvrxgXd77F3SRWLcMiWPN9BQxQw3GUnwfOTQcR0TSpVlAzXx k/pIVG7aZKohxdGCw9Zb6hFm1eZZRpWN9/qxJ9DU+l1SDKCdbJhsIW3IhhwwKJDJ yudICZVhZXgtrJkkMkchU7YCJSTQvg3SwxMf+t89mq2To2AYJcWpG+1oJB2hjuwK EnkhI8fWcF4RGMygrDdFtP90f6WspQ8OVoCToEtvFeqDN2hhCp6b31ZgMCV3625S c1TJSf2XxAM2SKAkZfn9JT0TtxBiQnNu3d9FAhQRCTjGcwSw== Received: from mail-vk1-f200.google.com (mail-vk1-f200.google.com [209.85.221.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bg9fth08s-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 05 Jan 2026 14:16:03 +0000 (GMT) Received: by mail-vk1-f200.google.com with SMTP id 71dfb90a1353d-55b188806faso10599914e0c.2 for ; Mon, 05 Jan 2026 06:16:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767622563; x=1768227363; 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=synmyGP1kcMpXsKLlJQZGc2+gA4nx81oL6howE8jfHg=; b=c7YbX1zB8BQ9oIxnHG9/aX0Y06AD4XyyBewjfpnGSRBl5oXegpNVE+jmRDkLbP1zMP E9TFYiMZmrc7OHAtUlBEgMuVxvCsRZYbJp1dttbLJfYDRaWmdpR517ZygiPCRbtbDUn9 m/1xDQT34QlCfOQl76Cfc2ly0zlxGGBS4PgAh2vCLunrWs+9FUNCmT4eS8R+g3WUpz1s mjoHMynenV0DtelO7aN9I2mcVlgzFa47G6MKaC2Rb5Hro2YnYmmE8iiXUhHfj1FXVxV5 W2wH54KnGhOgsjIX+rPbkyx07w5rTeTQM1+f2vDTeLFstGSDJw4ukAl3aX4dCgWn3eD5 BplA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767622563; x=1768227363; 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=synmyGP1kcMpXsKLlJQZGc2+gA4nx81oL6howE8jfHg=; b=C0mF+ph+T5FTlAhpU3bKWjIhwz1XyQiyHCH4rHBsZnJPIlEJRI0hhovnZA6LAcxXyK v8APNDQuqVtxYJNQEkbjYhRGxpl7RgJ1kpqovNEcZMrpKHNBdquEKl5Z2l3Wed6Ys4Up JDkgjTYl5paqD9NOPwXRB7yR5dbOcIVsFq0yQpQz3CklqKNJZiI/zJzDkYB6tQWABPuV tJwx1g0yPoMg5WWYJhXR2CFUW+Jj0Wkc3DrdCLYeibPg7Xnq3zn60rMIytEEUT1D3pbL BmDkQ7WfK8JeuGaBiItDrfnt/QkEHEXa29PJ+Y1J2tyH9IqWJiZr1id0g6TykzPTzqer npNg== X-Gm-Message-State: AOJu0YzFKm/IBAdlUNyH9Xg6h4pQMN92Nb73Qq4MDQlwJS0d/eHCeuE0 RdjYprcSVf7RfMBRcHzfTDN6Xjua7xdx+9IFAk3JLpP3K519UVytiLex/wZP3WvD4gbDG7QUE96 AzH78f0Ntc9NOHgtCmGAM14F7ki4nXREt6AqRYjo/Uy4N/pk7D60Lm43+COtL1ucZ/setz5fDm7 A= X-Gm-Gg: AY/fxX6vILnZ5Y4nj+ClcoskOGRYka6g4ZwD5u2Jof/duusxkV9TRWZdCCJeK0pA8uH 8e8zdHUrC0f4nO3Tq7Kr/pYRNhYEy/3nCkQRh6ifi4k7ifUjhbiQDsrIGk5I/vCUR2J3n1ZWPAV VlGvOdTqeIhTDHeZGX+I4YRaLqwWJmpQzNn7Ciznq12GczuUq5iF/k2LVCbySHzTTCwKMpmeVpW XuS64Wkc/YDQ++W98BzGdw08sqo4F4mwOg51/SQ1k5/0xrvasddRRU7bQ3EKXJUGduSXxu89hHu XB28GsTOf2mkcdwfnkxeY4kt2y8sq4nzc0dw/S4ogLZNTbiS/UUJEseKc9M++GLBQPNPcfl6CoD i5GoKNfskkXVuCvg9LTfliPjZgscMOeqf+ZR+Myc= X-Received: by 2002:a05:6122:16a6:b0:53c:6d68:1cce with SMTP id 71dfb90a1353d-5615be84c55mr15103814e0c.16.1767622562765; Mon, 05 Jan 2026 06:16:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IEEeDX2jNVMGTHf8xJPaDkLhDSmxwE5zvzYRvXG000cs8uobHVOfWFvLNg25kVpULYcvA6/2g== X-Received: by 2002:a05:6122:16a6:b0:53c:6d68:1cce with SMTP id 71dfb90a1353d-5615be84c55mr15103784e0c.16.1767622562243; Mon, 05 Jan 2026 06:16:02 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:dd3b:c635:dd06:9574]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4324ea1aef7sm100774703f8f.7.2026.01.05.06.16.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 06:16:01 -0800 (PST) From: Bartosz Golaszewski Subject: [PATCH 00/15] reset: major reset core refactoring Date: Mon, 05 Jan 2026 15:15:19 +0100 Message-Id: <20260105-reset-core-refactor-v1-0-ac443103498d@oss.qualcomm.com> 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: 7bit X-B4-Tracking: v=1; b=H4sIAHfHW2kC/x2MQQqAMAwEvyI5W7ABEf2KeKhpqrlYSYsI4t8N3 mYYdh8orMIFpuYB5UuK5MPEtw3QHo6NnURzwA57j4hOuXB1lJUNU6Ca1fUpxMGPA62UwJanFbn /13l53w/WtStFZQAAAA== X-Change-ID: 20251222-reset-core-refactor-5fad7197cbcf To: Krzysztof Kozlowski , Philipp Zabel Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2744; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=YkqYNXKkH+Sfuds7u1ZZhaBVE8j1F9lqlb1CbWuMTNc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpW8ePpPQPFdSTFHVUIZJEUQo3wt9IO5dtD5DDY a7IlcB5MMGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVvHjwAKCRAFnS7L/zaE w1LbEACh1kMms25Z6+jbGdk8SM62ySJzSszRWeu5RgX//y2rlK/XBFNpg6B12KN7x4Ndb6zDwn8 cQBF96nwqEg4EnV9x0l36T7BhK80qJJ7DMdoY0LOr9edMZcfxmHi6aY/3wS/hSTAwhUwpUybrG9 9AdlLgYG3gHj/S/dIqNvAR9lbVhOq5ACh+lb6x9ffu0slWS5UHgZHjRD6VUbTE8bdnZjgfkd7kx TGMgiK8fBUcUitPwxoDlHnuhAWJypu/AgDu0UcHc/xqojGTbOYu9HUPzJ6tao6Gu8VhmrbkIChQ /E+ZInYxLF6qJLMJktmAKTx99cc2GdDZ3cApE2MtppqrQuAHp7UnLX+7vwaHbE2YlHy6WqTYSu1 dH42MYTazI+gidjIEeQxrrrQRrXhswLzZM+cRTMSLxX9w2Vjruau02NRNC3mMN6DDTWeJVgDAhP rMo6zufOYqZJuwYzBU9YydTM6jPht16n6b5sl8RADEDl8TwTzen4MuYhD1Mm1lmEDfCR4n/hx++ t77x0cOaDu84qnbzoGrvieIB33+NgGJWJ1yZB7PQWS0Y4WT4q0K6VqzDorNhkzkuvLyB+c21XnU cTE/i77Xwmf1iHupUv11qGopmR7LuGlVHAeBCd7EDWpQ8b0RBhkcEjrTd23BA5d78W5BOQSpitV Z8k6eOX/a4jSZhg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: KBu8vt-UVUn-m2FIRJvbC_HErFvOpcP5 X-Authority-Analysis: v=2.4 cv=GboaXAXL c=1 sm=1 tr=0 ts=695bc7a3 cx=c_pps a=wuOIiItHwq1biOnFUQQHKA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=utrJi4ruKTUNcA1__9MA:9 a=QEXdDO2ut3YA:10 a=XD7yVLdPMpWraOa8Un9W:22 X-Proofpoint-ORIG-GUID: KBu8vt-UVUn-m2FIRJvbC_HErFvOpcP5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA1MDEyNSBTYWx0ZWRfX34WtSjr/28Qo UVkE1tHdEBDxdhGzRdZRjWminsrXA1jdsc+yt6ZE13vzywU4xou3YL6G+sFT/DhCr68xNflZO80 bvFxMGvUh6yPCcTvV7CEd4wqT7WG7RmxtGL3LN1RS49IAJUxA0aoDTrEhtuLh2jx11IjOTXksBZ 0Dzkw6bYaVcGPAEMMnz7J2tE0USFLiJBk1mmmAH2u6SIPF4JpnCTK2ZmLGggPDNA+VvIzZMLzsL YtSyfoVQ5n6V7SVQopNRqZheIuCjr75mSjU08q4Kr9+i2LxOqnIJ0tp3+uSais714i+kvxpiWt7 /d3YFppn3fYvZzbt6jZPvy0LmlRnqsiS+lrp+ySaQiiZ6K+OW6xt7mQ67GJLOYZnfovlmhr2Wx2 OS+Y2YnoufGarONom0CJocum1Q9ql2qfU4GNm7FIQ2JraaTLSPeUIgdE5+GRejl5p8R/LVg929t 6kTcDrEW2nAGWAOdw1g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_01,2026-01-05_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601050125 Here is the promised refactoring of the reset core. The main goal of the series is to make the reset subsystem fwnode-agnostic - meaning it can work with all kinds of firmware nodes instead of being OF-centric - but there are some other related changes in here as well. I'm sending it all out for review to give Phillipp a better picture of the end result but individual pieces can be picked up earlier if accepted. The series is logically split into several parts: Patches 1-5: Several reset-gpio improvements. Most are not very controversial but I included a reworked version of the patch adding a firmware device link between the auxiliary reset device and its consumers. Patches 6-8: Just general improvements. Patch 9: Before we support all firmware nodes (even software nodes for which no devlinks are created) we need to make sure reset drivers can survive a sudden unbinding of the supplier with consumers still holding references to the controller. This patch addresses it using SRCU. Patches 10,11: Rework locking in reset core. Make locking fine-grained instead of using a single global lock for everything. Patches 12-15: Make reset core use fwnode as primary source of device properties and references. Convert reset-gpio to becoming the first fwnode-agnostic driver. Signed-off-by: Bartosz Golaszewski --- Bartosz Golaszewski (15): reset: gpio: remove unneeded OF-node put reset: gpio: add a devlink between reset-gpio and its consumer reset: gpio: simplify fallback device matching reset: gpio: remove unneeded auxiliary_set_drvdata() reset: warn on reset-gpio release reset: fold ida_alloc() into reset_create_gpio_aux_device() reset: use lock guards in reset core reset: remove unneeded include reset: handle removing supplier before consumers reset: protect struct reset_controller_dev with its own mutex reset: protect struct reset_control with its own mutex reset: convert of_reset_control_get_count() to using firmware nodes reset: convert the core API to using firmware nodes reset: convert reset core to using firmware nodes reset: gpio: make the driver fwnode-agnostic drivers/reset/core.c | 472 +++++++++++++++++++++++++-------------- drivers/reset/reset-gpio.c | 27 +-- include/linux/reset-controller.h | 21 +- include/linux/reset.h | 43 ++-- 4 files changed, 356 insertions(+), 207 deletions(-) --- base-commit: 44610bf200345a31141cd9b1e78541bb08ba7bfb change-id: 20251222-reset-core-refactor-5fad7197cbcf Best regards, -- Bartosz Golaszewski