From nobody Thu Apr 2 17:13:11 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 Reviewed-by: Linus Walleij --- 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 From nobody Thu Apr 2 17:13:11 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 DDC8D3AA4FD for ; Fri, 27 Mar 2026 10:31:34 +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=1774607496; cv=none; b=jX/AF/zO91iq4pdP16iUA+o13DRzQ+Ve340uEokxx+Y76F/+7391hcAPYAQHBkkt8lsU1gnrnpbCnZo2nRMY+o2hQXpkJ6xP1IqPSup/l9L43Y1hpQbEfmRdmy+NPBp1E99O+fQ8gY/NR1taxFUczS8TU2fVDZPI5REDeDUeA78= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607496; c=relaxed/simple; bh=cvNWbcJEPu+X1KGHjftcUVfo5YRpAWfGsNOyThkztWg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mNobzcWd+yzc1DReYtfkqThp2H9QOONpO1LREuO1KpitYhibPwTzvOHX1uymNXAJ+5OPAUnxL2P3gqn9lrE27zB+qV6eKtlRB55FDZJKVUgN7NiJqkE6MdZ9rzaJ9Ez2Lb6f9xLS+tkFDepCVvuBZziCnYKzSGOgKBYqKU74/as= 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=SmWbzjcZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=S8gzVmVE; 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="SmWbzjcZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="S8gzVmVE" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62R6vpBj298526 for ; Fri, 27 Mar 2026 10:31:34 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= kRfsS1H0OfXi/OKjLlmM2I3kRnvciT3vVPcYJHJok3w=; b=SmWbzjcZVkYgjVN9 MLM6h3QZF2ZmScn8YT9cO58rAtkjmvg1Jjvqi/e1sspoHrzJ+rbL3ixNk/TxWnku nNeJb7DsuPsBWgRORmotZkUpGPjU72EgSvwDJYnERTM/TSXJ7IWMxEn0IJvqavu4 MJ/1dwlaHiFbBx7wh3AjU+N9FgcyTRyK0ay3PU6H2iJDcgKyeHWnvztwlggTJ6tv tAYyHUTmxIjrZvWkOcZZllTXW55LujWvY4vJrJlRSHB6N76JzF0u8sAy6Szhnjhd MdCkaIznZAtpScleTJTPBNeTf+4v8x1goUbm79in71FB5cMBAtIOXYLo/EVCMTPX WjtFog== Received: from mail-vk1-f198.google.com (mail-vk1-f198.google.com [209.85.221.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d5bd8tpp1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 10:31:33 +0000 (GMT) Received: by mail-vk1-f198.google.com with SMTP id 71dfb90a1353d-56ba3652e5dso1060062e0c.0 for ; Fri, 27 Mar 2026 03:31:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774607493; x=1775212293; 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=kRfsS1H0OfXi/OKjLlmM2I3kRnvciT3vVPcYJHJok3w=; b=S8gzVmVEZRrpPlGo1eskq6O+jkJXdukx8FlI1LxwxCEOa9FYsPgTAWrwW4m5P+aDbR hp3RWqxxwWjwiXf9E29xllAlWlMxtvzo4WacS1Psay84SBOGVOCA3ACMU3+F4k+gwldy Mtb585lwSuZ6Xfwkd7ZuCKoU3maoXfv3N4BhBhY6wY4Cae0TKjpdkEFyONqNZYdfPAFr jzspeuLTzSeLQyxSBOnw87yZouAYMAK/nmKLuFaCyKHxtcAedyiNv9g0KeOs1BqE458W PN11bSjm3GBVBW1bMdMyQ7RkdhfM59RC5WC2PoYBV74GlkpsdKnk7ygPImGWK5watg5y pU+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774607493; x=1775212293; 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=kRfsS1H0OfXi/OKjLlmM2I3kRnvciT3vVPcYJHJok3w=; b=ab/+NuO7fsGdrQkaOZH/qGt3MeuQLfLlYuDDZFoF0PO6lMY6O0wBsXMMp6NzdKQoOj 6nd2M7F27NzVaph665m2uIZW1NrTPYtG0mDEt/YFP2BK23/cFM40K1Qi3yN3ClnVQAbp 0GAKVx1wbymVGM+c6w+hl8xO0GEbryCX6PpPWPw3gOMGUN3BOYTp0iJRAba+mitNiPbC 1jcVzFgUHO9mZoVMNh8l6/VkY3+SIa0TqduGjg/fUhZtbBZPLoluEMoCMm5ntR+8IlBf WPx18Iia2g81P4Jig60lwfMkSzMozKlhC/++53lVNpsJEmd+b4oUyxs8rscA4y4Rqbw/ 4T3w== X-Forwarded-Encrypted: i=1; AJvYcCXpoDlRU27BbLsAWJkead3DQpwKHMP4Xr9+8IecO6UgSQif0jVfeUZBOd/+txHWro+1JJt6q1tlrXnZ5QI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6k4Etdbgm1TNmGvDfbceNH0AHeUozFoj4lIqHPdJ69NBWWlrS j4Spdk5XxQJUWIoXHq6s+Wf94WgpQ305SnNLH2dwilV2ADjNF5w+zssIYrrLgVCz9DDLGL1NSp4 wMXc5G56Mf+0z+FMbxAGzNOgKOGjYxOa7wHXoLzNJiiSTcL0tdNyWehRLSlO0CBXfFAY= X-Gm-Gg: ATEYQzxQ7te9DiqTHavdoOVm9JJx85p+H8x0jTLV0LcjijN3vC2M4UAb5aDuYdaJP3m cp38Gv725ugkymS6FV0sTRoVGFYFjEMxHBbmx+LgYBEO3i2vkdVP3SNhJrRIdnJsa238lBZWCJL vN9PanNnEgj20LUM7RVzdlANxrDtnJ7yqUxYUe5tClbREgNwjxLObtvlcw4R1pGA9MtCGscKNzv lZ8uH3s9mqbKo85aofl6NRS/4gxJFJ1DnHNuy+3T48RtsgGmP6F9r2L0RmgW97K43dL0NcUy9eg WyEaxrmH33PksWzGbCQU1BhhJ8O7LPG2KdZCabzebvuUm3N2dXv9wUJ1Ivi+t+bu9zcC+BgvW4r 0IrxVtBM7NuOeu/ir39bswQc4Pyq2V3t6FHcZ2oHnFS5Zd3ZWjH8= X-Received: by 2002:a05:6102:8026:b0:602:b1cf:80d5 with SMTP id ada2fe7eead31-604f9070848mr641322137.8.1774607492816; Fri, 27 Mar 2026 03:31:32 -0700 (PDT) X-Received: by 2002:a05:6102:8026:b0:602:b1cf:80d5 with SMTP id ada2fe7eead31-604f9070848mr641306137.8.1774607492316; Fri, 27 Mar 2026 03:31:32 -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.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 03:31:31 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 27 Mar 2026 11:31:12 +0100 Subject: [PATCH 2/4] gpio: aggregator: 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-2-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=5044; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=cvNWbcJEPu+X1KGHjftcUVfo5YRpAWfGsNOyThkztWg=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpxlx7/LwnXz655ObLQ1uxB4C2yqxOC9hpMFgFZ FQSh4Sn4uqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacZcewAKCRAFnS7L/zaE w7K9D/9OPshfbXmeEOYpJy4frYd3hQfDF7xgiCMX4+XAL/LpWN+rvWWIls7yN+emtf9OAZ7IKpm Xoh3Grl56GxlBaDpSXfnCNOhIgHUJTgPVsnsGFwr57fz0mcZrRB4hrlu+bXZwXCQsG6raVFlqsv TmNBSjmH/7DSP71y7OmnC0ZU+KKr8wZo5O7p5U8xuhA36wzLPx5GgWkJo7PWIN//ie686kK/Fse WcDHRnAAn2/fUaE6WpeUz7wKTcwtQCavkhTRCa168yKWcrJ1Gpghrq7+lBVGHvd8EAJshd38KQH ie0P6LYygePSh1yWcRKpEwWLv0XFAFL90sG62NkcyEe0qeWg6kYcUgzOS797bmn2PUEQpF3cOpV nO2xU/JgVnP7k1JaOuLGIFhNehwvUsewV9k/On23skZxhGgwiuddBqE/AJ9YvMu/RTUHaX8tvxG /dYoiFalySxv1a4BbM4voU70I145sx7+8ZVmO0mCaO+VvbIcUKG2tZgIJEjepZsdiWNmqRlXTAi 9V9zVQgMt0AgOOhuUahmdjrC3YT0s3KkSwP8S5VL4idlhH8F1tBpgHPuMi9bBtjKP1JiuMZRcyY Cb7IwuaIo7dGR+SQG7HkZY3udgGCkoL7VonU5SXkMjpPLSWOERRfTxVH4XrSW/Fwd9xLwIeuYn7 sFqe58CYYuURMeg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA3NiBTYWx0ZWRfX5OD5i/wu7H+p m3BbQjGhgDOJnEnYwx+z7bFFG976Vb+/rpFZ4iRO8oEIhQ3ZKFdsYDV0QYuCCXVo83Yv/9/bBKf /eCOG5JmSDpCEzRz+8/PexDLncFONgOdomMvpolAjt2pBgrOvN00502rXSTznc3BdncXOeVnHj7 NOyl2M8ZrCxKq2ak03CuYU3/OdW9Sn0J/8EtDTHgUb6vISif9H8oZOaXHWaBaPBcdWihEQH3by+ UPonl6Gsz0Bw3KqBp44GUUSwVQZuwZBquO7YsaptstQ3bLLj/pY017pXtQSKcywh1QhsJXkxQzN yA7aRPLDd27mAoT6yoENcJ705BVt8KCFech0PdCy7ALC6H/mwh2yDoHH0b6+UEmQZAxga5EMi4D EbLdwX9sb7LAVzqKaJSkwLbdIEKts9FuLGBMfRcp3WmGYy2V0c028fmcUYo96m8SLPKuOMw5hYo HY3sjF6b/RLswi6jXOg== X-Proofpoint-ORIG-GUID: GMcoISiIgCQoMMhg4nD097v4Y7Y6G7Wr X-Authority-Analysis: v=2.4 cv=BZrVE7t2 c=1 sm=1 tr=0 ts=69c65c85 cx=c_pps a=1Os3MKEOqt8YzSjcPV0cFA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=DQLobAsLdNT4mewj-18A:9 a=QEXdDO2ut3YA:10 a=hhpmQAJR8DioWGSBphRh:22 X-Proofpoint-GUID: GMcoISiIgCQoMMhg4nD097v4Y7Y6G7Wr 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 suspectscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 impostorscore=0 spamscore=0 malwarescore=0 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 Reviewed-by: Linus Walleij --- drivers/gpio/Kconfig | 1 - drivers/gpio/gpio-aggregator.c | 38 +++++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index a603406cb2e53a89e1da6214a3c1c256d5246be7..09db777938f3723e5dbd895dd1b= 30d39a21a2da1 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -1984,7 +1984,6 @@ menu "Virtual GPIO drivers" config GPIO_AGGREGATOR tristate "GPIO Aggregator" select CONFIGFS_FS - select DEV_SYNC_PROBE help Say yes here to enable the GPIO Aggregator, which provides a way to aggregate existing GPIO lines into a new virtual GPIO chip. diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c index 9adf3228c12a84e098ab7ffd543fcad58951ba99..5915209e1e2168b0932de4d16af= f38074b889c2b 100644 --- a/drivers/gpio/gpio-aggregator.c +++ b/drivers/gpio/gpio-aggregator.c @@ -32,8 +32,6 @@ #include #include =20 -#include "dev-sync-probe.h" - #define AGGREGATOR_MAX_GPIOS 512 #define AGGREGATOR_LEGACY_PREFIX "_sysfs" =20 @@ -42,7 +40,7 @@ */ =20 struct gpio_aggregator { - struct dev_sync_probe_data probe_data; + struct platform_device *pdev; struct config_group group; struct gpiod_lookup_table *lookups; struct mutex lock; @@ -135,7 +133,7 @@ static bool gpio_aggregator_is_active(struct gpio_aggre= gator *aggr) { lockdep_assert_held(&aggr->lock); =20 - return aggr->probe_data.pdev && platform_get_drvdata(aggr->probe_data.pde= v); + return aggr->pdev && platform_get_drvdata(aggr->pdev); } =20 /* Only aggregators created via legacy sysfs can be "activating". */ @@ -143,7 +141,7 @@ static bool gpio_aggregator_is_activating(struct gpio_a= ggregator *aggr) { lockdep_assert_held(&aggr->lock); =20 - return aggr->probe_data.pdev && !platform_get_drvdata(aggr->probe_data.pd= ev); + return aggr->pdev && !platform_get_drvdata(aggr->pdev); } =20 static size_t gpio_aggregator_count_lines(struct gpio_aggregator *aggr) @@ -909,6 +907,7 @@ static int gpio_aggregator_activate(struct gpio_aggrega= tor *aggr) { struct platform_device_info pdevinfo; struct gpio_aggregator_line *line; + struct platform_device *pdev; struct fwnode_handle *swnode; unsigned int n =3D 0; int ret =3D 0; @@ -962,12 +961,23 @@ static int gpio_aggregator_activate(struct gpio_aggre= gator *aggr) =20 gpiod_add_lookup_table(aggr->lookups); =20 - ret =3D dev_sync_probe_register(&aggr->probe_data, &pdevinfo); - if (ret) + pdev =3D platform_device_register_full(&pdevinfo); + if (IS_ERR(pdev)) { + ret =3D PTR_ERR(pdev); goto err_remove_lookup_table; + } =20 + wait_for_device_probe(); + if (!device_is_bound(&pdev->dev)) { + ret =3D -ENXIO; + goto err_unregister_pdev; + } + + aggr->pdev =3D pdev; return 0; =20 +err_unregister_pdev: + platform_device_unregister(pdev); err_remove_lookup_table: kfree(aggr->lookups->dev_id); gpiod_remove_lookup_table(aggr->lookups); @@ -981,7 +991,8 @@ static int gpio_aggregator_activate(struct gpio_aggrega= tor *aggr) =20 static void gpio_aggregator_deactivate(struct gpio_aggregator *aggr) { - dev_sync_probe_unregister(&aggr->probe_data); + platform_device_unregister(aggr->pdev); + aggr->pdev =3D NULL; gpiod_remove_lookup_table(aggr->lookups); kfree(aggr->lookups->dev_id); kfree(aggr->lookups); @@ -1145,7 +1156,7 @@ gpio_aggregator_device_dev_name_show(struct config_it= em *item, char *page) =20 guard(mutex)(&aggr->lock); =20 - pdev =3D aggr->probe_data.pdev; + pdev =3D aggr->pdev; if (pdev) return sysfs_emit(page, "%s\n", dev_name(&pdev->dev)); =20 @@ -1322,7 +1333,6 @@ gpio_aggregator_make_group(struct config_group *group= , const char *name) return ERR_PTR(ret); =20 config_group_init_type_name(&aggr->group, name, &gpio_aggregator_device_t= ype); - dev_sync_probe_init(&aggr->probe_data); =20 return &aggr->group; } @@ -1471,12 +1481,6 @@ static ssize_t gpio_aggregator_new_device_store(stru= ct device_driver *driver, scnprintf(name, sizeof(name), "%s.%d", AGGREGATOR_LEGACY_PREFIX, aggr->id= ); config_group_init_type_name(&aggr->group, name, &gpio_aggregator_device_t= ype); =20 - /* - * Since the device created by sysfs might be toggled via configfs - * 'live' attribute later, this initialization is needed. - */ - dev_sync_probe_init(&aggr->probe_data); - /* Expose to configfs */ res =3D configfs_register_group(&gpio_aggregator_subsys.su_group, &aggr->group); @@ -1495,7 +1499,7 @@ static ssize_t gpio_aggregator_new_device_store(struc= t device_driver *driver, goto remove_table; } =20 - aggr->probe_data.pdev =3D pdev; + aggr->pdev =3D pdev; module_put(THIS_MODULE); return count; =20 --=20 2.47.3 From nobody Thu Apr 2 17:13:11 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 8C8A03B389A for ; Fri, 27 Mar 2026 10:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607497; cv=none; b=eNoRZnKUSdpqYSkzscQxEAYV+dLGeP3ESxBHMbNfypjxoZw5LdTiwojeXskdEma+Jw7rm7gUm7LO6eYE0SlMK1v/nfewYV/lgNccRW1O2iVDvLMIsRa9IEtdM3e39YFskOgWp0zwdPyH/PI4DQFhibVBp+kzZWo8RvlknXCpGjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607497; c=relaxed/simple; bh=q/vXhHDoFJqrdpA76UB07ULdvhJqcsq8Sba4mXCbT/w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g/JtF6akYlXijFUc8WH/lm91qtdACndFVG4DCbIKIW9pEH/K1tFK5CjCq41DCYww4UDbkT6r7/7udzLF/G6oJkGaBbY9OSPs6vAXiTeV6PQXFc7BXO8ZLW/VxyyPMO2qC20BT7aW/eqKewwaGV0r4dTAzjhmKnlGoKyP1N0ozK4= 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=pYDhOn8G; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=COn68SCa; arc=none smtp.client-ip=205.220.168.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="pYDhOn8G"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="COn68SCa" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62R6wFtD1710771 for ; Fri, 27 Mar 2026 10:31:36 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= 3/k4engZPj/RiobDJAVbe81ltf6mEEKXLxF5f98ke8s=; b=pYDhOn8GWhyV8LJM Vc/eiIkKRgmp7Yzw0sgSZAwY3X5izJ0alPrl8oLLpd6hv0qZQ936ayM0R8gF3B0Y PyvJOf1uT7DtQmxl02puaAlIAUF1l1HV59J18O+DJW2vxj8Y/lRVUOa+xrH7+MZh FFL4+q6p+89bzUDVz9MZQMb4q4dG6CyVrAvROzP8Yf5k8Hb54Yn6fOMJ9enjv7OF Gnob3OuRIPaserW+nPHOkb0kbxBAEyOkp8RyVKRX70p3nXAfEmEs1SJkD7AP1rE0 qxTko1xH5GYT0zXIzmatJr50Dd2pdYyvwJ1Sd4ZFrEIxnxsLIaJze2AsJIZXgbs9 nEIupw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d5bxvjkm1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 10:31:35 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8cfbeca17b2so793058985a.0 for ; Fri, 27 Mar 2026 03:31:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774607495; x=1775212295; 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=3/k4engZPj/RiobDJAVbe81ltf6mEEKXLxF5f98ke8s=; b=COn68SCaGxHwUJ6ao52vv85WkKNAmSMivdIOZWlTrVNVBjIMaBknvbIxV8A2my9apl ypVXwqNhETuQ9BCpe5zAs8piS9Clpi/0pjLFyMvdgVxlokmblFhM+nvGMmEXt0E6a73/ 9LuKGWPRYvSO67IbpScehv+JdBM/1ul4EGBdV0XAnPbMpeKZUBfiSRRs04id0x0sCAmG 3KkiKOqhtKigsdont41A8V5Yk8gAhugIe3X+/jUYFMJiH7eWwwi3uEDwbCDOVmrp9Ktl XVgQxzPV1jlOieJ/4mYTBGXLXbyCvJw3Hgf5CvleFP44pGuMVWwDLcM2O/upPbwX3Ixi Cm+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774607495; x=1775212295; 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=3/k4engZPj/RiobDJAVbe81ltf6mEEKXLxF5f98ke8s=; b=FVnmuLV4+etp3Yk3lAFiaaOmBsM2U0aDn7ToclmPeB43Y4qs/Xn+dLTGmVj8Fp1kWo 8DWZ528hNyFUzgB7cz3/llovWJH175Wr9QZBrh/fvvHpu0FyV7JaQF7qOwYUY8kzcJHs TaiDBizKa3yiGUZ6bvgpz35+A3p430GeWgT7NKD4mUcTZg6z8DDD/cENintLaVsochvm N80Fad59pwf928yacmNe9F3YLzpmfXD3pdjXPC+ZWxVK86c2Sf7gnF2x4D8m9qF1ioxO T0IpKQoZWpR+pvsexgNIR8XJvh+nw2/DkO7dKTdzNrWPrJtZWtq5rLx85BKRtckfy50b u9Yw== X-Forwarded-Encrypted: i=1; AJvYcCVjV+dniIRV6I2VxQRzTEeaoyif6EpgCHPxE6eNY9+PncVpG64JNwZ/Jvg+jVp+h7ekWFm8lhYWkQkpQGg=@vger.kernel.org X-Gm-Message-State: AOJu0YxVsibp0zED/zIoJ7NZcy5oLUmlgeAAtF/QcVgk7Tq0F8j8qmVD uxKy0inGUegb+vXE6/+eX3AOeFaXqxCMQaGdjQl0l2yXk/Aaw0EOFj2ieZL9w7PdpDzWWd4Uy/4 c32zA7sQA7NZ1uzCOUDBiwz0Bir9OucICWKOyda7W+pfHkYXFeCSyCchWCPDfwmQ0HGg= X-Gm-Gg: ATEYQzzkf3tZVHDOY42RB+4fgwap0EiP0AChfm4Rr80KBrntHO62ZJY3cJeyWlHC7lS 74TQPhXPXW3UjtmSMCv/8OBiUi7e24ZLAPOcosm0qXBFXLXyd+UBESSdbZBeRLmfz51dk1HHHx/ 18r7k1rhdPS+N35N7kIf1vXop0FLm/WEwYFFmZxk3hdOdlKeabm3BdX1JsfAbogLPgZCeW3Ibfr Qa16a1FannD8Po/M8mpSpcfMAhMdXPcNws9V8kM/oRRmH6bo6zSN7S0+aMHMVGMqmeTP8yaNKIQ hUfwstTw+TkvuZNsXMZ6tQlTAsGQNl9xvSLK7cgeQa2kEXAdc0RN0NEFJlImECEE+wIyu/SFjDO b9i+0ZrTK5zG27tzRNsah5X0OPNc3rw8x9oG9Vadq+V4Z1PX4Zgk= X-Received: by 2002:a05:622a:14b:b0:509:144a:43bd with SMTP id d75a77b69052e-50b9938983bmr59466191cf.3.1774607494616; Fri, 27 Mar 2026 03:31:34 -0700 (PDT) X-Received: by 2002:a05:622a:14b:b0:509:144a:43bd with SMTP id d75a77b69052e-50b9938983bmr59465761cf.3.1774607494087; Fri, 27 Mar 2026 03:31:34 -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.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 03:31:33 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 27 Mar 2026 11:31:13 +0100 Subject: [PATCH 3/4] gpio: virtuser: 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-3-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=3646; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=q/vXhHDoFJqrdpA76UB07ULdvhJqcsq8Sba4mXCbT/w=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpxlx8ngUkGTup2/Q6rOFiB8rh7VNTI/rHOyn5Z ygK8SZ8qi6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacZcfAAKCRAFnS7L/zaE wzT4D/4vtUnZRLGALIT9cgohlC+n+TmdnZZ95emyzO3t+Vdm54HMUu4Mj553eFmFauAJ1PnrETX YPFPEnQNuQo3F9I54S48dP++uXRPmd35Ug2S1P9bZOz4B3QheCo21EnlSVIjPZjQjRtcctDOlqh fhe9y8qLaK4E9Ez2iekLGEhURDzTErhfShzAD49NRPcpPbOtYMrzGBaaLmV+KrnAFYSPIRAWmqx 8KkNfYI1lMAeEjVc5tmfJJF5N3ouz0NVeNnYL1SxTVPO1GcJS4Gy51Hi73T/KTIjLc6D0ClNUrV soc31xfGiULvnISjRhSH2jduwutJBfmVdGP/LsOZ2FEDKpMl1kC17/k1oZseummCxGz9indWEw3 th2hy8dBOPyko01U63hX1HFntoViGNORAFIEHo86BzT5l4fW0ig0c8Zkvd4Yh6zDdgJ1JdKiZxr uOeoq7gqMXDi4uW1MO6qq/W0L/wLmaTIsnUyNohE57i2Z6/D3HhZQKVy8Ww98BgOkVrbMV9M7GM hswxWGwnIq3EVVsTVnOfbjTejySYuVCgOlG5QBgsB6fUR0c4DOXTPLaFGUzCKvAcu5kwSU+c0Po QcUkDblbdKuHOqT94NNegxod7LCqgR/a/5Mb63p7EaV7BHyPvITW/0JzWBbkO8Y6ufLHCf7MbkG hUqfYaSf9ahbtDA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: UoPSUiRL5iztYiDVuIY_1pZZGySJoy65 X-Proofpoint-ORIG-GUID: UoPSUiRL5iztYiDVuIY_1pZZGySJoy65 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA3NiBTYWx0ZWRfX5uRTZfrKRgZ2 z0YYqvLC6UF3LOyafUyyEe4QvfzgFzxLXVnyPOg64ZU6HmusD6b4oExMR70Huk4NJLQ40koKTwf ZTPcKlbL8e+W4C1tvJH+1xRvmRcgdUQYKWfu1QJpDPMgxUaXrJ3MjDuAXyHrOTdYcuQUeqKtKRH 0WPBFtNRPNmfykoflNIHeTy6XAfGvlyCvFTogholmXWZXyTdz/TTRDxbngEBbDvHzfr+Q+zzAWU gUWXUzmrIfM8GpvQ5Ca0fLdrLP5ZF5HyuBwpXxuNBANuRqBrs3O/XCSCIqxJSgvwkDM7yorhhKV F3Rf9jnsA9rGEqWn/GoNmp75PU+SfVJTLe6X263QweB9GqIo1b570ruHnEYNHCLB6Hgw9nBARwc A/0pCYrSki1GY8+uzQaBhSyJfJC/u3ds3LF7gCnOQ7wDN7UkYkn/fwnk739EdT9b04DA2wA7+NP VtqvzAU4QuHAY/WjWsg== X-Authority-Analysis: v=2.4 cv=ToXrRTXh c=1 sm=1 tr=0 ts=69c65c87 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=eBvw1o6kvFRJjbXN8kYA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 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 phishscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 suspectscore=0 clxscore=1015 impostorscore=0 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 Reviewed-by: Linus Walleij --- drivers/gpio/Kconfig | 1 - drivers/gpio/gpio-virtuser.c | 30 ++++++++++++++++++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 09db777938f3723e5dbd895dd1b30d39a21a2da1..56a7ddaa95eac07ee4f7b755335= 595805a316319 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -2072,7 +2072,6 @@ config GPIO_VIRTUSER select DEBUG_FS select CONFIGFS_FS select IRQ_WORK - select DEV_SYNC_PROBE help Say Y here to enable the configurable, configfs-based virtual GPIO consumer testing driver. diff --git a/drivers/gpio/gpio-virtuser.c b/drivers/gpio/gpio-virtuser.c index 955b5efc283ef565f8c1cfcaccd6d653f2f78f19..fe0eac920ced323926b2bc83ca0= a2eb5f85c2154 100644 --- a/drivers/gpio/gpio-virtuser.c +++ b/drivers/gpio/gpio-virtuser.c @@ -36,8 +36,6 @@ #include #include =20 -#include "dev-sync-probe.h" - #define GPIO_VIRTUSER_NAME_BUF_LEN 32 =20 static DEFINE_IDA(gpio_virtuser_ida); @@ -978,7 +976,7 @@ static struct platform_driver gpio_virtuser_driver =3D { }; =20 struct gpio_virtuser_device { - struct dev_sync_probe_data probe_data; + struct platform_device *pdev; struct config_group group; =20 int id; @@ -1002,7 +1000,7 @@ gpio_virtuser_device_is_live(struct gpio_virtuser_dev= ice *dev) { lockdep_assert_held(&dev->lock); =20 - return !!dev->probe_data.pdev; + return !!dev->pdev; } =20 struct gpio_virtuser_lookup { @@ -1342,7 +1340,7 @@ gpio_virtuser_device_config_dev_name_show(struct conf= ig_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 @@ -1450,6 +1448,7 @@ static int gpio_virtuser_device_activate(struct gpio_virtuser_device *dev) { struct platform_device_info pdevinfo; + struct platform_device *pdev; struct fwnode_handle *swnode; int ret; =20 @@ -1471,12 +1470,23 @@ gpio_virtuser_device_activate(struct gpio_virtuser_= device *dev) if (ret) goto err_remove_swnode; =20 - ret =3D dev_sync_probe_register(&dev->probe_data, &pdevinfo); - if (ret) + pdev =3D platform_device_register_full(&pdevinfo); + if (IS_ERR(pdev)) { + ret =3D PTR_ERR(pdev); goto err_remove_lookup_table; + } + + wait_for_device_probe(); + if (!device_is_bound(&pdev->dev)) { + ret =3D -ENXIO; + goto err_unregister_pdev; + } =20 + dev->pdev =3D pdev; return 0; =20 +err_unregister_pdev: + platform_device_unregister(pdev); err_remove_lookup_table: gpio_virtuser_remove_lookup_table(dev); err_remove_swnode: @@ -1492,8 +1502,9 @@ gpio_virtuser_device_deactivate(struct gpio_virtuser_= 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_virtuser_remove_lookup_table(dev); fwnode_remove_software_node(swnode); } @@ -1723,7 +1734,6 @@ gpio_virtuser_config_make_device_group(struct config_= group *group, &gpio_virtuser_device_config_group_type); mutex_init(&dev->lock); INIT_LIST_HEAD(&dev->lookup_list); - dev_sync_probe_init(&dev->probe_data); =20 return &no_free_ptr(dev)->group; } --=20 2.47.3 From nobody Thu Apr 2 17:13:11 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 0D222265623 for ; Fri, 27 Mar 2026 10:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607499; cv=none; b=Om4+qdSE4OrcT20ZJVWGQluAwRkn1Pvid70RvyrmUcpufW7XKRy8asEo3oluk4SpSbBc7rcAhH2RDlszOUxffYpbpQ1HBv5J/nHMJnQKFuQXfNOfBD0DCtT7MmPs/4ZFGAFMlIvd32QB6dRICux2jrE/42tGzeDsNUoK87Ye3M0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774607499; c=relaxed/simple; bh=WU6CDpkC8Dvbh1VCJ3wGEu3AeMqtqKzCcbncYoIIAYU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kdX759rdhjotQ4rkskhdE0h5uJVhZXuVS1ONdEjwaBoynyghYX6+8N6kTFsxcyiBtTsdtCWmWH+mGGle4MVc/iAz7JBJTodHnJ83KCUdGZpVQgggr6hTWkrkg/uW/fkUjmxWLln1cWTdyNgzExSnwuei6T7kV2x0mgPe7hYJo1g= 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=MXP8idKd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gp59MI1Z; arc=none smtp.client-ip=205.220.168.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="MXP8idKd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gp59MI1Z" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62R6wv0W2846418 for ; Fri, 27 Mar 2026 10:31:37 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= 3gB2pfdhzvATTeNOLtgyG3Q7kaxhJF7M36bMfUs/gTo=; b=MXP8idKdvurI6883 qOomr1pOlOs4loHEG/C95gwRZGYWsity4Fagjv76OrCmxBSamW2pKP4FDYCJ+sUR pkfmO2jDdWlTth5umvXvt8iE1O4xpwIfr60ipPXL0A5dNUB+94gG4J7FyfzjQ1Li bE7WdqTB8JVke/PBEUmdL2qdNUaavv4Tml5DJH+8PenXmgHdT0fdJyjB2lQCN4iz qj1nWOCNTXUlyNRGaERLtO85KwlRJ8sUOE6T+PQ6t/orCldvdJTbChahfKS7PmTv lUbXYgzSk2DY3xNwg0odAGR7TVRjdyKqQxBUEKNquJrwHHw4vTFakSwUqfN0V0px QlFevQ== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d53eqmmv3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 27 Mar 2026 10:31:37 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b4031b86dso60676141cf.0 for ; Fri, 27 Mar 2026 03:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774607496; x=1775212296; 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=3gB2pfdhzvATTeNOLtgyG3Q7kaxhJF7M36bMfUs/gTo=; b=gp59MI1ZAokgRYfVgmk37G3TQjRFRwDNXt3/Dgxn0V7tucLjn2blK+u9rPmHgY8Tk0 j9uqK+79kl46MR2v19KkJrncbUsW2smjPNNJyUf9Ef9pawrGci7j/xa5kPjdiz2G5icG 5Ilu1aM3jR+YpJ5xnjcHpI2tC/V3q5iEmgq7yFyM2rDq2jGY53DWn5kPBbCQeGCen6aC O8IPijTWLUfGtcA7yV7htdjSwEmj/LmZIhZn1ph0e6SySV4lMe/aKQZnrYLPzWWnnE5a 31od0VB2E6Mp7OBr9PV2TrdskxLIuYnllPQqRFbWE2dQt5mOMuGRx6LhD7QwHxGUE/TW KB5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774607496; x=1775212296; 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=3gB2pfdhzvATTeNOLtgyG3Q7kaxhJF7M36bMfUs/gTo=; b=cnxDNrklZz4JjkgKjs/3n6gvfhUuQGIR6mMax+sJ7CqM2dorA0dtbWB1vq2auunP7G xWhEZrFYUOH0sbAFVU3rgwXEr88RU8TtrM47BpGFOSGVItX/r+ZO6g/qWdb+L3fGz/xJ oFs9x8UFSXcAnQ169MxGjDTaCOcmKNbWDCpYRRKl+5f0ePObSaZjRecPCWTdURalcsAz RZVtX3csDM2pq0Be4c9Qfd7wli3xCg2SJUoWArj6R0P7K7SDz4NZq4Ko5rC+QnrzamCb jmgf0590+YUEHYSearWhFzPepT9aASVzdPBnTJC8MssrHp1C0tp3ZKzyDPl2wBlzZdSK Uelg== X-Forwarded-Encrypted: i=1; AJvYcCUDZdfTQN59630dekFp+8oKUVdelZcdsAUEIcOXbALqUjcIElBtK/EzCucFpRFFq2qnAci8btKuUKiTK/s=@vger.kernel.org X-Gm-Message-State: AOJu0YxBLfmpIpHjNMiwT3hS92zDtOdoGe7vZ4sIvgiXz6Qb0JevSTt1 OtF/SDjIbbLgUiwUIKj8XavawmW0qVP62mTajUJqz3QDbj94coaXyVNcVq4FRUAB2jm0UGEOlbS 1ovoZP0sdr2FxehtWsiCKFUQLJ7sk44XLnw5Fq4mfsKK8/kVne8JIIJcQKhMWmbSPr2V3Gf9jK3 s= X-Gm-Gg: ATEYQzy6tnGTU5koPnJzwvCDgBRAC5ll5AX3CncxCuhWygiMfMm9iACaDlCMLnqDHYy P5PQIMEGXX+Fc8Hm5RI//GDY8U0DdUMgmiEPPDWewrIUCVxSouuU/ZZxfjgSGFkeD726dfFWKj/ JjnVB7EfAOdy+GMeaWnIj50h9r7+QKH7FVBaCBUl3I16zYtwghqO0L7w/QyFGXTtCAls3pIJmVK 7Hhd5UBzFO2mHS2CrC7vY+gHjkiDbEDm7i0sCpK6d/RLl9aYqkWKm+PGgx6nSn6HB0TlZbDyrR8 InZHQDYQ5u7hPFJTY7XcnJiNQB0Majo1Bv+B8HTWmtTM7+DcFLoDCG0Cfuomk5ZHXE8mwR+GZdp 5qkiRmrAf8x0AcQPGmBwelgbLABTKisKEgF77YndrVxyIO+usYXY= X-Received: by 2002:ac8:5982:0:b0:50b:5243:d679 with SMTP id d75a77b69052e-50ba38b1800mr23937661cf.46.1774607496233; Fri, 27 Mar 2026 03:31:36 -0700 (PDT) X-Received: by 2002:ac8:5982:0:b0:50b:5243:d679 with SMTP id d75a77b69052e-50ba38b1800mr23937261cf.46.1774607495728; Fri, 27 Mar 2026 03:31:35 -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.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 03:31:34 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 27 Mar 2026 11:31:14 +0100 Subject: [PATCH 4/4] gpio: remove 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-4-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=5390; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=WU6CDpkC8Dvbh1VCJ3wGEu3AeMqtqKzCcbncYoIIAYU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpxlx+YuCT5bM77vqw9y37aa3cTWbIljfFX6LDP l9lF7bBLZGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacZcfgAKCRAFnS7L/zaE w7PGD/96S1XxvMAn/LVbrC3X09OwYebs5mrMuBjdtw8876fx9SDho5XLNX5pGEmG4Xi9kUHxTLx Eunqpoj0GnRXkXHIRV7zfCmEpN2lGJ+9D+bQ7vURI5ld+f8y+XbwF3ampX8I4g84z//URvKaMac 0H7M6ZCHuXWo4MO0+Z4XbOMGdrthjB5wviXIVZuaPkr6NR6O7rbkLrml37dbau2LhPk0rmmAFVB dFbfaytCtwFUKHyt/My3rtgWyLC5cimZPq6H4J2/sP5vB95qyvCr07gufFHwvBHYRZ7TOsIj5yX T1PGKJdq9E6h730GGERFFP9pcgkW9bgAp+hFxAThjbj2g8Y8SjhSlgj0WuSp5814igLhjIxuj2r EjScMq8iQ4mdUH2ViAsS6GeH4XCJGkugciElEe22s1ge+8w5/ghmNIOqaIlkFHlbQwC2VBxMFry VbE8Uh0cOXBZmxoBzp5bzE8Cyh41z0R7ct3Sv17DnigPgSYPDYMTUr/DyUgieBWUQN7RZXXueC6 wkhrxxnl+76Bq15vfJvvVWv7qobrmLtHg1DTzJkA5X3KwV8ifTZIIqQ8qm42K3hwyDCGN83iRZh 2+sxLSCxAVQutg6K5B5BxsPg20F+MtW+jwi2Beh47ktIuzsVu3bWu5YfJY5G4vOh0l7LuLPYkt2 EOj00yEK8IpQE2w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI3MDA3NiBTYWx0ZWRfX/IjNQi0n/O2O R+rZS+jG1nzMuHPeeTCXlhTcbmTletmHZENMFogJ65jBS56Hol7nT6pxrsVFfJ8skueafcX0++u kfG8PWkv/rlj61QimvbYJKk8q0HOuo+APP3C+uqZyXPfgjkFG5C4Rc+LQB9wfmg73Di1Fxuq0M3 UK+hKzQZViHLyMzYElpx5f8liEXnhyHdFmOBBMuIQaQ37b5WrIfg/FBVducNFdsMkTOE+CSRy/p kbawML5g3FVegTDuWLk9/9mDF51r2LXQfGsOBLCVoIkSejSWCAPCOcoU/6xOAKP224AFyLeJo3E fXHX5npAWxFK4Py9X8jzkvhP1PuzIEx7SRXkjt45jQvL6lBany1N6nNnKRNtr1l7l8Y3fFOH/qA hRm/2Hj4LL/43i6ZgFNXbUTix3zIj3qlG7jWr4Knti1slAcouigqw1LSmfL74J1mD+qK8lfLWg+ 4mmubNrs+MckODxYefA== X-Proofpoint-GUID: mN66_mAdcNsf4zcebno3945PZmbDXlq0 X-Authority-Analysis: v=2.4 cv=S4bUAYsP c=1 sm=1 tr=0 ts=69c65c89 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=DfNHnWVPAAAA:8 a=G7goKWzWcKrMef2dhUMA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=rjTVMONInIDnV1a_A2c_:22 X-Proofpoint-ORIG-GUID: mN66_mAdcNsf4zcebno3945PZmbDXlq0 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 priorityscore=1501 malwarescore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 spamscore=0 impostorscore=0 clxscore=1015 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603270076 There are no more users. Remove the dev-sync-probe module. Signed-off-by: Bartosz Golaszewski Reviewed-by: Linus Walleij --- drivers/gpio/Kconfig | 3 -- drivers/gpio/Makefile | 3 -- drivers/gpio/dev-sync-probe.c | 97 ---------------------------------------= ---- drivers/gpio/dev-sync-probe.h | 25 ----------- 4 files changed, 128 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 56a7ddaa95eac07ee4f7b755335595805a316319..257123b3568688ad86a742043af= 2c6e098a56c3c 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -2082,6 +2082,3 @@ config GPIO_VIRTUSER endmenu =20 endif - -config DEV_SYNC_PROBE - tristate diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 20d4a57afdaa6db0d01cd7e107a2e22004641ecb..199b9559a1892c4fce058cb9590= 7de0be5d85780 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -21,9 +21,6 @@ obj-$(CONFIG_GPIO_GENERIC) +=3D gpio-generic.o # directly supported by gpio-generic gpio-generic-$(CONFIG_GPIO_GENERIC) +=3D gpio-mmio.o =20 -# Utilities for drivers that need synchronous fake device creation -obj-$(CONFIG_DEV_SYNC_PROBE) +=3D dev-sync-probe.o - obj-$(CONFIG_GPIO_104_DIO_48E) +=3D gpio-104-dio-48e.o obj-$(CONFIG_GPIO_104_IDI_48) +=3D gpio-104-idi-48.o obj-$(CONFIG_GPIO_104_IDIO_16) +=3D gpio-104-idio-16.o diff --git a/drivers/gpio/dev-sync-probe.c b/drivers/gpio/dev-sync-probe.c deleted file mode 100644 index 9ea733b863b2232a16ef9ccc411f180b43bad26e..000000000000000000000000000= 0000000000000 --- a/drivers/gpio/dev-sync-probe.c +++ /dev/null @@ -1,97 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * Common code for drivers creating fake platform devices. - * - * Provides synchronous device creation: waits for probe completion and - * returns the probe success or error status to the device creator. - * - * Copyright (C) 2021 Bartosz Golaszewski - * Copyright (C) 2025 Koichiro Den - */ - -#include -#include - -#include "dev-sync-probe.h" - -static int dev_sync_probe_notifier_call(struct notifier_block *nb, - unsigned long action, void *data) -{ - struct dev_sync_probe_data *pdata; - struct device *dev =3D data; - - pdata =3D container_of(nb, struct dev_sync_probe_data, bus_notifier); - if (!device_match_name(dev, pdata->name)) - return NOTIFY_DONE; - - switch (action) { - case BUS_NOTIFY_BOUND_DRIVER: - pdata->driver_bound =3D true; - break; - case BUS_NOTIFY_DRIVER_NOT_BOUND: - pdata->driver_bound =3D false; - break; - default: - return NOTIFY_DONE; - } - - complete(&pdata->probe_completion); - return NOTIFY_OK; -} - -void dev_sync_probe_init(struct dev_sync_probe_data *data) -{ - memset(data, 0, sizeof(*data)); - init_completion(&data->probe_completion); - data->bus_notifier.notifier_call =3D dev_sync_probe_notifier_call; -} -EXPORT_SYMBOL_GPL(dev_sync_probe_init); - -int dev_sync_probe_register(struct dev_sync_probe_data *data, - struct platform_device_info *pdevinfo) -{ - struct platform_device *pdev; - char *name; - - name =3D kasprintf(GFP_KERNEL, "%s.%d", pdevinfo->name, pdevinfo->id); - if (!name) - return -ENOMEM; - - data->driver_bound =3D false; - data->name =3D name; - reinit_completion(&data->probe_completion); - bus_register_notifier(&platform_bus_type, &data->bus_notifier); - - pdev =3D platform_device_register_full(pdevinfo); - if (IS_ERR(pdev)) { - bus_unregister_notifier(&platform_bus_type, &data->bus_notifier); - kfree(data->name); - return PTR_ERR(pdev); - } - - wait_for_completion(&data->probe_completion); - bus_unregister_notifier(&platform_bus_type, &data->bus_notifier); - - if (!data->driver_bound) { - platform_device_unregister(pdev); - kfree(data->name); - return -ENXIO; - } - - data->pdev =3D pdev; - return 0; -} -EXPORT_SYMBOL_GPL(dev_sync_probe_register); - -void dev_sync_probe_unregister(struct dev_sync_probe_data *data) -{ - platform_device_unregister(data->pdev); - kfree(data->name); - data->pdev =3D NULL; -} -EXPORT_SYMBOL_GPL(dev_sync_probe_unregister); - -MODULE_AUTHOR("Bartosz Golaszewski "); -MODULE_AUTHOR("Koichiro Den "); -MODULE_DESCRIPTION("Utilities for synchronous fake device creation"); -MODULE_LICENSE("GPL"); diff --git a/drivers/gpio/dev-sync-probe.h b/drivers/gpio/dev-sync-probe.h deleted file mode 100644 index 4b3d52b705198dd153618b087ba9d813736a6f29..000000000000000000000000000= 0000000000000 --- a/drivers/gpio/dev-sync-probe.h +++ /dev/null @@ -1,25 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ - -#ifndef DEV_SYNC_PROBE_H -#define DEV_SYNC_PROBE_H - -#include -#include -#include - -struct dev_sync_probe_data { - struct platform_device *pdev; - const char *name; - - /* Synchronize with probe */ - struct notifier_block bus_notifier; - struct completion probe_completion; - bool driver_bound; -}; - -void dev_sync_probe_init(struct dev_sync_probe_data *data); -int dev_sync_probe_register(struct dev_sync_probe_data *data, - struct platform_device_info *pdevinfo); -void dev_sync_probe_unregister(struct dev_sync_probe_data *data); - -#endif /* DEV_SYNC_PROBE_H */ --=20 2.47.3