Add back the port priority for r6040
[librecmc/librecmc.git] / target / linux / rdc-2.6 / files / drivers / net / r6040.c
index 95210d9ce64268202983bf79d26256e499f99d79..6c9a232cdf8dc366a1e3adfbb469eb6ab43d7fbb 100644 (file)
@@ -183,12 +183,11 @@ MODULE_PARM_DESC(adr_table, "MAC Address (assigned)");
 
 static int r6040_open(struct net_device *dev);
 static int r6040_start_xmit(struct sk_buff *skb, struct net_device *dev);
-static irqreturn_t r6040_interrupt(int irq, void *dev_id, struct pt_regs *regs);
+static irqreturn_t r6040_interrupt(int irq, void *dev_id);
 static struct net_device_stats *r6040_get_stats(struct net_device *dev);
 static int r6040_close(struct net_device *dev);
 static void set_multicast_list(struct net_device *dev);
 static struct ethtool_ops netdev_ethtool_ops;
-static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
 static void r6040_down(struct net_device *dev);
 static void r6040_up(struct net_device *dev);
 static void r6040_tx_timeout (struct net_device *dev);
@@ -271,7 +270,6 @@ static int __devinit r6040_init_one (struct pci_dev *pdev,
        dev->stop = &r6040_close;
        dev->get_stats = &r6040_get_stats;
        dev->set_multicast_list = &set_multicast_list;
-       dev->do_ioctl = &netdev_ioctl;
        dev->ethtool_ops = &netdev_ethtool_ops;
        dev->tx_timeout = &r6040_tx_timeout;
        dev->watchdog_timeo = TX_TIMEOUT;
@@ -418,7 +416,7 @@ r6040_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 /* The RDC interrupt handler. */
 static irqreturn_t
-r6040_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+r6040_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev = dev_id;
        struct r6040_private *lp;
@@ -608,14 +606,6 @@ r6040_close(struct net_device *dev)
        return 0;
 }
 
-/**
- */
-static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
-{
-       RDC_DBUG("netdev_ioctl()", 0);
-       return 0;
-}
-
 /**
        Stop RDC MAC and Free the allocated resource
  */
@@ -816,6 +806,12 @@ for (i = 0; i < RX_DCNT; i++) {
        phy_write(ioaddr, lp->phy_addr, 4, PHY_CAP);
        phy_write(ioaddr, lp->phy_addr, 0, PHY_MODE);
 
+       /* Port priority */
+       phy_write(ioaddr,29,19,(phy_read(ioaddr,29,19)|0x0020)); /* port 0 */
+       phy_write(ioaddr,29,19,(phy_read(ioaddr,29,19)|0x0020)); /* port 1 */
+       phy_write(ioaddr,29,20,(phy_read(ioaddr,29,20)|0x2000)); /* port 2 */
+       phy_write(ioaddr,29,20,(phy_read(ioaddr,29,20)|0x0020)); /* port 3 */
+
        if (PHY_MODE == 0x3100) 
                lp->phy_mode = phy_mode_chk(dev);
        else lp->phy_mode = (PHY_MODE & 0x0100) ? 0x8000:0x0;
@@ -962,7 +958,7 @@ static int __init r6040_init (void)
        printk(version);
        printed_version = 1;
 
-       return pci_module_init (&r6040_driver);
+       return pci_register_driver (&r6040_driver);
 }