linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / pci / pci.c
index 9f79dd6..d2d1879 100644 (file)
@@ -19,7 +19,7 @@
 #include <asm/dma.h>   /* isa_dma_bridge_buggy */
 #include "pci.h"
 
-unsigned int pci_pm_d3_delay = 10;
+#if 0
 
 /**
  * pci_bus_max_busnr - returns maximum PCI bus number of given bus' children
@@ -34,7 +34,7 @@ pci_bus_max_busnr(struct pci_bus* bus)
        struct list_head *tmp;
        unsigned char max, n;
 
-       max = bus->subordinate;
+       max = bus->number;
        list_for_each(tmp, &bus->children) {
                n = pci_bus_max_busnr(pci_bus_b(tmp));
                if(n > max)
@@ -42,9 +42,7 @@ pci_bus_max_busnr(struct pci_bus* bus)
        }
        return max;
 }
-EXPORT_SYMBOL_GPL(pci_bus_max_busnr);
 
-#if 0
 /**
  * pci_max_busnr - returns maximum PCI bus number
  *
@@ -165,6 +163,7 @@ int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap)
        return __pci_bus_find_cap(bus, devfn, hdr_type & 0x7f, cap);
 }
 
+#if 0
 /**
  * pci_find_ext_capability - Find an extended capability
  * @dev: PCI device to query
@@ -212,7 +211,7 @@ int pci_find_ext_capability(struct pci_dev *dev, int cap)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(pci_find_ext_capability);
+#endif  /*  0  */
 
 /**
  * pci_find_parent_resource - return resource region of parent bus of given region
@@ -307,21 +306,11 @@ pci_set_power_state(struct pci_dev *dev, pci_power_t state)
         * Can enter D0 from any state, but if we can only go deeper 
         * to sleep if we're already in a low power state
         */
-       if (state != PCI_D0 && dev->current_state > state) {
-               printk(KERN_ERR "%s(): %s: state=%d, current state=%d\n",
-                       __FUNCTION__, pci_name(dev), state, dev->current_state);
+       if (state != PCI_D0 && dev->current_state > state)
                return -EINVAL;
-       } else if (dev->current_state == state)
+       else if (dev->current_state == state) 
                return 0;        /* we're already there */
 
-       /*
-        * If the device or the parent bridge can't support PCI PM, ignore
-        * the request if we're doing anything besides putting it into D0
-        * (which would only happen on boot).
-        */
-       if ((state == PCI_D1 || state == PCI_D2) && pci_no_d1d2(dev))
-               return 0;
-
        /* find PCI PM capability in list */
        pm = pci_find_capability(dev, PCI_CAP_ID_PM);
        
@@ -372,13 +361,13 @@ pci_set_power_state(struct pci_dev *dev, pci_power_t state)
        /* Mandatory power management transition delays */
        /* see PCI PM 1.1 5.6.1 table 18 */
        if (state == PCI_D3hot || dev->current_state == PCI_D3hot)
-               msleep(pci_pm_d3_delay);
+               msleep(10);
        else if (state == PCI_D2 || dev->current_state == PCI_D2)
                udelay(200);
 
        /*
         * Give firmware a chance to be called, such as ACPI _PRx, _PSx
-        * Firmware method after native method ?
+        * Firmware method after natice method ?
         */
        if (platform_pci_set_power_state)
                platform_pci_set_power_state(dev, state);
@@ -454,10 +443,6 @@ pci_save_state(struct pci_dev *dev)
        /* XXX: 100% dword access ok here? */
        for (i = 0; i < 16; i++)
                pci_read_config_dword(dev, i * 4,&dev->saved_config_space[i]);
-       if ((i = pci_save_msi_state(dev)) != 0)
-               return i;
-       if ((i = pci_save_msix_state(dev)) != 0)
-               return i;
        return 0;
 }
 
