|
@@ -39,6 +39,37 @@ void pcibios_align_resource(void *data, struct resource *res,
|
|
res->start = start;
|
|
res->start = start;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
|
|
|
|
+ struct resource *res)
|
|
|
|
+{
|
|
|
|
+ struct pci_channel *hose = dev->sysdata;
|
|
|
|
+ unsigned long offset = 0;
|
|
|
|
+
|
|
|
|
+ if (res->flags & IORESOURCE_IO)
|
|
|
|
+ offset = hose->io_offset;
|
|
|
|
+ else if (res->flags & IORESOURCE_MEM)
|
|
|
|
+ offset = hose->mem_offset;
|
|
|
|
+
|
|
|
|
+ region->start = res->start - offset;
|
|
|
|
+ region->end = res->end - offset;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void __devinit
|
|
|
|
+pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
|
|
|
|
+ struct pci_bus_region *region)
|
|
|
|
+{
|
|
|
|
+ struct pci_channel *hose = dev->sysdata;
|
|
|
|
+ unsigned long offset = 0;
|
|
|
|
+
|
|
|
|
+ if (res->flags & IORESOURCE_IO)
|
|
|
|
+ offset = hose->io_offset;
|
|
|
|
+ else if (res->flags & IORESOURCE_MEM)
|
|
|
|
+ offset = hose->mem_offset;
|
|
|
|
+
|
|
|
|
+ res->start = region->start + offset;
|
|
|
|
+ res->end = region->end + offset;
|
|
|
|
+}
|
|
|
|
+
|
|
int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
|
|
int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
|
|
enum pci_mmap_state mmap_state, int write_combine)
|
|
enum pci_mmap_state mmap_state, int write_combine)
|
|
{
|
|
{
|