Skip to content

Commit

Permalink
powerpc/pci: Clean up direct access to sysdata by celleb platforms
Browse files Browse the repository at this point in the history
We shouldn't directly access sysdata to get the device node to just
go get the pci_controller.  We can call pci_bus_to_host() for this
purpose.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Kumar Gala authored and Benjamin Herrenschmidt committed May 21, 2009
1 parent 2f52297 commit 58513dc
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 29 deletions.
10 changes: 2 additions & 8 deletions arch/powerpc/platforms/cell/celleb_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,17 +162,14 @@ static int celleb_fake_pci_read_config(struct pci_bus *bus,
unsigned int devfn, int where, int size, u32 *val)
{
char *config;
struct device_node *node;
struct pci_controller *hose;
struct pci_controller *hose = pci_bus_to_host(bus);
unsigned int devno = devfn >> 3;
unsigned int fn = devfn & 0x7;

/* allignment check */
BUG_ON(where % size);

pr_debug(" fake read: bus=0x%x, ", bus->number);
node = (struct device_node *)bus->sysdata;
hose = pci_find_hose_for_OF_device(node);
config = get_fake_config_start(hose, devno, fn);

pr_debug("devno=0x%x, where=0x%x, size=0x%x, ", devno, where, size);
Expand All @@ -192,17 +189,14 @@ static int celleb_fake_pci_write_config(struct pci_bus *bus,
unsigned int devfn, int where, int size, u32 val)
{
char *config;
struct device_node *node;
struct pci_controller *hose;
struct pci_controller *hose = pci_bus_to_host(bus);
struct celleb_pci_resource *res;
unsigned int devno = devfn >> 3;
unsigned int fn = devfn & 0x7;

/* allignment check */
BUG_ON(where % size);

node = (struct device_node *)bus->sysdata;
hose = pci_find_hose_for_OF_device(node);
config = get_fake_config_start(hose, devno, fn);

if (!config)
Expand Down
13 changes: 2 additions & 11 deletions arch/powerpc/platforms/cell/celleb_scc_epci.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,11 @@ static int celleb_epci_read_config(struct pci_bus *bus,
{
PCI_IO_ADDR epci_base;
PCI_IO_ADDR addr;
struct device_node *node;
struct pci_controller *hose;
struct pci_controller *hose = pci_bus_to_host(bus);

/* allignment check */
BUG_ON(where % size);

node = (struct device_node *)bus->sysdata;
hose = pci_find_hose_for_OF_device(node);

if (!celleb_epci_get_epci_cfg(hose))
return PCIBIOS_DEVICE_NOT_FOUND;

Expand Down Expand Up @@ -198,16 +194,11 @@ static int celleb_epci_write_config(struct pci_bus *bus,
{
PCI_IO_ADDR epci_base;
PCI_IO_ADDR addr;
struct device_node *node;
struct pci_controller *hose;
struct pci_controller *hose = pci_bus_to_host(bus);

/* allignment check */
BUG_ON(where % size);

node = (struct device_node *)bus->sysdata;
hose = pci_find_hose_for_OF_device(node);


if (!celleb_epci_get_epci_cfg(hose))
return PCIBIOS_DEVICE_NOT_FOUND;

Expand Down
12 changes: 2 additions & 10 deletions arch/powerpc/platforms/cell/celleb_scc_pciex.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,11 +366,7 @@ static void config_write_pciex_rc(unsigned int __iomem *base, uint32_t where,
static int scc_pciex_read_config(struct pci_bus *bus, unsigned int devfn,
int where, int size, unsigned int *val)
{
struct device_node *dn;
struct pci_controller *phb;

dn = bus->sysdata;
phb = pci_find_hose_for_OF_device(dn);
struct pci_controller *phb = pci_bus_to_host(bus);

if (bus->number == phb->first_busno && PCI_SLOT(devfn) != 1) {
*val = ~0;
Expand All @@ -389,11 +385,7 @@ static int scc_pciex_read_config(struct pci_bus *bus, unsigned int devfn,
static int scc_pciex_write_config(struct pci_bus *bus, unsigned int devfn,
int where, int size, unsigned int val)
{
struct device_node *dn;
struct pci_controller *phb;

dn = bus->sysdata;
phb = pci_find_hose_for_OF_device(dn);
struct pci_controller *phb = pci_bus_to_host(bus);

if (bus->number == phb->first_busno && PCI_SLOT(devfn) != 1)
return PCIBIOS_DEVICE_NOT_FOUND;
Expand Down

0 comments on commit 58513dc

Please sign in to comment.