Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 60556
b: refs/heads/master
c: ee51de5
h: refs/heads/master
v: v3
  • Loading branch information
Michael Ellerman authored and Paul Mackerras committed Jun 25, 2007
1 parent 1e54b53 commit 7e2f706
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6fde40f3f1a9641ea0a41471cea77f34c0cbb36f
refs/heads/master: ee51de5645edee4124db6a479d2e135ebe436748
24 changes: 24 additions & 0 deletions trunk/arch/powerpc/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,30 @@ static int irq_setup_virq(struct irq_host *host, unsigned int virq,
return 0;
}

unsigned int irq_create_direct_mapping(struct irq_host *host)
{
unsigned int virq;

if (host == NULL)
host = irq_default_host;

BUG_ON(host == NULL);
WARN_ON(host->revmap_type != IRQ_HOST_MAP_NOMAP);

virq = irq_alloc_virt(host, 1, 0);
if (virq == NO_IRQ) {
pr_debug("irq: create_direct virq allocation failed\n");
return NO_IRQ;
}

pr_debug("irq: create_direct obtained virq %d\n", virq);

if (irq_setup_virq(host, virq, virq))
return NO_IRQ;

return virq;
}

unsigned int irq_create_mapping(struct irq_host *host,
irq_hw_number_t hwirq)
{
Expand Down
9 changes: 9 additions & 0 deletions trunk/include/asm-powerpc/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,15 @@ extern void irq_dispose_mapping(unsigned int virq);
extern unsigned int irq_find_mapping(struct irq_host *host,
irq_hw_number_t hwirq);

/**
* irq_create_direct_mapping - Allocate a virq for direct mapping
* @host: host to allocate the virq for or NULL for default host
*
* This routine is used for irq controllers which can choose the hardware
* interrupt numbers they generate. In such a case it's simplest to use
* the linux virq as the hardware interrupt number.
*/
extern unsigned int irq_create_direct_mapping(struct irq_host *host);

/**
* irq_radix_revmap - Find a linux virq from a hw irq number.
Expand Down

0 comments on commit 7e2f706

Please sign in to comment.