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

Commit a12e6062 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume
  [ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC
  [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code
  [ARM] 4667/1: CM-X270 fixes
parents aa62a869 553876c8
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -537,7 +537,7 @@ config ISA_DMA_API
	bool

config PCI
	bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
	bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
@@ -558,6 +558,12 @@ config PCI_HOST_VIA82C505
	depends on PCI && ARCH_SHARK
	default y

config PCI_HOST_ITE8152
	bool
	depends on PCI && MACH_ARMCORE
	default y
	select DMABOUNCE

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
		.macro	loadsp, rb
		.endm
		.macro	writeb, ch, rb
		mcr	p14, 0, \ch, c0, c1, 0
		mcr	p14, 0, \ch, c1, c0, 0
		.endm
#endif

+2 −8
Original line number Diff line number Diff line
@@ -70,8 +70,6 @@ static inline void it8152_irq(int irq)
{
	struct irq_desc *desc;

	printk(KERN_DEBUG "===> %s: irq=%d\n", __FUNCTION__, irq);

	desc = irq_desc + irq;
	desc_handle_irq(irq, desc);
}
@@ -106,8 +104,6 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
       int bits_pd, bits_lp, bits_ld;
       int i;

       printk(KERN_DEBUG "=> %s: irq = %d\n", __FUNCTION__, irq);

       while (1) {
	       /* Read all */
	       bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
@@ -293,8 +289,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size)
 */
int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
{
	printk(KERN_DEBUG "%s: %s %llx\n",
	       __FUNCTION__, dev->dev.bus_id, mask);
	dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask);
	if (mask >= PHYS_OFFSET + SZ_64M - 1)
		return 0;

@@ -304,8 +299,7 @@ int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
int
pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
{
	printk(KERN_DEBUG "%s: %s %llx\n",
	       __FUNCTION__, dev->dev.bus_id, mask);
	dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask);
	if (mask >= PHYS_OFFSET + SZ_64M - 1)
		return 0;

+7 −3
Original line number Diff line number Diff line
@@ -442,7 +442,8 @@ static int ixp4xx_set_next_event(unsigned long evt,
static void ixp4xx_set_mode(enum clock_event_mode mode,
			    struct clock_event_device *evt)
{
	unsigned long opts, osrt = *IXP4XX_OSRT1 & ~IXP4XX_OST_RELOAD_MASK;
	unsigned long opts = *IXP4XX_OSRT1 & IXP4XX_OST_RELOAD_MASK;
	unsigned long osrt = *IXP4XX_OSRT1 & ~IXP4XX_OST_RELOAD_MASK;

	switch (mode) {
	case CLOCK_EVT_MODE_PERIODIC:
@@ -455,12 +456,15 @@ static void ixp4xx_set_mode(enum clock_event_mode mode,
		opts = IXP4XX_OST_ENABLE | IXP4XX_OST_ONE_SHOT;
		break;
	case CLOCK_EVT_MODE_SHUTDOWN:
		opts &= ~IXP4XX_OST_ENABLE;
		break;
	case CLOCK_EVT_MODE_RESUME:
		opts |= IXP4XX_OST_ENABLE;
		break;
	case CLOCK_EVT_MODE_UNUSED:
	default:
		osrt = opts = 0;
		break;
	case CLOCK_EVT_MODE_RESUME:
		break;
	}

	*IXP4XX_OSRT1 = osrt | opts;
+8 −10
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ void __init cmx270_pci_adjust_zones(int node, unsigned long *zone_size,
{
	unsigned int sz = SZ_64M >> PAGE_SHIFT;

	printk(KERN_INFO "Adjusting zones for CM-x270\n");
	pr_info("Adjusting zones for CM-x270\n");

	/*
	 * Only adjust if > 64M on current system
@@ -104,8 +104,7 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
{
	int irq;

	printk(KERN_DEBUG "===> %s: %s slot=%x, pin=%x\n", __FUNCTION__,
	       pci_name(dev), slot, pin);
	dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __FUNCTION__, slot, pin);

	irq = it8152_pci_map_irq(dev, slot, pin);
	if (irq)
@@ -141,14 +140,13 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
	return(0);
}

static struct pci_bus * __init
cmx270_pci_scan_bus(int nr, struct pci_sys_data *sys)
static void cmx270_pci_preinit(void)
{
	printk(KERN_INFO "Initializing CM-X270 PCI subsystem\n");
	pr_info("Initializing CM-X270 PCI subsystem\n");

	__raw_writel(0x800, IT8152_PCI_CFG_ADDR);
	if (__raw_readl(IT8152_PCI_CFG_DATA) == 0x81521283) {
		printk(KERN_INFO "PCI Bridge found.\n");
		pr_info("PCI Bridge found.\n");

		/* set PCI I/O base at 0 */
		writel(0x848, IT8152_PCI_CFG_ADDR);
@@ -163,7 +161,7 @@ cmx270_pci_scan_bus(int nr, struct pci_sys_data *sys)
		/* CardBus Controller on ATXbase baseboard */
		writel(0x4000, IT8152_PCI_CFG_ADDR);
		if (readl(IT8152_PCI_CFG_DATA) == 0xAC51104C) {
			printk(KERN_INFO "CardBus Bridge found.\n");
			pr_info("CardBus Bridge found.\n");

			/* Configure socket 0 */
			writel(0x408C, IT8152_PCI_CFG_ADDR);
@@ -196,7 +194,6 @@ cmx270_pci_scan_bus(int nr, struct pci_sys_data *sys)
			writel(0xb0000000, IT8152_PCI_CFG_DATA);
		}
	}
	return it8152_pci_scan_bus(nr, sys);
}

static struct hw_pci cmx270_pci __initdata = {
@@ -204,7 +201,8 @@ static struct hw_pci cmx270_pci __initdata = {
	.map_irq	= cmx270_pci_map_irq,
	.nr_controllers	= 1,
	.setup		= it8152_pci_setup,
	.scan		= cmx270_pci_scan_bus,
	.scan		= it8152_pci_scan_bus,
	.preinit	= cmx270_pci_preinit,
};

static int __init cmx270_init_pci(void)
Loading