summaryrefslogtreecommitdiffstats
path: root/misc/drivers
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-04-21 18:17:41 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-04-21 18:17:41 +0000
commitcee627df8bd8e869021c40556523dba1502586a6 (patch)
tree05890f28b7ad36bd13f4b53b080c04c2c7955b18 /misc/drivers
parent3af596061470eca0501e4de0057bee6743e56500 (diff)
Fix RTL driver MAC address
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3529 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'misc/drivers')
-rwxr-xr-xmisc/drivers/rtl8187x/rtl8187x.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/misc/drivers/rtl8187x/rtl8187x.c b/misc/drivers/rtl8187x/rtl8187x.c
index 437d2d62b4..2016bd17fc 100755
--- a/misc/drivers/rtl8187x/rtl8187x.c
+++ b/misc/drivers/rtl8187x/rtl8187x.c
@@ -4011,12 +4011,7 @@ static int rtl8187x_setup(FAR struct rtl8187x_state_s *priv)
usleep(10);
rtl8187x_eeprom_multiread(priv, RTL8187X_EEPROM_MACADDR, permaddr, 3);
-
- udbg("%.4x%.4x%.4x", permaddr[0], permaddr[1], permaddr[2]);
-
-#define RTL8187X_EEPROM_TXPWRCHAN1 0x16 /* 3 channels */
-#define RTL8187X_EEPROM_TXPWRCHAN6 0x1b /* 2 channels */
-#define RTL8187X_EEPROM_TXPWRCHAN4 0x3d /* 2 channels */
+ udbg("MAC address: %04x.%04x.%04x", permaddr[0], permaddr[1], permaddr[2]);
channel = priv->channels;
for (i = 0; i < 3; i++)
@@ -4084,9 +4079,22 @@ static int rtl8187x_setup(FAR struct rtl8187x_state_s *priv)
}
rtl8187x_write(priv, 0, 0x0b7);
+
+ /* Save the MAC address in the device structure */
+
+ priv->ethdev.d_mac.ether_addr_octet[0] = permaddr[0] & 0xff;
+ priv->ethdev.d_mac.ether_addr_octet[1] = permaddr[0] >> 8;
+ priv->ethdev.d_mac.ether_addr_octet[2] = permaddr[1] & 0xff;
+ priv->ethdev.d_mac.ether_addr_octet[3] = permaddr[1] >> 8;
+ priv->ethdev.d_mac.ether_addr_octet[4] = permaddr[2] & 0xff;
+ priv->ethdev.d_mac.ether_addr_octet[5] = permaddr[2] >> 8;
+
+ /* Provide information about the RTL device */
- udbg("hwaddr %.4x%.4x%.4x, rtl8187 V%d + %s\n",
- permaddr[0], permaddr[1], permaddr[2],
+ udbg("hwaddr %02x.%02x.%02x.%02x.%02x.%02x, rtl8187 V%d + %s\n",
+ priv->ethdev.d_mac.ether_addr_octet[0], priv->ethdev.d_mac.ether_addr_octet[1],
+ priv->ethdev.d_mac.ether_addr_octet[2], priv->ethdev.d_mac.ether_addr_octet[3],
+ priv->ethdev.d_mac.ether_addr_octet[4], priv->ethdev.d_mac.ether_addr_octet[5],
priv->asicrev,
priv->rfinit == rtl8225_rfinit ? "rtl8225" : "rtl8225z2");