[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1270025218-7245-1-git-send-email-anders.darander@gmail.com>
Date: Wed, 31 Mar 2010 10:46:58 +0200
From: Anders Darander <anders.darander@...il.com>
To: Haavard Skinnemoen <hskinnemoen@...el.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Jiri Pirko <jpirko@...hat.com>,
Erik Waling <erik.waling@...ftel.com>,
Patrick McHardy <kaber@...sh.net>,
Anders Darander <ad@...arespons.se>,
Grant Likely <grant.likely@...retlab.ca>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH][V2] MACB: Set PHY address in kernel parameters
From: Anders Darander <ad@...arespons.se>
Add the possibility to set the phy address. This is needed if an integrated
switch is connected to the MAC, as it is often the case that the highest port
is the one connected to the MAC of the MCU.
E.g. in the case of the Micrel KSZ8873, port 3 is the one to connect to the
MCU, thus, the MAC needs to connect to phy address 0x03, instead of the first
phy found.
Signed-off-by: Anders Darander <ad@...arespons.se>
---
Changes from V1:
* Made the variable type consistent with the module parameter
declaration. (I.e. made it unsigned short).
drivers/net/macb.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index c8a18a6..af7b61b 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -53,6 +53,14 @@
#define MACB_RX_INT_FLAGS (MACB_BIT(RCOMP) | MACB_BIT(RXUBR) \
| MACB_BIT(ISR_ROVR))
+/*
+ * Setup PHY probeing
+ */
+
+static unsigned short phy_addr = PHY_MAX_ADDR;
+module_param(phy_addr, ushort, 0);
+MODULE_PARAM_DESC(phy_addr, "PHY address connected to the MACB");
+
static void __macb_set_hwaddr(struct macb *bp)
{
u32 bottom;
@@ -193,7 +201,11 @@ static int macb_mii_probe(struct net_device *dev)
struct eth_platform_data *pdata;
int ret;
- phydev = phy_find_first(bp->mii_bus);
+ if (phy_addr >= PHY_MAX_ADDRESS)
+ phydev = phy_find_first(bp->mii_bus);
+ else
+ phydev = bp->mii_bus->phy_map[phy_addr];
+
if (!phydev) {
printk (KERN_ERR "%s: no PHY found\n", dev->name);
return -1;
--
1.7.0.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists