[ar71xx] ag71xx: add initial message level support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12262 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
9b65a8cf60
commit
dd67cca098
|
@ -37,7 +37,7 @@
|
||||||
#define ETH_FCS_LEN 4
|
#define ETH_FCS_LEN 4
|
||||||
|
|
||||||
#define AG71XX_DRV_NAME "ag71xx"
|
#define AG71XX_DRV_NAME "ag71xx"
|
||||||
#define AG71XX_DRV_VERSION "0.4.0"
|
#define AG71XX_DRV_VERSION "0.4.1"
|
||||||
|
|
||||||
#define AG71XX_NAPI_TX 1
|
#define AG71XX_NAPI_TX 1
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@ struct ag71xx {
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
struct napi_struct napi;
|
struct napi_struct napi;
|
||||||
|
u32 msg_enable;
|
||||||
|
|
||||||
struct ag71xx_ring rx_ring;
|
struct ag71xx_ring rx_ring;
|
||||||
struct ag71xx_ring tx_ring;
|
struct ag71xx_ring tx_ring;
|
||||||
|
|
|
@ -47,9 +47,25 @@ static void ag71xx_ethtool_get_drvinfo(struct net_device *dev,
|
||||||
strcpy(info->bus_info, ag->pdev->dev.bus_id);
|
strcpy(info->bus_info, ag->pdev->dev.bus_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static u32 ag71xx_ethtool_get_msglevel(struct net_device *dev)
|
||||||
|
{
|
||||||
|
struct ag71xx *ag = netdev_priv(dev);
|
||||||
|
|
||||||
|
return ag->msg_enable;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ag71xx_ethtool_set_msglevel(struct net_device *dev, u32 msg_level)
|
||||||
|
{
|
||||||
|
struct ag71xx *ag = netdev_priv(dev);
|
||||||
|
|
||||||
|
ag->msg_enable = msg_level;
|
||||||
|
}
|
||||||
|
|
||||||
struct ethtool_ops ag71xx_ethtool_ops = {
|
struct ethtool_ops ag71xx_ethtool_ops = {
|
||||||
.set_settings = ag71xx_ethtool_set_settings,
|
.set_settings = ag71xx_ethtool_set_settings,
|
||||||
.get_settings = ag71xx_ethtool_get_settings,
|
.get_settings = ag71xx_ethtool_get_settings,
|
||||||
.get_drvinfo = ag71xx_ethtool_get_drvinfo,
|
.get_drvinfo = ag71xx_ethtool_get_drvinfo,
|
||||||
|
.get_msglevel = ag71xx_ethtool_get_msglevel,
|
||||||
|
.set_msglevel = ag71xx_ethtool_set_msglevel,
|
||||||
.get_link = ethtool_op_get_link,
|
.get_link = ethtool_op_get_link,
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,6 +13,21 @@
|
||||||
|
|
||||||
#include "ag71xx.h"
|
#include "ag71xx.h"
|
||||||
|
|
||||||
|
#define AG71XX_DEFAULT_MSG_ENABLE \
|
||||||
|
( NETIF_MSG_DRV \
|
||||||
|
| NETIF_MSG_PROBE \
|
||||||
|
| NETIF_MSG_LINK \
|
||||||
|
| NETIF_MSG_TIMER \
|
||||||
|
| NETIF_MSG_IFDOWN \
|
||||||
|
| NETIF_MSG_IFUP \
|
||||||
|
| NETIF_MSG_RX_ERR \
|
||||||
|
| NETIF_MSG_TX_ERR )
|
||||||
|
|
||||||
|
static int ag71xx_debug = -1;
|
||||||
|
|
||||||
|
module_param(ag71xx_debug, int, 0);
|
||||||
|
MODULE_PARM_DESC(ag71xx_debug, "Debug level (-1=defaults,0=none,...,16=all)");
|
||||||
|
|
||||||
static void ag71xx_dump_regs(struct ag71xx *ag)
|
static void ag71xx_dump_regs(struct ag71xx *ag)
|
||||||
{
|
{
|
||||||
DBG("%s: mac_cfg1=%08x, mac_cfg2=%08x, ipg=%08x, hdx=%08x, mfl=%08x\n",
|
DBG("%s: mac_cfg1=%08x, mac_cfg2=%08x, ipg=%08x, hdx=%08x, mfl=%08x\n",
|
||||||
|
@ -601,8 +616,9 @@ static int ag71xx_poll(struct napi_struct *napi, int limit)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status & AG71XX_INT_RX_OF) {
|
if (status & AG71XX_INT_RX_OF) {
|
||||||
printk(KERN_ALERT "%s: rx owerflow, restarting dma\n",
|
if (netif_msg_rx_err(ag))
|
||||||
dev->name);
|
printk(KERN_ALERT "%s: rx owerflow, restarting dma\n",
|
||||||
|
dev->name);
|
||||||
|
|
||||||
/* ack interrupt */
|
/* ack interrupt */
|
||||||
ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_OF);
|
ag71xx_wr(ag, AG71XX_REG_RX_STATUS, RX_STATUS_OF);
|
||||||
|
@ -692,6 +708,8 @@ static int __init ag71xx_probe(struct platform_device *pdev)
|
||||||
ag->pdev = pdev;
|
ag->pdev = pdev;
|
||||||
ag->dev = dev;
|
ag->dev = dev;
|
||||||
ag->mii_bus = &ag71xx_mdio_bus->mii_bus;
|
ag->mii_bus = &ag71xx_mdio_bus->mii_bus;
|
||||||
|
ag->msg_enable = netif_msg_init(ag71xx_debug,
|
||||||
|
AG71XX_DEFAULT_MSG_ENABLE);
|
||||||
spin_lock_init(&ag->lock);
|
spin_lock_init(&ag->lock);
|
||||||
|
|
||||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mac_base");
|
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mac_base");
|
||||||
|
|
|
@ -87,7 +87,8 @@ static void ag71xx_phy_link_update(struct ag71xx *ag)
|
||||||
|
|
||||||
if (!ag->link) {
|
if (!ag->link) {
|
||||||
netif_carrier_off(ag->dev);
|
netif_carrier_off(ag->dev);
|
||||||
printk(KERN_INFO "%s: link down\n", ag->dev->name);
|
if (netif_msg_link(ag))
|
||||||
|
printk(KERN_INFO "%s: link down\n", ag->dev->name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,10 +134,11 @@ static void ag71xx_phy_link_update(struct ag71xx *ag)
|
||||||
ag71xx_wr(ag, AG71XX_REG_MAC_IFCTL, ifctl);
|
ag71xx_wr(ag, AG71XX_REG_MAC_IFCTL, ifctl);
|
||||||
|
|
||||||
netif_carrier_on(ag->dev);
|
netif_carrier_on(ag->dev);
|
||||||
printk(KERN_INFO "%s: link up (%sMbps/%s duplex)\n",
|
if (netif_msg_link(ag))
|
||||||
ag->dev->name,
|
printk(KERN_INFO "%s: link up (%sMbps/%s duplex)\n",
|
||||||
ag71xx_speed_str(ag),
|
ag->dev->name,
|
||||||
(DUPLEX_FULL == ag->duplex) ? "Full" : "Half");
|
ag71xx_speed_str(ag),
|
||||||
|
(DUPLEX_FULL == ag->duplex) ? "Full" : "Half");
|
||||||
|
|
||||||
DBG("%s: fifo1=%#x, fifo2=%#x, fifo3=%#x, fifo4=%#x, fifo5=%#x\n",
|
DBG("%s: fifo1=%#x, fifo2=%#x, fifo3=%#x, fifo4=%#x, fifo5=%#x\n",
|
||||||
ag->dev->name,
|
ag->dev->name,
|
||||||
|
|
Loading…
Reference in New Issue