[dahdi-commits] dahdi/linux.git branch "master" updated.

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Wed Jan 8 12:21:53 CST 2014


branch "master" has been updated
       via  47dcc9377c840a3584e98a70b607f97ebbd4fdaf (commit)
       via  f10eb3f5471e331261570b67ec952fe53d1167c4 (commit)
       via  99de304d84f81ac086c22db51573c1a51e29ce63 (commit)
      from  c49a56c954616d64b3596f2020714db77c98dffd (commit)

Summary of changes:
 drivers/dahdi/wcte13xp-base.c |    8 +++++++-
 drivers/dahdi/wcte43x-base.c  |    2 +-
 drivers/dahdi/wcxb.c          |   18 +++++++++++++-----
 3 files changed, 21 insertions(+), 7 deletions(-)


- Log -----------------------------------------------------------------
commit 47dcc9377c840a3584e98a70b607f97ebbd4fdaf
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Tue Jan 7 14:31:59 2014 -0600

    wcte43x, wcte13xp: Use MSI interrupts if possible.
    
    It was an oversight to prevent the wcte43x and wcte13xp drivers from using
    Message Signaled interrupts during the switch to the wcxb library.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>

diff --git a/drivers/dahdi/wcte13xp-base.c b/drivers/dahdi/wcte13xp-base.c
index 44a4c41..40e9134 100644
--- a/drivers/dahdi/wcte13xp-base.c
+++ b/drivers/dahdi/wcte13xp-base.c
@@ -2533,7 +2533,7 @@ static int __devinit te13xp_init_one(struct pci_dev *pdev,
 	wc->xb.pdev = pdev;
 	wc->xb.ops = &xb_ops;
 	wc->xb.debug = &debug;
-	res = wcxb_init(&wc->xb, wc->name, 1);
+	res = wcxb_init(&wc->xb, wc->name, 0);
 	if (res)
 		goto fail_exit;
 
diff --git a/drivers/dahdi/wcte43x-base.c b/drivers/dahdi/wcte43x-base.c
index 6752d5d..eab2afc 100644
--- a/drivers/dahdi/wcte43x-base.c
+++ b/drivers/dahdi/wcte43x-base.c
@@ -3327,7 +3327,7 @@ static int __devinit t43x_init_one(struct pci_dev *pdev,
 	wc->xb.ops = &xb_ops;
 	wc->xb.debug = &debug;
 
-	res = wcxb_init(&wc->xb, KBUILD_MODNAME, 1);
+	res = wcxb_init(&wc->xb, KBUILD_MODNAME, 0);
 	if (res)
 		goto fail_exit;
 

commit f10eb3f5471e331261570b67ec952fe53d1167c4
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Tue Jan 7 14:14:39 2014 -0600

    wcte13xp: Export max_latency module parameter.
    
    wcte13xp now has a max_latency module parameter like the wcaxx and wcte43x
    drivers.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>

diff --git a/drivers/dahdi/wcte13xp-base.c b/drivers/dahdi/wcte13xp-base.c
index 858d136..44a4c41 100644
--- a/drivers/dahdi/wcte13xp-base.c
+++ b/drivers/dahdi/wcte13xp-base.c
@@ -178,6 +178,7 @@ static int yelalarmdebounce = 500; /* RAI(yellow) def to 0.5s AT&T devguide */
 static char *default_linemode = "t1"; /* 'e1', 't1', or 'j1' */
 static int force_firmware;
 static int latency = WCXB_DEFAULT_LATENCY;
+static unsigned int max_latency = WCXB_DEFAULT_MAXLATENCY;
 
 struct t13x_firm_header {
 	u8	header[6];
@@ -2573,6 +2574,9 @@ static int __devinit te13xp_init_one(struct pci_dev *pdev,
 		goto fail_exit;
 	}
 
+	wcxb_set_minlatency(&wc->xb, latency);
+	wcxb_set_maxlatency(&wc->xb, max_latency);
+
 	create_sysfs_files(wc);
 
 	res = t13x_hardware_post_init(wc, &type);
@@ -2731,6 +2735,8 @@ module_param(vpmsupport, int, 0600);
 module_param(force_firmware, int, S_IRUGO);
 module_param(latency, int, S_IRUGO);
 MODULE_PARM_DESC(latency, "How many milliseconds of audio to buffer between card and host (3ms default). This number will increase during runtime, dynamically, if dahdi detects that it is too small. This is commonly refered to as a \"latency bump\"");
+module_param(max_latency, int, 0600);
+MODULE_PARM_DESC(max_latency, "The maximum amount of latency that the driver will permit.");
 
 MODULE_DESCRIPTION("Wildcard Digital Card Driver");
 MODULE_AUTHOR("Digium Incorporated <support at digium.com>");

commit 99de304d84f81ac086c22db51573c1a51e29ce63
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Tue Jan 7 14:10:56 2014 -0600

    wcaxx, wcte13xp, wcte43x: Honor max_latency module parameter.
    
    The wcxb library did not do actually use the max_latency member to limit the
    maximum latency of the DMA engine.
    
    Now it does.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>

diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index a418447..191a0b0 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -401,16 +401,22 @@ static irqreturn_t _wcxb_isr(int irq, void *dev_id)
 			spin_lock(&xb->lock);
 
 			if (!xb->flags.latency_locked) {
-				xb->latency++;
-
+				xb->latency = min(xb->latency + 1,
+						  xb->max_latency);
 #ifdef HAVE_RATELIMIT
 				if (__ratelimit(&_underrun_rl)) {
 #else
 				if (printk_ratelimit()) {
 #endif
-					dev_info(&xb->pdev->dev,
-						 "Underrun detected by hardware. Latency bumped to: %dms\n",
-						 xb->latency);
+					if (xb->latency != xb->max_latency) {
+						dev_info(&xb->pdev->dev,
+							 "Underrun detected by hardware. Latency bumped to: %dms\n",
+							 xb->latency);
+					} else {
+						dev_info(&xb->pdev->dev,
+							 "Underrun detected by hardware. Latency at max of %dms.\n",
+							 xb->latency);
+					}
 				}
 			}
 
@@ -602,6 +608,8 @@ int wcxb_init(struct wcxb *xb, const char *board_name, u32 int_mode)
 		return -EINVAL;
 
 	xb->latency = WCXB_DEFAULT_LATENCY;
+	xb->max_latency = WCXB_DEFAULT_MAXLATENCY;
+
 	spin_lock_init(&xb->lock);
 
 	xb->membase = pci_iomap(pdev, 0, 0);

-----------------------------------------------------------------------


-- 
dahdi/linux.git



More information about the dahdi-commits mailing list