@@ -469,25 +454,9 @@ int
 pci_restore_state(struct pci_dev *dev)
 {
        int i;
-       int val;
 
-       /*
-        * The Base Address register should be programmed before the command
-        * register(s)
-        */
-       for (i = 15; i >= 0; i--) {
-               pci_read_config_dword(dev, i * 4, &val);
-               if (val != dev->saved_config_space[i]) {
-                       printk(KERN_DEBUG "PM: Writing back config space on "
-                               "device %s at offset %x (was %x, writing %x)\n",
-                               pci_name(dev), i,
-                               val, (int)dev->saved_config_space[i]);
-                       pci_write_config_dword(dev,i * 4,
-                               dev->saved_config_space[i]);
-               }
-       }
-       pci_restore_msi_state(dev);
-       pci_restore_msix_state(dev);
+       for (i = 0; i < 16; i++)
+               pci_write_config_dword(dev,i * 4, dev->saved_config_space[i]);
        return 0;
 }
 
@@ -528,11 +497,7 @@ pci_enable_device(struct pci_dev *dev)
 {
        int err;
 
-       if (dev->is_enabled)
-               return 0;
-
-       err = pci_enable_device_bars(dev, (1 << PCI_NUM_RESOURCES) - 1);
-       if (err)
+       if ((err = pci_enable_device_bars(dev, (1 << PCI_NUM_RESOURCES) - 1)))
                return err;
        pci_fixup_device(pci_fixup_enable, dev);
        dev->is_enabled = 1;
@@ -560,14 +525,7 @@ void
 pci_disable_device(struct pci_dev *dev)
 {
        u16 pci_command;
-
-       if (dev->msi_enabled)
-               disable_msi_mode(dev, pci_find_capability(dev, PCI_CAP_ID_MSI),
-                       PCI_CAP_ID_MSI);
-       if (dev->msix_enabled)
-               disable_msi_mode(dev, pci_find_capability(dev, PCI_CAP_ID_MSI),
-                       PCI_CAP_ID_MSIX);
-
+       
        pci_read_config_word(dev, PCI_COMMAND, &pci_command);
        if (pci_command & PCI_COMMAND_MASTER) {
                pci_command &= ~PCI_COMMAND_MASTER;
@@ -681,7 +639,7 @@ void pci_release_region(struct pci_dev *pdev, int bar)
  *     Returns 0 on success, or %EBUSY on error.  A warning
  *     message is also printed on failure.
  */
-int pci_request_region(struct pci_dev *pdev, int bar, const char *res_name)
+int pci_request_region(struct pci_dev *pdev, int bar, char *res_name)
 {
        if (pci_resource_len(pdev, bar) == 0)
                return 0;
@@ -700,12 +658,10 @@ int pci_request_region(struct pci_dev *pdev, int bar, const char *res_name)
        return 0;
 
 err_out:
-       printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%llx@%llx "
-               "for device %s\n",
+       printk (KERN_WARNING "PCI: Unable to reserve %s region #%d:%lx@%lx for device %s\n",
                pci_resource_flags(pdev, bar) & IORESOURCE_IO ? "I/O" : "mem",
                bar + 1, /* PCI BAR # */
-               (unsigned long long)pci_resource_len(pdev, bar),
-               (unsigned long long)pci_resource_start(pdev, bar),
+               pci_resource_len(pdev, bar), pci_resource_start(pdev, bar),
                pci_name(pdev));
        return -EBUSY;
 }
@@ -741,7 +697,7 @@ void pci_release_regions(struct pci_dev *pdev)
  *     Returns 0 on success, or %EBUSY on error.  A warning
  *     message is also printed on failure.
  */
-int pci_request_regions(struct pci_dev *pdev, const char *res_name)
+int pci_request_regions(struct pci_dev *pdev, char *res_name)
 {
        int i;
        
@@ -944,12 +900,8 @@ static int __devinit pci_setup(char *str)
                if (k)
                        *k++ = 0;
                if (*str && (str = pcibios_setup(str)) && *str) {
-                       if (!strcmp(str, "nomsi")) {
-                               pci_no_msi();
-                       } else {
-                               printk(KERN_ERR "PCI: Unknown option `%s'\n",
-                                               str);
-                       }
+                       /* PCI layer options should be handled here */
+                       printk(KERN_ERR "PCI: Unknown option `%s'\n", str);
                }
                str = k;
        }