projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
60913bb
)
switch: export name of device found via /proc
author
Hauke Mehrtens
<hauke@hauke-m.de>
Thu, 14 Feb 2013 12:36:52 +0000
(12:36 +0000)
committer
Hauke Mehrtens
<hauke@hauke-m.de>
Thu, 14 Feb 2013 12:36:52 +0000
(12:36 +0000)
SVN-Revision: 35596
package/switch/src/switch-adm.c
patch
|
blob
|
history
package/switch/src/switch-core.c
patch
|
blob
|
history
package/switch/src/switch-core.h
patch
|
blob
|
history
package/switch/src/switch-robo.c
patch
|
blob
|
history
diff --git
a/package/switch/src/switch-adm.c
b/package/switch/src/switch-adm.c
index 2d0fcc35abf28f0aaee9d7cffe41f7baec78968e..8c0ddc6c9ac0180008c0d9dbf49f00f867b3fbe0 100644
(file)
--- a/
package/switch/src/switch-adm.c
+++ b/
package/switch/src/switch-adm.c
@@
-578,6
+578,7
@@
static int __init adm_init(void)
port_handlers: port,
vlan_handlers: vlan,
};
port_handlers: port,
vlan_handlers: vlan,
};
+ snprintf(driver.dev_name, SWITCH_NAME_BUFSZ, DRIVER_NAME);
if (!detect_adm())
return -ENODEV;
if (!detect_adm())
return -ENODEV;
diff --git
a/package/switch/src/switch-core.c
b/package/switch/src/switch-core.c
index ab0754c94ac184e1f66fcda01e09669bc507d6a0..fc8a6bf2c76df72863d5c9f3f32f90a495013413 100644
(file)
--- a/
package/switch/src/switch-core.c
+++ b/
package/switch/src/switch-core.c
@@
-156,6
+156,12
@@
static int handle_driver_vlans(void *driver, char *buf, int nr)
return sprintf(buf, "%i\n", vlans);
}
return sprintf(buf, "%i\n", vlans);
}
+static int handle_driver_dev_name(void *driver, char *buf, int nr)
+{
+ char *dev_name = ((switch_driver *) driver)->dev_name;
+ return sprintf(buf, "%s\n", dev_name);
+}
+
static void add_handler(switch_driver *driver, const switch_config *handler, struct proc_dir_entry *parent, int nr)
{
switch_priv *priv = (switch_priv *) driver->data;
static void add_handler(switch_driver *driver, const switch_config *handler, struct proc_dir_entry *parent, int nr)
{
switch_priv *priv = (switch_priv *) driver->data;
@@
-242,6
+248,7
@@
switch_config global_driver_handlers[] = {
{"cpuport", handle_driver_cpuport, NULL},
{"ports", handle_driver_ports, NULL},
{"vlans", handle_driver_vlans, NULL},
{"cpuport", handle_driver_cpuport, NULL},
{"ports", handle_driver_ports, NULL},
{"vlans", handle_driver_vlans, NULL},
+ {"dev_name", handle_driver_dev_name, NULL},
{NULL, NULL, NULL}
};
{NULL, NULL, NULL}
};
diff --git
a/package/switch/src/switch-core.h
b/package/switch/src/switch-core.h
index 7192f7b0f4a8cbf932c3ade1319bd43fb6feeeb3..cc520e4935344cf2c91c3f16538f7b8cb428b20e 100644
(file)
--- a/
package/switch/src/switch-core.h
+++ b/
package/switch/src/switch-core.h
@@
-4,6
+4,7
@@
#include <linux/version.h>
#include <linux/list.h>
#define SWITCH_MAX_BUFSZ 4096
#include <linux/version.h>
#include <linux/list.h>
#define SWITCH_MAX_BUFSZ 4096
+#define SWITCH_NAME_BUFSZ 16
#define SWITCH_MEDIA_AUTO 1
#define SWITCH_MEDIA_100 2
#define SWITCH_MEDIA_AUTO 1
#define SWITCH_MEDIA_100 2
@@
-28,6
+29,7
@@
typedef struct {
const switch_config *driver_handlers, *port_handlers, *vlan_handlers;
void *data;
void *priv;
const switch_config *driver_handlers, *port_handlers, *vlan_handlers;
void *data;
void *priv;
+ char dev_name[SWITCH_NAME_BUFSZ];
} switch_driver;
typedef struct {
} switch_driver;
typedef struct {
diff --git
a/package/switch/src/switch-robo.c
b/package/switch/src/switch-robo.c
index 57240a3fd04a64b49f81ae7859d719825d9f7ded..f7159729b8842191aaf8b93c4f4b9ae4234eeccd 100644
(file)
--- a/
package/switch/src/switch-robo.c
+++ b/
package/switch/src/switch-robo.c
@@
-3,6
+3,7
@@
*
* Copyright (C) 2005 Felix Fietkau <nbd@nbd.name>
* Copyright (C) 2008 Michael Buesch <mb@bu3sch.de>
*
* Copyright (C) 2005 Felix Fietkau <nbd@nbd.name>
* Copyright (C) 2008 Michael Buesch <mb@bu3sch.de>
+ * Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de>
* Based on 'robocfg' by Oleg I. Vdovikin
*
* This program is free software; you can redistribute it and/or
* Based on 'robocfg' by Oleg I. Vdovikin
*
* This program is free software; you can redistribute it and/or
@@
-40,7
+41,7
@@
#endif
#define DRIVER_NAME "bcm53xx"
#endif
#define DRIVER_NAME "bcm53xx"
-#define DRIVER_VERSION "0.0
2
"
+#define DRIVER_VERSION "0.0
3
"
#define PFX "roboswitch: "
#define ROBO_PHY_ADDR 0x1E /* robo switch phy address */
#define PFX "roboswitch: "
#define ROBO_PHY_ADDR 0x1E /* robo switch phy address */
@@
-862,6
+863,10
@@
static int __init robo_init(void)
driver.ports = 9;
driver.cpuport = 8;
}
driver.ports = 9;
driver.cpuport = 8;
}
+ if (robo.is_5365)
+ snprintf(driver.dev_name, SWITCH_NAME_BUFSZ, "BCM5365");
+ else
+ snprintf(driver.dev_name, SWITCH_NAME_BUFSZ, "BCM5%s%x", robo.devid & 0xff00 ? "" : "3", robo.devid);
return switch_register_driver(&driver);
}
return switch_register_driver(&driver);
}