NET: Cosmetic changes

Signed-off-by: Larry Johnson <lrj@acm.org>
Signed-off-by: Ben Warren <bwarren@qstreams.com>
This commit is contained in:
Larry Johnson 2007-10-31 11:21:29 -05:00 committed by Ben Warren
parent 881cf02f47
commit 298035df49
2 changed files with 108 additions and 121 deletions

View file

@ -49,10 +49,10 @@
struct mii_dev { struct mii_dev {
struct list_head link; struct list_head link;
char *name; char *name;
int (* read)(char *devname, unsigned char addr, int (*read) (char *devname, unsigned char addr,
unsigned char reg, unsigned short *value); unsigned char reg, unsigned short *value);
int (* write)(char *devname, unsigned char addr, int (*write) (char *devname, unsigned char addr,
unsigned char reg, unsigned short value); unsigned char reg, unsigned short value);
}; };
static struct list_head mii_devs; static struct list_head mii_devs;
@ -62,21 +62,21 @@ static struct mii_dev *current_mii;
* *
* Initialize global data. Need to be called before any other miiphy routine. * Initialize global data. Need to be called before any other miiphy routine.
*/ */
void miiphy_init() void miiphy_init ()
{ {
INIT_LIST_HEAD(&mii_devs); INIT_LIST_HEAD (&mii_devs);
current_mii = NULL; current_mii = NULL;
} }
/***************************************************************************** /*****************************************************************************
* *
* Register read and write MII access routines for the device <name>. * Register read and write MII access routines for the device <name>.
*/ */
void miiphy_register(char *name, void miiphy_register (char *name,
int (* read)(char *devname, unsigned char addr, int (*read) (char *devname, unsigned char addr,
unsigned char reg, unsigned short *value), unsigned char reg, unsigned short *value),
int (* write)(char *devname, unsigned char addr, int (*write) (char *devname, unsigned char addr,
unsigned char reg, unsigned short value)) unsigned char reg, unsigned short value))
{ {
struct list_head *entry; struct list_head *entry;
struct mii_dev *new_dev; struct mii_dev *new_dev;
@ -84,63 +84,64 @@ void miiphy_register(char *name,
unsigned int name_len; unsigned int name_len;
/* check if we have unique name */ /* check if we have unique name */
list_for_each(entry, &mii_devs) { list_for_each (entry, &mii_devs) {
miidev = list_entry(entry, struct mii_dev, link); miidev = list_entry (entry, struct mii_dev, link);
if (strcmp(miidev->name, name) == 0) { if (strcmp (miidev->name, name) == 0) {
printf("miiphy_register: non unique device name '%s'\n", printf ("miiphy_register: non unique device name "
name); "'%s'\n", name);
return; return;
} }
} }
/* allocate memory */ /* allocate memory */
name_len = strlen(name); name_len = strlen (name);
new_dev = (struct mii_dev *)malloc(sizeof(struct mii_dev) + name_len + 1); new_dev =
(struct mii_dev *)malloc (sizeof (struct mii_dev) + name_len + 1);
if(new_dev == NULL) { if (new_dev == NULL) {
printf("miiphy_register: cannot allocate memory for '%s'\n", printf ("miiphy_register: cannot allocate memory for '%s'\n",
name); name);
return; return;
} }
memset(new_dev, 0, sizeof(struct mii_dev) + name_len); memset (new_dev, 0, sizeof (struct mii_dev) + name_len);
/* initalize mii_dev struct fields */ /* initalize mii_dev struct fields */
INIT_LIST_HEAD(&new_dev->link); INIT_LIST_HEAD (&new_dev->link);
new_dev->read = read; new_dev->read = read;
new_dev->write = write; new_dev->write = write;
new_dev->name = (char *)(new_dev + 1); new_dev->name = (char *)(new_dev + 1);
strncpy(new_dev->name, name, name_len); strncpy (new_dev->name, name, name_len);
new_dev->name[name_len] = '\0'; new_dev->name[name_len] = '\0';
debug("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n", debug ("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n",
new_dev->name, new_dev->read, new_dev->write); new_dev->name, new_dev->read, new_dev->write);
/* add it to the list */ /* add it to the list */
list_add_tail(&new_dev->link, &mii_devs); list_add_tail (&new_dev->link, &mii_devs);
if (!current_mii) if (!current_mii)
current_mii = new_dev; current_mii = new_dev;
} }
int miiphy_set_current_dev(char *devname) int miiphy_set_current_dev (char *devname)
{ {
struct list_head *entry; struct list_head *entry;
struct mii_dev *dev; struct mii_dev *dev;
list_for_each(entry, &mii_devs) { list_for_each (entry, &mii_devs) {
dev = list_entry(entry, struct mii_dev, link); dev = list_entry (entry, struct mii_dev, link);
if (strcmp(devname, dev->name) == 0) { if (strcmp (devname, dev->name) == 0) {
current_mii = dev; current_mii = dev;
return 0; return 0;
} }
} }
printf("No such device: %s\n", devname); printf ("No such device: %s\n", devname);
return 1; return 1;
} }
char *miiphy_get_current_dev() char *miiphy_get_current_dev ()
{ {
if (current_mii) if (current_mii)
return current_mii->name; return current_mii->name;
@ -156,8 +157,8 @@ char *miiphy_get_current_dev()
* Returns: * Returns:
* 0 on success * 0 on success
*/ */
int miiphy_read(char *devname, unsigned char addr, unsigned char reg, int miiphy_read (char *devname, unsigned char addr, unsigned char reg,
unsigned short *value) unsigned short *value)
{ {
struct list_head *entry; struct list_head *entry;
struct mii_dev *dev; struct mii_dev *dev;
@ -165,22 +166,22 @@ int miiphy_read(char *devname, unsigned char addr, unsigned char reg,
int read_ret = 0; int read_ret = 0;
if (!devname) { if (!devname) {
printf("NULL device name!\n"); printf ("NULL device name!\n");
return 1; return 1;
} }
list_for_each(entry, &mii_devs) { list_for_each (entry, &mii_devs) {
dev = list_entry(entry, struct mii_dev, link); dev = list_entry (entry, struct mii_dev, link);
if (strcmp(devname, dev->name) == 0) { if (strcmp (devname, dev->name) == 0) {
found_dev = 1; found_dev = 1;
read_ret = dev->read(devname, addr, reg, value); read_ret = dev->read (devname, addr, reg, value);
break; break;
} }
} }
if (found_dev == 0) if (found_dev == 0)
printf("No such device: %s\n", devname); printf ("No such device: %s\n", devname);
return ((found_dev) ? read_ret : 1); return ((found_dev) ? read_ret : 1);
} }
@ -193,8 +194,8 @@ int miiphy_read(char *devname, unsigned char addr, unsigned char reg,
* Returns: * Returns:
* 0 on success * 0 on success
*/ */
int miiphy_write(char *devname, unsigned char addr, unsigned char reg, int miiphy_write (char *devname, unsigned char addr, unsigned char reg,
unsigned short value) unsigned short value)
{ {
struct list_head *entry; struct list_head *entry;
struct mii_dev *dev; struct mii_dev *dev;
@ -202,22 +203,22 @@ int miiphy_write(char *devname, unsigned char addr, unsigned char reg,
int write_ret = 0; int write_ret = 0;
if (!devname) { if (!devname) {
printf("NULL device name!\n"); printf ("NULL device name!\n");
return 1; return 1;
} }
list_for_each(entry, &mii_devs) { list_for_each (entry, &mii_devs) {
dev = list_entry(entry, struct mii_dev, link); dev = list_entry (entry, struct mii_dev, link);
if (strcmp(devname, dev->name) == 0) { if (strcmp (devname, dev->name) == 0) {
found_dev = 1; found_dev = 1;
write_ret = dev->write(devname, addr, reg, value); write_ret = dev->write (devname, addr, reg, value);
break; break;
} }
} }
if (found_dev == 0) if (found_dev == 0)
printf("No such device: %s\n", devname); printf ("No such device: %s\n", devname);
return ((found_dev) ? write_ret : 1); return ((found_dev) ? write_ret : 1);
} }
@ -226,23 +227,22 @@ int miiphy_write(char *devname, unsigned char addr, unsigned char reg,
* *
* Print out list of registered MII capable devices. * Print out list of registered MII capable devices.
*/ */
void miiphy_listdev(void) void miiphy_listdev (void)
{ {
struct list_head *entry; struct list_head *entry;
struct mii_dev *dev; struct mii_dev *dev;
puts("MII devices: "); puts ("MII devices: ");
list_for_each(entry, &mii_devs) { list_for_each (entry, &mii_devs) {
dev = list_entry(entry, struct mii_dev, link); dev = list_entry (entry, struct mii_dev, link);
printf("'%s' ", dev->name); printf ("'%s' ", dev->name);
} }
puts("\n"); puts ("\n");
if (current_mii) if (current_mii)
printf("Current device: '%s'\n", current_mii->name); printf ("Current device: '%s'\n", current_mii->name);
} }
/***************************************************************************** /*****************************************************************************
* *
* Read the OUI, manufacture's model number, and revision number. * Read the OUI, manufacture's model number, and revision number.
@ -254,9 +254,7 @@ void miiphy_listdev(void)
* Returns: * Returns:
* 0 on success * 0 on success
*/ */
int miiphy_info (char *devname, int miiphy_info (char *devname, unsigned char addr, unsigned int *oui,
unsigned char addr,
unsigned int *oui,
unsigned char *model, unsigned char *rev) unsigned char *model, unsigned char *rev)
{ {
unsigned int reg = 0; unsigned int reg = 0;
@ -288,13 +286,12 @@ int miiphy_info (char *devname,
#ifdef DEBUG #ifdef DEBUG
printf ("PHY_PHYIDR[1,2] @ 0x%x = 0x%08x\n", addr, reg); printf ("PHY_PHYIDR[1,2] @ 0x%x = 0x%08x\n", addr, reg);
#endif #endif
*oui = ( reg >> 10); *oui = (reg >> 10);
*model = (unsigned char) ((reg >> 4) & 0x0000003F); *model = (unsigned char)((reg >> 4) & 0x0000003F);
*rev = (unsigned char) ( reg & 0x0000000F); *rev = (unsigned char)(reg & 0x0000000F);
return (0); return (0);
} }
/***************************************************************************** /*****************************************************************************
* *
* Reset the PHY. * Reset the PHY.
@ -345,7 +342,6 @@ int miiphy_reset (char *devname, unsigned char addr)
return (0); return (0);
} }
/***************************************************************************** /*****************************************************************************
* *
* Determine the ethernet speed (10/100). * Determine the ethernet speed (10/100).
@ -359,7 +355,8 @@ int miiphy_speed (char *devname, unsigned char addr)
printf ("PHY 1000BT Status read failed\n"); printf ("PHY 1000BT Status read failed\n");
} else { } else {
if (reg != 0xFFFF) { if (reg != 0xFFFF) {
if ((reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD)) !=0) { if ((reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD))
!= 0) {
return (_1000BASET); return (_1000BASET);
} }
} }
@ -393,7 +390,6 @@ int miiphy_speed (char *devname, unsigned char addr)
} }
/***************************************************************************** /*****************************************************************************
* *
* Determine full/half duplex. * Determine full/half duplex.
@ -406,9 +402,9 @@ int miiphy_duplex (char *devname, unsigned char addr)
if (miiphy_read (devname, addr, PHY_1000BTSR, &reg)) { if (miiphy_read (devname, addr, PHY_1000BTSR, &reg)) {
printf ("PHY 1000BT Status read failed\n"); printf ("PHY 1000BT Status read failed\n");
} else { } else {
if ( (reg != 0xFFFF) && if ((reg != 0xFFFF) &&
(reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD)) ) { (reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD))) {
if ((reg & PHY_1000BTSR_1000FD) !=0) { if ((reg & PHY_1000BTSR_1000FD) != 0) {
return (FULL); return (FULL);
} else { } else {
return (HALF); return (HALF);
@ -455,7 +451,7 @@ int miiphy_link (char *devname, unsigned char addr)
unsigned short reg; unsigned short reg;
/* dummy read; needed to latch some phys */ /* dummy read; needed to latch some phys */
(void)miiphy_read(devname, addr, PHY_BMSR, &reg); (void)miiphy_read (devname, addr, PHY_BMSR, &reg);
if (miiphy_read (devname, addr, PHY_BMSR, &reg)) { if (miiphy_read (devname, addr, PHY_BMSR, &reg)) {
puts ("PHY_BMSR read failed, assuming no link\n"); puts ("PHY_BMSR read failed, assuming no link\n");
return (0); return (0);
@ -469,5 +465,4 @@ int miiphy_link (char *devname, unsigned char addr)
} }
} }
#endif #endif
#endif /* CONFIG_MII */ #endif /* CONFIG_MII */

View file

@ -26,56 +26,48 @@
| |
| Author: Mark Wisner | Author: Mark Wisner
| |
| Change Activity-
|
| Date Description of Change BY
| --------- --------------------- ---
| 04-May-99 Created MKW
| 07-Jul-99 Added full duplex support MKW
| 08-Sep-01 Tweaks gvb
|
+----------------------------------------------------------------------------*/ +----------------------------------------------------------------------------*/
#ifndef _miiphy_h_ #ifndef _miiphy_h_
#define _miiphy_h_ #define _miiphy_h_
#include <net.h> #include <net.h>
int miiphy_read(char *devname, unsigned char addr, unsigned char reg, int miiphy_read (char *devname, unsigned char addr, unsigned char reg,
unsigned short *value); unsigned short *value);
int miiphy_write(char *devname, unsigned char addr, unsigned char reg, int miiphy_write (char *devname, unsigned char addr, unsigned char reg,
unsigned short value); unsigned short value);
int miiphy_info(char *devname, unsigned char addr, unsigned int *oui, int miiphy_info (char *devname, unsigned char addr, unsigned int *oui,
unsigned char *model, unsigned char *rev); unsigned char *model, unsigned char *rev);
int miiphy_reset(char *devname, unsigned char addr); int miiphy_reset (char *devname, unsigned char addr);
int miiphy_speed(char *devname, unsigned char addr); int miiphy_speed (char *devname, unsigned char addr);
int miiphy_duplex(char *devname, unsigned char addr); int miiphy_duplex (char *devname, unsigned char addr);
#ifdef CFG_FAULT_ECHO_LINK_DOWN #ifdef CFG_FAULT_ECHO_LINK_DOWN
int miiphy_link(char *devname, unsigned char addr); int miiphy_link (char *devname, unsigned char addr);
#endif #endif
void miiphy_init(void); void miiphy_init (void);
void miiphy_register(char *devname, void miiphy_register (char *devname,
int (* read)(char *devname, unsigned char addr, int (*read) (char *devname, unsigned char addr,
unsigned char reg, unsigned short *value), unsigned char reg, unsigned short *value),
int (* write)(char *devname, unsigned char addr, int (*write) (char *devname, unsigned char addr,
unsigned char reg, unsigned short value)); unsigned char reg, unsigned short value));
int miiphy_set_current_dev(char *devname); int miiphy_set_current_dev (char *devname);
char *miiphy_get_current_dev(void); char *miiphy_get_current_dev (void);
void miiphy_listdev(void); void miiphy_listdev (void);
#define BB_MII_DEVNAME "bbmii" #define BB_MII_DEVNAME "bbmii"
int bb_miiphy_read (char *devname, unsigned char addr, int bb_miiphy_read (char *devname, unsigned char addr,
unsigned char reg, unsigned short *value); unsigned char reg, unsigned short *value);
int bb_miiphy_write (char *devname, unsigned char addr, int bb_miiphy_write (char *devname, unsigned char addr,
unsigned char reg, unsigned short value); unsigned char reg, unsigned short value);
/* phy seed setup */ /* phy seed setup */
#define AUTO 99 #define AUTO 99
#define _1000BASET 1000 #define _1000BASET 1000
#define _100BASET 100 #define _100BASET 100
#define _10BASET 10 #define _10BASET 10
#define HALF 22 #define HALF 22
@ -90,9 +82,9 @@ int bb_miiphy_write (char *devname, unsigned char addr,
#define PHY_ANLPAR 0x05 #define PHY_ANLPAR 0x05
#define PHY_ANER 0x06 #define PHY_ANER 0x06
#define PHY_ANNPTR 0x07 #define PHY_ANNPTR 0x07
#define PHY_ANLPNP 0x08 #define PHY_ANLPNP 0x08
#define PHY_1000BTCR 0x09 #define PHY_1000BTCR 0x09
#define PHY_1000BTSR 0x0A #define PHY_1000BTSR 0x0A
#define PHY_PHYSTS 0x10 #define PHY_PHYSTS 0x10
#define PHY_MIPSCR 0x11 #define PHY_MIPSCR 0x11
#define PHY_MIPGSR 0x12 #define PHY_MIPGSR 0x12
@ -115,10 +107,10 @@ int bb_miiphy_write (char *devname, unsigned char addr,
#define PHY_BMCR_DPLX 0x0100 #define PHY_BMCR_DPLX 0x0100
#define PHY_BMCR_COL_TST 0x0080 #define PHY_BMCR_COL_TST 0x0080
#define PHY_BMCR_SPEED_MASK 0x2040 #define PHY_BMCR_SPEED_MASK 0x2040
#define PHY_BMCR_1000_MBPS 0x0040 #define PHY_BMCR_1000_MBPS 0x0040
#define PHY_BMCR_100_MBPS 0x2000 #define PHY_BMCR_100_MBPS 0x2000
#define PHY_BMCR_10_MBPS 0x0000 #define PHY_BMCR_10_MBPS 0x0000
/* phy BMSR */ /* phy BMSR */
#define PHY_BMSR_100T4 0x8000 #define PHY_BMSR_100T4 0x8000
@ -143,18 +135,18 @@ int bb_miiphy_write (char *devname, unsigned char addr,
#define PHY_ANLPAR_TX 0x0080 #define PHY_ANLPAR_TX 0x0080
#define PHY_ANLPAR_10FD 0x0040 #define PHY_ANLPAR_10FD 0x0040
#define PHY_ANLPAR_10 0x0020 #define PHY_ANLPAR_10 0x0020
#define PHY_ANLPAR_100 0x0380 /* we can run at 100 */ #define PHY_ANLPAR_100 0x0380 /* we can run at 100 */
#define PHY_ANLPAR_PSB_MASK 0x001f #define PHY_ANLPAR_PSB_MASK 0x001f
#define PHY_ANLPAR_PSB_802_3 0x0001 #define PHY_ANLPAR_PSB_802_3 0x0001
#define PHY_ANLPAR_PSB_802_9 0x0002 #define PHY_ANLPAR_PSB_802_9 0x0002
/* PHY_1000BTSR */ /* phy 1000BTSR */
#define PHY_1000BTSR_MSCF 0x8000 #define PHY_1000BTSR_MSCF 0x8000
#define PHY_1000BTSR_MSCR 0x4000 #define PHY_1000BTSR_MSCR 0x4000
#define PHY_1000BTSR_LRS 0x2000 #define PHY_1000BTSR_LRS 0x2000
#define PHY_1000BTSR_RRS 0x1000 #define PHY_1000BTSR_RRS 0x1000
#define PHY_1000BTSR_1000FD 0x0800 #define PHY_1000BTSR_1000FD 0x0800
#define PHY_1000BTSR_1000HD 0x0400 #define PHY_1000BTSR_1000HD 0x0400
#endif #endif