Commit 6998d718 authored by Anton Blanchard's avatar Anton Blanchard Committed by Linus Torvalds

[PATCH] ppc64: pci cleanup

Cleanup ppc64 pci code.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent b8ca38f1
......@@ -292,7 +292,6 @@ void iSeries_pcibios_init(void)
iomm_table_initialize();
find_and_init_phbs();
io_page_mask = -1;
/* pci_assign_all_busses = 0; SFRXXX*/
PPCDBG(PPCDBG_BUSWALK, "iSeries_pcibios_init Exit.\n");
}
......
......@@ -32,9 +32,6 @@
#define DBG(x...)
#endif
extern int pci_probe_only;
extern int pci_read_irq_line(struct pci_dev *pci_dev);
static struct pci_controller *u3_agp, *u3_ht;
static int __init fixup_one_level_bus_range(struct device_node *node, int higher)
......@@ -377,7 +374,7 @@ void __init maple_pcibios_fixup(void)
DBG(" -> maple_pcibios_fixup\n");
while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL)
for_each_pci_dev(dev)
pci_read_irq_line(dev);
/* Do the mapping of the IO space */
......
......@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/threads.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/bootmem.h>
......@@ -37,7 +36,6 @@
#include <asm/prom.h>
#include <asm/machdep.h>
#include <asm/pci-bridge.h>
#include <asm/ppcdebug.h>
#include <asm/naca.h>
#include <asm/iommu.h>
#include <asm/rtas.h>
......@@ -53,7 +51,6 @@ static int ibm_write_pci_config;
static int s7a_workaround;
extern unsigned long pci_probe_only;
extern struct mpic *pSeries_mpic;
static int rtas_read_config(struct device_node *dn, int where, int size, u32 *val)
......@@ -248,17 +245,16 @@ static enum phb_types get_phb_type(struct device_node *dev)
return type;
}
int get_phb_reg_prop(struct device_node *dev, unsigned int addr_size_words,
struct reg_property64 *reg)
static int get_phb_reg_prop(struct device_node *dev,
unsigned int addr_size_words,
struct reg_property64 *reg)
{
unsigned int *ui_ptr = NULL, len;
/* Found a PHB, now figure out where his registers are mapped. */
ui_ptr = (unsigned int *) get_property(dev, "reg", &len);
if (ui_ptr == NULL) {
PPCDBG(PPCDBG_PHBINIT, "\tget reg failed.\n");
if (ui_ptr == NULL)
return 1;
}
if (addr_size_words == 1) {
reg->address = ((struct reg_property32 *)ui_ptr)->address;
......@@ -270,7 +266,8 @@ int get_phb_reg_prop(struct device_node *dev, unsigned int addr_size_words,
return 0;
}
int phb_set_bus_ranges(struct device_node *dev, struct pci_controller *phb)
static int phb_set_bus_ranges(struct device_node *dev,
struct pci_controller *phb)
{
int *bus_range;
unsigned int len;
......
......@@ -16,14 +16,9 @@
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/capability.h>
#include <linux/sched.h>
#include <linux/errno.h>
#include <linux/bootmem.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/list.h>
......@@ -33,11 +28,8 @@
#include <asm/pci-bridge.h>
#include <asm/byteorder.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/ppcdebug.h>
#include <asm/naca.h>
#include <asm/iommu.h>
#include <asm/machdep.h>
#include <asm/udbg.h>
#include "pci.h"
......@@ -50,8 +42,10 @@
unsigned long pci_probe_only = 1;
unsigned long pci_assign_all_buses = 0;
/* legal IO pages under MAX_ISA_PORT. This is to ensure we don't touch
devices we don't have access to. */
/*
* legal IO pages under MAX_ISA_PORT. This is to ensure we don't touch
* devices we don't have access to.
*/
unsigned long io_page_mask;
EXPORT_SYMBOL(io_page_mask);
......@@ -702,7 +696,7 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary)
struct device_node *isa_dn;
hose->io_base_virt = reserve_phb_iospace(size);
PPCDBG(PPCDBG_PHBINIT, "phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
hose->global_number, hose->io_base_phys,
(unsigned long) hose->io_base_virt);
......@@ -733,7 +727,7 @@ void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose)
hose->io_base_virt = __ioremap(hose->io_base_phys, size,
_PAGE_NO_CACHE);
PPCDBG(PPCDBG_PHBINIT, "phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n",
hose->global_number, hose->io_base_phys,
(unsigned long) hose->io_base_virt);
......@@ -833,13 +827,10 @@ void phbs_remap_io(void)
}
/***********************************************************************
* pci_find_hose_for_OF_device
*
/*
* This function finds the PHB that matching device_node in the
* OpenFirmware by scanning all the pci_controllers.
*
***********************************************************************/
*/
struct pci_controller* pci_find_hose_for_OF_device(struct device_node *node)
{
while (node) {
......@@ -972,44 +963,31 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
}
EXPORT_SYMBOL(pcibios_fixup_bus);
/******************************************************************
* pci_read_irq_line
*
* Reads the Interrupt Pin to determine if interrupt is use by card.
/*
* Reads the interrupt pin to determine if interrupt is use by card.
* If the interrupt is used, then gets the interrupt line from the
* openfirmware and sets it in the pci_dev and pci_config line.
*
******************************************************************/
*/
int pci_read_irq_line(struct pci_dev *pci_dev)
{
u8 intpin;
struct device_node *node;
pci_read_config_byte(pci_dev, PCI_INTERRUPT_PIN, &intpin);
if (intpin == 0) {
PPCDBG(PPCDBG_BUSWALK,"\tDevice: %s No Interrupt used by device.\n",
pci_name(pci_dev));
return 0;
}
if (intpin == 0)
return 0;
node = pci_device_to_OF_node(pci_dev);
if (node == NULL) {
PPCDBG(PPCDBG_BUSWALK,"\tDevice: %s Device Node not found.\n",
pci_name(pci_dev));
return -1;
}
if (node->n_intrs == 0) {
PPCDBG(PPCDBG_BUSWALK,"\tDevice: %s No Device OF interrupts defined.\n",
pci_name(pci_dev));
return -1;
}
if (node == NULL)
return -1;
if (node->n_intrs == 0)
return -1;
pci_dev->irq = node->intrs[0].line;
pci_write_config_byte(pci_dev, PCI_INTERRUPT_LINE, pci_dev->irq);
PPCDBG(PPCDBG_BUSWALK,"\tDevice: %s pci_dev->irq = 0x%02X\n",
pci_name(pci_dev), pci_dev->irq);
return 0;
}
EXPORT_SYMBOL(pci_read_irq_line);
......
......@@ -25,16 +25,11 @@ extern void pci_setup_phb_io_dynamic(struct pci_controller *hose);
extern struct list_head hose_list;
extern int global_phb_number;
/*******************************************************************
* Platform functions that are brand specific implementation.
*******************************************************************/
extern unsigned long find_and_init_phbs(void);
extern struct pci_dev *ppc64_isabridge_dev; /* may be NULL if no ISA bus */
/*******************************************************************
* PCI device_node operations
*******************************************************************/
/* PCI device_node operations */
struct device_node;
typedef void *(*traverse_func)(struct device_node *me, void *data);
void *traverse_pci_devices(struct device_node *start, traverse_func pre,
......@@ -55,5 +50,7 @@ void pci_addr_cache_remove_device(struct pci_dev *dev);
void init_pci_config_tokens (void);
unsigned long get_phb_buid (struct device_node *);
extern int pci_probe_only;
extern int pci_read_irq_line(struct pci_dev *pci_dev);
#endif /* __PPC_KERNEL_PCI_H__ */
......@@ -39,9 +39,6 @@
#define DBG(x...)
#endif
extern int pci_probe_only;
extern int pci_read_irq_line(struct pci_dev *pci_dev);
/* XXX Could be per-controller, but I don't think we risk anything by
* assuming we won't have both UniNorth and Bandit */
static int has_uninorth;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment