Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 254868
b: refs/heads/master
c: a065685
h: refs/heads/master
v: v3
  • Loading branch information
Linus Walleij authored and Eric Miao committed Jul 11, 2011
1 parent d83270f commit 6bb40b0
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 40 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: 659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5
refs/heads/master: a065685d2f0b4bb69d0f64d2cd396a5c463db2a9
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-davinci/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ davinci_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)

gc = irq_alloc_generic_chip("AINTC", 1, irq_start, base, handle_edge_irq);
ct = gc->chip_types;
ct->chip.irq_ack = irq_gc_ack_set_bit;
ct->chip.irq_ack = irq_gc_ack;
ct->chip.irq_mask = irq_gc_mask_clr_bit;
ct->chip.irq_unmask = irq_gc_mask_set_bit;

Expand Down
21 changes: 9 additions & 12 deletions trunk/arch/arm/mach-vt8500/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,9 @@
static void __iomem *ic_regbase;
static void __iomem *sic_regbase;

static void vt8500_irq_mask(struct irq_data *d)
static void vt8500_irq_mask(unsigned int irq)
{
void __iomem *base = ic_regbase;
unsigned irq = d->irq;
u8 edge;

if (irq >= 64) {
Expand All @@ -65,10 +64,9 @@ static void vt8500_irq_mask(struct irq_data *d)
}
}

