From nobody Sun Feb 8 14:11:05 2026 Received: from pv50p00im-ztdg10011201.me.com (pv50p00im-ztdg10011201.me.com [17.58.6.39]) (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 A0497267F58 for ; Tue, 25 Feb 2025 12:33:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=17.58.6.39 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740486802; cv=none; b=j2ekkUBJD32DQ8OWnCoFKqlPiZCdgTiGGoE3h+Pl2Yuhx3cefwS8hCkCdFwRp1g0BqTNG8nIwMWZNWZYvcxda3apmIiX2F+KnD3XsKZTO93ceaKYsS/M528SpwczsJTqSUipKmmR8Mf8mnXvC2t2jBU/oV6q84qFKZSxwnO0f7s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740486802; c=relaxed/simple; bh=e5ri7o/pKQgLDKlyQicTt3kAVTALbarSe2xQ/ZK/7MY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=p1ltto55tnK8VfjYj6CsqvQQKklP/JALuMgsGAtBOzpK4W7Wj3wyacwkYOdnC4ksngzMd/ofei/5SFD3GlN4+cE0wRviHeIPT6gTle4RQcqG16H5ibEmKL0us1paShdOfR/lXN+wTgKzBorhMcUBFaduynqpYny/96a9rxSW+6g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com; spf=pass smtp.mailfrom=icloud.com; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b=ai82X+4d; arc=none smtp.client-ip=17.58.6.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=icloud.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b="ai82X+4d" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=1a1hai; bh=BdtS65RHiFl1WFTCHO1gU6ssbrkbzjGtY4ydMrp5+Lk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:x-icloud-hme; b=ai82X+4d1AJ2ZgIr0rehiaxriw2YduGrnSxnJGLJxFOtPC65AT3/t/fQTT3moGZuu u02wdu9sbKRlRJiqtcSUnqmUFSMIau8wtalTrPiFtIrLENcYgl7I9iiDxmVtKF9R39 nYW68ggjlNOoSU9YHqI8EmIGJMFopNURXlDKKEk5y59v20q8vcdz+R1PrAnHRpsVaf 2FIo+zs5tTdSOULdZGOMrPwM26kRpiW8uxBUGsKfZvabyCkqkXgB8mKPF0q63xSM+s 7W041G4b+83eWbCkRS/30BwnPvQYPd/OdQz22/rVW9PG/6IgVTYjU69zkep64yuxIn gTTrZD6NNKhzg== Received: from [192.168.1.26] (pv50p00im-dlb-asmtp-mailmevip.me.com [17.56.9.10]) by pv50p00im-ztdg10011201.me.com (Postfix) with ESMTPSA id 4DB316802E4; Tue, 25 Feb 2025 12:33:12 +0000 (UTC) From: Zijun Hu Date: Tue, 25 Feb 2025 20:32:38 +0800 Subject: [PATCH RESEND 1/2] phy: core: Remove API devm_of_phy_provider_unregister() 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: <20250225-remove-apis-v1-1-e49b4a1941fd@quicinc.com> References: <20250225-remove-apis-v1-0-e49b4a1941fd@quicinc.com> In-Reply-To: <20250225-remove-apis-v1-0-e49b4a1941fd@quicinc.com> To: Jonathan Corbet , Alex Shi , Yanteng Si , Vinod Koul , Kishon Vijay Abraham I Cc: Zijun Hu , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Zijun Hu X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: SIn9GGzSmUJc6gvg7CAUl2XGTMZUmYhs X-Proofpoint-GUID: SIn9GGzSmUJc6gvg7CAUl2XGTMZUmYhs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-25_04,2025-02-25_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=765 mlxscore=0 bulkscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 suspectscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2308100000 definitions=main-2502250088 X-Apple-Remote-Links: v=1;h=KCk=;charset=UTF-8 From: Zijun Hu API devm_of_phy_provider_unregister() has not had callers since 2013-09-27 when it was introduced. Remove the API. Signed-off-by: Zijun Hu --- Documentation/driver-api/phy/phy.rst | 5 +---- .../translations/zh_CN/driver-api/phy/phy.rst | 5 +---- drivers/phy/phy-core.c | 19 ---------------= ---- include/linux/phy/phy.h | 6 ------ 4 files changed, 2 insertions(+), 33 deletions(-) diff --git a/Documentation/driver-api/phy/phy.rst b/Documentation/driver-ap= i/phy/phy.rst index 81785c084f3ec2dd02af2131fbc8632cb5b33b0b..be3687a2a11bbf84e6e5561b119= 31ea6db984434 100644 --- a/Documentation/driver-api/phy/phy.rst +++ b/Documentation/driver-api/phy/phy.rst @@ -64,12 +64,9 @@ macros can be used to override the node containing the c= hildren. __devm_of_phy_provider_register_full(dev, children, THIS_MODULE, xlate) =20 - void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider); void of_phy_provider_unregister(struct phy_provider *phy_provider); =20 -devm_of_phy_provider_unregister and of_phy_provider_unregister can be used= to -unregister the PHY. +of_phy_provider_unregister can be used to unregister the PHY. =20 Creating the PHY =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff --git a/Documentation/translations/zh_CN/driver-api/phy/phy.rst b/Docu= mentation/translations/zh_CN/driver-api/phy/phy.rst index 0d7489081b904d6fc5aa21824c969e325e801297..2d3f98deb92035c44fcb1ff0e3d= c8543053140f6 100644 --- a/Documentation/translations/zh_CN/driver-api/phy/phy.rst +++ b/Documentation/translations/zh_CN/driver-api/phy/phy.rst @@ -63,12 +63,9 @@ devm_of_phy_provider_register_full() =E5=AE=8F=E6=9D=A5= =E8=A6=86=E7=9B=96=E5=8C=85=E5=90=AB=E5=AD=90=E8=8A=82=E7=82=B9=E7=9A=84=E8= =8A=82=E7=82=B9=E3=80=82 __devm_of_phy_provider_register_full(dev, children, THIS_MODULE, xlate) =20 - void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider); void of_phy_provider_unregister(struct phy_provider *phy_provider); =20 -devm_of_phy_provider_unregister =E5=92=8C of_phy_provider_unregister -=E5=8F=AF=E4=BB=A5=E8=A2=AB=E7=94=A8=E6=9D=A5=E6=B3=A8=E9=94=80PHY. +of_phy_provider_unregister() =E5=8F=AF=E4=BB=A5=E8=A2=AB=E7=94=A8=E6=9D=A5= =E6=B3=A8=E9=94=80PHY. =20 =E5=88=9B=E5=BB=BAPHY =3D=3D=3D=3D=3D=3D=3D diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index 8dfdce605a905d7f38205727151258af41f807a9..dd6302dfd14d2ec060857fc0192= 68096c33e37a2 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -1248,25 +1248,6 @@ void of_phy_provider_unregister(struct phy_provider = *phy_provider) } EXPORT_SYMBOL_GPL(of_phy_provider_unregister); =20 -/** - * devm_of_phy_provider_unregister() - remove phy provider from the framew= ork - * @dev: struct device of the phy provider - * @phy_provider: phy provider returned by of_phy_provider_register() - * - * destroys the devres associated with this phy provider and invokes - * of_phy_provider_unregister to unregister the phy provider. - */ -void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider) -{ - int r; - - r =3D devres_release(dev, devm_phy_provider_release, devm_phy_match, - phy_provider); - dev_WARN_ONCE(dev, r, "couldn't find PHY provider device resource\n"); -} -EXPORT_SYMBOL_GPL(devm_of_phy_provider_unregister); - /** * phy_release() - release the phy * @dev: the dev member within phy diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index 03cd5bae92d3f189d739c453fe4c160dd2a5063e..06037a7eefc4b0319008065d142= c9f1caba2c74d 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -288,8 +288,6 @@ struct phy_provider *__devm_of_phy_provider_register(st= ruct device *dev, struct phy * (*of_xlate)(struct device *dev, const struct of_phandle_args *args)); void of_phy_provider_unregister(struct phy_provider *phy_provider); -void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider); int phy_create_lookup(struct phy *phy, const char *con_id, const char *dev= _id); void phy_remove_lookup(struct phy *phy, const char *con_id, const char *de= v_id); #else @@ -547,10 +545,6 @@ static inline void of_phy_provider_unregister(struct p= hy_provider *phy_provider) { } =20 -static inline void devm_of_phy_provider_unregister(struct device *dev, - struct phy_provider *phy_provider) -{ -} static inline int phy_create_lookup(struct phy *phy, const char *con_id, const char *dev_id) { --=20 2.34.1 From nobody Sun Feb 8 14:11:05 2026 Received: from pv50p00im-ztdg10011201.me.com (pv50p00im-ztdg10011201.me.com [17.58.6.39]) (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 F294B266B40 for ; Tue, 25 Feb 2025 12:33:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=17.58.6.39 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740486809; cv=none; b=HUJe0KuefG8ir7nx0J14HnRBgwV8a37ISjSiBQVFgNSRMen/el4ILFUlOfANR3HUiAzlPwadEGhDnINBDmntybZKimJvfU9QfSuWR18d6DJUuVTz2+CrD64CTQxsVwvUOd0LqAXHFw+DcUFffiFZOJw7GBNcYLdnVvnwk3fLa38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740486809; c=relaxed/simple; bh=oxeNg/3kTTYdWOP+m0MjbWQatWl1xtjweDH0uB/M8o0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=snisbc4723tsrMtKTJAVPP2waq6BcWv5OXt4kKaMjJulL03WjWMAjL4FTDPEm7bcSrvqw9OfDiOeIvyEWgZ7P+0S6k0Jy3orEua5pbws4z46SpFeXeKjnG1ezuh89TM9HietH8RHe3lH3+0Nl903bn9pdLMMM58wOOUuXAs/R8s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com; spf=pass smtp.mailfrom=icloud.com; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b=iK9cS+Yv; arc=none smtp.client-ip=17.58.6.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=icloud.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=icloud.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b="iK9cS+Yv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com; s=1a1hai; bh=tfkcqBi0ou5N+iPlIoNtZJvvEZ4xTbBbnOJsMG5xchk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:x-icloud-hme; b=iK9cS+Yv3SeyUoWcFPENdzP+BUb/qiZOQ3e6yjJto3o2tW9q0Inf7gw1nwR6TiMl0 Y7N1lTA1bQniIn+rT3FnYxouFVUBGrgfVR8JqGkY5YhRsUIBap6Lp6JUsF7PfRXjZ5 KZfR8yUER992Zm6ykzRH/jaB8ertUDOhHg8WA4ym76ZXtpSVYUnw6JH7CoFhKwLJs1 9dM7PX7Zkab0iuwacWMdGyBOl22d2Rf1VY60MEr9FwtPxJrSPY2FNvg0smJykXwQzZ PvbRJj3rkz/OAsaCjQ1Sf8hD9Dz66uG1F3W/Y0JK23p6E9niVHrQoEsblcf1EB8h+4 aYGklqoEKINSQ== Received: from [192.168.1.26] (pv50p00im-dlb-asmtp-mailmevip.me.com [17.56.9.10]) by pv50p00im-ztdg10011201.me.com (Postfix) with ESMTPSA id ED3F168035B; Tue, 25 Feb 2025 12:33:20 +0000 (UTC) From: Zijun Hu Date: Tue, 25 Feb 2025 20:32:39 +0800 Subject: [PATCH RESEND 2/2] phy: core: Remove API devm_phy_destroy() 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: <20250225-remove-apis-v1-2-e49b4a1941fd@quicinc.com> References: <20250225-remove-apis-v1-0-e49b4a1941fd@quicinc.com> In-Reply-To: <20250225-remove-apis-v1-0-e49b4a1941fd@quicinc.com> To: Jonathan Corbet , Alex Shi , Yanteng Si , Vinod Koul , Kishon Vijay Abraham I Cc: Zijun Hu , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Zijun Hu X-Mailer: b4 0.14.2 X-Proofpoint-ORIG-GUID: Nn6owD0_M8syBbjLW7GXmAtZeTfeyw_R X-Proofpoint-GUID: Nn6owD0_M8syBbjLW7GXmAtZeTfeyw_R X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-25_04,2025-02-25_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 bulkscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 suspectscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2308100000 definitions=main-2502250088 X-Apple-Remote-Links: v=1;h=KCk=;charset=UTF-8 From: Zijun Hu API devm_phy_destroy() has not had callers since 2013-09-27 when it was introduced. Remove the API. Signed-off-by: Zijun Hu --- Documentation/driver-api/phy/phy.rst | 6 ++---- Documentation/translations/zh_CN/driver-api/phy/phy.rst | 7 ++----- drivers/phy/phy-core.c | 17 -------------= ---- include/linux/phy/phy.h | 5 ----- 4 files changed, 4 insertions(+), 31 deletions(-) diff --git a/Documentation/driver-api/phy/phy.rst b/Documentation/driver-ap= i/phy/phy.rst index be3687a2a11bbf84e6e5561b11931ea6db984434..cae03d8a4812b3c4cfca64272cc= 6b8f83a81d1c8 100644 --- a/Documentation/driver-api/phy/phy.rst +++ b/Documentation/driver-api/phy/phy.rst @@ -173,13 +173,11 @@ Destroying the PHY =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 When the driver that created the PHY is unloaded, it should destroy the PH= Y it -created using one of the following 2 APIs:: +created using the following API:: =20 void phy_destroy(struct phy *phy); - void devm_phy_destroy(struct device *dev, struct phy *phy); =20 -Both these APIs destroy the PHY and devm_phy_destroy destroys the devres -associated with this PHY. +The API destroys the PHY. =20 PM Runtime =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff --git a/Documentation/translations/zh_CN/driver-api/phy/phy.rst b/Docu= mentation/translations/zh_CN/driver-api/phy/phy.rst index 2d3f98deb92035c44fcb1ff0e3dc8543053140f6..37c23fcebf11f397d0dc502bbba= 11a74c525f085 100644 --- a/Documentation/translations/zh_CN/driver-api/phy/phy.rst +++ b/Documentation/translations/zh_CN/driver-api/phy/phy.rst @@ -164,14 +164,11 @@ PHY =E5=85=B3=E8=81=94=E7=9A=84=E8=AE=BE=E5=A4=87=E8= =B5=84=E6=BA=90=E3=80=82 =E9=94=80=E6=AF=81 PHY =3D=3D=3D=3D=3D=3D=3D=3D =20 -=E5=BD=93=E5=88=9B=E5=BB=BA PHY =E7=9A=84=E9=A9=B1=E5=8A=A8=E7=A8=8B=E5=BA= =8F=E8=A2=AB=E5=8D=B8=E8=BD=BD=E6=97=B6=EF=BC=8C=E5=AE=83=E5=BA=94=E8=AF=A5= =E4=BD=BF=E7=94=A8=E4=BB=A5=E4=B8=8B 2 =E4=B8=AA API =E4=B9=8B=E4=B8=80=E9= =94=80=E6=AF=81=E5=85=B6=E5=88=9B -=E5=BB=BA=E7=9A=84 PHY:: +=E5=BD=93=E5=88=9B=E5=BB=BA PHY =E7=9A=84=E9=A9=B1=E5=8A=A8=E7=A8=8B=E5=BA= =8F=E8=A2=AB=E5=8D=B8=E8=BD=BD=E6=97=B6=EF=BC=8C=E5=AE=83=E5=BA=94=E8=AF=A5= =E4=BD=BF=E7=94=A8=E4=BB=A5=E4=B8=8B API =E9=94=80=E6=AF=81=E5=85=B6=E5=88= =9B=E5=BB=BA=E7=9A=84 PHY:: =20 void phy_destroy(struct phy *phy); - void devm_phy_destroy(struct device *dev, struct phy *phy); =20 -=E8=BF=99=E4=B8=A4=E4=B8=AA API =E9=83=BD=E4=BC=9A=E9=94=80=E6=AF=81 PHY= =EF=BC=8C=E5=B9=B6=E4=B8=94 devm_phy_destroy =E4=BC=9A=E9=94=80=E6=AF=81=E4= =B8=8E=E6=AD=A4 PHY =E5=85=B3 -=E8=81=94=E7=9A=84 devres=E3=80=82 +=E8=BF=99=E4=B8=AA API =E4=BC=9A=E9=94=80=E6=AF=81 PHY=E3=80=82 =20 PM Runtime =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index dd6302dfd14d2ec060857fc019268096c33e37a2..8e0e11553e369e06f5ee4cdbb11= 1b4ddb1b34e74 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -1107,23 +1107,6 @@ void phy_destroy(struct phy *phy) } EXPORT_SYMBOL_GPL(phy_destroy); =20 -/** - * devm_phy_destroy() - destroy the PHY - * @dev: device that wants to release this phy - * @phy: the phy returned by devm_phy_get() - * - * destroys the devres associated with this phy and invokes phy_destroy - * to destroy the phy. - */ -void devm_phy_destroy(struct device *dev, struct phy *phy) -{ - int r; - - r =3D devres_release(dev, devm_phy_consume, devm_phy_match, phy); - dev_WARN_ONCE(dev, r, "couldn't find PHY resource\n"); -} -EXPORT_SYMBOL_GPL(devm_phy_destroy); - /** * __of_phy_provider_register() - create/register phy provider with the fr= amework * @dev: struct device of the phy provider diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h index 06037a7eefc4b0319008065d142c9f1caba2c74d..66eb664249ddaa6635bf80d8db1= 15cb21473ceb8 100644 --- a/include/linux/phy/phy.h +++ b/include/linux/phy/phy.h @@ -278,7 +278,6 @@ struct phy *phy_create(struct device *dev, struct devic= e_node *node, struct phy *devm_phy_create(struct device *dev, struct device_node *node, const struct phy_ops *ops); void phy_destroy(struct phy *phy); -void devm_phy_destroy(struct device *dev, struct phy *phy); struct phy_provider *__of_phy_provider_register(struct device *dev, struct device_node *children, struct module *owner, struct phy * (*of_xlate)(struct device *dev, @@ -521,10 +520,6 @@ static inline void phy_destroy(struct phy *phy) { } =20 -static inline void devm_phy_destroy(struct device *dev, struct phy *phy) -{ -} - static inline struct phy_provider *__of_phy_provider_register( struct device *dev, struct device_node *children, struct module *owner, struct phy * (*of_xlate)(struct device *dev, --=20 2.34.1