All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] phylib: support reading the status of a fixed PHY
@ 2015-02-12 14:12 Tobias Waldekranz
  0 siblings, 0 replies; only message in thread
From: Tobias Waldekranz @ 2015-02-12 14:12 UTC (permalink / raw)
  To: netdev

This makes it possible to check if a PHY is fixed or physical.

Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
---
 drivers/net/phy/fixed_phy.c | 17 +++++++++++++++++
 include/linux/phy_fixed.h   |  9 +++++++++
 2 files changed, 26 insertions(+)

diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c
index a08a3c7..5575345 100644
--- a/drivers/net/phy/fixed_phy.c
+++ b/drivers/net/phy/fixed_phy.c
@@ -156,6 +156,23 @@ static int fixed_mdio_write(struct mii_bus *bus, int phy_addr, int reg_num,
 	return 0;
 }
 
+const struct fixed_phy_status *fixed_phy_get_status(struct phy_device *phydev)
+{
+	struct fixed_mdio_bus *fmb = &platform_fmb;
+	struct fixed_phy *fp;
+
+	if (!phydev || !phydev->bus || phydev->bus->priv != fmb)
+		return NULL;
+
+	list_for_each_entry(fp, &fmb->phys, node) {
+		if (fp->addr == phydev->addr)
+			return &fp->status;
+	}
+
+	return NULL;
+}
+EXPORT_SYMBOL(fixed_phy_get_status);
+
 /*
  * If something weird is required to be done with link/speed,
  * network driver is able to assign a function to implement this.
diff --git a/include/linux/phy_fixed.h b/include/linux/phy_fixed.h
index 7e75bfe..e783b8d 100644
--- a/include/linux/phy_fixed.h
+++ b/include/linux/phy_fixed.h
@@ -12,6 +12,9 @@ struct fixed_phy_status {
 struct device_node;
 
 #if IS_ENABLED(CONFIG_FIXED_PHY)
+extern const struct fixed_phy_status *fixed_phy_get_status(
+	struct phy_device *phydev);
+
 extern int fixed_phy_add(unsigned int irq, int phy_id,
 			 struct fixed_phy_status *status);
 extern struct phy_device *fixed_phy_register(unsigned int irq,
@@ -22,6 +25,12 @@ extern int fixed_phy_set_link_update(struct phy_device *phydev,
 			int (*link_update)(struct net_device *,
 					   struct fixed_phy_status *));
 #else
+static inline const struct fixed_phy_status *fixed_phy_get_status(
+	struct phy_device *phydev)
+{
+	return NULL;
+};
+
 static inline int fixed_phy_add(unsigned int irq, int phy_id,
 				struct fixed_phy_status *status)
 {
-- 
1.8.4.357.g8d83871.dirty

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-02-12 14:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-12 14:12 [PATCH 1/2] phylib: support reading the status of a fixed PHY Tobias Waldekranz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.