summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/amd
diff options
context:
space:
mode:
authorLendacky, Thomas <Thomas.Lendacky@amd.com>2015-05-14 19:44:21 +0300
committerDavid S. Miller <davem@davemloft.net>2015-05-15 22:21:43 +0300
commit34bfff404ca2eb2f0e60f82f301ad6abcdd22150 (patch)
tree342fc412cdd267a93aac7bce0638389b945710a1 /drivers/net/ethernet/amd
parent7c12aa08779cfa8e0a64943bd6d823c5c110766b (diff)
downloadlinux-34bfff404ca2eb2f0e60f82f301ad6abcdd22150.tar.xz
amd-xgbe: Support defining PHY resources in ETH device node
Simplify the device tree support of the amd-xgbe driver by defining the PHY-related resources within the ethernet device node. The support provides backwards compatibility with the original way. Update the driver version to 1.0.2. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amd')
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-main.c23
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe.h2
2 files changed, 16 insertions, 9 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
index 0c219b30c129..34c521d8b578 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
@@ -300,14 +300,21 @@ static struct platform_device *xgbe_of_get_phy_pdev(struct xgbe_prv_data *pdata)
struct platform_device *phy_pdev;
phy_node = of_parse_phandle(dev->of_node, "phy-handle", 0);
- if (!phy_node) {
- dev_err(dev, "unable to locate phy device\n");
- return NULL;
+ if (phy_node) {
+ /* Old style device tree:
+ * The XGBE and PHY resources are separate
+ */
+ phy_pdev = of_find_device_by_node(phy_node);
+ of_node_put(phy_node);
+ } else {
+ /* New style device tree:
+ * The XGBE and PHY resources are grouped together with
+ * the PHY resources listed last
+ */
+ get_device(dev);
+ phy_pdev = pdata->pdev;
}
- phy_pdev = of_find_device_by_node(phy_node);
- of_node_put(phy_node);
-
return phy_pdev;
}
#else /* CONFIG_OF */
@@ -401,14 +408,14 @@ static int xgbe_probe(struct platform_device *pdev)
phy_dev = &phy_pdev->dev;
if (pdev == phy_pdev) {
- /* ACPI:
+ /* New style device tree or ACPI:
* The XGBE and PHY resources are grouped together with
* the PHY resources listed last
*/
phy_memnum = xgbe_resource_count(pdev, IORESOURCE_MEM) - 3;
phy_irqnum = xgbe_resource_count(pdev, IORESOURCE_IRQ) - 1;
} else {
- /* Device tree:
+ /* Old style device tree:
* The XGBE and PHY resources are separate
*/
phy_memnum = 0;
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
index b6aecc95e63f..f535d19da803 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe.h
+++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
@@ -129,7 +129,7 @@
#include <net/dcbnl.h>
#define XGBE_DRV_NAME "amd-xgbe"
-#define XGBE_DRV_VERSION "1.0.1"
+#define XGBE_DRV_VERSION "1.0.2"
#define XGBE_DRV_DESC "AMD 10 Gigabit Ethernet Driver"
/* Descriptor related defines */