Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 259565
b: refs/heads/master
c: 54b4a77
h: refs/heads/master
i:
  259563: 83f92cd
v: v3
  • Loading branch information
Vincent Bossier authored and Greg Kroah-Hartman committed Jun 28, 2011
1 parent c3cef6f commit c150fdd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 05614fbfc1f3dedc337ac67e83b6ad130ba9fc9f
refs/heads/master: 54b4a779c9565c475a17cc1254a38f293a5ba3ef
15 changes: 14 additions & 1 deletion trunk/drivers/staging/vme/bridges/vme_ca91cx42.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,18 @@ static void ca91cx42_irq_exit(struct ca91cx42_driver *bridge,
free_irq(pdev->irq, pdev);
}

static int ca91cx42_iack_received(struct ca91cx42_driver *bridge, int level)
{
u32 tmp;

tmp = ioread32(bridge->base + LINT_STAT);

if (tmp & (1 << level))
return 0;
else
return 1;
}

/*
* Set up an VME interrupt
*/
Expand Down Expand Up @@ -311,7 +323,8 @@ static int ca91cx42_irq_generate(struct vme_bridge *ca91cx42_bridge, int level,
iowrite32(tmp, bridge->base + VINT_EN);

/* Wait for IACK */
wait_event_interruptible(bridge->iack_queue, 0);
wait_event_interruptible(bridge->iack_queue,
ca91cx42_iack_received(bridge, level));

/* Return interrupt to low state */
tmp = ioread32(bridge->base + VINT_EN);
Expand Down

0 comments on commit c150fdd

Please sign in to comment.