diff options
author | David S. Miller <davem@davemloft.net> | 2007-06-26 00:13:09 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-06-26 00:13:09 -0700 |
commit | 1245088400c0e5f93b979356e578c9a8825b953a (patch) | |
tree | d785b25c57f3af3ea29e40f0f243d8e4f629f9d3 /arch/sparc64 | |
parent | 701271dfd220d214e26ef90c48a2dae3a2042687 (diff) | |
download | op-kernel-dev-1245088400c0e5f93b979356e578c9a8825b953a.zip op-kernel-dev-1245088400c0e5f93b979356e578c9a8825b953a.tar.gz |
[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 e60d283..a862d13 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) "err(%d)\n", dev_handle, dev_ino, cpuid, err); err = sun4v_vintr_set_state(dev_handle, dev_ino, + HV_INTR_STATE_IDLE); + if (err != HV_EOK) + printk("sun4v_vintr_set_state(%lx,%lx," + "HV_INTR_STATE_IDLE): err(%d)\n", + dev_handle, dev_ino, err); + err = sun4v_vintr_set_valid(dev_handle, dev_ino, HV_INTR_ENABLED); if (err != HV_EOK) printk("sun4v_vintr_set_state(%lx,%lx," @@ -420,7 +426,7 @@ static void sun4v_virq_disable(unsigned int virt_irq) dev_handle = ino & IMAP_IGN; dev_ino = ino & IMAP_INO; - err = sun4v_vintr_set_state(dev_handle, dev_ino, + err = sun4v_vintr_set_valid(dev_handle, dev_ino, HV_INTR_DISABLED); if (err != HV_EOK) printk("sun4v_vintr_set_state(%lx,%lx," |