ARM: integrator: pciv3: do not remap IO so early
Subsystems (2)
PATCH 3/3 ARM: integrator: pciv3: do not remap IO so early
Instead of remapping the IO memory very early with pci_map_io_early(), use pci_ioremap_io() when setting up resources as most PCI bridges do. Also request this resource properly.
--- arch/arm/mach-integrator/pci_v3.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
arch/arm/mach-integrator/pci_v3.c +7 -1
@@ -538,6 +538,13 @@ static int __init pci_v3_setup_resources(struct pci_sys_data *sys) "memory region\n");return -EBUSY ; } +if (request_resource (&iomem_resource, &io_mem)) { +release_resource (&io_mem); +printk (KERN_ERR "PCI: unable to allocate I/O " +"memory region\n" ); +return -EBUSY ; + } +pci_ioremap_io (0 , io_mem.start);/* * the mem resource for this bus
@@ -1039,6 +1046,5 @@ int __init pci_v3_early_init(void) {iotable_init (pci_v3_io_desc,ARRAY_SIZE (pci_v3_io_desc)); vga_base = (unsigned long )PCI_MEMORY_VADDR ; -pci_map_io_early (__phys_to_pfn (PHYS_PCI_IO_BASE ));return 0 ; }
Signature · 1 line
1.8.1.4
PATCH 3/3 ARM: integrator: pciv3: do not remap IO so early
Quoted 4 lines · Linus Walleij
Instead of remapping the IO memory very early with
pci_map_io_early(), usepci_ioremap_io()when setting up resources as most PCI bridges do. Also request this resource properly.
What impact does this have with a VGA card plugged in?
PATCH 3/3 ARM: integrator: pciv3: do not remap IO so early
Quoted 7 lines · Russell King - ARM Linux
Quoted 4 lines · Linus Walleij
Instead of remapping the IO memory very early with
pci_map_io_early(), usepci_ioremap_io()when setting up resources as most PCI bridges do. Also request this resource properly.What impact does this have with a VGA card plugged in?
It probably won't work. It's my fault for misreading the driver:
I saw it didn't do the pci_ioremap_io, but didn't remember the *_early call being present in the platform.
Arnd
PATCH 3/3 ARM: integrator: pciv3: do not remap IO so early
Quoted 7 lines · Arnd Bergmann
Quoted 6 lines · Russell King - ARM Linux
Quoted 4 lines · Linus Walleij
Instead of remapping the IO memory very early with
pci_map_io_early(), usepci_ioremap_io()when setting up resources as most PCI bridges do. Also request this resource properly.
Quoted 5 lines
Quoted 1 line
What impact does this have with a VGA card plugged in?
It probably won't work. It's my fault for misreading the driver:
I saw it didn't do thepci_ioremap_io, but didn't remember the*_earlycall being present in the platform.
I haven't got the VGA working (hacking on the biosemu in U-boot from time to time, will get there I hope). So keep this patch out for now.
However I don't see how the VGA console is using iospace? We set vga_base to the start of non-prefetched memory, and assume the first slot is the VGA card, then it goes poking into the screen memory or something... but maybe it's poking the ioports in some runpath I can't see :-P
Yours,
Linus Walleij
PATCH 3/3 ARM: integrator: pciv3: do not remap IO so early
Quoted 18 lines · Linus Walleij
Quoted 7 lines · Arnd Bergmann
Quoted 6 lines · Russell King - ARM Linux
Quoted 4 lines · Linus Walleij
Instead of remapping the IO memory very early with
pci_map_io_early(), usepci_ioremap_io()when setting up resources as most PCI bridges do. Also request this resource properly.Quoted 5 lines
Quoted 1 line
What impact does this have with a VGA card plugged in?
It probably won't work. It's my fault for misreading the driver:
I saw it didn't do thepci_ioremap_io, but didn't remember the*_earlycall being present in the platform.I haven't got the VGA working (hacking on the biosemu in U-boot from time to time, will get there I hope). So keep this patch out for now.
Quoted 6 lines
However I don't see how the VGA console is using iospace? We set
vga_baseto the start of non-prefetched memory, and assume the first slot is the VGA card, then it goes poking into the screen memory or something... but maybe it's poking the ioports in some runpath I can't see :-P
I think you are looking for vga_io_w()/vga_io_r() in case of vga16fb. vgacon uses inb_p/outb_p directly.
Arnd