phy: samsung: disable bind/unbind platform driver feature
authorMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 19 Jul 2019 12:25:32 +0000 (14:25 +0200)
committerKishon Vijay Abraham I <kishon@ti.com>
Fri, 23 Aug 2019 04:10:59 +0000 (09:40 +0530)
Samsung PHY drivers control the power to the SoC core components needed by
their client devices (USB HCDs, SATA, camera ISP bridge, DP encoder) to
properly operate. Disabling PHYs in runtime usually causes the client
device to crash with external abort exception or similar issue due to lack
of API to notify clients about PHY removal. This patch removes the
possiblity to unbind Samsung Exynos PHY drivers in runtime.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/samsung/phy-exynos-dp-video.c
drivers/phy/samsung/phy-exynos-mipi-video.c
drivers/phy/samsung/phy-exynos-pcie.c
drivers/phy/samsung/phy-exynos5-usbdrd.c
drivers/phy/samsung/phy-exynos5250-sata.c
drivers/phy/samsung/phy-samsung-usb2.c

index aebd216dcf2ff3c0d838a8189805e890817810e4..6c607df1dc9a7aa0c8ed26f6123c85840a74200c 100644 (file)
@@ -109,6 +109,7 @@ static struct platform_driver exynos_dp_video_phy_driver = {
        .driver = {
                .name   = "exynos-dp-video-phy",
                .of_match_table = exynos_dp_video_phy_of_match,
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_dp_video_phy_driver);
index 3784bf100b9599a50badca83edef09b115e8d36c..bb51195f189fd623adad150c774e84c18ac77534 100644 (file)
@@ -359,6 +359,7 @@ static struct platform_driver exynos_mipi_video_phy_driver = {
        .driver = {
                .of_match_table = exynos_mipi_video_phy_of_match,
                .name  = "exynos-mipi-video-phy",
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_mipi_video_phy_driver);
index 1b4ba8bdb43c68197213dcfc0d6aff9cc0e97884..659e7ae0a6cfa4fa7e607546b08081382b25f482 100644 (file)
@@ -272,6 +272,7 @@ static struct platform_driver exynos_pcie_phy_driver = {
        .driver = {
                .of_match_table = exynos_pcie_phy_match,
                .name           = "exynos_pcie_phy",
+               .suppress_bind_attrs = true,
        }
 };
 
index 646259bee909a5970ce72b13dcfe74e2dfecc456..e510732afb8b0ad3cac29e2ade6ed8982f7e540f 100644 (file)
@@ -953,6 +953,7 @@ static struct platform_driver exynos5_usb3drd_phy = {
        .driver = {
                .of_match_table = exynos5_usbdrd_phy_of_match,
                .name           = "exynos5_usb3drd_phy",
+               .suppress_bind_attrs = true,
        }
 };
 
index 9e5fc126032c4ec42b85fb889ff0c7871f072ada..4dd7324d91b26469ee1461fe9847bca7486cd417 100644 (file)
@@ -237,6 +237,7 @@ static struct platform_driver exynos_sata_phy_driver = {
        .driver = {
                .of_match_table = exynos_sata_phy_of_match,
                .name  = "samsung,sata-phy",
+               .suppress_bind_attrs = true,
        }
 };
 module_platform_driver(exynos_sata_phy_driver);
index 6c82f4fbe8a2a27d15b596583ca57bd72c4c3cd5..090aa02e02dece420d8c5dff772400eeaa66f558 100644 (file)
@@ -250,6 +250,7 @@ static struct platform_driver samsung_usb2_phy_driver = {
        .driver = {
                .of_match_table = samsung_usb2_phy_of_match,
                .name           = "samsung-usb2-phy",
+               .suppress_bind_attrs = true,
        }
 };