aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch')
-rw-r--r--target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch b/target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch
new file mode 100644
index 0000000000..fc83337de7
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.1/035-PCI-iproc-Delete-unnecessary-checks-before-phy-calls.patch
@@ -0,0 +1,79 @@
+From 93972d18bbaba6f34e21742400b6e7461edc4837 Mon Sep 17 00:00:00 2001
+From: Markus Elfring <elfring@users.sourceforge.net>
+Date: Sun, 28 Jun 2015 16:42:04 +0200
+Subject: [PATCH] PCI: iproc: Delete unnecessary checks before phy calls
+
+The functions phy_exit() and phy_power_off() test whether their argument is
+NULL and then return immediately. Thus the test around the calls is not
+needed.
+
+This issue was detected by using the Coccinelle software.
+
+[bhelgaas: also phy_init() and phy_power_on(), as Ray Jui suggested]
+[bhelgaas: also remove tests in iproc_pcie_remove()]
+Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: Ray Jui <rjui@broadcom.com>
+---
+ drivers/pci/host/pcie-iproc.c | 34 +++++++++++++---------------------
+ 1 file changed, 13 insertions(+), 21 deletions(-)
+
+--- a/drivers/pci/host/pcie-iproc.c
++++ b/drivers/pci/host/pcie-iproc.c
+@@ -191,19 +191,16 @@ int iproc_pcie_setup(struct iproc_pcie *
+ if (!pcie || !pcie->dev || !pcie->base)
+ return -EINVAL;
+
+- if (pcie->phy) {
+- ret = phy_init(pcie->phy);
+- if (ret) {
+- dev_err(pcie->dev, "unable to initialize PCIe PHY\n");
+- return ret;
+- }
+-
+- ret = phy_power_on(pcie->phy);
+- if (ret) {
+- dev_err(pcie->dev, "unable to power on PCIe PHY\n");
+- goto err_exit_phy;
+- }
++ ret = phy_init(pcie->phy);
++ if (ret) {
++ dev_err(pcie->dev, "unable to initialize PCIe PHY\n");
++ return ret;
++ }
+
++ ret = phy_power_on(pcie->phy);
++ if (ret) {
++ dev_err(pcie->dev, "unable to power on PCIe PHY\n");
++ goto err_exit_phy;
+ }
+
+ iproc_pcie_reset(pcie);
+@@ -239,12 +236,9 @@ err_rm_root_bus:
+ pci_remove_root_bus(bus);
+
+ err_power_off_phy:
+- if (pcie->phy)
+- phy_power_off(pcie->phy);
++ phy_power_off(pcie->phy);
+ err_exit_phy:
+- if (pcie->phy)
+- phy_exit(pcie->phy);
+-
++ phy_exit(pcie->phy);
+ return ret;
+ }
+ EXPORT_SYMBOL(iproc_pcie_setup);
+@@ -254,10 +248,8 @@ int iproc_pcie_remove(struct iproc_pcie
+ pci_stop_root_bus(pcie->root_bus);
+ pci_remove_root_bus(pcie->root_bus);
+
+- if (pcie->phy) {
+- phy_power_off(pcie->phy);
+- phy_exit(pcie->phy);
+- }
++ phy_power_off(pcie->phy);
++ phy_exit(pcie->phy);
+
+ return 0;
+ }