[PATCH 5/7] net mii: Add mii_open/mii_close functions
Sascha Hauer
s.hauer at pengutronix.de
Fri Apr 13 09:54:31 EDT 2012
Some phys need board specific fixups. To be able to do this
from board code add mii_open/mii_close functions so that the
board can use the regular mii_read/mii_write functions.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
drivers/net/miidev.c | 20 ++++++++++++++++++++
include/miidev.h | 5 +++++
2 files changed, 25 insertions(+)
diff --git a/drivers/net/miidev.c b/drivers/net/miidev.c
index 3b73133..cc84e63 100644
--- a/drivers/net/miidev.c
+++ b/drivers/net/miidev.c
@@ -28,6 +28,8 @@
#include <net.h>
#include <malloc.h>
+static LIST_HEAD(miidev_list);
+
int miidev_restart_aneg(struct mii_device *mdev)
{
int status, timeout;
@@ -226,6 +228,7 @@ static int miidev_probe(struct device_d *dev)
mdev->cdev.priv = mdev;
mdev->cdev.dev = dev;
devfs_create(&mdev->cdev);
+ list_add_tail(&mdev->list, &miidev_list);
return 0;
}
@@ -233,10 +236,27 @@ static void miidev_remove(struct device_d *dev)
{
struct mii_device *mdev = dev->priv;
+ list_del(&mdev->list);
+
free(mdev->cdev.name);
devfs_remove(&mdev->cdev);
}
+struct mii_device *mii_open(const char *name)
+{
+ struct mii_device *mdev;
+
+ list_for_each_entry(mdev, &miidev_list, list) {
+ if (!strcmp(name, mdev->cdev.name))
+ return mdev;
+ }
+ return NULL;
+}
+
+void mii_close(struct mii_device *mdev)
+{
+}
+
static struct driver_d miidev_drv = {
.name = "miidev",
.probe = miidev_probe,
diff --git a/include/miidev.h b/include/miidev.h
index 8cd4c45..622784f 100644
--- a/include/miidev.h
+++ b/include/miidev.h
@@ -43,6 +43,7 @@ struct mii_device {
struct eth_device *edev;
struct cdev cdev;
+ struct list_head list;
};
int mii_register(struct mii_device *dev);
@@ -65,4 +66,8 @@ static int inline mii_read(struct mii_device *dev, int addr, int reg)
{
return dev->read(dev, addr, reg);
}
+
+struct mii_device *mii_open(const char *name);
+void mii_close(struct mii_device *mdev);
+
#endif /* __MIIDEV_H__ */
--
1.7.10
More information about the barebox
mailing list