diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2007-08-28 04:47:55 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-09-13 11:33:20 -0400 |
commit | 8528ab84ebe7a1eeed9b0acc808df86663d506c0 (patch) | |
tree | b1037def36002586de1e366686376e29e451199d /arch/powerpc/platforms | |
parent | 52964f87c64e6c6ea671b5bf3030fb1494090a48 (diff) |
[POWERPC] Invert null match behaviour for irq_hosts
Currently if you don't specify a match callback for your irq_host it's
assumed you match everything. This is a kind of opt-out approach, and
turns out to be the exception rather than the rule.
So change the semantics to be opt-in, ie. you don't match anything unless
you provide a match callback. This in itself isn't very useful, but will
allow us to provide a default match implementation in a subsequent patch.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/celleb/interrupt.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/iseries/irq.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/ps3/interrupt.c | 7 |
3 files changed, 21 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/celleb/interrupt.c b/arch/powerpc/platforms/celleb/interrupt.c index 4ecdf06e421b..c7c68ca70c82 100644 --- a/arch/powerpc/platforms/celleb/interrupt.c +++ b/arch/powerpc/platforms/celleb/interrupt.c | |||
@@ -175,11 +175,18 @@ static int beatic_pic_host_xlate(struct irq_host *h, struct device_node *ct, | |||
175 | return 0; | 175 | return 0; |
176 | } | 176 | } |
177 | 177 | ||
178 | static int beatic_pic_host_match(struct irq_host *h, struct device_node *np) | ||
179 | { | ||
180 | /* Match all */ | ||
181 | return 1; | ||
182 | } | ||
183 | |||
178 | static struct irq_host_ops beatic_pic_host_ops = { | 184 | static struct irq_host_ops beatic_pic_host_ops = { |
179 | .map = beatic_pic_host_map, | 185 | .map = beatic_pic_host_map, |
180 | .remap = beatic_pic_host_remap, | 186 | .remap = beatic_pic_host_remap, |
181 | .unmap = beatic_pic_host_unmap, | 187 | .unmap = beatic_pic_host_unmap, |
182 | .xlate = beatic_pic_host_xlate, | 188 | .xlate = beatic_pic_host_xlate, |
189 | .match = beatic_pic_host_match, | ||
183 | }; | 190 | }; |
184 | 191 | ||
185 | /* | 192 | /* |
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c index 36667460c922..701d9297c207 100644 --- a/arch/powerpc/platforms/iseries/irq.c +++ b/arch/powerpc/platforms/iseries/irq.c | |||
@@ -346,8 +346,15 @@ static int iseries_irq_host_map(struct irq_host *h, unsigned int virq, | |||
346 | return 0; | 346 | return 0; |
347 | } | 347 | } |
348 | 348 | ||
349 | static int iseries_irq_host_match(struct irq_host *h, struct device_node *np) | ||
350 | { | ||
351 | /* Match all */ | ||
352 | return 1; | ||
353 | } | ||
354 | |||
349 | static struct irq_host_ops iseries_irq_host_ops = { | 355 | static struct irq_host_ops iseries_irq_host_ops = { |
350 | .map = iseries_irq_host_map, | 356 | .map = iseries_irq_host_map, |
357 | .match = iseries_irq_host_match, | ||
351 | }; | 358 | }; |
352 | 359 | ||
353 | /* | 360 | /* |
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c index 30b9f4c6eb55..3a6db04aa940 100644 --- a/arch/powerpc/platforms/ps3/interrupt.c +++ b/arch/powerpc/platforms/ps3/interrupt.c | |||
@@ -673,9 +673,16 @@ static int ps3_host_map(struct irq_host *h, unsigned int virq, | |||
673 | return 0; | 673 | return 0; |
674 | } | 674 | } |
675 | 675 | ||
676 | static int ps3_host_match(struct irq_host *h, struct device_node *np) | ||
677 | { | ||
678 | /* Match all */ | ||
679 | return 1; | ||
680 | } | ||
681 | |||
676 | static struct irq_host_ops ps3_host_ops = { | 682 | static struct irq_host_ops ps3_host_ops = { |
677 | .map = ps3_host_map, | 683 | .map = ps3_host_map, |
678 | .unmap = ps3_host_unmap, | 684 | .unmap = ps3_host_unmap, |
685 | .match = ps3_host_match, | ||
679 | }; | 686 | }; |
680 | 687 | ||
681 | void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq) | 688 | void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq) |