aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/pci-common.c
AgeCommit message (Collapse)AuthorFilesLines
2007-12-20[POWERPC] fix iSeries PCI resource managementBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20[POWERPC] Merge PCI resource allocation & assignmentBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20[POWERPC] Merge PCI resource fixupsBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20[POWERPC] Merge pcibios_resource_to_bus/bus_to_resourceBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20[POWERPC] pci32: Add platform option to enable /proc PCI domainsBenjamin Herrenschmidt1-0/+16
This adds flags the platforms can use to enable domain numbers in /proc/bus/pci. Signed-off-by: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-11[POWERPC] Merge pci_process_bridge_OF_ranges()Benjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-11[POWERPC] Make isa_mem_base common to 32 and 64 bitsBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-11[POWERPC] pci_controller->arch_data really is a struct device_node *Stephen Rothwell1-2/+2
Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-11[POWERPC] Don't special case pci_domain_nr() for iSeriesStephen Rothwell1-7/+2
Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-11[POWERPC] Inline pci_setup_pci_controller as it has become trivialStephen Rothwell1-15/+6
and it becomes clear that we should use zalloc_maybe_bootmem. Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-03[POWERPC] Remove redundant declaration of hose_listStephen Rothwell1-2/+0
It is already declared in ppc-pci.h which is included. Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-12-03[POWERPC] Make global_phb_number staticStephen Rothwell1-1/+1
since it's not used outside of arch/powerpc/kernel/pci-common.c. Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-10-03[POWERPC] Use alloc_maybe_bootmem() in pcibios_alloc_controllerLinas Vepstas1-5/+2
Use alloc_maybe_bootmem() which wraps the if (mem_init_done) malloc clause. Signed-off-by: Linas Vepstas <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-07-26Merge branch 'fixes-2.6.23' of ↵Paul Mackerras1-1/+1
master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into merge
2007-07-26[POWERPC] Add function to check if address is an IO portBenjamin Herrenschmidt1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-07-26[POWREPC] Fixup a number of modpost warnings on ppc32Kumar Gala1-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 <[email protected]>
2007-07-22[POWERPC] Quiet section mismatch warning on pcibios_setupStephen Rothwell1-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 <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2007-07-18Fix compile failure in arch/powerpc/kernel/pci-common.cTony Breeds1-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 <[email protected]> Tested-by: Bret Towe <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-06-29[POWERPC] Add copyright header to pci-common.c based on pci_{32,64}.cKumar Gala1-0/+9
Signed-off-by: Kumar Gala <[email protected]>
2007-06-29[POWERPC] Use ppc64 style list management for pci_controller on ppc32Kumar Gala1-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 <[email protected]>
2007-06-29[POWERPC] Move common PCI code out of pci_32/pci_64Kumar Gala1-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 <[email protected]>
2007-06-29[POWERPC] Use global_number in ppc32 pci_controllerKumar Gala1-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 <[email protected]>