[dahdi-commits] sruffell: branch linux/2.3 r8621 - in /linux/branches/2.3: ./ drivers/dahdi/v...

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Fri May 14 11:02:24 CDT 2010


Author: sruffell
Date: Fri May 14 11:02:21 2010
New Revision: 8621

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=8621
Log:
Merged revisions 8560,8575-8576 via svnmerge from 
https://origsvn.digium.com/svn/dahdi/linux/trunk

........
  r8560 | sruffell | 2010-04-22 16:36:16 -0500 (Thu, 22 Apr 2010) | 11 lines
  
  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.
........
  r8575 | sruffell | 2010-04-26 18:29:16 -0500 (Mon, 26 Apr 2010) | 4 lines
  
  wcte12xp, wctdm24xxp: Do not allow interruptible sleep on VPM lock.
  
  If the sleep is ever interrupted, 'up' will still be called in the GpakApi,
  essentially making the lock useless after that point.
........
  r8576 | sruffell | 2010-04-26 18:29:17 -0500 (Mon, 26 Apr 2010) | 9 lines
  
  wcte12xp, wctdm24xxp: Retry if the VPMADT032 reports not ready.
  
  CheckDspReset can return -1 if the DSP is not ready to process any new
  commands. In this case we should retry a few times to give the DSP a chance
  to become ready.  While I'm not ready to say this definitely fixes recently
  reported cases when the wcte12xp driver constantly resets, it eliminated
  communication failures to the DSP module when under stress (via the
  vpm_firmware_version sysfs attribute).  However, I haven't let it run long
  enough to say that the issue is resolved.  DAHDI-603.
........

Modified:
    linux/branches/2.3/   (props changed)
    linux/branches/2.3/drivers/dahdi/voicebus/GpakApi.c
    linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.c
    linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.h
    linux/branches/2.3/drivers/dahdi/voicebus/voicebus.c

Propchange: linux/branches/2.3/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri May 14 11:02:21 2010
@@ -1,1 +1,1 @@
-/linux/trunk:1-8505,8538-8539,8550
+/linux/trunk:1-8505,8538-8539,8550,8560-8563,8565-8568,8570-8572,8575-8576

Modified: linux/branches/2.3/drivers/dahdi/voicebus/GpakApi.c
URL: http://svnview.digium.com/svn/dahdi/linux/branches/2.3/drivers/dahdi/voicebus/GpakApi.c?view=diff&rev=8621&r1=8620&r2=8621
==============================================================================
--- linux/branches/2.3/drivers/dahdi/voicebus/GpakApi.c (original)
+++ linux/branches/2.3/drivers/dahdi/voicebus/GpakApi.c Fri May 14 11:02:21 2010
@@ -102,7 +102,6 @@
 static unsigned char DlByteBufr[DOWNLOAD_BLOCK_SIZE * 2]; /* Dowload byte buf */
 static DSP_WORD DlWordBufr[DOWNLOAD_BLOCK_SIZE];      /* Dowload word buffer */
 
-
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * CheckDspReset - Check if the DSP was reset.
  *
@@ -116,7 +115,7 @@
  *   1 = Reset occurred.
  *
  */
-static int CheckDspReset(
+static int __CheckDspReset(
     int DspId               /* DSP Identifier (0 to MaxDSPCores-1) */
     )
 {
@@ -179,6 +178,20 @@
     return (0);
 }
 
+static int CheckDspReset(
+    int DspId               /* DSP Identifier (0 to MaxDSPCores-1) */
+    )
+{
+	int ret;
+	int retries = 20;
+	while (--retries) {
+		ret = __CheckDspReset(DspId);
+		if (-1 != ret)
+			return ret;
+		msleep(5);
+	}
+	return ret;
+}
 
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * WriteDspCmdMessage - Write a Host Command/Request message to DSP.

Modified: linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.c
URL: http://svnview.digium.com/svn/dahdi/linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.c?view=diff&rev=8621&r1=8620&r2=8621
==============================================================================
--- linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.c (original)
+++ linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.c Fri May 14 11:02:21 2010
@@ -32,7 +32,6 @@
 
 #include <linux/version.h>
 #include <linux/types.h>
-#include <linux/delay.h>
 #include <linux/pci.h>
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
 #include <linux/semaphore.h>
@@ -900,11 +899,11 @@
 
 	vpm = find_iface(DspId);
 
-	if (vpm) {
-		if (down_interruptible(&vpm->sem)) {
-			return;
-		}
-	}
+	if (!vpm)
+		return;
+
+	down(&vpm->sem);
+	return;
 }
 
 

Modified: linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.h
URL: http://svnview.digium.com/svn/dahdi/linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.h?view=diff&rev=8621&r1=8620&r2=8621
==============================================================================
--- linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.h (original)
+++ linux/branches/2.3/drivers/dahdi/voicebus/GpakCust.h Fri May 14 11:02:21 2010
@@ -39,6 +39,7 @@
 #include <linux/device.h>
 #include <linux/completion.h>
 #include <linux/workqueue.h>
+#include <linux/delay.h>
 
 #include "gpakenum.h"
 #include "adt_lec.h"

Modified: linux/branches/2.3/drivers/dahdi/voicebus/voicebus.c
URL: http://svnview.digium.com/svn/dahdi/linux/branches/2.3/drivers/dahdi/voicebus/voicebus.c?view=diff&rev=8621&r1=8620&r2=8621
==============================================================================
--- linux/branches/2.3/drivers/dahdi/voicebus/voicebus.c (original)
+++ linux/branches/2.3/drivers/dahdi/voicebus/voicebus.c Fri May 14 11:02:21 2010
@@ -433,6 +433,7 @@
 {
 	wmb();
 	writel(val, vb->iobase + addr);
+	readl(vb->iobase + addr);
 }
 
 /*!




More information about the dahdi-commits mailing list