From nobody Sun Feb 8 15:42:49 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 2CF652BF3EA for ; Tue, 13 May 2025 18:39:03 +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=1747161545; cv=none; b=ngVJZnrD8By7MBa8LM1xT1lTwu4o070pZMBUwY0XB61pN2evAGpA7o0wAKI7NXws0ou/4MMHu+WDZtBt1WkmHMaih0pZdvBW0bGwebg5B/jV+W1rOf8a9Q5g8a+PsC6RWk6ZgNWkrohjCb/rTTALrGe18oKJ4QPIJaVkWWZZgOA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747161545; c=relaxed/simple; bh=T2RIv4LadExb2Reg9DuIE9o1rh9NeDHCv+KFAtqIUWE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O/Y9np21XG1/J7z0t4QTi/X/PSYpzT/kJW7dnr7CoHcOWIPZzv1Ww2bu7PFWaeodvoQVqSeP7s0LOx5667ZFQL5+smRk9S0hMn5ehpKQDWfgckvKj0bEjK2nrcymzEGlQVIkfY4b8SPge+CdLYA3/IAd5JKtB4dQaAcseYVn9wU= 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=E8Y5tElc; 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="E8Y5tElc" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54DISNt7003250 for ; Tue, 13 May 2025 18:39:03 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= nTC2gb9r2yWGJZtRgDhjlFghIYXR6WJTyRfEKQtEklI=; b=E8Y5tElc56TLjOKu qTtWweQtCiJzstYdDUp5cmFDq/4Ti/8W0ae5bGitkSpx2t2TTCQDPYjIX5tdFRiS 0i5VI8b+bikU9EQ0Bq5wcVBJ3FxhxNz80aRK67mZG8xeaEjcBypkOBAZrnajypVa YEis14G5RAZQiW5wO2fxroVFiIQhhoLoS/LGmPs4qWJnUtYHW69Dlo5WQqM1I2Wx qph+G7uCiJkI5QjJfqYSRZ3loJZcuGavI7xaUGFqGC1tjKq8cH4BN/yX8pfZyoyf LOMlrRV23ma72G5qOU8jFJHuDR22qCEhE/sWQ8GgDor4fIgo1nHgChdiP22GpEf3 onFIFg== 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 46mbcyg16h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 13 May 2025 18:39:03 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-7cd06c31ad6so34146685a.0 for ; Tue, 13 May 2025 11:39:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747161542; x=1747766342; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nTC2gb9r2yWGJZtRgDhjlFghIYXR6WJTyRfEKQtEklI=; b=thKUDnGm8vxb21g0M9TtLlUqVZd8TK8QBGiovzV9fEehH1HbHw8SgLkzM4jL13Pawi zguF4nQTDIvuKUsVTHVTUvPck73Sm+5iIJrNYiT8sYRmZTXVI1Pjekrm+45/5+lQuygt I72/DNLHuQ62IxPqpOygjRFG7IIEus5KWr7fw31sHPNdJEGQbOpiXLHP+lcdjIHccE8b p0P0d02pQ1100f8p6tgNwwPaVvExDl2TmaU8dWXJj+OHPR9/Bip/F4aLdoyJjwJJn/A/ s1HlRt1zlgOLHM5mA5V0IHsfiB+kuryNl50tDAoxUIKP/mYouoW0SVwQ8Lucp4djD0up Nc6w== X-Forwarded-Encrypted: i=1; AJvYcCVS10upBeG5bX2b90z+K0TlwIEkg0viH5wWHw0GOjt5oFLKWSfx4NLrGgLR0SEZB+Cx6PGbvUCYlJJj/5I=@vger.kernel.org X-Gm-Message-State: AOJu0Yywu4j2otgpq8AaFlgbbJfVYv736SAmxbahmdROmxxiymMhkWw/ 0OEU50xROMcHLCzeZPWava5LCWrjfJK6kHDkajioUQVErktoSIEMCKzZ9Ax/09F/OO2iJFVH0FU S3wxq+A1VT3A4qQ5keSpueHEbrW2r14pRJ1ER8SFP3oYPQ9KX5B5fHdh6niFFLBc= X-Gm-Gg: ASbGnctvkNuGQ2nH7DGE2bt5WGle/wyQgdOYqyS0H2IZSZBChPyb/wHQvdAoaGsN2Cp U7s8qzs8ekz1NURdjy6J8AlaIg9loutwU6yM0tetkKaKbnU2+izXbqjY4en3yRiNwt01YpMb+L3 4AV8dvytjFIKD50fuNAGD8qbcmfFbKEmEYVxm2AICgNbFtOIJ6+5DVROb+Grp1yq3ZgnIFLGscV x/7dtQRepm8G5/OgWMynZ8ft9PZ+RLvB+xDV8Z0hG5stO4O/9iam1rweWT93i5Pm1PlY6BmjV1o mwHaTtxDrK5PB9bP+tti55bfv9GShDnFmJAeZfEm6SQM6JwGgf1a6vshAdIO6LQXeR8UHYs4qgE YJkEP1J5pGZu/BvUgTSg73f5g X-Received: by 2002:a05:620a:6015:b0:7c9:5ee5:719 with SMTP id af79cd13be357-7cd1de91286mr794025685a.15.1747161541826; Tue, 13 May 2025 11:39:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFmCoDhYSwUsS+pdhyEeiatm58QEOYzVcT7tHbJZhLrZOzYGJFpqAXBxnTxOmdX4dgGgNMDyQ== X-Received: by 2002:a05:620a:6015:b0:7c9:5ee5:719 with SMTP id af79cd13be357-7cd1de91286mr794020685a.15.1747161541302; Tue, 13 May 2025 11:39:01 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-326c33c12b7sm17383921fa.50.2025.05.13.11.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 May 2025 11:39:00 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 13 May 2025 21:38:57 +0300 Subject: [PATCH v2 1/3] gpiolib: don't crash on enabling GPIO HOG pins 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: <20250513-pinctrl-msm-fix-v2-1-249999af0fc1@oss.qualcomm.com> References: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> In-Reply-To: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> To: Bjorn Andersson , Linus Walleij , Guenter Roeck , Josh Cartwright , Bartosz Golaszewski , Matti Vaittinen , Doug Anderson , Bartosz Golaszewski Cc: linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3328; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=T2RIv4LadExb2Reg9DuIE9o1rh9NeDHCv+KFAtqIUWE=; b=owGbwMvMwMXYbdNlx6SpcZXxtFoSQ4byxEMCX9x27VXk8j7ou321yPvSx7vfF0/7+D54ogZLT /RyzYc9nYzGLAyMXAyyYoosPgUtU2M2JYd92DG1HmYQKxPIFAYuTgGYyMFXHAxtq4u4lbjfzXMN z9nIuaK286j9x89bj25ie2kx//OBlC3s0WnflBtS2qfyO7S6HdvjUGNXXdHeILWho62rPWhvT+i pc6v8J5wzW2M8l92we/6lxuwW5+ynp/+brz/JsqQkcmPYmsSkDeIXi6Tms1n0z1Y7db/o2l+v1y pnKx4KbFx+SHsX/9QNZ6q1XFaf69Hf6tXYq+vg9iXueXV9gEPQ7Ql67fWmk81zH2fyq1V9lDCZs 3yObafKHZua62brjX9cEfXZ4qZck+f3zyfGN/X0qrBfvH710vPTZM5VMHRkqSasvDxRxLDhaIKg J7/29Wk8dztN/Z2cF12KbjT8KpPmJOdzNm9jd01vxpxpAA== X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: NLjDzZYxoGJO0YKo_6Vdh-FP7HhSUAgh X-Proofpoint-ORIG-GUID: NLjDzZYxoGJO0YKo_6Vdh-FP7HhSUAgh X-Authority-Analysis: v=2.4 cv=JszxrN4C c=1 sm=1 tr=0 ts=682391c7 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=dt9VzEwgFbYA:10 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=cm27Pg_UAAAA:8 a=EUspDBNiAAAA:8 a=F7q04jUIKJRoJ265B_sA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTEzMDE3NyBTYWx0ZWRfXwrnPTeoqXeqN ROoG8SvQZsiznRtoSpEONBbNpdoUXsbk/+vMasQ6KPbunaEI0/FkbG5ZJohBX0uMDka/VNfm+KF xBXaPrRqkg7miMOh/DnmcLCJyuwmDZi2ufDyNC5OoJbWE6nSjsQFSAkeWs80jWafOngRfwUOHoe 5SflJRjWgkxsd0WrrGqE6+uiaC7nHSjMsyZNl95WAKKLlBCfnFvEA34iBBs1ckmUdcAOItDSSwj +JFC4R9ZbkkJVEH36lC7t9YZmV2wtgJ8pSDdZHGc03P2ppyVTGpqFOpUWIkS7YQjMOrVcP/FZ8d 9qeeBqHXyECdMzNYGAHrPIjesS+DBvS2AUqNOxK5FzlrpHo6YmiB6b4ZBHGhtAF9m4eG+qAHZrv fgS/T/oPfI9SQ27R/7ogHMKrouwaOhuZkoENnwlpJCsBZfnJi95pwOaAfhS37UjyZq8oGgHS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-13_03,2025-05-09_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505070000 definitions=main-2505130177 On Qualcomm platforms if the board uses GPIO hogs msm_pinmux_request() calls gpiochip_line_is_valid(). After commit 8015443e24e7 ("gpio: Hide valid_mask from direct assignments") gpiochip_line_is_valid() uses gc->gpiodev, which is NULL when GPIO hog pins are being processed. Thus after this commit using GPIO hogs causes the following crash. In order to fix this, verify that gc->gpiodev is not NULL. Note: it is not possible to reorder calls (e.g. by calling msm_gpio_init() before pinctrl registration or by splitting pinctrl_register() into _and_init() and pinctrl_enable() and calling the latter function after msm_gpio_init()) because GPIO chip registration would fail with EPROBE_DEFER if pinctrl is not enabled at the time of registration. pc : gpiochip_line_is_valid+0x4/0x28 lr : msm_pinmux_request+0x24/0x40 sp : ffff8000808eb870 x29: ffff8000808eb870 x28: 0000000000000000 x27: 0000000000000000 x26: 0000000000000000 x25: ffff726240f9d040 x24: 0000000000000000 x23: ffff7262438c0510 x22: 0000000000000080 x21: ffff726243ea7000 x20: ffffab13f2c4e698 x19: 0000000000000080 x18: 00000000ffffffff x17: ffff726242ba6000 x16: 0000000000000100 x15: 0000000000000028 x14: 0000000000000000 x13: 0000000000002948 x12: 0000000000000003 x11: 0000000000000078 x10: 0000000000002948 x9 : ffffab13f50eb5e8 x8 : 0000000003ecb21b x7 : 000000000000002d x6 : 0000000000000b68 x5 : 0000007fffffffff x4 : ffffab13f52f84a8 x3 : ffff8000808eb804 x2 : ffffab13f1de8190 x1 : 0000000000000080 x0 : 0000000000000000 Call trace: gpiochip_line_is_valid+0x4/0x28 (P) pin_request+0x208/0x2c0 pinmux_enable_setting+0xa0/0x2e0 pinctrl_commit_state+0x150/0x26c pinctrl_enable+0x6c/0x2a4 pinctrl_register+0x3c/0xb0 devm_pinctrl_register+0x58/0xa0 msm_pinctrl_probe+0x2a8/0x584 sdm845_pinctrl_probe+0x20/0x88 platform_probe+0x68/0xc0 really_probe+0xbc/0x298 __driver_probe_device+0x78/0x12c driver_probe_device+0x3c/0x160 __device_attach_driver+0xb8/0x138 bus_for_each_drv+0x84/0xe0 __device_attach+0x9c/0x188 device_initial_probe+0x14/0x20 bus_probe_device+0xac/0xb0 deferred_probe_work_func+0x8c/0xc8 process_one_work+0x208/0x5e8 worker_thread+0x1b4/0x35c kthread+0x144/0x220 ret_from_fork+0x10/0x20 Code: b5fffba0 17fffff2 9432ec27 f9400400 (f9428800) Fixes: 8015443e24e7 ("gpio: Hide valid_mask from direct assignments") Reported-by: Doug Anderson Closes: https://lore.kernel.org/r/CAD=3DFV=3DVg8_ZOLgLoC4WhFPzhVsxXFC19NrF3= 8W6cW_W_3nFjbw@mail.gmail.com Tested-by: Douglas Anderson Signed-off-by: Dmitry Baryshkov Acked-by: Bartosz Golaszewski Reviewed-by: Matti Vaittinen --- drivers/gpio/gpiolib.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index c787c9310e85af4c22ffc9bb8e791931fd056c89..250d47f77e2bc678b83f51958ca= 1bcc4db42928f 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -784,6 +784,12 @@ EXPORT_SYMBOL_GPL(gpiochip_query_valid_mask); bool gpiochip_line_is_valid(const struct gpio_chip *gc, unsigned int offset) { + /* + * hog pins are requested before registering GPIO chip + */ + if (!gc->gpiodev) + return true; + /* No mask means all valid */ if (likely(!gc->gpiodev->valid_mask)) return true; --=20 2.39.5 From nobody Sun Feb 8 15:42:49 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 E95362BFC63 for ; Tue, 13 May 2025 18:39:05 +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=1747161547; cv=none; b=k3bWETaIkiOXtqq6ZwzqQShxK/0eqeyIaDtnLpcXcy9JaiuuWBL6tS2Tn9VnJ2PagMxkotCH9Y/XdeNLra28+jFqtDpkChxKCowm4HHOQ6TX5GN/BkXu4r55BTddCQ8BCWQ4defEAh32fI8rjuWNwfMys7Wgzq+nJ9RiugTvLeU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747161547; c=relaxed/simple; bh=ulXM6UtooOJcoFgLVDtqli1pFpfzRkUJPnnDkn4Hq8k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z8WEmHj/fjL4zkwiKlW8HpJWOffzvRnrd8WDNPiP0TJ4SwnjSdmtqqM/NGZC7fdpi2ewYpCe3Xe4NRyxaqZwZHzb4NowCiOfFx8403g4yWWckKIHESTHsh13HO2WSfKgC4wjjuvo3L5N2rtMDvUVicVq3DS4QIE7NvntI0dJ8xM= 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=P1LT9ybT; 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="P1LT9ybT" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54DIVkoK009963 for ; Tue, 13 May 2025 18:39:05 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= rXN65qDcg0TnuJT/xzuzO/6MqpFg2S+kXLyRi1uWQXo=; b=P1LT9ybTYgL6I2sm PXvX3okpYueXMf/gK2kLfIvs3VaQXrLUyijAoeS+dxHPnlz/hui8XixYrTyFYIC9 rygmzsw0CMKc+zuLPI011RU5aZ7+9bubhV2sOVw04eTf2YbymFsDDTGph15biwCx 3USx7jt3tOKG976kZ1Slo5VNclu+p3PXLmjOyxUsq6AV0SHnrlDoNZBracKh6BZw JwjQAhJt4bOLa4hlCq6dI0SyxQ67T0Go+5AudDtK0O5c/9kWdJhLWBerue6zD/7q fk7lkfPbSLekJ9WLIAakR2/5aECfKR1bx9I6wXwEtu4k5UVK38l85GBBCAoztFno 8ww03w== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 46mbcyg16p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 13 May 2025 18:39:05 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-6f6e57ffb40so130189876d6.1 for ; Tue, 13 May 2025 11:39:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747161544; x=1747766344; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rXN65qDcg0TnuJT/xzuzO/6MqpFg2S+kXLyRi1uWQXo=; b=i19itR68Dqr5HyH2GHCRcmrnnKJg6Vv1DBC2SRMlo1N2w/LFBaZAXFI62y6gB/eAiQ 61GdYwLsWvuFKfONf8+0WGIOAwDBggX8/n8ihgI20Fgvt/9qRafTRSmxexovtW0zKJoi 2+hbhs0H3pESPl6bUdOqITVtrCkucQ6eJIfKn3R8e8WP00oJOAtbq0NDXJchoSR0ZRMn f8NKuUINyilS23h20EZgevi9nxviFP2YoC8cWu1zqAkbJAq3o6DF61VjpZWJEwY2OheK lDlc0xt3GKM/bLDzvC0pjMvHutxyLQV/JPMx1Ine6QGgRapYABlNXiGjSW2vRmwNBKos OnrA== X-Forwarded-Encrypted: i=1; AJvYcCUy3CrBkCJdQj59GlyEfEUuPwbfJA0YOPjrDpKSFJugdnS+N+Q7budlNa8vmiqko3LoFolfUofeQZwhxuA=@vger.kernel.org X-Gm-Message-State: AOJu0YxziYhKY1xob7rh/dOJGd7Sl7p1xI7E+xiUcpoj37CoDRRE2gDd fZQF0kuxAkkUz0rnMVKr81fUzHyQeHdaB5KXaR7AOn1Zi404dAG8wim3nn4BWqepVnHd2M0Sryu 2gBTuup9QkBRRW9NeFvgLEMRNt1LKj3jfId+iLonMsT3TFIQQ/S4fsXQdTdRoNHM= X-Gm-Gg: ASbGncvgs1Em95IQKsqw9TH0iAjkR7X4JZD55rX9+cwSP/tnRO+EZ3WXiwwZ0Ovk/Kc svoiQ6wJvrScEZbokxdlpWXmdE9hFDgz/oN4aOHYNwRGejr916LL5NrKqknpB21Xswqx+26Y4xp GLtSUFQ2GDXLcutefKSKVhzbfrsoWgmDiE5sJJzT1tQq2zvo8H5Dzzqa8ErLtMOkyi2oUyJf+e8 gJh5Ej64EBVbRTMtMWijJnrG7hNUjLyjPulAIzg9Qskob6C5XloHPNVkOJjcmzprDVUC4QMNfV+ iVF5pB2qMH4Kbhh1KQOmNwTk53eTM3IQN7ryfzXeFcYY05FS6H+UKHquo/u6ICxr28JSNH8MxFq 8hYLZUh5onSFi026ZuU6ipFgo X-Received: by 2002:a05:6214:29ce:b0:6e8:90eb:e591 with SMTP id 6a1803df08f44-6f896e56b1amr6889036d6.24.1747161543619; Tue, 13 May 2025 11:39:03 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHv1eLu1Dq93MX8DLPhVNkQnzNfWT+qJFQMn1A1CvHy9lPL6Hy1fXb2mEWQw3TsN8pDynP2Tw== X-Received: by 2002:a05:6214:29ce:b0:6e8:90eb:e591 with SMTP id 6a1803df08f44-6f896e56b1amr6888656d6.24.1747161543233; Tue, 13 May 2025 11:39:03 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-326c33c12b7sm17383921fa.50.2025.05.13.11.39.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 May 2025 11:39:01 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 13 May 2025 21:38:58 +0300 Subject: [PATCH v2 2/3] pinctrl: qcom: switch to devm_register_sys_off_handler() 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: <20250513-pinctrl-msm-fix-v2-2-249999af0fc1@oss.qualcomm.com> References: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> In-Reply-To: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> To: Bjorn Andersson , Linus Walleij , Guenter Roeck , Josh Cartwright , Bartosz Golaszewski , Matti Vaittinen , Doug Anderson , Bartosz Golaszewski Cc: linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3068; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=ulXM6UtooOJcoFgLVDtqli1pFpfzRkUJPnnDkn4Hq8k=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoI5HChnJKtCHeKwyOnDiVPwBAR9A0O8Cj7O54a LKwMMN1irSJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaCORwgAKCRCLPIo+Aiko 1Rc1B/45VD2JUZbK9qjcqBCVk6LdO8nOheSxk3s+Zn+upiPaj3jebHbfTyAiDSceLj8+1dXonhS mLYOb9P2PwiXMSjY2pmbXbyjRHK/l8Swwv7LkuP04OTVAc4K2rN9HMud9HqjlZgQn1k/ejyPA5T VwyJR0N+B2ACpSwdXsbAYZkH12pzd0/1n3alx8QVpTS4aKC8wVOo1p5axqDFWKdvChDUEaf1fH4 r5uZl09AwdRIcj4U4woVuhbLcbbadVxtr6chpDRLXpROHwGfiQz3//34Dmve8MAlbHzaL2w8Mup RnqBTvoSqvDFAbGz1NY+tYPdcPjnbZySih2Oy2Pu3csHCnTs X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: xAD2HrMsCN6H7aaFhR9am7fMPnVEm-3d X-Proofpoint-ORIG-GUID: xAD2HrMsCN6H7aaFhR9am7fMPnVEm-3d X-Authority-Analysis: v=2.4 cv=JszxrN4C c=1 sm=1 tr=0 ts=682391c9 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=dt9VzEwgFbYA:10 a=EUspDBNiAAAA:8 a=AQMnIOBPTmT00GrUaA0A:9 a=QEXdDO2ut3YA:10 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTEzMDE3NyBTYWx0ZWRfX0Mf//AcVHG8+ 7dD5xNSCwZgzT4s3tMtZG5z0emfnzlxVwc/TcG72GDwzTwpvD0TdH6xJU8VhFdBWFYShF3EY+H3 5Gy/jes2fVpCDd2OoGt0xQnN0Jbz2mDuMhjxv7f5w0mosKz78VWFbr3KibX2nIeB2IcpwbRLn1o /bIMqAyX3nZLptAG+uCL9kB/BiMLfESvX7jGLQ+2ztyh2jPQjPTx4dRWCciZ+Ba8XwtvyesVpBw on3hZZYPR20VQAJIGSdqTgqXWJgba9wxARuQ1GPUrRI+kMb0LXEK7o7ncbgZmtrVsPQUyR2u//W iFMeptotUyPg3jorSkq2pQa24mbUNZVZbxjmPHFSrwHSp83gli3jucqVP0eZQ1yLQZMT1vip/ik pNFFzJDhNJO5ShF9s+zfln/Pr9zEwP1ob1xKzt27Rc0F4IOSsqwazTViktJJVU/m0zLbHJP+ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-13_03,2025-05-09_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505070000 definitions=main-2505130177 Error-handling paths in msm_pinctrl_probe() don't call a function required to unroll restart handler registration, unregister_restart_handler(). Instead of adding calls to this function, switch the msm pinctrl code into using devm_register_sys_off_handler(). Fixes: cf1fc1876289 ("pinctrl: qcom: use restart_notifier mechanism for ps_= hold") Signed-off-by: Dmitry Baryshkov --- drivers/pinctrl/qcom/pinctrl-msm.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinc= trl-msm.c index 9ec15ae4a104cbeb9a7d819b964d341f3bba58ea..f012ea88aa22ca3e184b05c39da= 9a1f7c2b3c74f 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -44,7 +44,6 @@ * @pctrl: pinctrl handle. * @chip: gpiochip handle. * @desc: pin controller descriptor - * @restart_nb: restart notifier block. * @irq: parent irq for the TLMM irq_chip. * @intr_target_use_scm: route irq to application cpu using scm calls * @lock: Spinlock to protect register resources as well @@ -64,7 +63,6 @@ struct msm_pinctrl { struct pinctrl_dev *pctrl; struct gpio_chip chip; struct pinctrl_desc desc; - struct notifier_block restart_nb; =20 int irq; =20 @@ -1473,10 +1471,9 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl) return 0; } =20 -static int msm_ps_hold_restart(struct notifier_block *nb, unsigned long ac= tion, - void *data) +static int msm_ps_hold_restart(struct sys_off_data *data) { - struct msm_pinctrl *pctrl =3D container_of(nb, struct msm_pinctrl, restar= t_nb); + struct msm_pinctrl *pctrl =3D data->cb_data; =20 writel(0, pctrl->regs[0] + PS_HOLD_OFFSET); mdelay(1000); @@ -1487,7 +1484,11 @@ static struct msm_pinctrl *poweroff_pctrl; =20 static void msm_ps_hold_poweroff(void) { - msm_ps_hold_restart(&poweroff_pctrl->restart_nb, 0, NULL); + struct sys_off_data data =3D { + .cb_data =3D poweroff_pctrl, + }; + + msm_ps_hold_restart(&data); } =20 static void msm_pinctrl_setup_pm_reset(struct msm_pinctrl *pctrl) @@ -1497,9 +1498,11 @@ static void msm_pinctrl_setup_pm_reset(struct msm_pi= nctrl *pctrl) =20 for (i =3D 0; i < pctrl->soc->nfunctions; i++) if (!strcmp(func[i].name, "ps_hold")) { - pctrl->restart_nb.notifier_call =3D msm_ps_hold_restart; - pctrl->restart_nb.priority =3D 128; - if (register_restart_handler(&pctrl->restart_nb)) + if (devm_register_sys_off_handler(pctrl->dev, + SYS_OFF_MODE_RESTART, + 128, + msm_ps_hold_restart, + pctrl)) dev_err(pctrl->dev, "failed to setup restart handler.\n"); poweroff_pctrl =3D pctrl; @@ -1601,8 +1604,6 @@ void msm_pinctrl_remove(struct platform_device *pdev) struct msm_pinctrl *pctrl =3D platform_get_drvdata(pdev); =20 gpiochip_remove(&pctrl->chip); - - unregister_restart_handler(&pctrl->restart_nb); } EXPORT_SYMBOL(msm_pinctrl_remove); =20 --=20 2.39.5 From nobody Sun Feb 8 15:42:49 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 842E92C0305 for ; Tue, 13 May 2025 18:39:09 +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=1747161551; cv=none; b=IF+CflRu+5NJgqX32ZZ9djCbVcDerRa9kJw0GYPgYxBFI4TrJxs/X0wBw01Wtj92tGrLLAdw1AZ+CHgyn9f8l9ivQsUqr5xV7KOa3TdYobRak0HjvkjvedmOBTkvEN30T7d0Hfd1peMFnsH2P06MT2UxmdV6h1K9X+vyogUKG/w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747161551; c=relaxed/simple; bh=/mPP7LUjsm5a3AYJ45yK78U2SSvUhN9glXB7b/297zg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Pvn0VFwBNZtIb5pEQLh6oqA9wAJhOTFZZMZSGOSHoMjCmoDicanqz9wIOxmLzXnYvcd8VwQrKeEW+ZHizz6GIuz2jsSm+ZpB4cNFuF1cAMyyHQ2Pry5H2L8GIo+kOH5PNmyecJKLecY98Pki2xWv/LxDXRFXmW6v8Tu8FszYZKo= 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=KnA0q9ku; 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="KnA0q9ku" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54DIVkoK009946 for ; Tue, 13 May 2025 18:39:08 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= Bmm/Z5+zAJ+GMjEm5WuoeHNssuHI0duAPzumFQz+FuE=; b=KnA0q9kuKL3YnQCd qMLX6LsNb2h4n+Wsf284CJwxZarp6bqACnfwCFLb6p2Hda1+i8rql6EkuZrfUTZJ 4H3QOglQ7n3gdvbGHo2/JdPGxs5RqjimQ77JEUxv34x6BLDTzf5x8jVnoqbq2XNB ro63covDkyVZLzj35PMZNl17DhjFjhfbVHqtETFawIL8xrWy7LvRsAv9r0abUxOn JvK3XliJjLP/KuoZcNBQDHNd/egL5JDj2E3Z8QEsfD/eSkj6ihEgfHKBnQnIqhAM amWFUJFeiUXNkD57lAe4NrFPL7UHEpTQVNIA1BQlwluQ5/8OtYG2wHYdwqZCqKVH 3V5jJg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 46mbcyg16x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 13 May 2025 18:39:08 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4769273691dso97629631cf.1 for ; Tue, 13 May 2025 11:39:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747161546; x=1747766346; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Bmm/Z5+zAJ+GMjEm5WuoeHNssuHI0duAPzumFQz+FuE=; b=kk+8fcfkwABEALzPkK3r/R9j9yT5CzMLMqQmcJPVPY1cREak2WuAaFDHRrfV44Iwyx hRP+y+45QkJUmEi1gd0Z9mIaNcsDD0DzfSdVAMvEA8NWshtbNWIzb+tgt+4KIzFZKx3O qJQ25LR94xBpTVqkKWJ+B24K/bM5r7u8Hzsp5La+yiz0wdUZtSW+9qCaE9vukwwaalHp m8j6QacaH+n1vqlAVaZjHkqmYMjF3GiLMaycgK2RU8B2jSueTiAxumGRIuGvQ5yq2YPr gX0uc/uIhMhlXJMOt2lDy5pEo7hFL7KlLGRnhTawXxaS/e/Wd2nSWHYdRFVmyhHoA7yG dmgQ== X-Forwarded-Encrypted: i=1; AJvYcCUuQ1k6MMJ12s2mf6QqxHnoVkr5iuBiV6INLicQXAC9CZtKvzyAvJJBaNqsgdk5sjjS1DG0fv19xOL8axo=@vger.kernel.org X-Gm-Message-State: AOJu0YzfWw0iajmPrCWF1AeFSNkkFFDhOmAVuuh+FapMae2WXScKeUPR R+5KGlCLFcYKa/yyZ7gGR1wFoy+MSJmItKPgHMFaH8L4U/1KB8pSGzIZ4lAULo6H1Z8mz4jldls rvNmzc8Si4YlkYL5BRBDuCPHr8+iJdNXXWo+53zh1PGgBaSRKx97HZDyKYkuR+S0= X-Gm-Gg: ASbGncsFnsHIV4nV9ABTalG2VZAMHfhvwkAFXamZhqeH+9sZt1Gs9hcb4ZK34Jd9Xsj 1/h46Dvsh+irenlYq73GvDfn+j3ZJcqgZHCiFQgc44zRddGh3vZpr1rlTB+RCjVsubauQ25AX+D T357adeUM+2SpCzhy3+yZDtKnrLCne9dJWoigGSPCAEnhTKTEDKn+EKC159Ca9En3yAptZupwMT mgFeW8Dibwn/s4rDcsWcBKoSSED3Q1CMe4/hZqFCG+7DUJUpzh11Ib8dMp9h+diMoxJ8UW1th75 4kYcDD1D3i5RChzNfLXHzgU5tcGwpYffrw+zGz5D8Ygqs3cJ0cc6nTch0c8AD4zh9fpIgzFYXct TXxsS6+iHnKLGlgVc04dzj7Mj X-Received: by 2002:a05:622a:1b14:b0:476:ad9d:d4e9 with SMTP id d75a77b69052e-49495cb5b81mr7594591cf.24.1747161545459; Tue, 13 May 2025 11:39:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGv46mmG3PotEg9vfO+MOqZn+YkAsixtOeNppHNgTaa9RnQyB4q6gfa/9ZSXAilT6M/H18yrQ== X-Received: by 2002:a05:622a:1b14:b0:476:ad9d:d4e9 with SMTP id d75a77b69052e-49495cb5b81mr7593991cf.24.1747161544866; Tue, 13 May 2025 11:39:04 -0700 (PDT) Received: from umbar.lan (2001-14ba-a0c3-3a00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a0c3:3a00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-326c33c12b7sm17383921fa.50.2025.05.13.11.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 May 2025 11:39:03 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 13 May 2025 21:38:59 +0300 Subject: [PATCH v2 3/3] pinctrl: qcom: switch to devm_gpiochip_add_data() 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: <20250513-pinctrl-msm-fix-v2-3-249999af0fc1@oss.qualcomm.com> References: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> In-Reply-To: <20250513-pinctrl-msm-fix-v2-0-249999af0fc1@oss.qualcomm.com> To: Bjorn Andersson , Linus Walleij , Guenter Roeck , Josh Cartwright , Bartosz Golaszewski , Matti Vaittinen , Doug Anderson , Bartosz Golaszewski Cc: linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=34886; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=/mPP7LUjsm5a3AYJ45yK78U2SSvUhN9glXB7b/297zg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBoI5HCs1QFstaI+n45YN7w2VOJpJziFpt4OyFt+ ge0HvFsXkCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCaCORwgAKCRCLPIo+Aiko 1ch4B/9DnQdThxiK7fZEEJwlphCV287mFVj8d48PF508u0rftpHf27fGAfX6eM7ZghptrRgi7Af T98kpFH6+e9GL0DHISm9QhzY9B0LlLZb7Tv14ML4LDtygBsV4mhzZwZReV0xUppQHw4f0G14Pdv fV7CVK974rIkG+Uw9eSWBuIWe8rNzOuzcRZhfBBqjXx7hHKy4ntm5As5CimR7U4SgNYkIZFBcTj OtbgdfTop60p0TX8FFsTbyPa5pTpRkX1mBZfRlPga34Dtxlm6xHedub1i5G/OkUGbxO4nkcNHLk FoG/vP35F+aGiFu4t4Ug932ShIGfjUKx9Tew07KsrD8OlHVM X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-GUID: w0phZL56huDkyn-xQOw3LBQItCLGfaQe X-Proofpoint-ORIG-GUID: w0phZL56huDkyn-xQOw3LBQItCLGfaQe X-Authority-Analysis: v=2.4 cv=JszxrN4C c=1 sm=1 tr=0 ts=682391cc cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=dt9VzEwgFbYA:10 a=EUspDBNiAAAA:8 a=HEy92-61m365HJIm5JYA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTEzMDE3NyBTYWx0ZWRfXzVEuQTvnJgyh C7yRSEu78xmZyx30eYcTmribaXWUxqNZkfyg0WTi5VL6vc21nFGdlKcc1VS+BHCeeu+vCUnBVYE DGKxsuHJXJlxnF+rIgkJP5pe0DuHNuNwaA3BpjEpJK1ZIRyb5CQ6kEcyZGMd0XKgFWhU5CBFR50 zq5cky568dCPJ5Z8wYWa0rkLmgJ+R2hGkuOb1WjpC09BIsre9cHyzZhCmWwNNI0Ysggqx5XU8Vh Go4mm1ZFeTrLXLzkQ+wTBoJhvQA+Zb4Zn73APuviqMhLY6EgIyiAdHUgEHhgIQybOSDXECKxrOY f9s4iFokZ+d+swr7G7fX63eanyhjuFEFyWmyY5ScFLIuhV/555X1J2IvlUq2KTH5IHTz1n0UPzl ZfaNqi4aTjvqk0jtwIemWGZB8QVIvhvreyTyNIwiA7xIY/RWHW/Lt7ZmratvgxdSHbaZ3HiR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-13_03,2025-05-09_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505070000 definitions=main-2505130177 In order to simplify cleanup actions, use devres-enabled version of gpiochip_add_data(). As the msm_pinctrl_remove() function is now empty, drop it and all its calls from the corresponding pinctrl drivers. Signed-off-by: Dmitry Baryshkov --- drivers/pinctrl/qcom/pinctrl-apq8064.c | 1 - drivers/pinctrl/qcom/pinctrl-apq8084.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq4019.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq5018.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq5332.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq5424.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq6018.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq8064.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq8074.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq9574.c | 1 - drivers/pinctrl/qcom/pinctrl-mdm9607.c | 1 - drivers/pinctrl/qcom/pinctrl-mdm9615.c | 1 - drivers/pinctrl/qcom/pinctrl-msm.c | 11 +---------- drivers/pinctrl/qcom/pinctrl-msm.h | 1 - drivers/pinctrl/qcom/pinctrl-msm8226.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8660.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8909.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8916.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8917.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8953.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8960.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8976.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8994.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8996.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8998.c | 1 - drivers/pinctrl/qcom/pinctrl-msm8x74.c | 1 - drivers/pinctrl/qcom/pinctrl-qcm2290.c | 1 - drivers/pinctrl/qcom/pinctrl-qcs404.c | 1 - drivers/pinctrl/qcom/pinctrl-qcs615.c | 1 - drivers/pinctrl/qcom/pinctrl-qcs8300.c | 1 - drivers/pinctrl/qcom/pinctrl-qdf2xxx.c | 1 - drivers/pinctrl/qcom/pinctrl-qdu1000.c | 1 - drivers/pinctrl/qcom/pinctrl-sa8775p.c | 1 - drivers/pinctrl/qcom/pinctrl-sar2130p.c | 1 - drivers/pinctrl/qcom/pinctrl-sc7180.c | 1 - drivers/pinctrl/qcom/pinctrl-sc7280.c | 1 - drivers/pinctrl/qcom/pinctrl-sc8180x.c | 1 - drivers/pinctrl/qcom/pinctrl-sc8280xp.c | 1 - drivers/pinctrl/qcom/pinctrl-sdm660.c | 1 - drivers/pinctrl/qcom/pinctrl-sdm670.c | 1 - drivers/pinctrl/qcom/pinctrl-sdm845.c | 1 - drivers/pinctrl/qcom/pinctrl-sdx55.c | 1 - drivers/pinctrl/qcom/pinctrl-sdx65.c | 1 - drivers/pinctrl/qcom/pinctrl-sdx75.c | 1 - drivers/pinctrl/qcom/pinctrl-sm4450.c | 1 - drivers/pinctrl/qcom/pinctrl-sm6115.c | 1 - drivers/pinctrl/qcom/pinctrl-sm6125.c | 1 - drivers/pinctrl/qcom/pinctrl-sm6350.c | 1 - drivers/pinctrl/qcom/pinctrl-sm6375.c | 1 - drivers/pinctrl/qcom/pinctrl-sm7150.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8150.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8250.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8350.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8450.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8550.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8650.c | 1 - drivers/pinctrl/qcom/pinctrl-sm8750.c | 1 - drivers/pinctrl/qcom/pinctrl-x1e80100.c | 1 - 58 files changed, 1 insertion(+), 67 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-apq8064.c b/drivers/pinctrl/qcom/= pinctrl-apq8064.c index 20c3b9025044515477f39bc25f0202dcca561743..3654913f1ae584394f5d08305f4= 9e72a9b49fe5a 100644 --- a/drivers/pinctrl/qcom/pinctrl-apq8064.c +++ b/drivers/pinctrl/qcom/pinctrl-apq8064.c @@ -629,7 +629,6 @@ static struct platform_driver apq8064_pinctrl_driver = =3D { .of_match_table =3D apq8064_pinctrl_of_match, }, .probe =3D apq8064_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init apq8064_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-apq8084.c b/drivers/pinctrl/qcom/= pinctrl-apq8084.c index 3fc0a40762b631ad3dc15c9a7624ab705f367e74..27693cd648818bbcf6236cffad2= efcd31c92018b 100644 --- a/drivers/pinctrl/qcom/pinctrl-apq8084.c +++ b/drivers/pinctrl/qcom/pinctrl-apq8084.c @@ -1207,7 +1207,6 @@ static struct platform_driver apq8084_pinctrl_driver = =3D { .of_match_table =3D apq8084_pinctrl_of_match, }, .probe =3D apq8084_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init apq8084_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq4019.c b/drivers/pinctrl/qcom/= pinctrl-ipq4019.c index 1f7944dd829d1b9cb8c445ee075e0e29a12294b9..6ede3149b6e1730ea432a163615= 2abcbf0fa73b2 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq4019.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq4019.c @@ -710,7 +710,6 @@ static struct platform_driver ipq4019_pinctrl_driver = =3D { .of_match_table =3D ipq4019_pinctrl_of_match, }, .probe =3D ipq4019_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq4019_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq5018.c b/drivers/pinctrl/qcom/= pinctrl-ipq5018.c index e2951f81c3eeb3f4d52c3941ab6f591da0254a23..10b99d5d8a11db644e974a80b9d= 7d04ffc09bd4c 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq5018.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq5018.c @@ -754,7 +754,6 @@ static struct platform_driver ipq5018_pinctrl_driver = =3D { .of_match_table =3D ipq5018_pinctrl_of_match, }, .probe =3D ipq5018_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq5018_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq5332.c b/drivers/pinctrl/qcom/= pinctrl-ipq5332.c index 625f8014051f6acf8e6f91d48d0406b8c2bd8caf..1ac2fc09c11923cd716495b16a7= f4af5686ce398 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq5332.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq5332.c @@ -834,7 +834,6 @@ static struct platform_driver ipq5332_pinctrl_driver = =3D { .of_match_table =3D ipq5332_pinctrl_of_match, }, .probe =3D ipq5332_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq5332_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq5424.c b/drivers/pinctrl/qcom/= pinctrl-ipq5424.c index 0d610b076da3bb7940c99cfaf4c69261f9509390..7ff1f8acc1a3a81037298464130= fda59f329d53e 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq5424.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq5424.c @@ -791,7 +791,6 @@ static struct platform_driver ipq5424_pinctrl_driver = =3D { .of_match_table =3D ipq5424_pinctrl_of_match, }, .probe =3D ipq5424_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq5424_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq6018.c b/drivers/pinctrl/qcom/= pinctrl-ipq6018.c index 0ad08647dbcdf0b1fa21a618310f150a1bde2fae..a4ba980252e187879947e705700= 4fa48815f2620 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq6018.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq6018.c @@ -1080,7 +1080,6 @@ static struct platform_driver ipq6018_pinctrl_driver = =3D { .of_match_table =3D ipq6018_pinctrl_of_match, }, .probe =3D ipq6018_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq6018_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq8064.c b/drivers/pinctrl/qcom/= pinctrl-ipq8064.c index e2bb94e86aef6e0055860794a1c64649c722aebc..0a9e357e64c60d61a094000f167= defc80503e649 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq8064.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq8064.c @@ -631,7 +631,6 @@ static struct platform_driver ipq8064_pinctrl_driver = =3D { .of_match_table =3D ipq8064_pinctrl_of_match, }, .probe =3D ipq8064_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq8064_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq8074.c b/drivers/pinctrl/qcom/= pinctrl-ipq8074.c index 337f3a1c92c19285f16f59a79f3e2b20561ae19a..482f13282fc2be951032cbe6dc5= 100bf9129ea5f 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq8074.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq8074.c @@ -1041,7 +1041,6 @@ static struct platform_driver ipq8074_pinctrl_driver = =3D { .of_match_table =3D ipq8074_pinctrl_of_match, }, .probe =3D ipq8074_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq8074_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-ipq9574.c b/drivers/pinctrl/qcom/= pinctrl-ipq9574.c index e2491617b2364a64169297426351e723c37f030c..89c05d8eb55034dea3e1c7299ed= e6567c20e0159 100644 --- a/drivers/pinctrl/qcom/pinctrl-ipq9574.c +++ b/drivers/pinctrl/qcom/pinctrl-ipq9574.c @@ -799,7 +799,6 @@ static struct platform_driver ipq9574_pinctrl_driver = =3D { .of_match_table =3D ipq9574_pinctrl_of_match, }, .probe =3D ipq9574_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init ipq9574_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-mdm9607.c b/drivers/pinctrl/qcom/= pinctrl-mdm9607.c index e7cd3ef1cf3e815ae25aa9e0c6872fbbd2c8ac79..3e18ba124fede923f56eab1aec5= aaf875f06e343 100644 --- a/drivers/pinctrl/qcom/pinctrl-mdm9607.c +++ b/drivers/pinctrl/qcom/pinctrl-mdm9607.c @@ -1059,7 +1059,6 @@ static struct platform_driver mdm9607_pinctrl_driver = =3D { .of_match_table =3D mdm9607_pinctrl_of_match, }, .probe =3D mdm9607_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init mdm9607_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-mdm9615.c b/drivers/pinctrl/qcom/= pinctrl-mdm9615.c index 0a2ae383d3d57bd4101efb7a2093b68b8920b426..bea1ca3d1b7f84c28c23af2a52c= c464da44a90b0 100644 --- a/drivers/pinctrl/qcom/pinctrl-mdm9615.c +++ b/drivers/pinctrl/qcom/pinctrl-mdm9615.c @@ -446,7 +446,6 @@ static struct platform_driver mdm9615_pinctrl_driver = =3D { .of_match_table =3D mdm9615_pinctrl_of_match, }, .probe =3D mdm9615_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init mdm9615_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinc= trl-msm.c index f012ea88aa22ca3e184b05c39da9a1f7c2b3c74f..5c4687de1464a60355e6cb1e456= b487ad368275a 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -1442,7 +1442,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl) girq->handler =3D handle_bad_irq; girq->parents[0] =3D pctrl->irq; =20 - ret =3D gpiochip_add_data(&pctrl->chip, pctrl); + ret =3D devm_gpiochip_add_data(pctrl->dev, &pctrl->chip, pctrl); if (ret) { dev_err(pctrl->dev, "Failed register gpiochip\n"); return ret; @@ -1463,7 +1463,6 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl) dev_name(pctrl->dev), 0, 0, chip->ngpio); if (ret) { dev_err(pctrl->dev, "Failed to add pin range\n"); - gpiochip_remove(&pctrl->chip); return ret; } } @@ -1599,13 +1598,5 @@ int msm_pinctrl_probe(struct platform_device *pdev, } EXPORT_SYMBOL(msm_pinctrl_probe); =20 -void msm_pinctrl_remove(struct platform_device *pdev) -{ - struct msm_pinctrl *pctrl =3D platform_get_drvdata(pdev); - - gpiochip_remove(&pctrl->chip); -} -EXPORT_SYMBOL(msm_pinctrl_remove); - MODULE_DESCRIPTION("Qualcomm Technologies, Inc. TLMM driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/pinctrl/qcom/pinctrl-msm.h b/drivers/pinctrl/qcom/pinc= trl-msm.h index 63852ed702957b8111b364267af17737b7a582a1..d7dc0947bb161868c8f433dc253= 6719b8afc8bd8 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.h +++ b/drivers/pinctrl/qcom/pinctrl-msm.h @@ -171,6 +171,5 @@ extern const struct dev_pm_ops msm_pinctrl_dev_pm_ops; =20 int msm_pinctrl_probe(struct platform_device *pdev, const struct msm_pinctrl_soc_data *soc_data); -void msm_pinctrl_remove(struct platform_device *pdev); =20 #endif diff --git a/drivers/pinctrl/qcom/pinctrl-msm8226.c b/drivers/pinctrl/qcom/= pinctrl-msm8226.c index 64fee70f1772c41f5d8e20deb270ed66cb20a151..f9a957347340813f87e58d3bcbe= a81faa9d6255e 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8226.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8226.c @@ -654,7 +654,6 @@ static struct platform_driver msm8226_pinctrl_driver = =3D { .of_match_table =3D msm8226_pinctrl_of_match, }, .probe =3D msm8226_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8226_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8660.c b/drivers/pinctrl/qcom/= pinctrl-msm8660.c index 999a5f867eb5081232443a893773d73c8dc65d1b..4dbc19ffd80efcdab059a253904= e1ffe95fd36f7 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8660.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8660.c @@ -981,7 +981,6 @@ static struct platform_driver msm8660_pinctrl_driver = =3D { .of_match_table =3D msm8660_pinctrl_of_match, }, .probe =3D msm8660_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8660_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8909.c b/drivers/pinctrl/qcom/= pinctrl-msm8909.c index 756856d20d6b5f2d4e764ff32f2493de24ca677c..0aa4f77b774f45947ffade7d167= dd25cc4da5297 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8909.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8909.c @@ -929,7 +929,6 @@ static struct platform_driver msm8909_pinctrl_driver = =3D { .of_match_table =3D msm8909_pinctrl_of_match, }, .probe =3D msm8909_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8909_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8916.c b/drivers/pinctrl/qcom/= pinctrl-msm8916.c index cea5c54f92fec1829c5378a8441eb8710fd500f0..0dfc6dd33d58b2d9df7a5cc3f7f= f8890976207d3 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8916.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8916.c @@ -969,7 +969,6 @@ static struct platform_driver msm8916_pinctrl_driver = =3D { .of_match_table =3D msm8916_pinctrl_of_match, }, .probe =3D msm8916_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8916_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8917.c b/drivers/pinctrl/qcom/= pinctrl-msm8917.c index 350636807b07d9ab0e207368de63837bc5fa5502..2e1a94ab18b219f818c591ff3b0= 7280578822d1a 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8917.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8917.c @@ -1607,7 +1607,6 @@ static struct platform_driver msm8917_pinctrl_driver = =3D { .of_match_table =3D msm8917_pinctrl_of_match, }, .probe =3D msm8917_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8917_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8953.c b/drivers/pinctrl/qcom/= pinctrl-msm8953.c index 998351bdfee1369fe0f369648d66a1a05493c8fb..956383341a7a777edf28c710353= dc6deab124ef9 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8953.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8953.c @@ -1816,7 +1816,6 @@ static struct platform_driver msm8953_pinctrl_driver = =3D { .of_match_table =3D msm8953_pinctrl_of_match, }, .probe =3D msm8953_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8953_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8960.c b/drivers/pinctrl/qcom/= pinctrl-msm8960.c index ebe230b3b437ccc63535fdf51639e64a67fe05eb..a937ea867de709326a2aea77f98= 0cae1d8480f35 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8960.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8960.c @@ -1246,7 +1246,6 @@ static struct platform_driver msm8960_pinctrl_driver = =3D { .of_match_table =3D msm8960_pinctrl_of_match, }, .probe =3D msm8960_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8960_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8976.c b/drivers/pinctrl/qcom/= pinctrl-msm8976.c index c30d80e4e98ca68ccede66001445967a47d6ec8f..3bcb03387781f803bf7e0251496= a88a43b562b8d 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8976.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8976.c @@ -1096,7 +1096,6 @@ static struct platform_driver msm8976_pinctrl_driver = =3D { .of_match_table =3D msm8976_pinctrl_of_match, }, .probe =3D msm8976_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8976_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8994.c b/drivers/pinctrl/qcom/= pinctrl-msm8994.c index b1a6759ab4a5e70501aba4325e80db2359251204..7a3b6cbccb687c8b5040ee6bf37= 2f092f21aa872 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8994.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8994.c @@ -1343,7 +1343,6 @@ static struct platform_driver msm8994_pinctrl_driver = =3D { .of_match_table =3D msm8994_pinctrl_of_match, }, .probe =3D msm8994_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8994_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8996.c b/drivers/pinctrl/qcom/= pinctrl-msm8996.c index 1b5d80eaab83c7e2c81c96019e8b0cc6f5461c69..d86d83106d3ba12343a4685e5b8= 7c661f823c35b 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8996.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8996.c @@ -1920,7 +1920,6 @@ static struct platform_driver msm8996_pinctrl_driver = =3D { .of_match_table =3D msm8996_pinctrl_of_match, }, .probe =3D msm8996_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8996_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8998.c b/drivers/pinctrl/qcom/= pinctrl-msm8998.c index b7cbf32b3125a91081c6644cd3d343e08499dd1f..1daee815888f54b711505dfacef= d614df83affc0 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8998.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8998.c @@ -1535,7 +1535,6 @@ static struct platform_driver msm8998_pinctrl_driver = =3D { .of_match_table =3D msm8998_pinctrl_of_match, }, .probe =3D msm8998_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8998_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-msm8x74.c b/drivers/pinctrl/qcom/= pinctrl-msm8x74.c index 238c83f6ec4f41ff2dc572fd910c1c9aef9d290a..8253aa25775b247dc54a377c978= 1094e465e22b6 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm8x74.c +++ b/drivers/pinctrl/qcom/pinctrl-msm8x74.c @@ -1083,7 +1083,6 @@ static struct platform_driver msm8x74_pinctrl_driver = =3D { .of_match_table =3D msm8x74_pinctrl_of_match, }, .probe =3D msm8x74_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init msm8x74_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qcm2290.c b/drivers/pinctrl/qcom/= pinctrl-qcm2290.c index f885af571ec93d66533f4909e935e5c7a2dd0511..85c951305abd6640b33cc4d8bf2= 283ffab18bbc4 100644 --- a/drivers/pinctrl/qcom/pinctrl-qcm2290.c +++ b/drivers/pinctrl/qcom/pinctrl-qcm2290.c @@ -1125,7 +1125,6 @@ static struct platform_driver qcm2290_pinctrl_driver = =3D { .of_match_table =3D qcm2290_pinctrl_of_match, }, .probe =3D qcm2290_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qcm2290_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qcs404.c b/drivers/pinctrl/qcom/p= inctrl-qcs404.c index ae7224012f8aa00a41350b3ce670511aa8ce18bd..54e3b44353494e9398a88702945= b7a85ff901b4d 100644 --- a/drivers/pinctrl/qcom/pinctrl-qcs404.c +++ b/drivers/pinctrl/qcom/pinctrl-qcs404.c @@ -1644,7 +1644,6 @@ static struct platform_driver qcs404_pinctrl_driver = =3D { .of_match_table =3D qcs404_pinctrl_of_match, }, .probe =3D qcs404_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qcs404_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qcs615.c b/drivers/pinctrl/qcom/p= inctrl-qcs615.c index 23015b055f6a925e8157363952f3ce659059d719..0c3182808d021616848c31d6053= 83296eb4e8e43 100644 --- a/drivers/pinctrl/qcom/pinctrl-qcs615.c +++ b/drivers/pinctrl/qcom/pinctrl-qcs615.c @@ -1087,7 +1087,6 @@ static struct platform_driver qcs615_tlmm_driver =3D { .of_match_table =3D qcs615_tlmm_of_match, }, .probe =3D qcs615_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qcs615_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qcs8300.c b/drivers/pinctrl/qcom/= pinctrl-qcs8300.c index ba6de944a859a0b637812e5d39c9eab7ea3ef8ed..e4ca2c0c12a6eb7460cdbf6f2e4= a3086313a5a55 100644 --- a/drivers/pinctrl/qcom/pinctrl-qcs8300.c +++ b/drivers/pinctrl/qcom/pinctrl-qcs8300.c @@ -1227,7 +1227,6 @@ static struct platform_driver qcs8300_pinctrl_driver = =3D { .of_match_table =3D qcs8300_pinctrl_of_match, }, .probe =3D qcs8300_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qcs8300_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qdf2xxx.c b/drivers/pinctrl/qcom/= pinctrl-qdf2xxx.c index b5808fcfb13cdebd04c0c71b24043b924094a683..9ecc4d40e4dc4f36aafc7030910= 2b9e66ce024c0 100644 --- a/drivers/pinctrl/qcom/pinctrl-qdf2xxx.c +++ b/drivers/pinctrl/qcom/pinctrl-qdf2xxx.c @@ -145,7 +145,6 @@ static struct platform_driver qdf2xxx_pinctrl_driver = =3D { .acpi_match_table =3D qdf2xxx_acpi_ids, }, .probe =3D qdf2xxx_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qdf2xxx_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-qdu1000.c b/drivers/pinctrl/qcom/= pinctrl-qdu1000.c index 47bc529ef550d2ab9a13341295eacc08faed24c4..eacb89fa388850ef39ceb50497d= f9e5cca54191c 100644 --- a/drivers/pinctrl/qcom/pinctrl-qdu1000.c +++ b/drivers/pinctrl/qcom/pinctrl-qdu1000.c @@ -1248,7 +1248,6 @@ static struct platform_driver qdu1000_tlmm_driver =3D= { .of_match_table =3D qdu1000_tlmm_of_match, }, .probe =3D qdu1000_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init qdu1000_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sa8775p.c b/drivers/pinctrl/qcom/= pinctrl-sa8775p.c index a5b38221aea851ce09448eb7eb71f7f94721443a..1b62eb3e6620c978225c5fd2ab5= 41451cbe93093 100644 --- a/drivers/pinctrl/qcom/pinctrl-sa8775p.c +++ b/drivers/pinctrl/qcom/pinctrl-sa8775p.c @@ -1540,7 +1540,6 @@ static struct platform_driver sa8775p_pinctrl_driver = =3D { .of_match_table =3D sa8775p_pinctrl_of_match, }, .probe =3D sa8775p_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sa8775p_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sar2130p.c b/drivers/pinctrl/qcom= /pinctrl-sar2130p.c index 19a2e37826c7b25f6d37f130a0fb5ef4cdadb61c..3dd1b5e5cfee489ec34b16ee2ae= 1c8d2c2756553 100644 --- a/drivers/pinctrl/qcom/pinctrl-sar2130p.c +++ b/drivers/pinctrl/qcom/pinctrl-sar2130p.c @@ -1486,7 +1486,6 @@ static struct platform_driver sar2130p_tlmm_driver = =3D { .of_match_table =3D sar2130p_tlmm_of_match, }, .probe =3D sar2130p_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sar2130p_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sc7180.c b/drivers/pinctrl/qcom/p= inctrl-sc7180.c index 6eb0c73791c0bc9883bf0b740b8930fe7c7fced0..c43fe10b71add7d6294c90e8657= 8ed472b8759a3 100644 --- a/drivers/pinctrl/qcom/pinctrl-sc7180.c +++ b/drivers/pinctrl/qcom/pinctrl-sc7180.c @@ -1159,7 +1159,6 @@ static struct platform_driver sc7180_pinctrl_driver = =3D { .of_match_table =3D sc7180_pinctrl_of_match, }, .probe =3D sc7180_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sc7180_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sc7280.c b/drivers/pinctrl/qcom/p= inctrl-sc7280.c index 0c10eeb60b55e742a73dfd43d647f7009471b1b0..1b070e9d41f5972470d245edb82= 1d202ca24522b 100644 --- a/drivers/pinctrl/qcom/pinctrl-sc7280.c +++ b/drivers/pinctrl/qcom/pinctrl-sc7280.c @@ -1505,7 +1505,6 @@ static struct platform_driver sc7280_pinctrl_driver = =3D { .of_match_table =3D sc7280_pinctrl_of_match, }, .probe =3D sc7280_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sc7280_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sc8180x.c b/drivers/pinctrl/qcom/= pinctrl-sc8180x.c index d6a79ad41a40a804c503d97a6279db4b533f0047..26dd165d154348a8659720335ec= 16c3e5ace30ef 100644 --- a/drivers/pinctrl/qcom/pinctrl-sc8180x.c +++ b/drivers/pinctrl/qcom/pinctrl-sc8180x.c @@ -1720,7 +1720,6 @@ static struct platform_driver sc8180x_pinctrl_driver = =3D { .acpi_match_table =3D sc8180x_pinctrl_acpi_match, }, .probe =3D sc8180x_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sc8180x_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sc8280xp.c b/drivers/pinctrl/qcom= /pinctrl-sc8280xp.c index 96f4fb5a5d297f784e63f4335e294ebdee5f487f..6ccd7e5648d420072f7ce467d92= ef0764a6d7764 100644 --- a/drivers/pinctrl/qcom/pinctrl-sc8280xp.c +++ b/drivers/pinctrl/qcom/pinctrl-sc8280xp.c @@ -1926,7 +1926,6 @@ static struct platform_driver sc8280xp_pinctrl_driver= =3D { .of_match_table =3D sc8280xp_pinctrl_of_match, }, .probe =3D sc8280xp_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sc8280xp_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdm660.c b/drivers/pinctrl/qcom/p= inctrl-sdm660.c index 907e4ffca5e7df48aed8f917455f35c0da8c6265..1a78288f1bc832837d5c72d9eb1= 659f397d79b94 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdm660.c +++ b/drivers/pinctrl/qcom/pinctrl-sdm660.c @@ -1442,7 +1442,6 @@ static struct platform_driver sdm660_pinctrl_driver = =3D { .of_match_table =3D sdm660_pinctrl_of_match, }, .probe =3D sdm660_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdm660_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdm670.c b/drivers/pinctrl/qcom/p= inctrl-sdm670.c index c76183ba95e17473d1ed313090e8cc3546431348..0fe1fa94cd6da13591397442a63= ce8daec9f4674 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdm670.c +++ b/drivers/pinctrl/qcom/pinctrl-sdm670.c @@ -1337,7 +1337,6 @@ static struct platform_driver sdm670_pinctrl_driver = =3D { .of_match_table =3D sdm670_pinctrl_of_match, }, .probe =3D sdm670_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdm670_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdm845.c b/drivers/pinctrl/qcom/p= inctrl-sdm845.c index cc05c415ed15512f1f99a598650d3adfdc795a6d..0446e291aa4831da439af12b793= 4fbda5915ee5a 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdm845.c +++ b/drivers/pinctrl/qcom/pinctrl-sdm845.c @@ -1351,7 +1351,6 @@ static struct platform_driver sdm845_pinctrl_driver = =3D { .acpi_match_table =3D ACPI_PTR(sdm845_pinctrl_acpi_match), }, .probe =3D sdm845_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdm845_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdx55.c b/drivers/pinctrl/qcom/pi= nctrl-sdx55.c index 8826db9d21d04cecca844b0607984e21a500f15b..2c17bf889146362edf9f482d33b= 17d35a255882e 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdx55.c +++ b/drivers/pinctrl/qcom/pinctrl-sdx55.c @@ -990,7 +990,6 @@ static struct platform_driver sdx55_pinctrl_driver =3D { .of_match_table =3D sdx55_pinctrl_of_match, }, .probe =3D sdx55_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdx55_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdx65.c b/drivers/pinctrl/qcom/pi= nctrl-sdx65.c index f6f319c997fc7a39d672872c0df1fa2ea821b2d9..85b5c0206dbd199c6efc15aad10= 784d20c1addde 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdx65.c +++ b/drivers/pinctrl/qcom/pinctrl-sdx65.c @@ -939,7 +939,6 @@ static struct platform_driver sdx65_pinctrl_driver =3D { .of_match_table =3D sdx65_pinctrl_of_match, }, .probe =3D sdx65_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdx65_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sdx75.c b/drivers/pinctrl/qcom/pi= nctrl-sdx75.c index 3cfe8c7f04df816a93252a162ccfa502854411fe..ab13a3a57a830781f35916ff508= ca65d6699271d 100644 --- a/drivers/pinctrl/qcom/pinctrl-sdx75.c +++ b/drivers/pinctrl/qcom/pinctrl-sdx75.c @@ -1124,7 +1124,6 @@ static struct platform_driver sdx75_pinctrl_driver = =3D { .of_match_table =3D sdx75_pinctrl_of_match, }, .probe =3D sdx75_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sdx75_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm4450.c b/drivers/pinctrl/qcom/p= inctrl-sm4450.c index 622f20e6f6f859ee4f132809304bc3f0685e8ff3..1ecdf1ab4f275ede7cb629321f9= c37d3f81a25e9 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm4450.c +++ b/drivers/pinctrl/qcom/pinctrl-sm4450.c @@ -994,7 +994,6 @@ static struct platform_driver sm4450_tlmm_driver =3D { .of_match_table =3D sm4450_tlmm_of_match, }, .probe =3D sm4450_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; MODULE_DEVICE_TABLE(of, sm4450_tlmm_of_match); =20 diff --git a/drivers/pinctrl/qcom/pinctrl-sm6115.c b/drivers/pinctrl/qcom/p= inctrl-sm6115.c index 4e91c75ad952487e755e0abdf861b1f118bf4de5..c273efa4399630a2187845382e2= 31fe150d997fd 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm6115.c +++ b/drivers/pinctrl/qcom/pinctrl-sm6115.c @@ -907,7 +907,6 @@ static struct platform_driver sm6115_tlmm_driver =3D { .of_match_table =3D sm6115_tlmm_of_match, }, .probe =3D sm6115_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm6115_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm6125.c b/drivers/pinctrl/qcom/p= inctrl-sm6125.c index c188842047aae054929e124f650290034cfad979..5092f20e0c1bdee2e99b768f12c= fbec31972c24c 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm6125.c +++ b/drivers/pinctrl/qcom/pinctrl-sm6125.c @@ -1266,7 +1266,6 @@ static struct platform_driver sm6125_tlmm_driver =3D { .of_match_table =3D sm6125_tlmm_of_match, }, .probe =3D sm6125_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm6125_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm6350.c b/drivers/pinctrl/qcom/p= inctrl-sm6350.c index f3828c07b134500e4307db1d42aabae389a03360..ba4686c86c54b8c1dc32522c835= 87521e149a5ae 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm6350.c +++ b/drivers/pinctrl/qcom/pinctrl-sm6350.c @@ -1373,7 +1373,6 @@ static struct platform_driver sm6350_tlmm_driver =3D { .of_match_table =3D sm6350_tlmm_of_match, }, .probe =3D sm6350_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm6350_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm6375.c b/drivers/pinctrl/qcom/p= inctrl-sm6375.c index c82c8516932ea2e1880284fa86bdaf3683f024cc..49031571e65ee3291fb1e5269e0= 71a08a77c87de 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm6375.c +++ b/drivers/pinctrl/qcom/pinctrl-sm6375.c @@ -1516,7 +1516,6 @@ static struct platform_driver sm6375_tlmm_driver =3D { .of_match_table =3D sm6375_tlmm_of_match, }, .probe =3D sm6375_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm6375_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm7150.c b/drivers/pinctrl/qcom/p= inctrl-sm7150.c index 3c7fd8af6635b94df107f44e3e0e68a2778a25e7..6e89966cd70e34bcb74cfb50e80= e110e40655b0e 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm7150.c +++ b/drivers/pinctrl/qcom/pinctrl-sm7150.c @@ -1255,7 +1255,6 @@ static struct platform_driver sm7150_tlmm_driver =3D { .of_match_table =3D sm7150_tlmm_of_match, }, .probe =3D sm7150_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm7150_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8150.c b/drivers/pinctrl/qcom/p= inctrl-sm8150.c index 01aea9c70b7a78168ee063f5ac88afc0d7290bcb..794ed99463f76032f56be9464a4= aa3018537df94 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8150.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8150.c @@ -1542,7 +1542,6 @@ static struct platform_driver sm8150_pinctrl_driver = =3D { .of_match_table =3D sm8150_pinctrl_of_match, }, .probe =3D sm8150_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8150_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8250.c b/drivers/pinctrl/qcom/p= inctrl-sm8250.c index e9961a49ff9811bfa3ed3c6c1a8f1cf90afa1d29..fb6f005d64f53f318d58e69681f= 07e36404439cf 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8250.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8250.c @@ -1351,7 +1351,6 @@ static struct platform_driver sm8250_pinctrl_driver = =3D { .of_match_table =3D sm8250_pinctrl_of_match, }, .probe =3D sm8250_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8250_pinctrl_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8350.c b/drivers/pinctrl/qcom/p= inctrl-sm8350.c index 9c69458bd9109119e7a88d1a92f633bbf188ed0c..c8a3f39ce6f1b8565a783f04100= 269b3cadb9bcc 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8350.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8350.c @@ -1642,7 +1642,6 @@ static struct platform_driver sm8350_tlmm_driver =3D { .of_match_table =3D sm8350_tlmm_of_match, }, .probe =3D sm8350_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8350_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8450.c b/drivers/pinctrl/qcom/p= inctrl-sm8450.c index d11bb1ee9e3d8dfbb1e810051d5c854a959b428b..f2e52d5a0f9369d21922d065153= 9908d592301e5 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8450.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8450.c @@ -1677,7 +1677,6 @@ static struct platform_driver sm8450_tlmm_driver =3D { .of_match_table =3D sm8450_tlmm_of_match, }, .probe =3D sm8450_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8450_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8550.c b/drivers/pinctrl/qcom/p= inctrl-sm8550.c index 3c847d9cb5d93bbc7bb5a9b0b2ee707e14de6387..1b4496cb39eb46b2b660ef213e1= f3c8fdac2b21e 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8550.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8550.c @@ -1762,7 +1762,6 @@ static struct platform_driver sm8550_tlmm_driver =3D { .of_match_table =3D sm8550_tlmm_of_match, }, .probe =3D sm8550_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8550_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8650.c b/drivers/pinctrl/qcom/p= inctrl-sm8650.c index 104708252d12a82a887aa2bdaecf31d3308a102c..449a0077f4b10666ecd9dfaae8e= 0057a91e181a6 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8650.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8650.c @@ -1742,7 +1742,6 @@ static struct platform_driver sm8650_tlmm_driver =3D { .of_match_table =3D sm8650_tlmm_of_match, }, .probe =3D sm8650_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8650_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8750.c b/drivers/pinctrl/qcom/p= inctrl-sm8750.c index 1af11cd95fb0e69fcc876fe069cc2cd6fd6679fd..b2764b722a560e932660f3d0557= ad745880b91c4 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8750.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8750.c @@ -1709,7 +1709,6 @@ static struct platform_driver sm8750_tlmm_driver =3D { .of_match_table =3D sm8750_tlmm_of_match, }, .probe =3D sm8750_tlmm_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init sm8750_tlmm_init(void) diff --git a/drivers/pinctrl/qcom/pinctrl-x1e80100.c b/drivers/pinctrl/qcom= /pinctrl-x1e80100.c index 419cb8facb2f3d261558593800a26694eddb4817..d4b215f34c39bf67a0656a3f894= b8639491e898b 100644 --- a/drivers/pinctrl/qcom/pinctrl-x1e80100.c +++ b/drivers/pinctrl/qcom/pinctrl-x1e80100.c @@ -1861,7 +1861,6 @@ static struct platform_driver x1e80100_pinctrl_driver= =3D { .of_match_table =3D x1e80100_pinctrl_of_match, }, .probe =3D x1e80100_pinctrl_probe, - .remove =3D msm_pinctrl_remove, }; =20 static int __init x1e80100_pinctrl_init(void) --=20 2.39.5