1 diff -Naur linux-source-2.6.29-orig/drivers/pci/bus.c linux-source-2.6.29/drivers/pci/bus.c
2 --- linux-source-2.6.29-orig/drivers/pci/bus.c 2009-03-24 00:12:14.000000000 +0100
3 +++ linux-source-2.6.29/drivers/pci/bus.c 2009-04-06 11:04:41.000000000 +0200
8 + resource_size_t max = -1;
10 type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
13 !(res->flags & IORESOURCE_PREFETCH))
16 + /* Limit address to 32 bits when requested */
17 + if ((res->flags & IORESOURCE_MEM) &&
18 + (res->flags & IORESOURCE_PCI_32BIT))
21 /* Ok, try it out.. */
22 ret = allocate_resource(r, res, size,
29 diff -Naur linux-source-2.6.29-orig/drivers/pci/setup-bus.c linux-source-2.6.29/drivers/pci/setup-bus.c
30 --- linux-source-2.6.29-orig/drivers/pci/setup-bus.c 2009-03-24 00:12:14.000000000 +0100
31 +++ linux-source-2.6.29/drivers/pci/setup-bus.c 2009-04-06 11:04:41.000000000 +0200
33 if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
34 b_res[2].start = pci_cardbus_mem_size;
35 b_res[2].end = b_res[2].start + pci_cardbus_mem_size - 1;
36 ! b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH;
38 b_res[3].start = pci_cardbus_mem_size;
39 b_res[3].end = b_res[3].start + pci_cardbus_mem_size - 1;
40 ! b_res[3].flags |= IORESOURCE_MEM;
42 b_res[3].start = pci_cardbus_mem_size * 2;
43 b_res[3].end = b_res[3].start + pci_cardbus_mem_size * 2 - 1;
44 ! b_res[3].flags |= IORESOURCE_MEM;
49 if (ctrl & PCI_CB_BRIDGE_CTL_PREFETCH_MEM0) {
50 b_res[2].start = pci_cardbus_mem_size;
51 b_res[2].end = b_res[2].start + pci_cardbus_mem_size - 1;
52 ! b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH | IORESOURCE_PCI_32BIT;
54 b_res[3].start = pci_cardbus_mem_size;
55 b_res[3].end = b_res[3].start + pci_cardbus_mem_size - 1;
56 ! b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_PCI_32BIT;
58 b_res[3].start = pci_cardbus_mem_size * 2;
59 b_res[3].end = b_res[3].start + pci_cardbus_mem_size * 2 - 1;
60 ! b_res[3].flags |= IORESOURCE_MEM | IORESOURCE_PCI_32BIT;
63 diff -Naur linux-source-2.6.29-orig/include/linux/ioport.h linux-source-2.6.29/include/linux/ioport.h
64 --- linux-source-2.6.29-orig/include/linux/ioport.h 2009-03-24 00:12:14.000000000 +0100
65 +++ linux-source-2.6.29/include/linux/ioport.h 2009-04-06 11:04:41.000000000 +0200
68 /* PCI control bits. Shares IORESOURCE_BITS with above PCI ROM. */
69 #define IORESOURCE_PCI_FIXED (1<<4) /* Do not move resource */
70 +#define IORESOURCE_PCI_32BIT (1<<5) /* Do not use 64bit address space (for cardbus devices) */
72 /* PC/ISA/whatever - the normal PC address spaces: IO and memory */
73 extern struct resource ioport_resource;