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

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Wed Jan 8 13:51:18 CST 2014


branch "2.8.y" has been updated
       via  ce03e88d77628bd05a64f64c80b3c3f8fb247634 (commit)
       via  bb8512f56f43be4290f7a0437f8af0906892ec0d (commit)
       via  80968230efdb5f1bfb60759b030d7cbead32d89f (commit)
      from  e6b16eace164d4b7edbeaf415965870fb7445cf9 (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 ce03e88d77628bd05a64f64c80b3c3f8fb247634
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>
    (cherry picked from commit 47dcc9377c840a3584e98a70b607f97ebbd4fdaf)

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 bb8512f56f43be4290f7a0437f8af0906892ec0d
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>
    (cherry picked from commit f10eb3f5471e331261570b67ec952fe53d1167c4)

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 80968230efdb5f1bfb60759b030d7cbead32d89f
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>
    (cherry picked from commit 99de304d84f81ac086c22db51573c1a51e29ce63)

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