diff options
author | David S. Miller <davem@davemloft.net> | 2007-06-26 03:13:09 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-06-26 03:13:09 -0400 |
commit | 1245088400c0e5f93b979356e578c9a8825b953a (patch) | |
tree | d785b25c57f3af3ea29e40f0f243d8e4f629f9d3 /arch/sparc64 | |
parent | 701271dfd220d214e26ef90c48a2dae3a2042687 (diff) |
[SPARC64]: Fix VIRQ enabling.
We were doing the wrong call to turn them on, and also
when enabling we need to forcefully set the state to IDLE.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index e60d283f60bc..a862d13fc857 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -400,6 +400,12 @@ static void sun4v_virq_enable(unsigned int virt_irq) | |||
400 | "err(%d)\n", | 400 | "err(%d)\n", |
401 | dev_handle, dev_ino, cpuid, err); | 401 | dev_handle, dev_ino, cpuid, err); |
402 | err = sun4v_vintr_set_state(dev_handle, dev_ino, | 402 | err = sun4v_vintr_set_state(dev_handle, dev_ino, |
403 | HV_INTR_STATE_IDLE); | ||
404 | if (err != HV_EOK) | ||
405 | printk("sun4v_vintr_set_state(%lx,%lx," | ||
406 | "HV_INTR_STATE_IDLE): err(%d)\n", | ||
407 | dev_handle, dev_ino, err); | ||
408 | err = sun4v_vintr_set_valid(dev_handle, dev_ino, | ||
403 | HV_INTR_ENABLED); | 409 | HV_INTR_ENABLED); |
404 | if (err != HV_EOK) | 410 | if (err != HV_EOK) |
405 | printk("sun4v_vintr_set_state(%lx,%lx," | 411 | printk("sun4v_vintr_set_state(%lx,%lx," |
@@ -420,7 +426,7 @@ static void sun4v_virq_disable(unsigned int virt_irq) | |||
420 | dev_handle = ino & IMAP_IGN; | 426 | dev_handle = ino & IMAP_IGN; |
421 | dev_ino = ino & IMAP_INO; | 427 | dev_ino = ino & IMAP_INO; |
422 | 428 | ||
423 | err = sun4v_vintr_set_state(dev_handle, dev_ino, | 429 | err = sun4v_vintr_set_valid(dev_handle, dev_ino, |
424 | HV_INTR_DISABLED); | 430 | HV_INTR_DISABLED); |
425 | if (err != HV_EOK) | 431 | if (err != HV_EOK) |
426 | printk("sun4v_vintr_set_state(%lx,%lx," | 432 | printk("sun4v_vintr_set_state(%lx,%lx," |