提交 945a7876 编写于 作者: P Peer Chen 提交者: Jeff Garzik

[netdrvr uli526x] fix problems found in review

- s/DEVICE/net_device/
- improve formatting
- remove dead code
- check return value, in several areas
上级 ea8f400c
...@@ -56,8 +56,7 @@ ...@@ -56,8 +56,7 @@
#define RX_ALLOC_SIZE 0x620 #define RX_ALLOC_SIZE 0x620
#define ULI526X_RESET 1 #define ULI526X_RESET 1
#define CR0_DEFAULT 0 #define CR0_DEFAULT 0
#define CR6_DEFAULT 0x00080000 /* HD */ #define CR6_DEFAULT 0x22200000
#define CR6_DEFAULT_A 0x22240000
#define CR7_DEFAULT 0x180c1 #define CR7_DEFAULT 0x180c1
#define CR15_DEFAULT 0x06 /* TxJabber RxWatchdog */ #define CR15_DEFAULT 0x06 /* TxJabber RxWatchdog */
#define TDES0_ERR_MASK 0x4302 /* TXJT, LC, EC, FUE */ #define TDES0_ERR_MASK 0x4302 /* TXJT, LC, EC, FUE */
...@@ -103,10 +102,13 @@ ...@@ -103,10 +102,13 @@
#define SROM_V41_CODE 0x14 #define SROM_V41_CODE 0x14
#define SROM_CLK_WRITE(data, ioaddr) outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr);udelay(5);outl(data|CR9_SROM_READ|CR9_SRCS|CR9_SRCLK,ioaddr);udelay(5);outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr);udelay(5); #define SROM_CLK_WRITE(data, ioaddr) \
outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr); \
/* Sten Check */ udelay(5); \
#define DEVICE net_device outl(data|CR9_SROM_READ|CR9_SRCS|CR9_SRCLK,ioaddr); \
udelay(5); \
outl(data|CR9_SROM_READ|CR9_SRCS,ioaddr); \
udelay(5);
/* Structure/enum declaration ------------------------------- */ /* Structure/enum declaration ------------------------------- */
struct tx_desc { struct tx_desc {
...@@ -123,7 +125,7 @@ struct rx_desc { ...@@ -123,7 +125,7 @@ struct rx_desc {
struct uli526x_board_info { struct uli526x_board_info {
u32 chip_id; /* Chip vendor/Device ID */ u32 chip_id; /* Chip vendor/Device ID */
struct DEVICE *next_dev; /* next device */ struct net_device *next_dev; /* next device */
struct pci_dev *pdev; /* PCI device */ struct pci_dev *pdev; /* PCI device */
spinlock_t lock; spinlock_t lock;
...@@ -212,22 +214,21 @@ static u32 uli526x_cr6_user_set; ...@@ -212,22 +214,21 @@ static u32 uli526x_cr6_user_set;
/* For module input parameter */ /* For module input parameter */
static int debug; static int debug;
static u32 cr6set; static u32 cr6set;
static u32 m526x_id;
static unsigned char mode = 8; static unsigned char mode = 8;
/* function declaration ------------------------------------- */ /* function declaration ------------------------------------- */
static int uli526x_open(struct DEVICE *); static int uli526x_open(struct net_device *);
static int uli526x_start_xmit(struct sk_buff *, struct DEVICE *); static int uli526x_start_xmit(struct sk_buff *, struct net_device *);
static int uli526x_stop(struct DEVICE *); static int uli526x_stop(struct net_device *);
static struct net_device_stats * uli526x_get_stats(struct DEVICE *); static struct net_device_stats * uli526x_get_stats(struct net_device *);
static void uli526x_set_filter_mode(struct DEVICE *); static void uli526x_set_filter_mode(struct net_device *);
static struct ethtool_ops netdev_ethtool_ops; static struct ethtool_ops netdev_ethtool_ops;
static u16 read_srom_word(long ,int); static u16 read_srom_word(long, int);
static irqreturn_t uli526x_interrupt(int , void *, struct pt_regs *); static irqreturn_t uli526x_interrupt(int, void *, struct pt_regs *);
static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long); static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
static void allocate_rx_buffer(struct uli526x_board_info *); static void allocate_rx_buffer(struct uli526x_board_info *);
static void update_cr6(u32, unsigned long); static void update_cr6(u32, unsigned long);
static void send_filter_frame(struct DEVICE * ,int); static void send_filter_frame(struct net_device *, int);
static u16 phy_read(unsigned long, u8, u8, u32); static u16 phy_read(unsigned long, u8, u8, u32);
static u16 phy_readby_cr10(unsigned long, u8, u8); static u16 phy_readby_cr10(unsigned long, u8, u8);
static void phy_write(unsigned long, u8, u8, u16, u32); static void phy_write(unsigned long, u8, u8, u16, u32);
...@@ -237,18 +238,18 @@ static u16 phy_read_1bit(unsigned long, u32); ...@@ -237,18 +238,18 @@ static u16 phy_read_1bit(unsigned long, u32);
static u8 uli526x_sense_speed(struct uli526x_board_info *); static u8 uli526x_sense_speed(struct uli526x_board_info *);
static void uli526x_process_mode(struct uli526x_board_info *); static void uli526x_process_mode(struct uli526x_board_info *);
static void uli526x_timer(unsigned long); static void uli526x_timer(unsigned long);
static void uli526x_rx_packet(struct DEVICE *, struct uli526x_board_info *); static void uli526x_rx_packet(struct net_device *, struct uli526x_board_info *);
static void uli526x_free_tx_pkt(struct DEVICE *, struct uli526x_board_info *); static void uli526x_free_tx_pkt(struct net_device *, struct uli526x_board_info *);
static void uli526x_reuse_skb(struct uli526x_board_info *, struct sk_buff *); static void uli526x_reuse_skb(struct uli526x_board_info *, struct sk_buff *);
static void uli526x_dynamic_reset(struct DEVICE *); static void uli526x_dynamic_reset(struct net_device *);
static void uli526x_free_rxbuffer(struct uli526x_board_info *); static void uli526x_free_rxbuffer(struct uli526x_board_info *);
static void uli526x_init(struct DEVICE *); static void uli526x_init(struct net_device *);
static void uli526x_set_phyxcer(struct uli526x_board_info *); static void uli526x_set_phyxcer(struct uli526x_board_info *);
/* ULI526X network baord routine ---------------------------- */ /* ULI526X network board routine ---------------------------- */
/* /*
* Search ULI526X board ,allocate space and register it * Search ULI526X board, allocate space and register it
*/ */
static int __devinit uli526x_init_one (struct pci_dev *pdev, static int __devinit uli526x_init_one (struct pci_dev *pdev,
...@@ -257,8 +258,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, ...@@ -257,8 +258,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
struct uli526x_board_info *db; /* board information structure */ struct uli526x_board_info *db; /* board information structure */
struct net_device *dev; struct net_device *dev;
int i, err; int i, err;
u32 configval;
ULI526X_DBUG(0, "uli526x_init_one()", 0); ULI526X_DBUG(0, "uli526x_init_one()", 0);
if (!printed_version++) if (!printed_version++)
...@@ -271,7 +271,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, ...@@ -271,7 +271,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
SET_MODULE_OWNER(dev); SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev); SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_set_dma_mask(pdev, 0xffffffff)) { if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
printk(KERN_WARNING DRV_NAME ": 32-bit PCI DMA not available.\n"); printk(KERN_WARNING DRV_NAME ": 32-bit PCI DMA not available.\n");
err = -ENODEV; err = -ENODEV;
goto err_out_free; goto err_out_free;
...@@ -300,23 +300,23 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, ...@@ -300,23 +300,23 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
goto err_out_disable; goto err_out_disable;
} }
//add by clearzhang 2004/7/8
pci_read_config_dword(pdev,0x0,&configval);
m526x_id = configval;
if(configval == 0x526310b9)
{
//printk("is m5263\n");
pci_read_config_dword(pdev,0x0c,&configval);
configval = ((configval & 0xffff00ff) | 0x8000);
pci_write_config_dword(pdev,0x0c,configval);
}
/* Init system & device */ /* Init system & device */
db = netdev_priv(dev); db = netdev_priv(dev);
/* Allocate Tx/Rx descriptor memory */ /* Allocate Tx/Rx descriptor memory */
db->desc_pool_ptr = pci_alloc_consistent(pdev, sizeof(struct tx_desc) * DESC_ALL_CNT + 0x20, &db->desc_pool_dma_ptr); db->desc_pool_ptr = pci_alloc_consistent(pdev, sizeof(struct tx_desc) * DESC_ALL_CNT + 0x20, &db->desc_pool_dma_ptr);
if(db->desc_pool_ptr == NULL)
{
err = -ENOMEM;
goto err_out_nomem;
}
db->buf_pool_ptr = pci_alloc_consistent(pdev, TX_BUF_ALLOC * TX_DESC_CNT + 4, &db->buf_pool_dma_ptr); db->buf_pool_ptr = pci_alloc_consistent(pdev, TX_BUF_ALLOC * TX_DESC_CNT + 4, &db->buf_pool_dma_ptr);
if(db->buf_pool_ptr == NULL)
{
err = -ENOMEM;
goto err_out_nomem;
}
db->first_tx_desc = (struct tx_desc *) db->desc_pool_ptr; db->first_tx_desc = (struct tx_desc *) db->desc_pool_ptr;
db->first_tx_desc_dma = db->desc_pool_dma_ptr; db->first_tx_desc_dma = db->desc_pool_dma_ptr;
db->buf_pool_start = db->buf_pool_ptr; db->buf_pool_start = db->buf_pool_ptr;
...@@ -347,7 +347,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, ...@@ -347,7 +347,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
((u16 *) db->srom)[i] = cpu_to_le16(read_srom_word(db->ioaddr, i)); ((u16 *) db->srom)[i] = cpu_to_le16(read_srom_word(db->ioaddr, i));
/* Set Node address */ /* Set Node address */
if(((u16 *) db->srom)[0] == 0xffff) /* SROM absent, so read MAC address from ID Table */ if(((u16 *) db->srom)[0] == 0xffff || ((u16 *) db->srom)[0] == 0) /* SROM absent, so read MAC address from ID Table */
{ {
outl(0x10000, db->ioaddr + DCR0); //Diagnosis mode outl(0x10000, db->ioaddr + DCR0); //Diagnosis mode
outl(0x1c0, db->ioaddr + DCR13); //Reset dianostic pointer port outl(0x1c0, db->ioaddr + DCR13); //Reset dianostic pointer port
...@@ -385,6 +385,14 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, ...@@ -385,6 +385,14 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
err_out_res: err_out_res:
pci_release_regions(pdev); pci_release_regions(pdev);
err_out_nomem:
if(db->desc_pool_ptr)
pci_free_consistent(pdev, sizeof(struct tx_desc) * DESC_ALL_CNT + 0x20,
db->desc_pool_ptr, db->desc_pool_dma_ptr);
if(db->buf_pool_ptr != NULL)
pci_free_consistent(pdev, TX_BUF_ALLOC * TX_DESC_CNT + 4,
db->buf_pool_ptr, db->buf_pool_dma_ptr);
err_out_disable: err_out_disable:
pci_disable_device(pdev); pci_disable_device(pdev);
err_out_free: err_out_free:
...@@ -402,32 +410,30 @@ static void __devexit uli526x_remove_one (struct pci_dev *pdev) ...@@ -402,32 +410,30 @@ static void __devexit uli526x_remove_one (struct pci_dev *pdev)
ULI526X_DBUG(0, "uli526x_remove_one()", 0); ULI526X_DBUG(0, "uli526x_remove_one()", 0);
if (dev) { pci_free_consistent(db->pdev, sizeof(struct tx_desc) *
pci_free_consistent(db->pdev, sizeof(struct tx_desc) * DESC_ALL_CNT + 0x20, db->desc_pool_ptr,
DESC_ALL_CNT + 0x20, db->desc_pool_ptr, db->desc_pool_dma_ptr);
db->desc_pool_dma_ptr); pci_free_consistent(db->pdev, TX_BUF_ALLOC * TX_DESC_CNT + 4,
pci_free_consistent(db->pdev, TX_BUF_ALLOC * TX_DESC_CNT + 4, db->buf_pool_ptr, db->buf_pool_dma_ptr);
db->buf_pool_ptr, db->buf_pool_dma_ptr); unregister_netdev(dev);
unregister_netdev(dev); pci_release_regions(pdev);
pci_release_regions(pdev); free_netdev(dev); /* free board information */
free_netdev(dev); /* free board information */ pci_set_drvdata(pdev, NULL);
pci_set_drvdata(pdev, NULL); pci_disable_device(pdev);
}
ULI526X_DBUG(0, "uli526x_remove_one() exit", 0); ULI526X_DBUG(0, "uli526x_remove_one() exit", 0);
} }
/* /*
* Open the interface. * Open the interface.
* The interface is opened whenever "ifconfig" actives it. * The interface is opened whenever "ifconfig" activates it.
*/ */
static int uli526x_open(struct DEVICE *dev) static int uli526x_open(struct net_device *dev)
{ {
int ret; int ret;
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
ULI526X_DBUG(0, "uli526x_open", 0); ULI526X_DBUG(0, "uli526x_open", 0);
ret = request_irq(dev->irq, &uli526x_interrupt, SA_SHIRQ, dev->name, dev); ret = request_irq(dev->irq, &uli526x_interrupt, SA_SHIRQ, dev->name, dev);
...@@ -436,11 +442,6 @@ static int uli526x_open(struct DEVICE *dev) ...@@ -436,11 +442,6 @@ static int uli526x_open(struct DEVICE *dev)
/* system variable init */ /* system variable init */
db->cr6_data = CR6_DEFAULT | uli526x_cr6_user_set; db->cr6_data = CR6_DEFAULT | uli526x_cr6_user_set;
if(m526x_id == 0x526310b9)
{
//printk("is 5263\n");
db->cr6_data = CR6_DEFAULT_A | uli526x_cr6_user_set;
}
db->tx_packet_cnt = 0; db->tx_packet_cnt = 0;
db->rx_avail_cnt = 0; db->rx_avail_cnt = 0;
db->link_failed = 1; db->link_failed = 1;
...@@ -454,7 +455,7 @@ static int uli526x_open(struct DEVICE *dev) ...@@ -454,7 +455,7 @@ static int uli526x_open(struct DEVICE *dev)
db->cr6_data |= ULI526X_TXTH_256; db->cr6_data |= ULI526X_TXTH_256;
db->cr0_data = CR0_DEFAULT; db->cr0_data = CR0_DEFAULT;
/* Initilize ULI526X board */ /* Initialize ULI526X board */
uli526x_init(dev); uli526x_init(dev);
/* Active System Interface */ /* Active System Interface */
...@@ -471,14 +472,14 @@ static int uli526x_open(struct DEVICE *dev) ...@@ -471,14 +472,14 @@ static int uli526x_open(struct DEVICE *dev)
} }
/* Initilize ULI526X board /* Initialize ULI526X board
* Reset ULI526X board * Reset ULI526X board
* Initilize TX/Rx descriptor chain structure * Initialize TX/Rx descriptor chain structure
* Send the set-up frame * Send the set-up frame
* Enable Tx/Rx machine * Enable Tx/Rx machine
*/ */
static void uli526x_init(struct DEVICE *dev) static void uli526x_init(struct net_device *dev)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
unsigned long ioaddr = db->ioaddr; unsigned long ioaddr = db->ioaddr;
...@@ -510,11 +511,6 @@ static void uli526x_init(struct DEVICE *dev) ...@@ -510,11 +511,6 @@ static void uli526x_init(struct DEVICE *dev)
/* Parser SROM and media mode */ /* Parser SROM and media mode */
db->media_mode = uli526x_media_mode; db->media_mode = uli526x_media_mode;
//add by clearzhang 2004/7/8
/* RESET Phyxcer Chip by GPR port bit 7 */
//outl(0x180, ioaddr + DCR12); /* Let bit 7 output port */
//outl(0x0, ioaddr + DCR12); /* Clear RESET signal */
/* Phyxcer capability setting */ /* Phyxcer capability setting */
phy_reg_reset = phy_read(db->ioaddr, db->phy_addr, 0, db->chip_id); phy_reg_reset = phy_read(db->ioaddr, db->phy_addr, 0, db->chip_id);
phy_reg_reset = (phy_reg_reset | 0x8000); phy_reg_reset = (phy_reg_reset | 0x8000);
...@@ -528,7 +524,7 @@ static void uli526x_init(struct DEVICE *dev) ...@@ -528,7 +524,7 @@ static void uli526x_init(struct DEVICE *dev)
if ( !(db->media_mode & ULI526X_AUTO) ) if ( !(db->media_mode & ULI526X_AUTO) )
db->op_mode = db->media_mode; /* Force Mode */ db->op_mode = db->media_mode; /* Force Mode */
/* Initiliaze Transmit/Receive decriptor and CR3/4 */ /* Initialize Transmit/Receive decriptor and CR3/4 */
uli526x_descriptor_init(db, ioaddr); uli526x_descriptor_init(db, ioaddr);
/* Init CR6 to program M526X operation */ /* Init CR6 to program M526X operation */
...@@ -555,7 +551,7 @@ static void uli526x_init(struct DEVICE *dev) ...@@ -555,7 +551,7 @@ static void uli526x_init(struct DEVICE *dev)
* Send a packet to media from the upper layer. * Send a packet to media from the upper layer.
*/ */
static int uli526x_start_xmit(struct sk_buff *skb, struct DEVICE *dev) static int uli526x_start_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
struct tx_desc *txptr; struct tx_desc *txptr;
...@@ -621,7 +617,7 @@ static int uli526x_start_xmit(struct sk_buff *skb, struct DEVICE *dev) ...@@ -621,7 +617,7 @@ static int uli526x_start_xmit(struct sk_buff *skb, struct DEVICE *dev)
* The interface is stopped when it is brought. * The interface is stopped when it is brought.
*/ */
static int uli526x_stop(struct DEVICE *dev) static int uli526x_stop(struct net_device *dev)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
unsigned long ioaddr = dev->base_addr; unsigned long ioaddr = dev->base_addr;
...@@ -665,19 +661,16 @@ static int uli526x_stop(struct DEVICE *dev) ...@@ -665,19 +661,16 @@ static int uli526x_stop(struct DEVICE *dev)
static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct DEVICE *dev = dev_id; struct net_device *dev = dev_id;
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
unsigned long ioaddr = dev->base_addr; unsigned long ioaddr = dev->base_addr;
unsigned long flags; unsigned long flags;
//ULI526X_DBUG(0, "uli526x_interrupt()", 0);
if (!dev) { if (!dev) {
ULI526X_DBUG(1, "uli526x_interrupt() without DEVICE arg", 0); ULI526X_DBUG(1, "uli526x_interrupt() without DEVICE arg", 0);
return IRQ_NONE; return IRQ_NONE;
} }
//outl(0, ioaddr + DCR7);
spin_lock_irqsave(&db->lock, flags); spin_lock_irqsave(&db->lock, flags);
outl(0, ioaddr + DCR7); outl(0, ioaddr + DCR7);
...@@ -690,9 +683,6 @@ static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs ...@@ -690,9 +683,6 @@ static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs
return IRQ_HANDLED; return IRQ_HANDLED;
} }
/* Disable all interrupt in CR7 to solve the interrupt edge problem */
//outl(0, ioaddr + DCR7);
/* Check system status */ /* Check system status */
if (db->cr5_data & 0x2000) { if (db->cr5_data & 0x2000) {
/* system bus error happen */ /* system bus error happen */
...@@ -727,10 +717,9 @@ static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs ...@@ -727,10 +717,9 @@ static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs
* Free TX resource after TX complete * Free TX resource after TX complete
*/ */
static void uli526x_free_tx_pkt(struct DEVICE *dev, struct uli526x_board_info * db) static void uli526x_free_tx_pkt(struct net_device *dev, struct uli526x_board_info * db)
{ {
struct tx_desc *txptr; struct tx_desc *txptr;
// unsigned long ioaddr = dev->base_addr;
u32 tdes0; u32 tdes0;
txptr = db->tx_remove_ptr; txptr = db->tx_remove_ptr;
...@@ -787,7 +776,7 @@ static void uli526x_free_tx_pkt(struct DEVICE *dev, struct uli526x_board_info * ...@@ -787,7 +776,7 @@ static void uli526x_free_tx_pkt(struct DEVICE *dev, struct uli526x_board_info *
* Receive the come packet and pass to upper layer * Receive the come packet and pass to upper layer
*/ */
static void uli526x_rx_packet(struct DEVICE *dev, struct uli526x_board_info * db) static void uli526x_rx_packet(struct net_device *dev, struct uli526x_board_info * db)
{ {
struct rx_desc *rxptr; struct rx_desc *rxptr;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -871,7 +860,7 @@ static void uli526x_rx_packet(struct DEVICE *dev, struct uli526x_board_info * db ...@@ -871,7 +860,7 @@ static void uli526x_rx_packet(struct DEVICE *dev, struct uli526x_board_info * db
* Get statistics from driver. * Get statistics from driver.
*/ */
static struct net_device_stats * uli526x_get_stats(struct DEVICE *dev) static struct net_device_stats * uli526x_get_stats(struct net_device *dev)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
...@@ -884,7 +873,7 @@ static struct net_device_stats * uli526x_get_stats(struct DEVICE *dev) ...@@ -884,7 +873,7 @@ static struct net_device_stats * uli526x_get_stats(struct DEVICE *dev)
* Set ULI526X multicast address * Set ULI526X multicast address
*/ */
static void uli526x_set_filter_mode(struct DEVICE * dev) static void uli526x_set_filter_mode(struct net_device * dev)
{ {
struct uli526x_board_info *db = dev->priv; struct uli526x_board_info *db = dev->priv;
unsigned long flags; unsigned long flags;
...@@ -916,34 +905,26 @@ static void uli526x_set_filter_mode(struct DEVICE * dev) ...@@ -916,34 +905,26 @@ static void uli526x_set_filter_mode(struct DEVICE * dev)
static void static void
ULi_ethtool_gset(struct uli526x_board_info *db, struct ethtool_cmd *ecmd) ULi_ethtool_gset(struct uli526x_board_info *db, struct ethtool_cmd *ecmd)
{ {
//struct e1000_hw *hw = &adapter->hw; ecmd->supported = (SUPPORTED_10baseT_Half |
SUPPORTED_10baseT_Full |
{ SUPPORTED_100baseT_Half |
SUPPORTED_100baseT_Full |
ecmd->supported = (SUPPORTED_10baseT_Half | SUPPORTED_Autoneg |
SUPPORTED_10baseT_Full | SUPPORTED_MII);
SUPPORTED_100baseT_Half |
SUPPORTED_100baseT_Full |
SUPPORTED_Autoneg |
SUPPORTED_MII);
ecmd->advertising = (ADVERTISED_10baseT_Half | ecmd->advertising = (ADVERTISED_10baseT_Half |
ADVERTISED_10baseT_Full | ADVERTISED_10baseT_Full |
ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Half |
ADVERTISED_100baseT_Full | ADVERTISED_100baseT_Full |
ADVERTISED_Autoneg | ADVERTISED_Autoneg |
ADVERTISED_MII); ADVERTISED_MII);
ecmd->port = PORT_MII; ecmd->port = PORT_MII;
ecmd->phy_address = db->phy_addr; ecmd->phy_address = db->phy_addr;
ecmd->transceiver = XCVR_EXTERNAL; ecmd->transceiver = XCVR_EXTERNAL;
}
ecmd->speed = 10; ecmd->speed = 10;
ecmd->duplex = DUPLEX_HALF; ecmd->duplex = DUPLEX_HALF;
...@@ -965,8 +946,6 @@ ULi_ethtool_gset(struct uli526x_board_info *db, struct ethtool_cmd *ecmd) ...@@ -965,8 +946,6 @@ ULi_ethtool_gset(struct uli526x_board_info *db, struct ethtool_cmd *ecmd)
{ {
ecmd->autoneg = AUTONEG_ENABLE; ecmd->autoneg = AUTONEG_ENABLE;
} }
} }
static void netdev_get_drvinfo(struct net_device *dev, static void netdev_get_drvinfo(struct net_device *dev,
...@@ -1022,7 +1001,7 @@ static void uli526x_timer(unsigned long data) ...@@ -1022,7 +1001,7 @@ static void uli526x_timer(unsigned long data)
{ {
u32 tmp_cr8; u32 tmp_cr8;
unsigned char tmp_cr12=0; unsigned char tmp_cr12=0;
struct DEVICE *dev = (struct DEVICE *) data; struct net_device *dev = (struct net_device *) data;
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
unsigned long flags; unsigned long flags;
u8 TmpSpeed=10; u8 TmpSpeed=10;
...@@ -1135,10 +1114,10 @@ static void uli526x_timer(unsigned long data) ...@@ -1135,10 +1114,10 @@ static void uli526x_timer(unsigned long data)
* Stop ULI526X board * Stop ULI526X board
* Free Tx/Rx allocated memory * Free Tx/Rx allocated memory
* Reset ULI526X board * Reset ULI526X board
* Re-initilize ULI526X board * Re-initialize ULI526X board
*/ */
static void uli526x_dynamic_reset(struct DEVICE *dev) static void uli526x_dynamic_reset(struct net_device *dev)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
...@@ -1163,7 +1142,7 @@ static void uli526x_dynamic_reset(struct DEVICE *dev) ...@@ -1163,7 +1142,7 @@ static void uli526x_dynamic_reset(struct DEVICE *dev)
db->init=1; db->init=1;
db->wait_reset = 0; db->wait_reset = 0;
/* Re-initilize ULI526X board */ /* Re-initialize ULI526X board */
uli526x_init(dev); uli526x_init(dev);
/* Restart upper layer interface */ /* Restart upper layer interface */
...@@ -1273,7 +1252,7 @@ static void uli526x_descriptor_init(struct uli526x_board_info *db, unsigned long ...@@ -1273,7 +1252,7 @@ static void uli526x_descriptor_init(struct uli526x_board_info *db, unsigned long
/* /*
* Update CR6 value * Update CR6 value
* Firstly stop ULI526X , then written value and start * Firstly stop ULI526X, then written value and start
*/ */
static void update_cr6(u32 cr6_data, unsigned long ioaddr) static void update_cr6(u32 cr6_data, unsigned long ioaddr)
...@@ -1286,10 +1265,10 @@ static void update_cr6(u32 cr6_data, unsigned long ioaddr) ...@@ -1286,10 +1265,10 @@ static void update_cr6(u32 cr6_data, unsigned long ioaddr)
/* /*
* Send a setup frame for M5261/M5263 * Send a setup frame for M5261/M5263
* This setup frame initilize ULI526X address filter mode * This setup frame initialize ULI526X address filter mode
*/ */
static void send_filter_frame(struct DEVICE *dev, int mc_cnt) static void send_filter_frame(struct net_device *dev, int mc_cnt)
{ {
struct uli526x_board_info *db = netdev_priv(dev); struct uli526x_board_info *db = netdev_priv(dev);
struct dev_mc_list *mcptr; struct dev_mc_list *mcptr;
...@@ -1718,7 +1697,7 @@ MODULE_PARM_DESC(mode, "ULi M5261/M5263: Bit 0: 10/100Mbps, bit 2: duplex, bit 8 ...@@ -1718,7 +1697,7 @@ MODULE_PARM_DESC(mode, "ULi M5261/M5263: Bit 0: 10/100Mbps, bit 2: duplex, bit 8
/* Description: /* Description:
* when user used insmod to add module, system invoked init_module() * when user used insmod to add module, system invoked init_module()
* to initilize and register. * to register the services.
*/ */
static int __init uli526x_init_module(void) static int __init uli526x_init_module(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册