Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 309032
b: refs/heads/master
c: e2dbdc4
h: refs/heads/master
v: v3
  • Loading branch information
Gabor Juhos authored and Ralf Baechle committed May 15, 2012
1 parent 9f8541c commit b4b6a9c
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 35 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 97bf7a190082457f84467b28baed14c8147476f2
refs/heads/master: e2dbdc436b46250c8682ea57151a7afb45f271e1
1 change: 1 addition & 0 deletions trunk/arch/mips/ath79/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
obj-y := prom.o setup.o irq.o common.o clock.o gpio.o

obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_PCI) += pci.o

#
# Devices
Expand Down
46 changes: 46 additions & 0 deletions trunk/arch/mips/ath79/pci.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Atheros AR71XX/AR724X specific PCI setup code
*
* Copyright (C) 2011 René Bolldorf <xsecute@googlemail.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/

#include <linux/pci.h>
#include <asm/mach-ath79/pci-ath724x.h>

static struct ath724x_pci_data *pci_data;
static int pci_data_size;

void ath724x_pci_add_data(struct ath724x_pci_data *data, int size)
{
pci_data = data;
pci_data_size = size;
}

int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
{
unsigned int devfn = dev->devfn;
int irq = -1;

if (devfn > pci_data_size - 1)
return irq;

irq = pci_data[devfn].irq;

return irq;
}

int pcibios_plat_dev_init(struct pci_dev *dev)
{
unsigned int devfn = dev->devfn;

if (devfn > pci_data_size - 1)
return PCIBIOS_DEVICE_NOT_FOUND;

dev->dev.platform_data = pci_data[devfn].pdata;

return PCIBIOS_SUCCESSFUL;
}
34 changes: 0 additions & 34 deletions trunk/arch/mips/pci/pci-ath724x.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
*/

#include <linux/pci.h>
#include <asm/mach-ath79/pci-ath724x.h>

#define reg_read(_phys) (*(unsigned int *) KSEG1ADDR(_phys))
#define reg_write(_phys, _val) ((*(unsigned int *) KSEG1ADDR(_phys)) = (_val))
Expand All @@ -19,8 +18,6 @@
#define ATH724X_PCI_MEM_SIZE 0x08000000

static DEFINE_SPINLOCK(ath724x_pci_lock);
static struct ath724x_pci_data *pci_data;
static int pci_data_size;

static int ath724x_pci_read(struct pci_bus *bus, unsigned int devfn, int where,
int size, uint32_t *value)
Expand Down Expand Up @@ -133,37 +130,6 @@ static struct pci_controller ath724x_pci_controller = {
.mem_resource = &ath724x_mem_resource,
};

void ath724x_pci_add_data(struct ath724x_pci_data *data, int size)
{
pci_data = data;
pci_data_size = size;
}

int __init pcibios_map_irq(const struct pci_dev *dev, uint8_t slot, uint8_t pin)
{
unsigned int devfn = dev->devfn;
int irq = -1;

if (devfn > pci_data_size - 1)
return irq;

irq = pci_data[devfn].irq;

return irq;
}

int pcibios_plat_dev_init(struct pci_dev *dev)
{
unsigned int devfn = dev->devfn;

if (devfn > pci_data_size - 1)
return PCIBIOS_DEVICE_NOT_FOUND;

dev->dev.platform_data = pci_data[devfn].pdata;

return PCIBIOS_SUCCESSFUL;
}

static int __init ath724x_pcibios_init(void)
{
register_pci_controller(&ath724x_pci_controller);
Expand Down

0 comments on commit b4b6a9c

Please sign in to comment.