Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e9740b1 authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Russell King
Browse files

[ARM] 3821/1: iop3xx: switch iop32x/iop33x over to shared pci code



Switch the iop32x and iop33x code over to the common PCI implementation,
and remove the (nearly identical) iop32x and iop33x PCI implementations.

Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 0cb015f9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the linux kernel.
#

obj-y			:= common.o setup.o irq.o pci.o time.o
obj-y			:= common.o setup.o irq.o time.o
obj-m			:=
obj-n			:=
obj-			:=
+0 −6
Original line number Diff line number Diff line
@@ -16,12 +16,6 @@
#include <asm/hardware.h>
#include <asm/hardware/iop3xx.h>

/*
 * Shared variables
 */
unsigned long iop3xx_pcibios_min_io = 0;
unsigned long iop3xx_pcibios_min_mem = 0;

#ifdef CONFIG_ARCH_EP80219
#include <linux/kernel.h>
/*
+3 −42
Original line number Diff line number Diff line
@@ -67,51 +67,12 @@ iq31244_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
	return PCI_IRQ_TABLE_LOOKUP(0, 7);
}

static int iq31244_setup(int nr, struct pci_sys_data *sys)
{
	struct resource *res;

	if(nr != 0)
		return 0;

	res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
	if (!res)
		panic("PCI: unable to alloc resources");

	res[0].start = IOP321_PCI_LOWER_IO_VA;
	res[0].end   = IOP321_PCI_UPPER_IO_VA;
	res[0].name  = "IQ31244 PCI I/O Space";
	res[0].flags = IORESOURCE_IO;

	res[1].start = IOP321_PCI_LOWER_MEM_PA;
	res[1].end   = IOP321_PCI_UPPER_MEM_PA;
	res[1].name  = "IQ31244 PCI Memory Space";
	res[1].flags = IORESOURCE_MEM;

	request_resource(&ioport_resource, &res[0]);
	request_resource(&iomem_resource, &res[1]);

	sys->mem_offset = IOP321_PCI_MEM_OFFSET;
	sys->io_offset  = IOP321_PCI_IO_OFFSET;

	sys->resource[0] = &res[0];
	sys->resource[1] = &res[1];
	sys->resource[2] = NULL;

	return 1;
}

static void iq31244_preinit(void)
{
	iop321_init();
}

static struct hw_pci iq31244_pci __initdata = {
	.swizzle	= pci_std_swizzle,
	.nr_controllers = 1,
	.setup		= iq31244_setup,
	.scan		= iop321_scan_bus,
	.preinit	= iq31244_preinit,
	.setup		= iop3xx_pci_setup,
	.scan		= iop3xx_pci_scan_bus,
	.preinit	= iop3xx_pci_preinit,
	.map_irq	= iq31244_map_irq
};

+3 −42
Original line number Diff line number Diff line
@@ -61,51 +61,12 @@ iq80321_map_irq(struct pci_dev *dev, u8 idsel, u8 pin)
	return pci_irq_table[idsel%4][pin-1];
}

static int iq80321_setup(int nr, struct pci_sys_data *sys)
{
	struct resource *res;

	if(nr != 0)
		return 0;

	res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
	if (!res)
		panic("PCI: unable to alloc resources");

	res[0].start = IOP321_PCI_LOWER_IO_VA;
	res[0].end   = IOP321_PCI_UPPER_IO_VA;
	res[0].name  = "IQ80321 PCI I/O Space";
	res[0].flags = IORESOURCE_IO;

	res[1].start = IOP321_PCI_LOWER_MEM_PA;
	res[1].end   = IOP321_PCI_UPPER_MEM_PA;
	res[1].name  = "IQ80321 PCI Memory Space";
	res[1].flags = IORESOURCE_MEM;

	request_resource(&ioport_resource, &res[0]);
	request_resource(&iomem_resource, &res[1]);

	sys->mem_offset = IOP321_PCI_MEM_OFFSET;
	sys->io_offset  = IOP321_PCI_IO_OFFSET;

	sys->resource[0] = &res[0];
	sys->resource[1] = &res[1];
	sys->resource[2] = NULL;

	return 1;
}

static void iq80321_preinit(void)
{
	iop321_init();
}

static struct hw_pci iq80321_pci __initdata = {
	.swizzle	= pci_std_swizzle,
	.nr_controllers = 1,
	.setup		= iq80321_setup,
	.scan		= iop321_scan_bus,
	.preinit	= iq80321_preinit,
	.setup		= iop3xx_pci_setup,
	.scan		= iop3xx_pci_scan_bus,
	.preinit	= iop3xx_pci_preinit,
	.map_irq	= iq80321_map_irq
};

+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ void __init iop321_init_irq(void)
	intstr_write(0);		// treat all as IRQ
	if(machine_is_iq80321() ||
	   machine_is_iq31244()) 	// all interrupts are inputs to chip
		*IOP321_PCIIRSR = 0x0f;
		*IOP3XX_PCIIRSR = 0x0f;

	for(i = IOP321_IRQ_OFS; i < NR_IRQS; i++)
	{
Loading