summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/pci-common.c
Commit message (Collapse)AuthorAgeFilesLines
* [POWERPC] fix iSeries PCI resource managementBenjamin Herrenschmidt2007-12-201-1/+15
| | | | | | | | | | | | | | | | The way iSeries manages PCI IO and Memory resources is a bit strange and is based on overriding the content of those resources with home cooked ones afterward. This changes it a bit to better integrate with the new resource handling so that the "virtual" tokens that iSeries replaces resources with are done from the proper per-device fixup hook, and bridge resources are set to enclose that token space. This fixes various things such as the output of /proc/iomem & ioports, among others. This also fixes up various boot messages as well. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Merge PCI resource allocation & assignmentBenjamin Herrenschmidt2007-12-201-0/+292
| | | | | | | | | | | | | | | | | | | | | The 32 bits PCI code now uses the generic code for assigning unassigned resources and an algorithm similar to x86 for claiming existing ones. This works far better than the 64 bits code which basically can only claim existing ones (pci_probe_only=1) or would fall apart completely. This merges them so that the new 32 bits implementation is used for both. 64 bits now gets the new PCI flags for controlling the behaviour, though the old pci_probe_only global is still there for now to be cleared if you want to. I kept a pcibios_claim_one_bus() function mostly based on the old 64 bits code for use by the DLPAR hotplug. This will have to be cleaned up, thought I hope it will work in the meantime. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Merge PCI resource fixupsBenjamin Herrenschmidt2007-12-201-0/+130
| | | | | | | | | | | | | | The PCI code in 32 and 64 bits fixes up resources differently. 32 bits uses a header quirk plus handles bridges in pcibios_fixup_bus() while 64 bits does things in various places depending on whether you are using OF probing, using PCI hotplug, etc... This merges those by basically using the 32 bits approach for both, with various tweaks to make 64 bits work with the new approach. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Merge pcibios_resource_to_bus/bus_to_resourceBenjamin Herrenschmidt2007-12-201-0/+36
| | | | | | | | This merges the PowerPC 32 and 64 bits version of pcibios_resource_to_bus and pcibios_bus_to_resource(). Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] pci32: Add platform option to enable /proc PCI domainsBenjamin Herrenschmidt2007-12-201-0/+16
| | | | | | | | This adds flags the platforms can use to enable domain numbers in /proc/bus/pci. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Merge pci_process_bridge_OF_ranges()Benjamin Herrenschmidt2007-12-111-0/+177
| | | | | | | | | | | | | | | | | | | This merges the 32-bit and 64-bit implementations of pci_process_bridge_OF_ranges(). The new function is cleaner than both the old ones, and supports 64 bits ranges on ppc32 which is necessary for the 4xx port. It also adds some better (hopefully) output to the kernel log which should help diagnose problems and makes better use of existing OF parsing helpers (avoiding a few bugs of both implementations along the way). There are still a few unfortunate ifdef's but there is no way around these for now at least not until some other bits of the PCI code are made common. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Make isa_mem_base common to 32 and 64 bitsBenjamin Herrenschmidt2007-12-111-0/+3
| | | | | | | | | This defines isa_mem_base on both 32 and 64 bits (it used to be 32 bits only). This avoids a few ifdef's in later patches and potentially can allow support for VGA text mode on 64 bits powerpc. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] pci_controller->arch_data really is a struct device_node *Stephen Rothwell2007-12-111-2/+2
| | | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Don't special case pci_domain_nr() for iSeriesStephen Rothwell2007-12-111-7/+2
| | | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Inline pci_setup_pci_controller as it has become trivialStephen Rothwell2007-12-111-15/+6
| | | | | | | and it becomes clear that we should use zalloc_maybe_bootmem. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Remove redundant declaration of hose_listStephen Rothwell2007-12-031-2/+0
| | | | | | | It is already declared in ppc-pci.h which is included. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Make global_phb_number staticStephen Rothwell2007-12-031-1/+1
| | | | | | | since it's not used outside of arch/powerpc/kernel/pci-common.c. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Use alloc_maybe_bootmem() in pcibios_alloc_controllerLinas Vepstas2007-10-031-5/+2
| | | | | | | | Use alloc_maybe_bootmem() which wraps the if (mem_init_done) malloc clause. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* Merge branch 'fixes-2.6.23' of ↵Paul Mackerras2007-07-261-1/+1
|\ | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into merge
| * [POWREPC] Fixup a number of modpost warnings on ppc32Kumar Gala2007-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed the following warnings: WARNING: vmlinux.o(.text+0x2934): Section mismatch: reference to .init.text:__alloc_bootmem (between 'irq_alloc_host' and 'irq_set_default_host') WARNING: vmlinux.o(.text+0xb2aa): Section mismatch: reference to .init.data:boot_command_line (between 'register_early_udbg_console' and 'udbg_printf') WARNING: vmlinux.o(.text+0xb2b2): Section mismatch: reference to .init.data:boot_command_line (between 'register_early_udbg_console' and 'udbg_printf') WARNING: vmlinux.o(.text+0xe354): Section mismatch: reference to .init.text:__alloc_bootmem (between 'pcibios_alloc_controller' and 'pci_domain_nr') WARNING: vmlinux.o(.text+0x12768): Section mismatch: reference to .init.text:update_bridge_resource (between 'quirk_fsl_pcie_transparent' and 'indirect_read_config') WARNING: vmlinux.o(.text+0x127a8): Section mismatch: reference to .init.text:update_bridge_resource (between 'quirk_fsl_pcie_transparent' and 'indirect_read_config') WARNING: vmlinux.o(.text+0x17566c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bus_parented') Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | [POWERPC] Add function to check if address is an IO portBenjamin Herrenschmidt2007-07-261-0/+23
|/ | | | | | | | | This adds a function that tells you if a given kernel virtual address is hitting a PCI or ISA IO port permanent mapping or not. This is to be used in the next patch to fix iomap APIs to properly unmap things. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [POWERPC] Quiet section mismatch warning on pcibios_setupStephen Rothwell2007-07-221-1/+1
| | | | | | | | | WARNING: vmlinux.o(.text+0x1cefcc): Section mismatch: reference to .init.text:.pcibios_setup (between '.pci_setup' and '.pci_init') pci_setup() is marked __devinit and calls pcibios_setup. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* Fix compile failure in arch/powerpc/kernel/pci-common.cTony Breeds2007-07-181-2/+5
| | | | | | | | | | | | | This fixes the fallout from the recent powerpc merge (commit 489de30259e667d7bc47da9da44a0270b050cd97): CC arch/powerpc/kernel/pci-common.o arch/powerpc/kernel/pci-common.c:160: error: conflicting types for 'pcibios_add_platform_entries' include/linux/pci.h:889: error: previous declaration of 'pcibios_add_platform_entries' was here Signed-off-by: Tony Breeds <tony@bakeyournoodle.com> Tested-by: Bret Towe <magnade@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [POWERPC] Add copyright header to pci-common.c based on pci_{32,64}.cKumar Gala2007-06-291-0/+9
| | | | Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* [POWERPC] Use ppc64 style list management for pci_controller on ppc32Kumar Gala2007-06-291-0/+78
| | | | | | | | Use the ppc64 style list management and allocation functions for pci_controllers. This makes the pci_controller structs just a bit more common between ppc32 & ppc64. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* [POWERPC] Move common PCI code out of pci_32/pci_64Kumar Gala2007-06-291-0/+314
| | | | | | | Moved the low hanging fruit that was either identical or close to it between ppc32 & ppc64 for PCI into pci-common.c Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* [POWERPC] Use global_number in ppc32 pci_controllerKumar Gala2007-06-291-0/+53
Make the pci_controller struct use global_number for the PHB domain number instead of index to match what ppc64 does and reuse its pci_domain_nr code. Introduced a pci-common.c to handle shared code between ppc32 & ppc64. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
OpenPOWER on IntegriCloud