[SCSI] aacraid: Use DMA mask defines
[powerpc.git] / drivers / pci / pci-sysfs.c
index a15f940..cc9d653 100644 (file)
@@ -60,15 +60,18 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf)
        char * str = buf;
        int i;
        int max = 7;
+       u64 start, end;
 
        if (pci_dev->subordinate)
                max = DEVICE_COUNT_RESOURCE;
 
        for (i = 0; i < max; i++) {
-               str += sprintf(str,"0x%016lx 0x%016lx 0x%016lx\n",
-                              pci_resource_start(pci_dev,i),
-                              pci_resource_end(pci_dev,i),
-                              pci_resource_flags(pci_dev,i));
+               struct resource *res =  &pci_dev->resource[i];
+               pci_resource_to_user(pci_dev, i, res, &start, &end);
+               str += sprintf(str,"0x%016llx 0x%016llx 0x%016llx\n",
+                              (unsigned long long)start,
+                              (unsigned long long)end,
+                              (unsigned long long)res->flags);
        }
        return (str - buf);
 }
@@ -313,8 +316,21 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
                                                       struct device, kobj));
        struct resource *res = (struct resource *)attr->private;
        enum pci_mmap_state mmap_type;
+       u64 start, end;
+       int i;
 
-       vma->vm_pgoff += res->start >> PAGE_SHIFT;
+       for (i = 0; i < PCI_ROM_RESOURCE; i++)
+               if (res == &pdev->resource[i])
+                       break;
+       if (i >= PCI_ROM_RESOURCE)
+               return -ENODEV;
+
+       /* pci_mmap_page_range() expects the same kind of entry as coming
+        * from /proc/bus/pci/ which is a "user visible" value. If this is
+        * different from the resource itself, arch will do necessary fixup.
+        */
+       pci_resource_to_user(pdev, i, res, &start, &end);
+       vma->vm_pgoff += start >> PAGE_SHIFT;
        mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io;
 
        return pci_mmap_page_range(pdev, vma, mmap_type, 0);