From nobody Thu Apr 2 18:46:25 2026 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 D68463368A0 for ; Fri, 27 Mar 2026 10:31:32 +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=1774607494; cv=none; b=Cw892kTfHczqUrHgkY679N5SHbGy0mrv17twYB5SANyCk5xOW4R2pLY3i5N5W1+CSVi5EMe9uuSpEYLm+un3rSUt6pmHl4Z6njEnxiRXSwePdlcS/kPGLmhhJ5jqWzx+5ZHa+eNHfQGSDkiRT+HFHLt/Zs9khROApMg27YFmNvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607494; c=relaxed/simple; bh=KrXRFKkz+jF/UwU2ye387/82NSUQuTQydckj94JpMVo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KD/vNhj4UzPxHcE+XqO/41Qiz6HhK0PbN7khRM7qo47OA9JZrV6UtE6Wwo22HYMq0mBzn1ab56zwTNA3mbWjdSJxN9f7ihW4m+Y9HgMHrwYHLA4isuGBt30+zYLE0b2uXMun5wYRQEezTo+7wzb4iVSRdNusvuS5gXTth/7aoG8= 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=mJANN/J/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZERQpbSe; 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="mJANN/J/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZERQpbSe" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62R6veO42378942 for ; Fri, 27 Mar 2026 10:31:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Q5hfaYAFxKyc2m5Hj2P39tbeouZR45XwtpVCilRgDEs=; b=mJANN/J/ZmFtIfLP QooTy8MSKHdmYNWaD2BGikTssecPR/9nfC+mJRD997MacSw/BMOAF+ABIVRkmf50 2RIDNLYHqOuG8KsAZmMq18xvhXtXRmM6kF/pwLIDV5CuU4bxI8tncs+a0jQVLjv7 R1CycZtv3/k+X/t8QXRoUX34/+yfmniqgIrM296wu6K9Z82vJY9FqVolvaTXz6cx GUQYZoNKgEvZa3extJAqAK5BIbbP2ZC3iCRgqmPO+ZH5gJ6kn7EcB7M0niFqcMN4 7EwFfwaRRb35ZEbEqtP7kOrn9ISm7i49/FGjV6SAmPIzSBYn6wMWC68J0N7gHvkz InCm1A== Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d5jcx1exx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 10:31:31 +0000 (GMT) Received: by mail-vs1-f69.google.com with SMTP id ada2fe7eead31-5ffa0b00da1so742642137.3 for ; Fri, 27 Mar 2026 03:31:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774607491; x=1775212291; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Q5hfaYAFxKyc2m5Hj2P39tbeouZR45XwtpVCilRgDEs=; b=ZERQpbSefOC2NttblU5gJur9hOCwWb7Qys2gjkyLW11R0SKPy8r5wGN5054C/eDA8L skuyuoS9e5fn2+4ED6dMeyBE9bz0ykO7LpxJ4eqPoUdw/uygH7jjxmMe9dsgG5A4RmOy JsQ3vJJbAM6BteS3ZqD1PPkLlW/ooRubc5eTp9He0gJFQKeHVAlsfgpjEWLDOtzcw3j9 Faaw53sXiQNI5UzdbOH6aRR7XkP5vn/wTfF/FfjtOvxjALGNsFSKvTmIm4WGgrwoZb4J l7R6yY6WPdxO8zhd3ln6VzBm7oq9JqZh7F2TopBAYpNDipBF9vy0dlLytzcExAg74lr0 0etg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774607491; x=1775212291; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Q5hfaYAFxKyc2m5Hj2P39tbeouZR45XwtpVCilRgDEs=; b=eDmBDU7g3BK6I5ZxroosPXzH0bF4X2yp11uipKwAJNOoOLGJNNskB9MQI7jT1liWqZ L/SgcZr5s1iUQLOztt94OhzLf3nwaPx9jq2fPfPCH+/0HuPfJJjsQ1IpZPqegOKmUtw/ rFfCOk9/43hMpsACxQXdhcfhMFedNWRD5WCt+wkkx9C0gAlsOl+zibOBmUzSKdAfh34R QFFoYG1x7zs2MpqoIV3tNtbQAplhV8FeqoO60D8Ze2wD0Q2yEfGrKQ9Ac/YcvskUfg7s UxMuenZv+2Qfv8lURoGZJ4hOZcSX2zSQbw9MmwP1AkkFmV4ZIF6NjHLpORSzF91iU54x dehw== X-Forwarded-Encrypted: i=1; AJvYcCUdqifHx/c14ju/pd0tzoLXLXy50BqvXGErgoZZxawneKt0pa23Pf3epVRM3VXvRKLnOu8hcFR7dVGVm8E=@vger.kernel.org X-Gm-Message-State: AOJu0YwLtAij3ZIJPiK31/sxCWHgM0pitGzMM6j/eevrdGR9E/h9rTJE i0XEclmri7tcsBOj7rv8eKs0f+MUTRUHGJ48l0bxevTHZjrVTnX81JWNw3Bw02HzfAvHOU8CQjM p2CGcZZzIY8elQrhh+ehNND39dAHa0MeS0qyx89RShZgDpoKtNeXg79pIFYxzLHXRTDypJwnMy0 s= X-Gm-Gg: ATEYQzzWnJi39pJZMdqKv0ZraDQyiNHQYcVuMHUFMoGywsYvT8Ng4xkdWBdqfkUKn5e AFo1R5ZPc3dU6UL1Fnz9os7GX2+UVtl5Mkc0syicKuPwUC8jDD0+mpynOROoDtXSyeIc2Ay3YOu mxu2OMsSXcBh5AJHYF+u+B5xwc7JETmYMqlW5oqdA2Y5LzhnNmbiQWyhkxE9pK4lb+3QT8clWNE w33NMKYqnzMb1UXferUSRvXi/5eMDzS/8XjEuFz48h1Y/N/7bnwfl7jdml4imYYbFIne49piz+J 96Z+lLFr8Ot8sjXEbL0qPvfwcWk+knR7iWqMrPbJfyDFacbFwlGZWrVtNA+raGkSVfbuP+r5ySk J1XF+FgD3GYvI6iJtEZJjaVdMfL9uf8XEujOv+2WoUjfysiyxX0c= X-Received: by 2002:a05:6102:524a:b0:602:ac40:96ad with SMTP id ada2fe7eead31-604f9302ee6mr724953137.30.1774607490941; Fri, 27 Mar 2026 03:31:30 -0700 (PDT) X-Received: by 2002:a05:6102:524a:b0:602:ac40:96ad with SMTP id ada2fe7eead31-604f9302ee6mr724948137.30.1774607490385; Fri, 27 Mar 2026 03:31:30 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:94ec:a3a:baff:9151]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919588e6sm13382138f8f.16.2026.03.27.03.31.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 03:31:29 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 27 Mar 2026 11:31:11 +0100 Subject: [PATCH 1/4] gpio: sim: stop using dev-sync-probe 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: quoted-printable Message-Id: <20260327-gpio-kill-dev-sync-probe-v1-1-efac254f1a1d@oss.qualcomm.com> References: <20260327-gpio-kill-dev-sync-probe-v1-0-efac254f1a1d@oss.qualcomm.com> In-Reply-To: <20260327-gpio-kill-dev-sync-probe-v1-0-efac254f1a1d@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski , Geert Uytterhoeven , Koichiro Den Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4666; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=KrXRFKkz+jF/UwU2ye387/82NSUQuTQydckj94JpMVo=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpxlx6fbHoe0JGXF87CeGIM7R+wqh0Q5qewdDCi 6S8H6vIPDiJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacZcegAKCRAFnS7L/zaE w0PJEACMaD6HcUHNPOrWJPsFePi5AGVodPeSUP8S0N3+oKBH/EuE72gUMAN47OSpNbQfmc33Rhl +6MV3HB/qmOOlScAzwynXtONfD+s1YnlDwrD6IDHhDjJ6br50UsqrwqO7xes1fgcrngLWYyIwqq 5VmOpavG2qOtvanq/GtkM2PFup/Aw2791gMHcgvo569US7PEVXDt1og76HhB6BYEdrrt9woblz6 ZdD9bX7TXXiJmvCR759t+7yuSESbwBjcURspjrqRIcjwGJAlAe7b0lsOZZrx2OtwHMQXBOu7tw9 V9myeaQ3QeAmM9Dx+ZWVks7+rS1WGWI9rei06qF5a5yjrn1H0oubEvOIQ5ZuncYhlvkibm1lzPh REObms3uoRqRVtON9XtiIcWVGzEvNeaK2HGkn0sVpnht4GioZbB8g57cc9cjai12HbVXqCIV6Su hoMPXQhL3wpFDrEhqt29waClwr99Ue5WAzcWhIlPezjtKxha/2dnxtpyI8HbtNJ+rFuf1vvAC/5 ZwwlJy4bbB5aKs1KxA4vfSgBpesB/i+OZ6qvaXPi1hLMbcGgM+vCpIXj8B9SEelzGt0S3ognJUm 4joDwsNGW+1rg4C1N0iv7QmQNmNwAfOzaFz4HmQWJ98Ji6w66TGf7BP+Tmk2aXLFFEudtY1g0lx NjN73/iRj22Q2AQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=NfTrFmD4 c=1 sm=1 tr=0 ts=69c65c83 cx=c_pps a=5HAIKLe1ejAbszaTRHs9Ug==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=PNVl03acetVcUdc3VX8A:9 a=QEXdDO2ut3YA:10 a=gYDTvv6II1OnSo0itH1n:22 X-Proofpoint-GUID: w0S15B2jtd_9aeqvKQcvmhzsPSXWVHX1 X-Proofpoint-ORIG-GUID: w0S15B2jtd_9aeqvKQcvmhzsPSXWVHX1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA3NiBTYWx0ZWRfXy9yXcjRoeeib LiyVSEQ5EfIA+aPO0oiEMqZ0BuAJ9h+HxTQ2ihIqZJKzbSuUlZe09w3xZd3vAUYdrBasd4/ueUQ h6XObYwb6NQNkzYY+cxleKfOWhk4GdVSOtSso6wOiwZ164xGJpM8ghch1W6vbpmfynfKOMwOnwG Z+eRXGdiLW9QQP9LGenoqQnKwIZY8zJG0WfrDd19A4SDtEjbIQvNbkr65/mMYsv6dTz0SL4M405 fzn45YDSEXxoJEs6D8M6I+BBjY8qy93OvMH9O4Dw14LMF3LwlR1M8ZbloQg75VfLFm8DSOnoxZP 9qhn6XnTC31KsGGiwPnM4/MsOkSa146u3TQqDScu5CA6J8Gg9prYApAiwNs8rXimFgUnFbnoC3Y 49x4L8s4A/DhW8y2QY3fz2bNDPVkkeGElxbpKS09y4AtYWQiDRBphzn+enhdQP1xWC0et3J7Xxz gaIQTts7dD8DP+9wtdA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-26_04,2026-03-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 bulkscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603270076 dev-err-probe is an overengineered solution to a simple problem. Use a combination of wait_for_probe() and device_is_bound() to synchronously wait for the platform device to probe. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/Kconfig | 1 - drivers/gpio/gpio-sim.c | 49 +++++++++++++++++++++++++++++----------------= ---- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 4c3f6ec336c16129301613aadc8b22587b217005..a603406cb2e53a89e1da6214a3c= 1c256d5246be7 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -2036,7 +2036,6 @@ config GPIO_SIM tristate "GPIO Simulator Module" select IRQ_SIM select CONFIGFS_FS - select DEV_SYNC_PROBE help This enables the GPIO simulator - a configfs-based GPIO testing driver. diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c index f32674230237eb08bbf8dd1337a79b5d0aa13259..e19701c2ed673f8ec5a2475e632= 388197a78339c 100644 --- a/drivers/gpio/gpio-sim.c +++ b/drivers/gpio/gpio-sim.c @@ -36,8 +36,6 @@ #include #include =20 -#include "dev-sync-probe.h" - #define GPIO_SIM_NGPIO_MAX 1024 #define GPIO_SIM_PROP_MAX 5 /* Max 4 properties + sentinel. */ #define GPIO_SIM_HOG_PROP_MAX 5 @@ -546,7 +544,7 @@ static struct platform_driver gpio_sim_driver =3D { }; =20 struct gpio_sim_device { - struct dev_sync_probe_data probe_data; + struct platform_device *pdev; struct config_group group; =20 int id; @@ -673,7 +671,7 @@ static bool gpio_sim_device_is_live(struct gpio_sim_dev= ice *dev) { lockdep_assert_held(&dev->lock); =20 - return !!dev->probe_data.pdev; + return !!dev->pdev; } =20 static char *gpio_sim_strdup_trimmed(const char *str, size_t count) @@ -695,7 +693,7 @@ static ssize_t gpio_sim_device_config_dev_name_show(str= uct config_item *item, =20 guard(mutex)(&dev->lock); =20 - pdev =3D dev->probe_data.pdev; + pdev =3D dev->pdev; if (pdev) return sprintf(page, "%s\n", dev_name(&pdev->dev)); =20 @@ -900,6 +898,7 @@ static bool gpio_sim_bank_labels_non_unique(struct gpio= _sim_device *dev) static int gpio_sim_device_activate(struct gpio_sim_device *dev) { struct platform_device_info pdevinfo; + struct platform_device *pdev; struct fwnode_handle *swnode; struct gpio_sim_bank *bank; int ret; @@ -927,28 +926,39 @@ static int gpio_sim_device_activate(struct gpio_sim_d= evice *dev) bank->swnode =3D gpio_sim_make_bank_swnode(bank, swnode); if (IS_ERR(bank->swnode)) { ret =3D PTR_ERR(bank->swnode); - gpio_sim_remove_swnode_recursive(swnode); - return ret; + goto err_remove_swnode; } =20 ret =3D gpio_sim_bank_add_hogs(bank); - if (ret) { - gpio_sim_remove_swnode_recursive(swnode); - return ret; - } + if (ret) + goto err_remove_swnode; } =20 pdevinfo.name =3D "gpio-sim"; pdevinfo.fwnode =3D swnode; pdevinfo.id =3D dev->id; =20 - ret =3D dev_sync_probe_register(&dev->probe_data, &pdevinfo); - if (ret) { - gpio_sim_remove_swnode_recursive(swnode); - return ret; + pdev =3D platform_device_register_full(&pdevinfo); + if (IS_ERR(pdev)) { + ret =3D PTR_ERR(pdev); + goto err_remove_swnode; + } + + wait_for_device_probe(); + if (!device_is_bound(&pdev->dev)) { + ret =3D -ENXIO; + goto err_unregister_pdev; } =20 + dev->pdev =3D pdev; return 0; + +err_unregister_pdev: + platform_device_unregister(pdev); +err_remove_swnode: + gpio_sim_remove_swnode_recursive(swnode); + + return ret; } =20 static void gpio_sim_device_deactivate(struct gpio_sim_device *dev) @@ -957,8 +967,9 @@ static void gpio_sim_device_deactivate(struct gpio_sim_= device *dev) =20 lockdep_assert_held(&dev->lock); =20 - swnode =3D dev_fwnode(&dev->probe_data.pdev->dev); - dev_sync_probe_unregister(&dev->probe_data); + swnode =3D dev_fwnode(&dev->pdev->dev); + platform_device_unregister(dev->pdev); + dev->pdev =3D NULL; gpio_sim_remove_swnode_recursive(swnode); } =20 @@ -1060,7 +1071,7 @@ static ssize_t gpio_sim_bank_config_chip_name_show(st= ruct config_item *item, guard(mutex)(&dev->lock); =20 if (gpio_sim_device_is_live(dev)) - return device_for_each_child(&dev->probe_data.pdev->dev, &ctx, + return device_for_each_child(&dev->pdev->dev, &ctx, gpio_sim_emit_chip_name); =20 return sprintf(page, "none\n"); @@ -1571,8 +1582,6 @@ gpio_sim_config_make_device_group(struct config_group= *group, const char *name) mutex_init(&dev->lock); INIT_LIST_HEAD(&dev->bank_list); =20 - dev_sync_probe_init(&dev->probe_data); - return &no_free_ptr(dev)->group; } =20 --=20 2.47.3