]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
phy: usb: phy-brcm-usb: Remove sysfs attributes upon driver removal
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 22 May 2019 18:35:25 +0000 (11:35 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:50:54 +0000 (14:50 +0100)
[ Upstream commit d9e100829fca6cbd270d7e005b0c0bb2d14924b8 ]

We are not destroying the sysfs attribute groupe we registered during
the probe function which will make subsequent probe calls to that
driver fail. Correct that with adding a remove function which only
removes those attributes since the reference counting on clocks did its
job already.

Fixes: 415060b21f31 ("phy: usb: phy-brcm-usb: Add ability to force DRD mode to host or device")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/phy/broadcom/phy-brcm-usb.c

index d1dab36fa5b7b92e12fd2851d9c5ad00a15214e0..e2455ffb859796ea8b9c1a9a586ffc48e01fc739 100644 (file)
@@ -378,6 +378,13 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
        return 0;
 }
 
+static int brcm_usb_phy_remove(struct platform_device *pdev)
+{
+       sysfs_remove_group(&pdev->dev.kobj, &brcm_usb_phy_group);
+
+       return 0;
+}
+
 #ifdef CONFIG_PM_SLEEP
 static int brcm_usb_phy_suspend(struct device *dev)
 {
@@ -443,6 +450,7 @@ MODULE_DEVICE_TABLE(of, brcm_usb_dt_ids);
 
 static struct platform_driver brcm_usb_driver = {
        .probe          = brcm_usb_phy_probe,
+       .remove         = brcm_usb_phy_remove,
        .driver         = {
                .name   = "brcmstb-usb-phy",
                .owner  = THIS_MODULE,