mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3540/1: ixp23xx: deal with gap in interrupt bitmasks [ARM] 3539/1: ixp23xx: fix __arch_ixp23xx_is_coherent() for A1 stepping
This commit is contained in:
commit
891eca1447
2 changed files with 16 additions and 4 deletions
|
@ -178,8 +178,12 @@ static int ixp23xx_irq_set_type(unsigned int irq, unsigned int type)
|
||||||
|
|
||||||
static void ixp23xx_irq_mask(unsigned int irq)
|
static void ixp23xx_irq_mask(unsigned int irq)
|
||||||
{
|
{
|
||||||
volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
volatile unsigned long *intr_reg;
|
||||||
|
|
||||||
|
if (irq >= 56)
|
||||||
|
irq += 8;
|
||||||
|
|
||||||
|
intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
||||||
*intr_reg &= ~(1 << (irq % 32));
|
*intr_reg &= ~(1 << (irq % 32));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,17 +203,25 @@ static void ixp23xx_irq_ack(unsigned int irq)
|
||||||
*/
|
*/
|
||||||
static void ixp23xx_irq_level_unmask(unsigned int irq)
|
static void ixp23xx_irq_level_unmask(unsigned int irq)
|
||||||
{
|
{
|
||||||
volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
volatile unsigned long *intr_reg;
|
||||||
|
|
||||||
ixp23xx_irq_ack(irq);
|
ixp23xx_irq_ack(irq);
|
||||||
|
|
||||||
|
if (irq >= 56)
|
||||||
|
irq += 8;
|
||||||
|
|
||||||
|
intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
||||||
*intr_reg |= (1 << (irq % 32));
|
*intr_reg |= (1 << (irq % 32));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ixp23xx_irq_edge_unmask(unsigned int irq)
|
static void ixp23xx_irq_edge_unmask(unsigned int irq)
|
||||||
{
|
{
|
||||||
volatile unsigned long *intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
volatile unsigned long *intr_reg;
|
||||||
|
|
||||||
|
if (irq >= 56)
|
||||||
|
irq += 8;
|
||||||
|
|
||||||
|
intr_reg = IXP23XX_INTR_EN1 + (irq / 32);
|
||||||
*intr_reg |= (1 << (irq % 32));
|
*intr_reg |= (1 << (irq % 32));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ static inline int __ixp23xx_arch_is_coherent(void)
|
||||||
{
|
{
|
||||||
extern unsigned int processor_id;
|
extern unsigned int processor_id;
|
||||||
|
|
||||||
if (((processor_id & 15) >= 2) || machine_is_roadrunner())
|
if (((processor_id & 15) >= 4) || machine_is_roadrunner())
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue