diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-04-22 21:36:16 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-04-22 21:36:16 +0000 |
commit | 1063e05176052e7fc8816bf04fa4be87aa01637c (patch) | |
tree | f96959ec3d14071400e4e49a35f0e106e2347423 /drivers/dahdi/voicebus | |
parent | fbe7858335d1dc17b80d9865f3530e706fb328e6 (diff) |
wcte12xp, wctdm24xxp: Ensure writes to I/O registers are flushed.
In revision 8176 I changed register access from I/O space to memory mapped
registers. Unfortunately, when I made that change, I didn't account for
posted writes. This change makes sure all the registers are read back to
ensure that they are posted through any intermediate bridges.
The most readily observable symptom were cards that were taking 2000
interrupts/second. The card reported that it handled an interrupt but the
write to silence the card wasn't flushed through until the second time the
interrupt handler run. DAHDI-602.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8560 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/voicebus')
-rw-r--r-- | drivers/dahdi/voicebus/voicebus.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dahdi/voicebus/voicebus.c b/drivers/dahdi/voicebus/voicebus.c index 51b5c34..8e50332 100644 --- a/drivers/dahdi/voicebus/voicebus.c +++ b/drivers/dahdi/voicebus/voicebus.c @@ -433,6 +433,7 @@ __vb_setctl(struct voicebus *vb, u32 addr, u32 val) { wmb(); writel(val, vb->iobase + addr); + readl(vb->iobase + addr); } /*! |