aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2007-06-26 03:13:09 -0400
committerDavid S. Miller <davem@davemloft.net>2007-06-26 03:13:09 -0400
commit1245088400c0e5f93b979356e578c9a8825b953a (patch)
treed785b25c57f3af3ea29e40f0f243d8e4f629f9d3 /arch
parent701271dfd220d214e26ef90c48a2dae3a2042687 (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')
-rw-r--r--arch/sparc64/kernel/irq.c8
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,"