adm8668: remove linux 3.3 support
[openwrt/staging/chunkeey.git] / target / linux / adm8668 / patches-3.3 / 004-tulip_pci_split.patch
diff --git a/target/linux/adm8668/patches-3.3/004-tulip_pci_split.patch b/target/linux/adm8668/patches-3.3/004-tulip_pci_split.patch
deleted file mode 100644 (file)
index be2e706..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
---- a/drivers/net/ethernet/dec/tulip/tulip_core.c
-+++ b/drivers/net/ethernet/dec/tulip/tulip_core.c
-@@ -206,7 +206,7 @@ struct tulip_chip_table tulip_tbl[] = {
- };
--
-+#ifdef CONFIG_TULIP_PCI
- static DEFINE_PCI_DEVICE_TABLE(tulip_pci_tbl) = {
-       { 0x1011, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21140 },
-       { 0x1011, 0x0019, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21143 },
-@@ -250,7 +250,7 @@ static DEFINE_PCI_DEVICE_TABLE(tulip_pci
-       { } /* terminate list */
- };
- MODULE_DEVICE_TABLE(pci, tulip_pci_tbl);
--
-+#endif
- /* A full-duplex map for media types. */
- const char tulip_media_cap[32] =
-@@ -268,11 +268,14 @@ static void tulip_down(struct net_device
- static struct net_device_stats *tulip_get_stats(struct net_device *dev);
- static int private_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
- static void set_rx_mode(struct net_device *dev);
-+#ifdef CONFIG_TULIP_PCI
- static void tulip_set_wolopts(struct pci_dev *pdev, u32 wolopts);
-+#endif
- #ifdef CONFIG_NET_POLL_CONTROLLER
- static void poll_tulip(struct net_device *dev);
- #endif
-+#ifdef CONFIG_TULIP_PCI
- static void tulip_set_power_state (struct tulip_private *tp,
-                                  int sleep, int snooze)
- {
-@@ -289,7 +292,7 @@ static void tulip_set_power_state (struc
-       }
- }
--
-+#endif
- static void tulip_up(struct net_device *dev)
- {
-@@ -303,6 +306,7 @@ static void tulip_up(struct net_device *
-       napi_enable(&tp->napi);
- #endif
-+#ifdef CONFIG_TULIP_PCI
-       /* Wake the chip from sleep/snooze mode. */
-       tulip_set_power_state (tp, 0, 0);
-@@ -310,6 +314,7 @@ static void tulip_up(struct net_device *
-       pci_enable_wake(tp->pdev, PCI_D3hot, 0);
-       pci_enable_wake(tp->pdev, PCI_D3cold, 0);
-       tulip_set_wolopts(tp->pdev, 0);
-+#endif
-       /* On some chip revs we must set the MII/SYM port before the reset!? */
-       if (tp->mii_cnt  ||  (tp->mtable  &&  tp->mtable->has_mii))
-@@ -317,14 +322,18 @@ static void tulip_up(struct net_device *
-       /* Reset the chip, holding bit 0 set at least 50 PCI cycles. */
-       iowrite32(0x00000001, ioaddr + CSR0);
-+#ifdef CONFIG_TULIP_PCI
-       pci_read_config_dword(tp->pdev, PCI_COMMAND, &reg);  /* flush write */
-+#endif
-       udelay(100);
-       /* Deassert reset.
-          Wait the specified 50 PCI cycles after a reset by initializing
-          Tx and Rx queues and the address filter list. */
-       iowrite32(tp->csr0, ioaddr + CSR0);
-+#ifdef CONFIG_TULIP_PCI
-       pci_read_config_dword(tp->pdev, PCI_COMMAND, &reg);  /* flush write */
-+#endif
-       udelay(100);
-       if (tulip_debug > 1)
-@@ -362,9 +371,11 @@ static void tulip_up(struct net_device *
-               *setup_frm++ = eaddrs[1]; *setup_frm++ = eaddrs[1];
-               *setup_frm++ = eaddrs[2]; *setup_frm++ = eaddrs[2];
-+#ifdef CONFIG_TULIP_PCI
-               mapping = pci_map_single(tp->pdev, tp->setup_frame,
-                                        sizeof(tp->setup_frame),
-                                        PCI_DMA_TODEVICE);
-+#endif
-               tp->tx_buffers[tp->cur_tx].skb = NULL;
-               tp->tx_buffers[tp->cur_tx].mapping = mapping;
-@@ -642,8 +653,10 @@ static void tulip_init_ring(struct net_d
-               tp->rx_buffers[i].skb = skb;
-               if (skb == NULL)
-                       break;
-+#ifdef CONFIG_TULIP_PCI
-               mapping = pci_map_single(tp->pdev, skb->data,
-                                        PKT_BUF_SZ, PCI_DMA_FROMDEVICE);
-+#endif
-               tp->rx_buffers[i].mapping = mapping;
-               skb->dev = dev;                 /* Mark as being used by this device. */
-               tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */
-@@ -677,8 +690,10 @@ tulip_start_xmit(struct sk_buff *skb, st
-       entry = tp->cur_tx % TX_RING_SIZE;
-       tp->tx_buffers[entry].skb = skb;
-+#ifdef CONFIG_TULIP_PCI
-       mapping = pci_map_single(tp->pdev, skb->data,
-                                skb->len, PCI_DMA_TODEVICE);
-+#endif
-       tp->tx_buffers[entry].mapping = mapping;
-       tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
-@@ -729,16 +744,19 @@ static void tulip_clean_tx_ring(struct t
-               if (tp->tx_buffers[entry].skb == NULL) {
-                       /* test because dummy frames not mapped */
-                       if (tp->tx_buffers[entry].mapping)
-+#ifdef CONFIG_TULIP_PCI
-                               pci_unmap_single(tp->pdev,
-                                       tp->tx_buffers[entry].mapping,
-                                       sizeof(tp->setup_frame),
-                                       PCI_DMA_TODEVICE);
-+#endif
-                       continue;
-               }
--
-+#ifdef CONFIG_TULIP_PCI
-               pci_unmap_single(tp->pdev, tp->tx_buffers[entry].mapping,
-                               tp->tx_buffers[entry].skb->len,
-                               PCI_DMA_TODEVICE);
-+#endif
-               /* Free the original skb. */
-               dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
-@@ -789,7 +807,9 @@ static void tulip_down (struct net_devic
-       dev->if_port = tp->saved_if_port;
-       /* Leave the driver in snooze, not sleep, mode. */
-+#ifdef CONFIG_TULIP_PCI
-       tulip_set_power_state (tp, 0, 1);
-+#endif
- }
- static void tulip_free_ring (struct net_device *dev)
-@@ -810,8 +830,10 @@ static void tulip_free_ring (struct net_
-               /* An invalid address. */
-               tp->rx_ring[i].buffer1 = cpu_to_le32(0xBADF00D0);
-               if (skb) {
-+#ifdef CONFIG_TULIP_PCI
-                       pci_unmap_single(tp->pdev, mapping, PKT_BUF_SZ,
-                                        PCI_DMA_FROMDEVICE);
-+#endif
-                       dev_kfree_skb (skb);
-               }
-       }
-@@ -820,8 +842,10 @@ static void tulip_free_ring (struct net_
-               struct sk_buff *skb = tp->tx_buffers[i].skb;
-               if (skb != NULL) {
-+#ifdef CONFIG_TULIP_PCI
-                       pci_unmap_single(tp->pdev, tp->tx_buffers[i].mapping,
-                                        skb->len, PCI_DMA_TODEVICE);
-+#endif
-                       dev_kfree_skb (skb);
-               }
-               tp->tx_buffers[i].skb = NULL;
-@@ -873,7 +897,9 @@ static void tulip_get_drvinfo(struct net
-       struct tulip_private *np = netdev_priv(dev);
-       strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
-       strlcpy(info->version, DRV_VERSION, sizeof(info->version));
-+#ifdef CONFIG_TULIP_PCI
-       strlcpy(info->bus_info, pci_name(np->pdev), sizeof(info->bus_info));
-+#endif
- }
-@@ -886,7 +912,9 @@ static int tulip_ethtool_set_wol(struct
-                  return -EOPNOTSUPP;
-       tp->wolinfo.wolopts = wolinfo->wolopts;
-+#ifdef CONFIG_TULIP_PCI
-       device_set_wakeup_enable(&tp->pdev->dev, tp->wolinfo.wolopts);
-+#endif
-       return 0;
- }
-@@ -1167,9 +1195,11 @@ static void set_rx_mode(struct net_devic
-                       tp->tx_buffers[entry].skb = NULL;
-                       tp->tx_buffers[entry].mapping =
-+#ifdef CONFIG_TULIP_PCI
-                               pci_map_single(tp->pdev, tp->setup_frame,
-                                              sizeof(tp->setup_frame),
-                                              PCI_DMA_TODEVICE);
-+#endif
-                       /* Put the setup frame on the Tx list. */
-                       if (entry == TX_RING_SIZE-1)
-                               tx_flags |= DESC_RING_WRAP;             /* Wrap ring. */
-@@ -1267,19 +1297,22 @@ out:
-               netdev_dbg(dev, "MWI config cacheline=%d, csr0=%08x\n",
-                          cache, csr0);
- }
--#endif
- /*
-  *    Chips that have the MRM/reserved bit quirk and the burst quirk. That
-  *    is the DM910X and the on chip ULi devices
-  */
-+#endif
-+#ifdef CONFIG_TULIP_PCI
- static int tulip_uli_dm_quirk(struct pci_dev *pdev)
- {
-       if (pdev->vendor == 0x1282 && pdev->device == 0x9102)
-               return 1;
-       return 0;
- }
-+#endif
-+
- static const struct net_device_ops tulip_netdev_ops = {
-       .ndo_open               = tulip_open,
-@@ -1297,6 +1330,7 @@ static const struct net_device_ops tulip
- #endif
- };
-+#ifdef CONFIG_TULIP_PCI
- DEFINE_PCI_DEVICE_TABLE(early_486_chipsets) = {
-       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82424) },
-       { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496) },
-@@ -1814,6 +1848,7 @@ err_out_free_netdev:
- }
-+#ifdef CONFIG_TULIP_PCI
- /* set the registers according to the given wolopts */
- static void tulip_set_wolopts (struct pci_dev *pdev, u32 wolopts)
- {
-@@ -1842,6 +1877,7 @@ static void tulip_set_wolopts (struct pc
-               iowrite32(tmp, ioaddr + CSR13);
-       }
- }
-+#endif
- #ifdef CONFIG_PM
-@@ -1953,6 +1989,7 @@ static void __devexit tulip_remove_one (
-       /* pci_power_off (pdev, -1); */
- }
-+#endif /* CONFIG_TULIP_PCI */
- #ifdef CONFIG_NET_POLL_CONTROLLER
- /*
-@@ -1971,7 +2008,8 @@ static void poll_tulip (struct net_devic
- }
- #endif
--static struct pci_driver tulip_driver = {
-+#ifdef CONFIG_TULIP_PCI
-+static struct pci_driver tulip_pci_driver = {
-       .name           = DRV_NAME,
-       .id_table       = tulip_pci_tbl,
-       .probe          = tulip_init_one,
-@@ -1981,10 +2019,12 @@ static struct pci_driver tulip_driver =
-       .resume         = tulip_resume,
- #endif /* CONFIG_PM */
- };
-+#endif
- static int __init tulip_init (void)
- {
-+      int ret = 0;
- #ifdef MODULE
-       pr_info("%s", version);
- #endif
-@@ -1994,13 +2034,18 @@ static int __init tulip_init (void)
-       tulip_max_interrupt_work = max_interrupt_work;
-       /* probe for and init boards */
--      return pci_register_driver(&tulip_driver);
-+#ifdef CONFIG_TULIP_PCI
-+      ret = pci_register_driver(&tulip_pci_driver);
-+#endif
-+      return ret;
- }
- static void __exit tulip_cleanup (void)
- {
--      pci_unregister_driver (&tulip_driver);
-+#ifdef CONFIG_TULIP_PCI
-+      pci_unregister_driver (&tulip_pci_driver);
-+#endif
- }
---- a/drivers/net/ethernet/dec/tulip/interrupt.c
-+++ b/drivers/net/ethernet/dec/tulip/interrupt.c
-@@ -72,9 +72,10 @@ int tulip_refill_rx(struct net_device *d
-                       skb = tp->rx_buffers[entry].skb = dev_alloc_skb(PKT_BUF_SZ);
-                       if (skb == NULL)
-                               break;
--
-+#ifdef CONFIG_TULIP_PCI
-                       mapping = pci_map_single(tp->pdev, skb->data, PKT_BUF_SZ,
-                                                PCI_DMA_FROMDEVICE);
-+#endif
-                       tp->rx_buffers[entry].mapping = mapping;
-                       skb->dev = dev;                 /* Mark as being used by this device. */
-@@ -204,9 +205,11 @@ int tulip_poll(struct napi_struct *napi,
-                                if (pkt_len < tulip_rx_copybreak &&
-                                    (skb = dev_alloc_skb(pkt_len + 2)) != NULL) {
-                                        skb_reserve(skb, 2);    /* 16 byte align the IP header */
-+#ifdef CONFIG_TULIP_PCI
-                                        pci_dma_sync_single_for_cpu(tp->pdev,
-                                                                  tp->rx_buffers[entry].mapping,
-                                                                  pkt_len, PCI_DMA_FROMDEVICE);
-+#endif
- #if ! defined(__alpha__)
-                                        skb_copy_to_linear_data(skb, tp->rx_buffers[entry].skb->data,
-                                                         pkt_len);
-@@ -216,9 +219,11 @@ int tulip_poll(struct napi_struct *napi,
-                                               tp->rx_buffers[entry].skb->data,
-                                               pkt_len);
- #endif
-+#ifdef CONFIG_TULIP_PCI
-                                        pci_dma_sync_single_for_device(tp->pdev,
-                                                                     tp->rx_buffers[entry].mapping,
-                                                                     pkt_len, PCI_DMA_FROMDEVICE);
-+#endif
-                                } else {        /* Pass up the skb already on the Rx ring. */
-                                        char *temp = skb_put(skb = tp->rx_buffers[entry].skb,
-                                                             pkt_len);
-@@ -233,9 +238,10 @@ int tulip_poll(struct napi_struct *napi,
-                                                      skb->head, temp);
-                                        }
- #endif
--
-+#ifdef CONFIG_TULIP_PCI
-                                        pci_unmap_single(tp->pdev, tp->rx_buffers[entry].mapping,
-                                                         PKT_BUF_SZ, PCI_DMA_FROMDEVICE);
-+#endif
-                                        tp->rx_buffers[entry].skb = NULL;
-                                        tp->rx_buffers[entry].mapping = 0;
-@@ -591,10 +597,12 @@ irqreturn_t tulip_interrupt(int irq, voi
-                               if (tp->tx_buffers[entry].skb == NULL) {
-                                       /* test because dummy frames not mapped */
-                                       if (tp->tx_buffers[entry].mapping)
-+#ifdef CONFIG_TULIP_PCI
-                                               pci_unmap_single(tp->pdev,
-                                                        tp->tx_buffers[entry].mapping,
-                                                        sizeof(tp->setup_frame),
-                                                        PCI_DMA_TODEVICE);
-+#endif
-                                       continue;
-                               }
-@@ -622,10 +630,11 @@ irqreturn_t tulip_interrupt(int irq, voi
-                                       dev->stats.collisions += (status >> 3) & 15;
-                                       dev->stats.tx_packets++;
-                               }
--
-+#ifdef CONFIG_TULIP_PCI
-                               pci_unmap_single(tp->pdev, tp->tx_buffers[entry].mapping,
-                                                tp->tx_buffers[entry].skb->len,
-                                                PCI_DMA_TODEVICE);
-+#endif
-                               /* Free the original skb. */
-                               dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
---- a/drivers/net/ethernet/dec/tulip/Kconfig
-+++ b/drivers/net/ethernet/dec/tulip/Kconfig
-@@ -40,8 +40,12 @@ config DE2104X_DSL
-         Default is 0, and range is 0 to 31.
- config TULIP
-+      tristate
-+
-+config TULIP_PCI
-       tristate "DECchip Tulip (dc2114x) PCI support"
-       depends on PCI
-+      select TULIP
-       select CRC32
-       ---help---
-         This driver is developed for the SMC EtherPower series Ethernet
-@@ -58,7 +62,7 @@ config TULIP
- config TULIP_MWI
-       bool "New bus configuration (EXPERIMENTAL)"
--      depends on TULIP && EXPERIMENTAL
-+      depends on TULIP_PCI && EXPERIMENTAL
-       ---help---
-         This configures your Tulip card specifically for the card and
-         system cache line size type you are using.
-@@ -69,7 +73,7 @@ config TULIP_MWI
- config TULIP_MMIO
-       bool "Use PCI shared mem for NIC registers"
--      depends on TULIP
-+      depends on TULIP_PCI
-       ---help---
-         Use PCI shared memory for the NIC registers, rather than going through
-         the Tulip's PIO (programmed I/O ports).  Faster, but could produce