static void vt8500_irq_unmask(struct irq_data *d)
static void vt8500_irq_unmask(unsigned int irq)
{
void __iomem *base = ic_regbase;
unsigned irq = d->irq;
u8 dctr;

if (irq >= 64) {
Expand All @@ -80,11 +78,10 @@ static void vt8500_irq_unmask(struct irq_data *d)
writeb(dctr, base + VT8500_IC_DCTR + irq);
}

static int vt8500_irq_set_type(struct irq_data *d, unsigned int flow_type)
static int vt8500_irq_set_type(unsigned int irq, unsigned int flow_type)
{
void __iomem *base = ic_regbase;
unsigned irq = d->irq;
unsigned orig_irq = irq;
unsigned int orig_irq = irq;
u8 dctr;

if (irq >= 64) {
Expand Down Expand Up @@ -117,11 +114,11 @@ static int vt8500_irq_set_type(struct irq_data *d, unsigned int flow_type)
}

static struct irq_chip vt8500_irq_chip = {
.name = "vt8500",
.irq_ack = vt8500_irq_mask,
.irq_mask = vt8500_irq_mask,
.irq_unmask = vt8500_irq_unmask,
.irq_set_type = vt8500_irq_set_type,
.name = "vt8500",
.ack = vt8500_irq_mask,
.mask = vt8500_irq_mask,
.unmask = vt8500_irq_unmask,
.set_type = vt8500_irq_set_type,
};

void __init vt8500_init_irq(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/plat-orion/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ void __init orion_gpio_init(int gpio_base, int ngpio,
ct->regs.mask = ochip->mask_offset + GPIO_EDGE_MASK_OFF;
ct->regs.ack = GPIO_EDGE_CAUSE_OFF;
ct->type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
ct->chip.irq_ack = irq_gc_ack_clr_bit;
ct->chip.irq_ack = irq_gc_ack;
ct->chip.irq_mask = irq_gc_mask_clr_bit;
ct->chip.irq_unmask = irq_gc_mask_set_bit;
ct->chip.irq_set_type = gpio_irq_set_type;
Expand Down
10 changes: 5 additions & 5 deletions trunk/arch/arm/plat-pxa/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ static inline void __iomem *gpio_chip_base(struct gpio_chip *c)
return container_of(c, struct pxa_gpio_chip, chip)->regbase;
}

static inline struct pxa_gpio_chip *gpio_to_chip(unsigned gpio)
static inline struct pxa_gpio_chip *gpio_to_pxachip(unsigned gpio)
{
return &pxa_gpio_chips[gpio_to_bank(gpio)];
}
Expand Down Expand Up @@ -161,7 +161,7 @@ static int pxa_gpio_irq_type(struct irq_data *d, unsigned int type)
int gpio = irq_to_gpio(d->irq);
unsigned long gpdr, mask = GPIO_bit(gpio);

c = gpio_to_chip(gpio);
c = gpio_to_pxachip(gpio);

if (type == IRQ_TYPE_PROBE) {
/* Don't mess with enabled GPIOs using preconfigured edges or
Expand Down Expand Up @@ -230,15 +230,15 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
static void pxa_ack_muxed_gpio(struct irq_data *d)
{
int gpio = irq_to_gpio(d->irq);
struct pxa_gpio_chip *c = gpio_to_chip(gpio);
struct pxa_gpio_chip *c = gpio_to_pxachip(gpio);

__raw_writel(GPIO_bit(gpio), c->regbase + GEDR_OFFSET);
}

static void pxa_mask_muxed_gpio(struct irq_data *d)
{
int gpio = irq_to_gpio(d->irq);
struct pxa_gpio_chip *c = gpio_to_chip(gpio);
struct pxa_gpio_chip *c = gpio_to_pxachip(gpio);
uint32_t grer, gfer;

c->irq_mask &= ~GPIO_bit(gpio);
Expand All @@ -252,7 +252,7 @@ static void pxa_mask_muxed_gpio(struct irq_data *d)
static void pxa_unmask_muxed_gpio(struct irq_data *d)
{
int gpio = irq_to_gpio(d->irq);
struct pxa_gpio_chip *c = gpio_to_chip(gpio);
struct pxa_gpio_chip *c = gpio_to_pxachip(gpio);

c->irq_mask |= GPIO_bit(gpio);
update_edge_detect(c);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/plat-s5p/irq-gpioint.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ static __init int s5p_gpioint_add(struct s3c_gpio_chip *chip)
if (!gc)
return -ENOMEM;
ct = gc->chip_types;
ct->chip.irq_ack = irq_gc_ack_set_bit;
ct->chip.irq_ack = irq_gc_ack;
ct->chip.irq_mask = irq_gc_mask_set_bit;
ct->chip.irq_unmask = irq_gc_mask_clr_bit;
ct->chip.irq_set_type = s5p_gpioint_set_type,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/plat-samsung/irq-uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ static void __init s3c_init_uart_irq(struct s3c_uart_irq *uirq)
gc = irq_alloc_generic_chip("s3c-uart", 1, uirq->base_irq, reg_base,
handle_level_irq);
ct = gc->chip_types;
ct->chip.irq_ack = irq_gc_ack_set_bit;
ct->chip.irq_ack = irq_gc_ack;
ct->chip.irq_mask = irq_gc_mask_set_bit;
ct->chip.irq_unmask = irq_gc_mask_clr_bit;
ct->regs.ack = S3C64XX_UINTP;
Expand Down
3 changes: 1 addition & 2 deletions trunk/include/linux/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -676,8 +676,7 @@ void irq_gc_mask_disable_reg(struct irq_data *d);
void irq_gc_mask_set_bit(struct irq_data *d);
void irq_gc_mask_clr_bit(struct irq_data *d);
void irq_gc_unmask_enable_reg(struct irq_data *d);
void irq_gc_ack_set_bit(struct irq_data *d);
void irq_gc_ack_clr_bit(struct irq_data *d);
void irq_gc_ack(struct irq_data *d);
void irq_gc_mask_disable_reg_and_ack(struct irq_data *d);
void irq_gc_eoi(struct irq_data *d);
int irq_gc_set_wake(struct irq_data *d, unsigned int on);
Expand Down
18 changes: 2 additions & 16 deletions trunk/kernel/irq/generic-chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,10 @@ void irq_gc_unmask_enable_reg(struct irq_data *d)
}

/**
* irq_gc_ack_set_bit - Ack pending interrupt via setting bit
* irq_gc_ack - Ack pending interrupt
* @d: irq_data
*/
void irq_gc_ack_set_bit(struct irq_data *d)
void irq_gc_ack(struct irq_data *d)
{
struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);
u32 mask = 1 << (d->irq - gc->irq_base);
Expand All @@ -114,20 +114,6 @@ void irq_gc_ack_set_bit(struct irq_data *d)
irq_gc_unlock(gc);
}

/**
* irq_gc_ack_clr_bit - Ack pending interrupt via clearing bit
* @d: irq_data
*/
void irq_gc_ack_clr_bit(struct irq_data *d)
{
struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d);
u32 mask = ~(1 << (d->irq - gc->irq_base));

irq_gc_lock(gc);
irq_reg_writel(mask, gc->reg_base + cur_regs(d)->ack);
irq_gc_unlock(gc);
}

/**
* irq_gc_mask_disable_reg_and_ack- Mask and ack pending interrupt
* @d: irq_data
Expand Down

0 comments on commit 6bb40b0

Please sign in to comment.