PCI: Change all drivers to use pci_device->revision
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / drivers / net / atl1 / atl1_main.c
index 4b1d4d153ecfe909e64eca72d90be43d69be0440..501919eb7f5eab6242f28c682448f6f348839ecd 100644 (file)
@@ -118,10 +118,6 @@ static int __devinit atl1_sw_init(struct atl1_adapter *adapter)
 {
        struct atl1_hw *hw = &adapter->hw;
        struct net_device *netdev = adapter->netdev;
-       struct pci_dev *pdev = adapter->pdev;
-
-       /* PCI config space info */
-       pci_read_config_byte(pdev, PCI_REVISION_ID, &hw->revision_id);
 
        hw->max_frame_size = netdev->mtu + ENET_HEADER_SIZE + ETHERNET_FCS_SIZE;
        hw->min_frame_size = MINIMUM_ETHERNET_FRAME_SIZE;
@@ -188,8 +184,7 @@ s32 atl1_setup_ring_resources(struct atl1_adapter *adapter)
        size = sizeof(struct atl1_buffer) * (tpd_ring->count + rfd_ring->count);
        tpd_ring->buffer_info = kzalloc(size, GFP_KERNEL);
        if (unlikely(!tpd_ring->buffer_info)) {
-               printk(KERN_WARNING "%s: kzalloc failed , size = D%d\n",
-                       atl1_driver_name, size);
+               dev_err(&pdev->dev, "kzalloc failed , size = D%d\n", size);
                goto err_nomem;
        }
        rfd_ring->buffer_info =
@@ -207,9 +202,7 @@ s32 atl1_setup_ring_resources(struct atl1_adapter *adapter)
        ring_header->desc = pci_alloc_consistent(pdev, ring_header->size,
                                                &ring_header->dma);
        if (unlikely(!ring_header->desc)) {
-               printk(KERN_WARNING
-                       "%s: pci_alloc_consistent failed, size = D%d\n",
-                       atl1_driver_name, size);
+               dev_err(&pdev->dev, "pci_alloc_consistent failed\n");
                goto err_nomem;
        }
 
@@ -373,8 +366,7 @@ static void atl1_rx_checksum(struct atl1_adapter *adapter,
                if (rrd->err_flg & (ERR_FLAG_CRC | ERR_FLAG_TRUNC |
                                        ERR_FLAG_CODE | ERR_FLAG_OV)) {
                        adapter->hw_csum_err++;
-                       printk(KERN_DEBUG "%s: rx checksum error\n",
-                               atl1_driver_name);
+                       dev_dbg(&adapter->pdev->dev, "rx checksum error\n");
                        return;
                }
        }
@@ -393,8 +385,9 @@ static void atl1_rx_checksum(struct atl1_adapter *adapter,
        }
 
        /* IPv4, but hardware thinks its checksum is wrong */
-       printk(KERN_DEBUG "%s: hw csum wrong pkt_flag:%x, err_flag:%x\n",
-               atl1_driver_name, rrd->pkt_flg, rrd->err_flg);
+       dev_dbg(&adapter->pdev->dev,
+               "hw csum wrong, pkt_flag:%x, err_flag:%x\n",
+               rrd->pkt_flg, rrd->err_flg);
        skb->ip_summed = CHECKSUM_COMPLETE;
        skb->csum = htons(rrd->xsz.xsum_sz.rx_chksum);
        adapter->hw_csum_err++;
@@ -507,14 +500,13 @@ chk_rrd:
                        /* rrd seems to be bad */
                        if (unlikely(i-- > 0)) {
                                /* rrd may not be DMAed completely */
-                               printk(KERN_DEBUG
-                                       "%s: RRD may not be DMAed completely\n",
-                                       atl1_driver_name);
+                               dev_dbg(&adapter->pdev->dev,
+                                       "incomplete RRD DMA transfer\n");
                                udelay(1);
                                goto chk_rrd;
                        }
                        /* bad rrd */
-                       printk(KERN_DEBUG "%s: bad RRD\n", atl1_driver_name);
+                       dev_dbg(&adapter->pdev->dev, "bad RRD\n");
                        /* see if update RFD index */
                        if (rrd->num_buf > 1) {
                                u16 num_buf;
@@ -638,14 +630,13 @@ static void atl1_intr_tx(struct atl1_adapter *adapter)
        struct atl1_buffer *buffer_info;
        u16 sw_tpd_next_to_clean;
        u16 cmb_tpd_next_to_clean;
-       u8 update = 0;
 
        sw_tpd_next_to_clean = atomic_read(&tpd_ring->next_to_clean);
        cmb_tpd_next_to_clean = le16_to_cpu(adapter->cmb.cmb->tpd_cons_idx);
 
        while (cmb_tpd_next_to_clean != sw_tpd_next_to_clean) {
                struct tx_packet_desc *tpd;
-               update = 1;
+
                tpd = ATL1_TPD_DESC(tpd_ring, sw_tpd_next_to_clean);
                buffer_info = &tpd_ring->buffer_info[sw_tpd_next_to_clean];
                if (buffer_info->dma) {
@@ -685,8 +676,8 @@ static void atl1_check_for_link(struct atl1_adapter *adapter)
        /* notify upper layer link down ASAP */
        if (!(phy_data & BMSR_LSTATUS)) {       /* Link Down */
                if (netif_carrier_ok(netdev)) { /* old link state: Up */
-                       printk(KERN_INFO "%s: %s link is down\n",
-                              atl1_driver_name, netdev->name);
+                       dev_info(&adapter->pdev->dev, "%s link is down\n",
+                               netdev->name);
                        adapter->link_speed = SPEED_0;
                        netif_carrier_off(netdev);
                        netif_stop_queue(netdev);
@@ -731,8 +722,8 @@ static irqreturn_t atl1_intr(int irq, void *data)
 
                /* check if PCIE PHY Link down */
                if (status & ISR_PHY_LINKDOWN) {
-                       printk(KERN_DEBUG "%s: pcie phy link down %x\n",
-                               atl1_driver_name, status);
+                       dev_dbg(&adapter->pdev->dev, "pcie phy link down %x\n",
+                               status);
                        if (netif_running(adapter->netdev)) {   /* reset MAC */
                                iowrite32(0, adapter->hw.hw_addr + REG_IMR);
                                schedule_work(&adapter->pcie_dma_to_rst_task);
@@ -742,9 +733,9 @@ static irqreturn_t atl1_intr(int irq, void *data)
 
                /* check if DMA read/write error ? */
                if (status & (ISR_DMAR_TO_RST | ISR_DMAW_TO_RST)) {
-                       printk(KERN_DEBUG
-                               "%s: pcie DMA r/w error (status = 0x%x)\n",
-                               atl1_driver_name, status);
+                       dev_dbg(&adapter->pdev->dev,
+                               "pcie DMA r/w error (status = 0x%x)\n",
+                               status);
                        iowrite32(0, adapter->hw.hw_addr + REG_IMR);
                        schedule_work(&adapter->pcie_dma_to_rst_task);
                        return IRQ_HANDLED;
@@ -762,14 +753,13 @@ static irqreturn_t atl1_intr(int irq, void *data)
 
                /* rx exception */
                if (unlikely(status & (ISR_RXF_OV | ISR_RFD_UNRUN |
+                       ISR_RRD_OV | ISR_HOST_RFD_UNRUN |
+                       ISR_HOST_RRD_OV | ISR_CMB_RX))) {
+                       if (status & (ISR_RXF_OV | ISR_RFD_UNRUN |
                                ISR_RRD_OV | ISR_HOST_RFD_UNRUN |
-                               ISR_HOST_RRD_OV | ISR_CMB_RX))) {
-                       if (status &
-                           (ISR_RXF_OV | ISR_RFD_UNRUN | ISR_RRD_OV |
-                            ISR_HOST_RFD_UNRUN | ISR_HOST_RRD_OV))
-                               printk(KERN_INFO
-                                       "%s: rx exception: status = 0x%x\n",
-                                       atl1_driver_name, status);
+                               ISR_HOST_RRD_OV))
+                               dev_dbg(&adapter->pdev->dev,
+                                       "rx exception, ISR = 0x%x\n", status);
                        atl1_intr_rx(adapter);
                }
 
@@ -874,8 +864,7 @@ static u32 atl1_check_link(struct atl1_adapter *adapter)
        atl1_read_phy_reg(hw, MII_BMSR, &phy_data);
        if (!(phy_data & BMSR_LSTATUS)) {       /* link down */
                if (netif_carrier_ok(netdev)) { /* old link state: Up */
-                       printk(KERN_INFO "%s: link is down\n",
-                               atl1_driver_name);
+                       dev_info(&adapter->pdev->dev, "link is down\n");
                        adapter->link_speed = SPEED_0;
                        netif_carrier_off(netdev);
                        netif_stop_queue(netdev);
@@ -918,11 +907,11 @@ static u32 atl1_check_link(struct atl1_adapter *adapter)
                        adapter->link_speed = speed;
                        adapter->link_duplex = duplex;
                        atl1_setup_mac_ctrl(adapter);
-                       printk(KERN_INFO "%s: %s link is up %d Mbps %s\n",
-                              atl1_driver_name, netdev->name,
-                              adapter->link_speed,
-                              adapter->link_duplex ==
-                              FULL_DUPLEX ? "full duplex" : "half duplex");
+                       dev_info(&adapter->pdev->dev,
+                               "%s link is up %d Mbps %s\n",
+                               netdev->name, adapter->link_speed,
+                               adapter->link_duplex == FULL_DUPLEX ?
+                               "full duplex" : "half duplex");
                }
                if (!netif_carrier_ok(netdev)) {        /* Link down -> Up */
                        netif_carrier_on(netdev);
@@ -1235,39 +1224,9 @@ static void atl1_vlan_rx_register(struct net_device *netdev,
        spin_unlock_irqrestore(&adapter->lock, flags);
 }
 
-/* FIXME: justify or remove -- CHS */
-static void atl1_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
-{
-       /* We don't do Vlan filtering */
-       return;
-}
-
-/* FIXME: this looks wrong too -- CHS */
-static void atl1_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
-{
-       struct atl1_adapter *adapter = netdev_priv(netdev);
-       unsigned long flags;
-
-       spin_lock_irqsave(&adapter->lock, flags);
-       /* atl1_irq_disable(adapter); */
-       vlan_group_set_device(adapter->vlgrp, vid, NULL);
-       /* atl1_irq_enable(adapter); */
-       spin_unlock_irqrestore(&adapter->lock, flags);
-       /* We don't do Vlan filtering */
-       return;
-}
-
 static void atl1_restore_vlan(struct atl1_adapter *adapter)
 {
        atl1_vlan_rx_register(adapter->netdev, adapter->vlgrp);
-       if (adapter->vlgrp) {
-               u16 vid;
-               for (vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) {
-                       if (!vlan_group_get_device(adapter->vlgrp, vid))
-                               continue;
-                       atl1_vlan_rx_add_vid(adapter->netdev, vid);
-               }
-       }
 }
 
 static u16 tpd_avail(struct atl1_tpd_ring *tpd_ring)
@@ -1330,8 +1289,8 @@ static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
                cso = skb_transport_offset(skb);
                css = cso + skb->csum_offset;
                if (unlikely(cso & 0x1)) {
-                       printk(KERN_DEBUG "%s: payload offset != even number\n",
-                               atl1_driver_name);
+                       dev_dbg(&adapter->pdev->dev,
+                               "payload offset not an even number\n");
                        return -1;
                }
                csum->csumpl |= (cso & CSUM_PARAM_PLOADOFFSET_MASK) <<
@@ -1579,7 +1538,7 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
        if (!spin_trylock(&adapter->lock)) {
                /* Can't get lock - tell upper layer to requeue */
                local_irq_restore(flags);
-               printk(KERN_DEBUG "%s: TX locked\n", atl1_driver_name);
+               dev_dbg(&adapter->pdev->dev, "tx locked\n");
                return NETDEV_TX_LOCKED;
        }
 
@@ -1587,7 +1546,7 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
                /* not enough descriptors */
                netif_stop_queue(netdev);
                spin_unlock_irqrestore(&adapter->lock, flags);
-               printk(KERN_DEBUG "%s: TX busy\n", atl1_driver_name);
+               dev_dbg(&adapter->pdev->dev, "tx busy\n");
                return NETDEV_TX_BUSY;
        }
 
@@ -1841,8 +1800,7 @@ static int atl1_change_mtu(struct net_device *netdev, int new_mtu)
 
        if ((max_frame < MINIMUM_ETHERNET_FRAME_SIZE) ||
            (max_frame > MAX_JUMBO_FRAME_SIZE)) {
-               printk(KERN_WARNING "%s: invalid MTU setting\n",
-                       atl1_driver_name);
+               dev_warn(&adapter->pdev->dev, "invalid MTU setting\n");
                return -EINVAL;
        }
 
@@ -2045,6 +2003,15 @@ static int atl1_close(struct net_device *netdev)
        return 0;
 }
 
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void atl1_poll_controller(struct net_device *netdev)
+{
+       disable_irq(netdev->irq);
+       atl1_intr(netdev->irq, netdev);
+       enable_irq(netdev->irq);
+}
+#endif
+
 /*
  * If TPD Buffer size equal to 0, PCIE DMAR_TO_INT
  * will assert. We do soft reset <0x1400=1> according
@@ -2136,9 +2103,7 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
        if (err) {
                err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
                if (err) {
-                       printk(KERN_DEBUG
-                               "%s: no usable DMA configuration, aborting\n",
-                               atl1_driver_name);
+                       dev_err(&pdev->dev, "no usable DMA configuration\n");
                        goto err_dma;
                }
                pci_using_64 = false;
@@ -2175,7 +2140,9 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
                goto err_pci_iomap;
        }
        /* get device revision number */
-       adapter->hw.dev_rev = ioread16(adapter->hw.hw_addr + (REG_MASTER_CTRL + 2));
+       adapter->hw.dev_rev = ioread16(adapter->hw.hw_addr +
+                                       (REG_MASTER_CTRL + 2));
+       dev_info(&pdev->dev, "version %s\n", DRIVER_VERSION);
 
        /* set default ring resource counts */
        adapter->rfd_ring.count = adapter->rrd_ring.count = ATL1_DEFAULT_RFD;
@@ -2197,9 +2164,11 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
        netdev->do_ioctl = &atl1_ioctl;
        netdev->tx_timeout = &atl1_tx_timeout;
        netdev->watchdog_timeo = 5 * HZ;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       netdev->poll_controller = atl1_poll_controller;
+#endif
        netdev->vlan_rx_register = atl1_vlan_rx_register;
-       netdev->vlan_rx_add_vid = atl1_vlan_rx_add_vid;
-       netdev->vlan_rx_kill_vid = atl1_vlan_rx_kill_vid;
+
        netdev->ethtool_ops = &atl1_ethtool_ops;
        adapter->bd_number = cards_found;
        adapter->pci_using_64 = pci_using_64;
@@ -2466,8 +2435,6 @@ static void __exit atl1_exit_module(void)
  */
 static int __init atl1_init_module(void)
 {
-       printk(KERN_INFO "%s - version %s\n", atl1_driver_string, DRIVER_VERSION);
-       printk(KERN_INFO "%s\n", atl1_copyright);
        return pci_register_driver(&atl1_driver);
 }