diff options
Diffstat (limited to 'arch/mips/vr41xx')
| -rw-r--r-- | arch/mips/vr41xx/common/bcu.c | 4 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/cmu.c | 16 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/giu.c | 3 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/icu.c | 84 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/irq.c | 21 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/pmu.c | 4 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/rtc.c | 3 | ||||
| -rw-r--r-- | arch/mips/vr41xx/common/type.c | 2 | 
8 files changed, 68 insertions, 69 deletions
diff --git a/arch/mips/vr41xx/common/bcu.c b/arch/mips/vr41xx/common/bcu.c index 6346c59c9f9..ff7d1c66cf8 100644 --- a/arch/mips/vr41xx/common/bcu.c +++ b/arch/mips/vr41xx/common/bcu.c @@ -1,7 +1,7 @@  /*   *  bcu.c, Bus Control Unit routines for the NEC VR4100 series.   * - *  Copyright (C) 2002  MontaVista Software Inc. + *  Copyright (C) 2002	MontaVista Software Inc.   *    Author: Yoichi Yuasa <source@mvista.com>   *  Copyright (C) 2003-2005  Yoichi Yuasa <yuasa@linux-mips.org>   * @@ -176,7 +176,7 @@ static inline unsigned long calculate_vtclock(uint16_t clkspeed, unsigned long p  }  static inline unsigned long calculate_tclock(uint16_t clkspeed, unsigned long pclock, -                                             unsigned long vtclock) +					     unsigned long vtclock)  {  	unsigned long tclock = 0; diff --git a/arch/mips/vr41xx/common/cmu.c b/arch/mips/vr41xx/common/cmu.c index 8ba7d04a5ec..05302bfdd11 100644 --- a/arch/mips/vr41xx/common/cmu.c +++ b/arch/mips/vr41xx/common/cmu.c @@ -217,24 +217,24 @@ static int __init vr41xx_cmu_init(void)  	unsigned long start, size;  	switch (current_cpu_type()) { -        case CPU_VR4111: -        case CPU_VR4121: +	case CPU_VR4111: +	case CPU_VR4121:  		start = CMU_TYPE1_BASE;  		size = CMU_TYPE1_SIZE; -                break; -        case CPU_VR4122: -        case CPU_VR4131: +		break; +	case CPU_VR4122: +	case CPU_VR4131:  		start = CMU_TYPE2_BASE;  		size = CMU_TYPE2_SIZE;  		break; -        case CPU_VR4133: +	case CPU_VR4133:  		start = CMU_TYPE3_BASE;  		size = CMU_TYPE3_SIZE; -                break; +		break;  	default:  		panic("Unexpected CPU of NEC VR4100 series");  		break; -        } +	}  	if (request_mem_region(start, size, "CMU") == NULL)  		return -EBUSY; diff --git a/arch/mips/vr41xx/common/giu.c b/arch/mips/vr41xx/common/giu.c index 22cc6f2100a..32cc8d66b34 100644 --- a/arch/mips/vr41xx/common/giu.c +++ b/arch/mips/vr41xx/common/giu.c @@ -1,7 +1,7 @@  /*   *  NEC VR4100 series GIU platform device.   * - *  Copyright (C) 2007  Yoichi Yuasa <yuasa@linux-mips.org> + *  Copyright (C) 2007	Yoichi Yuasa <yuasa@linux-mips.org>   *   *  This program is free software; you can redistribute it and/or modify   *  it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@   */  #include <linux/errno.h>  #include <linux/init.h> +#include <linux/smp.h>  #include <linux/ioport.h>  #include <linux/platform_device.h> diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c index 6153b6a05cc..41e873bc847 100644 --- a/arch/mips/vr41xx/common/icu.c +++ b/arch/mips/vr41xx/common/icu.c @@ -49,11 +49,11 @@ static unsigned char sysint1_assign[16] = {  static unsigned char sysint2_assign[16] = {  	2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -#define ICU1_TYPE1_BASE	0x0b000080UL -#define ICU2_TYPE1_BASE	0x0b000200UL +#define ICU1_TYPE1_BASE 0x0b000080UL +#define ICU2_TYPE1_BASE 0x0b000200UL -#define ICU1_TYPE2_BASE	0x0f000080UL -#define ICU2_TYPE2_BASE	0x0f0000a0UL +#define ICU1_TYPE2_BASE 0x0f000080UL +#define ICU2_TYPE2_BASE 0x0f0000a0UL  #define ICU1_SIZE	0x20  #define ICU2_SIZE	0x1c @@ -154,7 +154,7 @@ static inline uint16_t icu2_clear(uint8_t offset, uint16_t clear)  void vr41xx_enable_piuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + PIU_IRQ; +	struct irq_desc *desc = irq_to_desc(PIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -169,7 +169,7 @@ EXPORT_SYMBOL(vr41xx_enable_piuint);  void vr41xx_disable_piuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + PIU_IRQ; +	struct irq_desc *desc = irq_to_desc(PIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -184,7 +184,7 @@ EXPORT_SYMBOL(vr41xx_disable_piuint);  void vr41xx_enable_aiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + AIU_IRQ; +	struct irq_desc *desc = irq_to_desc(AIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -199,7 +199,7 @@ EXPORT_SYMBOL(vr41xx_enable_aiuint);  void vr41xx_disable_aiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + AIU_IRQ; +	struct irq_desc *desc = irq_to_desc(AIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -214,7 +214,7 @@ EXPORT_SYMBOL(vr41xx_disable_aiuint);  void vr41xx_enable_kiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + KIU_IRQ; +	struct irq_desc *desc = irq_to_desc(KIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -229,7 +229,7 @@ EXPORT_SYMBOL(vr41xx_enable_kiuint);  void vr41xx_disable_kiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + KIU_IRQ; +	struct irq_desc *desc = irq_to_desc(KIU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4111 || @@ -244,7 +244,7 @@ EXPORT_SYMBOL(vr41xx_disable_kiuint);  void vr41xx_enable_macint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + ETHERNET_IRQ; +	struct irq_desc *desc = irq_to_desc(ETHERNET_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -256,7 +256,7 @@ EXPORT_SYMBOL(vr41xx_enable_macint);  void vr41xx_disable_macint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + ETHERNET_IRQ; +	struct irq_desc *desc = irq_to_desc(ETHERNET_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -268,7 +268,7 @@ EXPORT_SYMBOL(vr41xx_disable_macint);  void vr41xx_enable_dsiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + DSIU_IRQ; +	struct irq_desc *desc = irq_to_desc(DSIU_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -280,7 +280,7 @@ EXPORT_SYMBOL(vr41xx_enable_dsiuint);  void vr41xx_disable_dsiuint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + DSIU_IRQ; +	struct irq_desc *desc = irq_to_desc(DSIU_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -292,7 +292,7 @@ EXPORT_SYMBOL(vr41xx_disable_dsiuint);  void vr41xx_enable_firint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + FIR_IRQ; +	struct irq_desc *desc = irq_to_desc(FIR_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -304,7 +304,7 @@ EXPORT_SYMBOL(vr41xx_enable_firint);  void vr41xx_disable_firint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + FIR_IRQ; +	struct irq_desc *desc = irq_to_desc(FIR_IRQ);  	unsigned long flags;  	raw_spin_lock_irqsave(&desc->lock, flags); @@ -316,7 +316,7 @@ EXPORT_SYMBOL(vr41xx_disable_firint);  void vr41xx_enable_pciint(void)  { -	struct irq_desc *desc = irq_desc + PCI_IRQ; +	struct irq_desc *desc = irq_to_desc(PCI_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -332,7 +332,7 @@ EXPORT_SYMBOL(vr41xx_enable_pciint);  void vr41xx_disable_pciint(void)  { -	struct irq_desc *desc = irq_desc + PCI_IRQ; +	struct irq_desc *desc = irq_to_desc(PCI_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -348,7 +348,7 @@ EXPORT_SYMBOL(vr41xx_disable_pciint);  void vr41xx_enable_scuint(void)  { -	struct irq_desc *desc = irq_desc + SCU_IRQ; +	struct irq_desc *desc = irq_to_desc(SCU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -364,7 +364,7 @@ EXPORT_SYMBOL(vr41xx_enable_scuint);  void vr41xx_disable_scuint(void)  { -	struct irq_desc *desc = irq_desc + SCU_IRQ; +	struct irq_desc *desc = irq_to_desc(SCU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -380,7 +380,7 @@ EXPORT_SYMBOL(vr41xx_disable_scuint);  void vr41xx_enable_csiint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + CSI_IRQ; +	struct irq_desc *desc = irq_to_desc(CSI_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -396,7 +396,7 @@ EXPORT_SYMBOL(vr41xx_enable_csiint);  void vr41xx_disable_csiint(uint16_t mask)  { -	struct irq_desc *desc = irq_desc + CSI_IRQ; +	struct irq_desc *desc = irq_to_desc(CSI_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -412,7 +412,7 @@ EXPORT_SYMBOL(vr41xx_disable_csiint);  void vr41xx_enable_bcuint(void)  { -	struct irq_desc *desc = irq_desc + BCU_IRQ; +	struct irq_desc *desc = irq_to_desc(BCU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -428,7 +428,7 @@ EXPORT_SYMBOL(vr41xx_enable_bcuint);  void vr41xx_disable_bcuint(void)  { -	struct irq_desc *desc = irq_desc + BCU_IRQ; +	struct irq_desc *desc = irq_to_desc(BCU_IRQ);  	unsigned long flags;  	if (current_cpu_type() == CPU_VR4122 || @@ -442,45 +442,41 @@ void vr41xx_disable_bcuint(void)  EXPORT_SYMBOL(vr41xx_disable_bcuint); -static void disable_sysint1_irq(unsigned int irq) +static void disable_sysint1_irq(struct irq_data *d)  { -	icu1_clear(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq)); +	icu1_clear(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(d->irq));  } -static void enable_sysint1_irq(unsigned int irq) +static void enable_sysint1_irq(struct irq_data *d)  { -	icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq)); +	icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(d->irq));  }  static struct irq_chip sysint1_irq_type = {  	.name		= "SYSINT1", -	.ack		= disable_sysint1_irq, -	.mask		= disable_sysint1_irq, -	.mask_ack	= disable_sysint1_irq, -	.unmask		= enable_sysint1_irq, +	.irq_mask	= disable_sysint1_irq, +	.irq_unmask	= enable_sysint1_irq,  }; -static void disable_sysint2_irq(unsigned int irq) +static void disable_sysint2_irq(struct irq_data *d)  { -	icu2_clear(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq)); +	icu2_clear(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(d->irq));  } -static void enable_sysint2_irq(unsigned int irq) +static void enable_sysint2_irq(struct irq_data *d)  { -	icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq)); +	icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(d->irq));  }  static struct irq_chip sysint2_irq_type = {  	.name		= "SYSINT2", -	.ack		= disable_sysint2_irq, -	.mask		= disable_sysint2_irq, -	.mask_ack	= disable_sysint2_irq, -	.unmask		= enable_sysint2_irq, +	.irq_mask	= disable_sysint2_irq, +	.irq_unmask	= enable_sysint2_irq,  };  static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)  { -	struct irq_desc *desc = irq_desc + irq; +	struct irq_desc *desc = irq_to_desc(irq);  	uint16_t intassign0, intassign1;  	unsigned int pin; @@ -540,7 +536,7 @@ static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)  static inline int set_sysint2_assign(unsigned int irq, unsigned char assign)  { -	struct irq_desc *desc = irq_desc + irq; +	struct irq_desc *desc = irq_to_desc(irq);  	uint16_t intassign2, intassign3;  	unsigned int pin; @@ -714,11 +710,11 @@ static int __init vr41xx_icu_init(void)  	icu2_write(MGIUINTHREG, 0xffff);  	for (i = SYSINT1_IRQ_BASE; i <= SYSINT1_IRQ_LAST; i++) -		set_irq_chip_and_handler(i, &sysint1_irq_type, +		irq_set_chip_and_handler(i, &sysint1_irq_type,  					 handle_level_irq);  	for (i = SYSINT2_IRQ_BASE; i <= SYSINT2_IRQ_LAST; i++) -		set_irq_chip_and_handler(i, &sysint2_irq_type, +		irq_set_chip_and_handler(i, &sysint2_irq_type,  					 handle_level_irq);  	cascade_irq(INT0_IRQ, icu_get_irq); diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c index 0975eb72d38..ae0e4ee6c61 100644 --- a/arch/mips/vr41xx/common/irq.c +++ b/arch/mips/vr41xx/common/irq.c @@ -22,7 +22,6 @@  #include <linux/irq.h>  #include <asm/irq_cpu.h> -#include <asm/system.h>  #include <asm/vr41xx/irq.h>  typedef struct irq_cascade { @@ -34,6 +33,7 @@ static irq_cascade_t irq_cascade[NR_IRQS] __cacheline_aligned;  static struct irqaction cascade_irqaction = {  	.handler	= no_action,  	.name		= "cascade", +	.flags		= IRQF_NO_THREAD,  };  int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int)) @@ -62,7 +62,6 @@ EXPORT_SYMBOL_GPL(cascade_irq);  static void irq_dispatch(unsigned int irq)  {  	irq_cascade_t *cascade; -	struct irq_desc *desc;  	if (irq >= NR_IRQS) {  		atomic_inc(&irq_err_count); @@ -71,14 +70,16 @@ static void irq_dispatch(unsigned int irq)  	cascade = irq_cascade + irq;  	if (cascade->get_irq != NULL) { -		unsigned int source_irq = irq; +		struct irq_desc *desc = irq_to_desc(irq); +		struct irq_data *idata = irq_desc_get_irq_data(desc); +		struct irq_chip *chip = irq_desc_get_chip(desc);  		int ret; -		desc = irq_desc + source_irq; -		if (desc->chip->mask_ack) -			desc->chip->mask_ack(source_irq); + +		if (chip->irq_mask_ack) +			chip->irq_mask_ack(idata);  		else { -			desc->chip->mask(source_irq); -			desc->chip->ack(source_irq); +			chip->irq_mask(idata); +			chip->irq_ack(idata);  		}  		ret = cascade->get_irq(irq);  		irq = ret; @@ -86,8 +87,8 @@ static void irq_dispatch(unsigned int irq)  			atomic_inc(&irq_err_count);  		else  			irq_dispatch(irq); -		if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) -			desc->chip->unmask(source_irq); +		if (!irqd_irq_disabled(idata) && chip->irq_unmask) +			chip->irq_unmask(idata);  	} else  		do_IRQ(irq);  } diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c index 692b4e85b7f..d7f755833c3 100644 --- a/arch/mips/vr41xx/common/pmu.c +++ b/arch/mips/vr41xx/common/pmu.c @@ -27,10 +27,10 @@  #include <asm/cacheflush.h>  #include <asm/cpu.h> +#include <asm/idle.h>  #include <asm/io.h>  #include <asm/processor.h>  #include <asm/reboot.h> -#include <asm/system.h>  #define PMU_TYPE1_BASE	0x0b0000a0UL  #define PMU_TYPE1_SIZE	0x0eUL @@ -75,7 +75,7 @@ static inline void software_reset(void)  		change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);  		flush_cache_all();  		write_c0_wired(0); -		__asm__("jr     %0"::"r"(0xbfc00000)); +		__asm__("jr	%0"::"r"(0xbfc00000));  		break;  	}  } diff --git a/arch/mips/vr41xx/common/rtc.c b/arch/mips/vr41xx/common/rtc.c index ebc5dcf0ed8..c1e3d200920 100644 --- a/arch/mips/vr41xx/common/rtc.c +++ b/arch/mips/vr41xx/common/rtc.c @@ -1,7 +1,7 @@  /*   *  NEC VR4100 series RTC platform device.   * - *  Copyright (C) 2007  Yoichi Yuasa <yuasa@linux-mips.org> + *  Copyright (C) 2007	Yoichi Yuasa <yuasa@linux-mips.org>   *   *  This program is free software; you can redistribute it and/or modify   *  it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@   */  #include <linux/errno.h>  #include <linux/init.h> +#include <linux/smp.h>  #include <linux/ioport.h>  #include <linux/platform_device.h> diff --git a/arch/mips/vr41xx/common/type.c b/arch/mips/vr41xx/common/type.c index ff841422b63..45836a92b7a 100644 --- a/arch/mips/vr41xx/common/type.c +++ b/arch/mips/vr41xx/common/type.c @@ -1,7 +1,7 @@  /*   *  type.c, System type for NEC VR4100 series.   * - *  Copyright (C) 2005  Yoichi Yuasa <yuasa@linux-mips.org> + *  Copyright (C) 2005	Yoichi Yuasa <yuasa@linux-mips.org>   *   *  This program is free software; you can redistribute it and/or modify   *  it under the terms of the GNU General Public License as published by  | 
