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

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Thu Jun 4 09:11:40 CDT 2015


branch "2.10.y" has been updated
       via  48032024a3ab5894895966fc1ab951b5fd05db6d (commit)
       via  62d7a00fdcdd14599719fc70fa56f8513d0c2ed6 (commit)
       via  5aaaaf9d2f2017bb477bc51be3ad0f3b54fbb358 (commit)
       via  f56b748f73ed03e12fb5992ead804f67e552f830 (commit)
       via  4305b44108342ddc29569d0cb6bd74b1193b6be4 (commit)
       via  b6fe19cff5c324578dbd55d217209745e67ed607 (commit)
       via  108b0641aad54f38953ce997c1c2cc6e78dd0583 (commit)
       via  368d8bec4bad1a6cf2eb5070b0cd884b6c2ed0f7 (commit)
       via  799753aefdccd130eab3d8c718c7dcbaf696de3a (commit)
       via  a3da9f1d039368ae508ce52cc18c444b4fb73773 (commit)
       via  701f633e0dc4b17e3efc4fc3657ed7de7b513dad (commit)
       via  9d62e703fec2af8f4be845a71eab7c618d2727f1 (commit)
       via  6dd89a7ae5b4386aa1291782af71deb2c3e2affe (commit)
       via  0981935d5cfb182779791e6b3b725853e742f4bb (commit)
       via  cf057d4b0e61542f617d7386c1af1e29382f43d6 (commit)
       via  9769028667c2a967dd58c122d1421e448949c6b4 (commit)
       via  4f0cf5fb984f06ddc7e00ea28b2b821f5979e799 (commit)
       via  c4356304e5277c5476d16222770917f9eb6cf3d3 (commit)
      from  54893b93aab93b06be6e87f7335b7fcefa91eb28 (commit)

Summary of changes:
 Makefile                                      |    3 +-
 build_tools/dkms-helper                       |    2 +-
 drivers/dahdi/dahdi-base.c                    |   20 +
 drivers/dahdi/dahdi_dynamic_eth.c             |    5 +-
 drivers/dahdi/firmware/Makefile               |    8 +-
 drivers/dahdi/pciradio.c                      |    3 +-
 drivers/dahdi/tor2.c                          |    7 +-
 drivers/dahdi/voicebus/voicebus.c             |    2 +-
 drivers/dahdi/wcaxx-base.c                    |    6 +-
 drivers/dahdi/wcb4xxp/base.c                  |    7 +-
 drivers/dahdi/wcfxo.c                         |    2 +-
 drivers/dahdi/wct1xxp.c                       |   10 +-
 drivers/dahdi/wct4xxp/base.c                  |    4 +-
 drivers/dahdi/wctc4xxp/base.c                 |   14 +-
 drivers/dahdi/wctdm.c                         |    3 +-
 drivers/dahdi/wcte11xp.c                      |   10 +-
 drivers/dahdi/wcte12xp/base.c                 |    4 +-
 drivers/dahdi/wcte13xp-base.c                 |    6 +-
 drivers/dahdi/wcte43x-base.c                  |    4 +-
 drivers/dahdi/wcxb.c                          |   56 +-
 drivers/dahdi/wcxb.h                          |    7 +-
 drivers/dahdi/xpp/card_pri.c                  |    6 +-
 drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex |31193 ++++++++++++-------------
 drivers/dahdi/xpp/firmwares/Makefile          |    9 +-
 drivers/dahdi/xpp/firmwares/USB_FW.201.hex    |    6 +-
 drivers/dahdi/xpp/firmwares/USB_FW.hex        |    6 +-
 drivers/dahdi/xpp/xproto.c                    |    3 +-
 include/dahdi/kernel.h                        |   24 +-
 28 files changed, 15692 insertions(+), 15738 deletions(-)


- Log -----------------------------------------------------------------
commit 48032024a3ab5894895966fc1ab951b5fd05db6d
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Thu Jun 4 09:19:59 2015 -0500

    wctc4xxp: Clear packet error count when reloading firmware.
    
    When the firmware is reloaded and reset, the packet error count is not.
    This can create a condition where the firmware could report an error like
    the following if a channel was closed without any new errors:
    
      wctc4xxp 0000:07:08.0: 18446744073709551597 errored receive packets
    
    wcdte.packet_errors is also renamed to wcdte.reported_packet_errors to not
    conflict with the packet_errors member of the descriptor lists.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit d5f13c5116fa284230190783d160616b90c65564)

diff --git a/drivers/dahdi/wctc4xxp/base.c b/drivers/dahdi/wctc4xxp/base.c
index 20a03f3..068f741 100644
--- a/drivers/dahdi/wctc4xxp/base.c
+++ b/drivers/dahdi/wctc4xxp/base.c
@@ -375,7 +375,7 @@ struct wcdte {
 #endif
 	struct timer_list watchdog;
 	u16 open_channels;
-	unsigned long packet_errors;
+	unsigned long reported_packet_errors;
 };
 
 struct wcdte_netdev_priv {
@@ -2024,12 +2024,12 @@ static void wctc4xxp_check_for_rx_errors(struct wcdte *wc)
 	unsigned long errors = wctc4xxp_get_packet_errors(wc->rxd);
 
 	/* Print warning when the number of errors changes */
-	if (wc->packet_errors != errors) {
+	if (wc->reported_packet_errors != errors) {
 		if (printk_ratelimit()) {
 			dev_err(&wc->pdev->dev,
 				"%lu errored receive packets.\n",
-				errors - wc->packet_errors);
-			wc->packet_errors = errors;
+				errors - wc->reported_packet_errors);
+			wc->reported_packet_errors = errors;
 		}
 	}
 }
@@ -3870,6 +3870,7 @@ static int wctc4xxp_reset_driver_state(struct wcdte *wc)
 		release_firmware(firmware);
 	spin_lock_irqsave(&wc->rxd->lock, flags);
 	wc->rxd->packet_errors = 0;
+	wc->reported_packet_errors = 0;
 	spin_unlock_irqrestore(&wc->rxd->lock, flags);
 	return res;
 }

commit 62d7a00fdcdd14599719fc70fa56f8513d0c2ed6
Author: Russ Meyerriecks <rmeyerriecks at digium.com>
Date:   Thu Apr 16 12:08:25 2015 -0500

    wctc4xxp: Fix continuous "errored receive packets" with 2+ transcoders
    
    In the case where two transcoders are loaded in a system and one transcoder
    experiences an errored receive packet condition, the logic would ping pong the
    error between the two cards, causing a runaway stream of errors in the kernel
    log.
    
    This fix moves the global error count var into the wcdte struct to allow for
    per-card logic.
    
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    Acked-by: Shaun Ruffell <sruffell at digium.com>
    (cherry picked from commit 4df03284a89abae9e03445f7ec0081992b57e453)

diff --git a/drivers/dahdi/wctc4xxp/base.c b/drivers/dahdi/wctc4xxp/base.c
index 02ea625..20a03f3 100644
--- a/drivers/dahdi/wctc4xxp/base.c
+++ b/drivers/dahdi/wctc4xxp/base.c
@@ -375,6 +375,7 @@ struct wcdte {
 #endif
 	struct timer_list watchdog;
 	u16 open_channels;
+	unsigned long packet_errors;
 };
 
 struct wcdte_netdev_priv {
@@ -2019,14 +2020,16 @@ wctc4xxp_disable_polling(struct wcdte *wc)
 
 static void wctc4xxp_check_for_rx_errors(struct wcdte *wc)
 {
-	static unsigned long last_errors = 0;
+	/* get_packet_errors() returns the accumulated total errors */
 	unsigned long errors = wctc4xxp_get_packet_errors(wc->rxd);
-	if (last_errors != errors) {
+
+	/* Print warning when the number of errors changes */
+	if (wc->packet_errors != errors) {
 		if (printk_ratelimit()) {
 			dev_err(&wc->pdev->dev,
 				"%lu errored receive packets.\n",
-				errors - last_errors);
-			last_errors = errors;
+				errors - wc->packet_errors);
+			wc->packet_errors = errors;
 		}
 	}
 }

commit 5aaaaf9d2f2017bb477bc51be3ad0f3b54fbb358
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Apr 20 11:07:11 2015 -0500

    dahdi: Remove IRQF_DISABLED.
    
    The IRQF_DISABLED flag was removed in 4.1 in commit
    "genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely" [1].
    
    By default all interrupt handlers are now run with interrupts disabled and
    therefore should all be considered "fast interrupts". Any driver that was still
    using the flag will now lock interrupts directly in the handler in case running
    on an older kernel that is not disabling interrupts when running the handler.
    
    [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d8bf368d0631d4bc2612d8bf2e4e8e74e620d0cc
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit 8cd0823978170cb42e2e53b647cfed4bb202c382)

diff --git a/drivers/dahdi/tor2.c b/drivers/dahdi/tor2.c
index f3d2c6f..99fb464 100644
--- a/drivers/dahdi/tor2.c
+++ b/drivers/dahdi/tor2.c
@@ -543,8 +543,7 @@ static int __devinit tor2_probe(struct pci_dev *pdev, const struct pci_device_id
 	for (x = 0; x < 256; x++)
 		writel(0x7f7f7f7f, &tor->mem32[x]);
 
-	if (request_irq(tor->irq, tor2_intr,
-			IRQF_SHARED | IRQF_DISABLED, "tor2", tor)) {
+	if (request_irq(tor->irq, tor2_intr, IRQF_SHARED, "tor2", tor)) {
 		printk(KERN_ERR "Unable to request tormenta IRQ %d\n", tor->irq);
 		goto err_out_release_all;
 	}
@@ -1201,6 +1200,7 @@ DAHDI_IRQ_HANDLER(tor2_intr)
 	unsigned char c, rxc;
 	unsigned char abits, bbits;
 	struct tor2 *tor = (struct tor2 *) dev_id;	
+	unsigned long flags;
 
 	  /* make sure its a real interrupt for us */
 	if (!(readb(&tor->mem8[STATREG]) & INTACTIVE)) /* if not, just return */
@@ -1208,6 +1208,8 @@ DAHDI_IRQ_HANDLER(tor2_intr)
 		return IRQ_NONE;
 	   }
 
+	local_irq_save(flags);
+
 	if (tor->cardtype == TYPE_E1) {
 		/* set outbit, interrupt enable, and ack interrupt */
 		writeb(OUTBIT | INTENA | INTACK | E1DIV | tor->master,
@@ -1505,6 +1507,8 @@ DAHDI_IRQ_HANDLER(tor2_intr)
 	else
 		/* clear OUTBIT and enable interrupts */
 		writeb(INTENA | tor->master, &tor->mem8[CTLREG]);
+
+	local_irq_restore(flags);
 	return IRQ_RETVAL(1);
 }
 
diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c
index fb0e491..d0fd08f 100644
--- a/drivers/dahdi/wcb4xxp/base.c
+++ b/drivers/dahdi/wcb4xxp/base.c
@@ -2572,6 +2572,7 @@ DAHDI_IRQ_HANDLER(b4xxp_interrupt)
 {
 	struct b4xxp *b4 = dev_id;
 	unsigned char status;
+	unsigned long flags;
 	int i;
 
 	/* Make sure it's really for us */
@@ -2585,6 +2586,8 @@ DAHDI_IRQ_HANDLER(b4xxp_interrupt)
  * That way if we get behind, we don't lose anything.
  * We don't actually do any processing here, we simply flag the bottom-half to do the heavy lifting.
  */
+	local_irq_save(flags);
+
 	if (status & V_FR_IRQSTA) {
 		b4->fifo_irqstatus[0] |= __pci_in8(b4, R_IRQ_FIFO_BL0);
 		b4->fifo_irqstatus[1] |= __pci_in8(b4, R_IRQ_FIFO_BL1);
@@ -2620,6 +2623,8 @@ DAHDI_IRQ_HANDLER(b4xxp_interrupt)
 	/* tasklet_hi_schedule(&b4->b4xxp_tlet); */
 	b4xxp_bottom_half((unsigned long)b4);
 
+	local_irq_restore(flags);
+
 	return IRQ_RETVAL(1);
 }
 
@@ -2951,8 +2956,7 @@ static int __devinit b4xx_probe(struct pci_dev *pdev, const struct pci_device_id
 
 	create_sysfs_files(b4);
 
-	if (request_irq(pdev->irq, b4xxp_interrupt,
-			IRQF_SHARED | IRQF_DISABLED, "b4xxp", b4)) {
+	if (request_irq(pdev->irq, b4xxp_interrupt, IRQF_SHARED, "b4xxp", b4)) {
 		dev_err(&b4->pdev->dev, "Unable to request IRQ %d\n",
 			pdev->irq);
 		ret = -EIO;
diff --git a/drivers/dahdi/wct1xxp.c b/drivers/dahdi/wct1xxp.c
index 86dd6b8..1d8f591 100644
--- a/drivers/dahdi/wct1xxp.c
+++ b/drivers/dahdi/wct1xxp.c
@@ -1174,6 +1174,8 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 	if (!ints)
 		return IRQ_NONE;
 
+	local_irq_save(flags);
+
 	outb(ints, wc->ioaddr + WC_INTSTAT);
 
 	if (!wc->intcount) {
@@ -1188,13 +1190,13 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 		t1xxp_receiveprep(wc, ints);
 		t1xxp_transmitprep(wc, ints);
 	}
-	spin_lock_irqsave(&wc->lock, flags);
+	spin_lock(&wc->lock);
 
 #if 1
 	__handle_leds(wc);
 #endif
 
-	spin_unlock_irqrestore(&wc->lock, flags);
+	spin_unlock(&wc->lock);
 
 	/* Count down timers */
 	t1xxp_do_counters(wc);
@@ -1220,6 +1222,8 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 	if (ints & 0x20)
 		printk(KERN_INFO "PCI Target abort\n");
 
+	local_irq_restore(flags);
+
 	return IRQ_RETVAL(1);
 }
 
@@ -1333,8 +1337,7 @@ static int __devinit t1xxp_init_one(struct pci_dev *pdev, const struct pci_devic
 	/* Keep track of which device we are */
 	pci_set_drvdata(pdev, wc);
 	
-	if (request_irq(pdev->irq, t1xxp_interrupt,
-			IRQF_SHARED | IRQF_DISABLED, "t1xxp", wc)) {
+	if (request_irq(pdev->irq, t1xxp_interrupt, IRQF_SHARED, "t1xxp", wc)) {
 		printk(KERN_NOTICE "t1xxp: Unable to request IRQ %d\n", pdev->irq);
 		kfree(wc);
 		return -EIO;
diff --git a/drivers/dahdi/wcte11xp.c b/drivers/dahdi/wcte11xp.c
index 8c4ab6e..044787f 100644
--- a/drivers/dahdi/wcte11xp.c
+++ b/drivers/dahdi/wcte11xp.c
@@ -1351,6 +1351,8 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 	if (!ints)
 		return IRQ_NONE;
 
+	local_irq_save(flags);
+
 	outb(ints, wc->ioaddr + WC_INTSTAT);
 
 	if (!wc->intcount) {
@@ -1365,13 +1367,13 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 		t1xxp_receiveprep(wc, ints);
 		t1xxp_transmitprep(wc, ints);
 	}
-	spin_lock_irqsave(&wc->lock, flags);
+	spin_lock(&wc->lock);
 
 #if 1
 	__handle_leds(wc);
 #endif
 
-	spin_unlock_irqrestore(&wc->lock, flags);
+	spin_unlock(&wc->lock);
 
 	/* Count down timers */
 	t1_do_counters(wc);
@@ -1398,6 +1400,7 @@ DAHDI_IRQ_HANDLER(t1xxp_interrupt)
 	if (ints & 0x20)
 		printk(KERN_NOTICE "PCI Target abort\n");
 
+	local_irq_restore(flags);
 	return IRQ_RETVAL(1);
 }
 
@@ -1535,7 +1538,7 @@ static int __devinit t1xxp_init_one(struct pci_dev *pdev, const struct pci_devic
 	pci_set_drvdata(pdev, wc);
 	
 	if (request_irq(pdev->irq, t1xxp_interrupt,
-			IRQF_SHARED | IRQF_DISABLED, "wcte11xp", wc)) {
+			IRQF_SHARED, "wcte11xp", wc)) {
 		printk(KERN_NOTICE "wcte11xp: Unable to request IRQ %d\n", pdev->irq);
 		kfree(wc);
 		return -EIO;

commit f56b748f73ed03e12fb5992ead804f67e552f830
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Apr 20 11:17:09 2015 -0500

    Remove DAHDI_IRQF_[SHARED|DISABLED] flags.
    
    These flags are direct mappings to the IRQF_[SHARED|DISABLED] flags and no
    longer need to be kept separate.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit 64a98af676ee722f9d3b41911a89350a02c136d3)

diff --git a/drivers/dahdi/pciradio.c b/drivers/dahdi/pciradio.c
index 07b85b3..d287b40 100644
--- a/drivers/dahdi/pciradio.c
+++ b/drivers/dahdi/pciradio.c
@@ -1784,7 +1784,8 @@ static int __devinit pciradio_init_one(struct pci_dev *pdev, const struct pci_de
 
 			}
 
-			if (request_irq(pdev->irq, pciradio_interrupt, DAHDI_IRQ_SHARED, "pciradio", rad)) {
+			if (request_irq(pdev->irq, pciradio_interrupt,
+					IRQF_SHARED, "pciradio", rad)) {
 				printk(KERN_NOTICE "pciradio: Unable to request IRQ %d\n", pdev->irq);
 				if (rad->freeregion)
 					release_region(rad->ioaddr, 0xff);
diff --git a/drivers/dahdi/tor2.c b/drivers/dahdi/tor2.c
index 5d2f37e..f3d2c6f 100644
--- a/drivers/dahdi/tor2.c
+++ b/drivers/dahdi/tor2.c
@@ -543,7 +543,8 @@ static int __devinit tor2_probe(struct pci_dev *pdev, const struct pci_device_id
 	for (x = 0; x < 256; x++)
 		writel(0x7f7f7f7f, &tor->mem32[x]);
 
-	if (request_irq(tor->irq, tor2_intr, DAHDI_IRQ_SHARED_DISABLED, "tor2", tor)) {
+	if (request_irq(tor->irq, tor2_intr,
+			IRQF_SHARED | IRQF_DISABLED, "tor2", tor)) {
 		printk(KERN_ERR "Unable to request tormenta IRQ %d\n", tor->irq);
 		goto err_out_release_all;
 	}
diff --git a/drivers/dahdi/voicebus/voicebus.c b/drivers/dahdi/voicebus/voicebus.c
index 28b8e32..7ee7763 100644
--- a/drivers/dahdi/voicebus/voicebus.c
+++ b/drivers/dahdi/voicebus/voicebus.c
@@ -1885,7 +1885,7 @@ __voicebus_init(struct voicebus *vb, const char *board_name,
 		goto cleanup;
 
 #if !defined(CONFIG_VOICEBUS_TIMER)
-	retval = request_irq(vb->pdev->irq, vb_isr, DAHDI_IRQ_SHARED,
+	retval = request_irq(vb->pdev->irq, vb_isr, IRQF_SHARED,
 			     board_name, vb);
 	if (retval) {
 		dev_warn(&vb->pdev->dev, "Failed to request interrupt line.\n");
diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c
index 5538660..fb0e491 100644
--- a/drivers/dahdi/wcb4xxp/base.c
+++ b/drivers/dahdi/wcb4xxp/base.c
@@ -2951,7 +2951,8 @@ static int __devinit b4xx_probe(struct pci_dev *pdev, const struct pci_device_id
 
 	create_sysfs_files(b4);
 
-	if (request_irq(pdev->irq, b4xxp_interrupt, DAHDI_IRQ_SHARED_DISABLED, "b4xxp", b4)) {
+	if (request_irq(pdev->irq, b4xxp_interrupt,
+			IRQF_SHARED | IRQF_DISABLED, "b4xxp", b4)) {
 		dev_err(&b4->pdev->dev, "Unable to request IRQ %d\n",
 			pdev->irq);
 		ret = -EIO;
diff --git a/drivers/dahdi/wcfxo.c b/drivers/dahdi/wcfxo.c
index ad74137..b79d2fe 100644
--- a/drivers/dahdi/wcfxo.c
+++ b/drivers/dahdi/wcfxo.c
@@ -972,7 +972,7 @@ static int __devinit wcfxo_init_one(struct pci_dev *pdev, const struct pci_devic
 	/* Keep track of which device we are */
 	pci_set_drvdata(pdev, wc);
 
-	if (request_irq(pdev->irq, wcfxo_interrupt, DAHDI_IRQ_SHARED, "wcfxo", wc)) {
+	if (request_irq(pdev->irq, wcfxo_interrupt, IRQF_SHARED, "wcfxo", wc)) {
 		printk(KERN_NOTICE "wcfxo: Unable to request IRQ %d\n", pdev->irq);
 		if (wc->freeregion)
 			release_region(wc->ioaddr, 0xff);
diff --git a/drivers/dahdi/wct1xxp.c b/drivers/dahdi/wct1xxp.c
index adc917e..86dd6b8 100644
--- a/drivers/dahdi/wct1xxp.c
+++ b/drivers/dahdi/wct1xxp.c
@@ -1333,7 +1333,8 @@ static int __devinit t1xxp_init_one(struct pci_dev *pdev, const struct pci_devic
 	/* Keep track of which device we are */
 	pci_set_drvdata(pdev, wc);
 	
-	if (request_irq(pdev->irq, t1xxp_interrupt, DAHDI_IRQ_SHARED_DISABLED, "t1xxp", wc)) {
+	if (request_irq(pdev->irq, t1xxp_interrupt,
+			IRQF_SHARED | IRQF_DISABLED, "t1xxp", wc)) {
 		printk(KERN_NOTICE "t1xxp: Unable to request IRQ %d\n", pdev->irq);
 		kfree(wc);
 		return -EIO;
diff --git a/drivers/dahdi/wct4xxp/base.c b/drivers/dahdi/wct4xxp/base.c
index bb00bcd..6b9072e 100644
--- a/drivers/dahdi/wct4xxp/base.c
+++ b/drivers/dahdi/wct4xxp/base.c
@@ -5334,7 +5334,7 @@ t4_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 #ifdef SUPPORT_GEN1
 	if (request_irq(pdev->irq, (wc->devtype->flags & FLAG_2NDGEN) ?
 					t4_interrupt_gen2 : t4_interrupt,
-			DAHDI_IRQ_SHARED,
+			IRQF_SHARED,
 			(wc->numspans == 8) ? "wct8xxp" :
 					      (wc->numspans == 2) ? "wct2xxp" :
 								    "wct4xxp",
@@ -5348,7 +5348,7 @@ t4_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	if (request_irq(pdev->irq, t4_interrupt_gen2,
-			DAHDI_IRQ_SHARED, "t4xxp", wc)) {
+			IRQF_SHARED, "t4xxp", wc)) {
 #endif
 		dev_notice(&wc->dev->dev, "Unable to request IRQ %d\n",
 				pdev->irq);
diff --git a/drivers/dahdi/wctc4xxp/base.c b/drivers/dahdi/wctc4xxp/base.c
index d1e1507..02ea625 100644
--- a/drivers/dahdi/wctc4xxp/base.c
+++ b/drivers/dahdi/wctc4xxp/base.c
@@ -4105,7 +4105,7 @@ wctc4xxp_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	pci_set_master(pdev);
 	pci_set_drvdata(pdev, wc);
 	res = request_irq(pdev->irq, wctc4xxp_interrupt,
-		DAHDI_IRQ_SHARED, wc->board_name, wc);
+			  IRQF_SHARED, wc->board_name, wc);
 	if (res) {
 		dev_err(&wc->pdev->dev,
 			"Unable to request IRQ %d\n", pdev->irq);
diff --git a/drivers/dahdi/wctdm.c b/drivers/dahdi/wctdm.c
index f82bc6d..9f43e52 100644
--- a/drivers/dahdi/wctdm.c
+++ b/drivers/dahdi/wctdm.c
@@ -2684,7 +2684,8 @@ static int __devinit wctdm_init_one(struct pci_dev *pdev, const struct pci_devic
 			/* Keep track of which device we are */
 			pci_set_drvdata(pdev, wc);
 
-			if (request_irq(pdev->irq, wctdm_interrupt, DAHDI_IRQ_SHARED, "wctdm", wc)) {
+			if (request_irq(pdev->irq, wctdm_interrupt,
+					IRQF_SHARED, "wctdm", wc)) {
 				printk(KERN_NOTICE "wctdm: Unable to request IRQ %d\n", pdev->irq);
 				if (wc->freeregion)
 					release_region(wc->ioaddr, 0xff);
diff --git a/drivers/dahdi/wcte11xp.c b/drivers/dahdi/wcte11xp.c
index eac62e3..8c4ab6e 100644
--- a/drivers/dahdi/wcte11xp.c
+++ b/drivers/dahdi/wcte11xp.c
@@ -1534,7 +1534,8 @@ static int __devinit t1xxp_init_one(struct pci_dev *pdev, const struct pci_devic
 	/* Keep track of which device we are */
 	pci_set_drvdata(pdev, wc);
 	
-	if (request_irq(pdev->irq, t1xxp_interrupt, DAHDI_IRQ_SHARED_DISABLED, "wcte11xp", wc)) {
+	if (request_irq(pdev->irq, t1xxp_interrupt,
+			IRQF_SHARED | IRQF_DISABLED, "wcte11xp", wc)) {
 		printk(KERN_NOTICE "wcte11xp: Unable to request IRQ %d\n", pdev->irq);
 		kfree(wc);
 		return -EIO;
diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index f45125a..7068fae 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -685,7 +685,7 @@ int wcxb_init(struct wcxb *xb, const char *board_name, u32 int_mode)
 	xb->flags.have_msi = (int_mode) ? 0 : (0 == pci_enable_msi(pdev));
 
 	if (request_irq(pdev->irq, wcxb_isr,
-			(xb->flags.have_msi) ? 0 : DAHDI_IRQ_SHARED,
+			(xb->flags.have_msi) ? 0 : IRQF_SHARED,
 			board_name, xb)) {
 		dev_notice(&xb->pdev->dev, "Unable to request IRQ %d\n",
 			   pdev->irq);
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index 90d48a3..ce16668 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -76,10 +76,6 @@
 #define HAVE_NET_DEVICE_OPS
 #endif
 
-#define DAHDI_IRQ_SHARED IRQF_SHARED
-#define DAHDI_IRQ_DISABLED IRQF_DISABLED
-#define DAHDI_IRQ_SHARED_DISABLED IRQF_SHARED | IRQF_DISABLED
-
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
 #  ifdef RHEL_RELEASE_VERSION
 #    if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(5, 6)

commit 4305b44108342ddc29569d0cb6bd74b1193b6be4
Author: John Sloan <jsloan256 at gmail.com>
Date:   Fri Feb 13 14:46:22 2015 -0600

    wcxb: Fix "I/O error reported by firmware" followed by underruns
    
    The cards affected include the TE131/3, TE235/435, A4B, and A8B.
    
    Update all PCIe cards' firmware to increase the incoming and outgoing TDM FIFOs
    to 16ms. The FIFOs will only be filled to a depth equal to the driver's latency
    setting (ie. 3ms default). The total system latency is not effected. The
    firmware and driver now also report the maximum DMA transaction time when in
    DEBUG mode to aid in determining if the system is experiencing long PCIe
    transactions (ie. TLP completion timeouts).
    
    Decreased the maximum latency to from 20 to 12ms
    
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit ae5fa08abd1b898c0c080927e75c7249b3982c2d)

diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index e93347e..fbd6582 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -31,14 +31,14 @@ VPMADT032_VERSION:=1.25.0
 HX8_VERSION:=2.06
 VPMOCT032_VERSION:=1.12.0
 WCT820_VERSION:=1.76
-TE133_VERSION:=780019
+TE133_VERSION:=7a001e
 TE134_VERSION:=780017
-TE435_VERSION:=e0019
+TE435_VERSION:=13001e
 TE436_VERSION:=10017
 A8A_VERSION:=1d0017
-A8B_VERSION:=1d0019
+A8B_VERSION:=1f001e
 A4A_VERSION:=a0017
-A4B_VERSION:=b0019
+A4B_VERSION:=d001e
 
 FIRMWARE_URL:=http://downloads.digium.com/pub/telephony/firmware/releases
 
diff --git a/drivers/dahdi/wcaxx-base.c b/drivers/dahdi/wcaxx-base.c
index 3d3329f..00c2d21 100644
--- a/drivers/dahdi/wcaxx-base.c
+++ b/drivers/dahdi/wcaxx-base.c
@@ -3886,9 +3886,9 @@ static int wcaxx_check_firmware(struct wcaxx *wc)
 	u32 firmware_version;
 	const bool force_firmware = false;
 	const unsigned int A4A_VERSION = 0x0a0017;
-	const unsigned int A4B_VERSION = 0x0b0019;
+	const unsigned int A4B_VERSION = 0x0d001e;
 	const unsigned int A8A_VERSION = 0x1d0017;
-	const unsigned int A8B_VERSION = 0x1d0019;
+	const unsigned int A8B_VERSION = 0x1f001e;
 
 	if (wc->desc == &device_a8a) {
 		firmware_version = A8A_VERSION;
diff --git a/drivers/dahdi/wcte13xp-base.c b/drivers/dahdi/wcte13xp-base.c
index 1917583..c5ebe9d 100644
--- a/drivers/dahdi/wcte13xp-base.c
+++ b/drivers/dahdi/wcte13xp-base.c
@@ -45,7 +45,7 @@
 
 static const char *TE133_FW_FILENAME = "dahdi-fw-te133.bin";
 static const char *TE134_FW_FILENAME = "dahdi-fw-te134.bin";
-static const u32 TE133_FW_VERSION = 0x780019;
+static const u32 TE133_FW_VERSION = 0x7a001e;
 static const u32 TE134_FW_VERSION = 0x780017;
 
 #define WC_MAX_IFACES 8
diff --git a/drivers/dahdi/wcte43x-base.c b/drivers/dahdi/wcte43x-base.c
index a718393..3f00c5d 100644
--- a/drivers/dahdi/wcte43x-base.c
+++ b/drivers/dahdi/wcte43x-base.c
@@ -66,7 +66,7 @@ static inline int delayed_work_pending(struct work_struct *work)
 
 static const char *TE435_FW_FILENAME = "dahdi-fw-te435.bin";
 static const char *TE436_FW_FILENAME = "dahdi-fw-te436.bin";
-static const u32 TE435_VERSION = 0xe0019;
+static const u32 TE435_VERSION = 0x13001e;
 static const u32 TE436_VERSION = 0x10017;
 
 /* #define RPC_RCLK */
diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index 9ab53c8..f45125a 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -66,7 +66,6 @@
 #define DRING_SIZE_MASK		(DRING_SIZE-1)
 #define DESC_EOR		(1 << 0)
 #define DESC_INT		(1 << 1)
-#define DESC_IO_ERROR		(1 << 30)
 #define DESC_OWN		(1 << 31)
 #define DESC_DEFAULT_STATUS	0xdeadbe00
 #define DMA_CHAN_SIZE		128
@@ -358,45 +357,25 @@ static void _wcxb_reset_dring(struct wcxb *xb)
 	hdesc->control |= cpu_to_be32(DESC_EOR);
 #ifdef DEBUG
 	xb->last_retry_count = 0;
+	xb->max_retry_count = 0;
+	xb->last_dma_time = 0;
+	xb->max_dma_time = 0;
 #endif
 	iowrite32be(xb->hw_dring_phys, xb->membase + TDM_DRING_ADDR);
 }
 
 static void wcxb_handle_dma(struct wcxb *xb)
 {
-#ifdef DEBUG
-	bool did_retry_dma = false;
-	u8 retry;
-#endif
 	struct wcxb_meta_desc *mdesc;
 	struct wcxb_hw_desc *tail = &(xb->hw_dring[xb->dma_tail]);
 
 	while (!(tail->control & cpu_to_be32(DESC_OWN))) {
 		u_char *frame;
 
-		if (tail->control & cpu_to_be32(DESC_IO_ERROR)) {
-			u32 ier;
-			unsigned long flags;
-
-			/* The firmware detected an error condition on the bus.
-			 * Force an underrun by disabling the descriptor
-			 * complete interrupt. When the driver processes the
-			 * underrun it will reset the TDM engine. */
-			xb->flags.io_error = 1;
-
-			spin_lock_irqsave(&xb->lock, flags);
-			ier = ioread32be(xb->membase + IER);
-			iowrite32be(ier & ~DESC_COMPLETE, xb->membase + IER);
-			spin_unlock_irqrestore(&xb->lock, flags);
-			return;
-		}
-
 #ifdef DEBUG
-		retry = be32_to_cpu(tail->status) & 0xff;
-		if (xb->last_retry_count != retry) {
-			xb->last_retry_count = retry;
-			did_retry_dma = true;
-		}
+		xb->last_retry_count =
+			((be32_to_cpu(tail->control) & 0x0000ff00) >> 8);
+		xb->last_dma_time = (be32_to_cpu(tail->status));
 #endif
 
 		mdesc = &xb->meta_dring[xb->dma_tail];
@@ -420,9 +399,17 @@ static void wcxb_handle_dma(struct wcxb *xb)
 	}
 
 #ifdef DEBUG
-	if (did_retry_dma) {
+	if (xb->last_retry_count > xb->max_retry_count) {
+		xb->max_retry_count = xb->last_retry_count;
+		dev_info(&xb->pdev->dev,
+			"New DMA max retries detected: %d\n",
+			xb->max_retry_count);
+	}
+	if (xb->last_dma_time > xb->max_dma_time) {
+		xb->max_dma_time = xb->last_dma_time;
 		dev_info(&xb->pdev->dev,
-			 "DMA retries detected: %d\n", xb->last_retry_count);
+			"New DMA max transfer time detected: %d\n",
+			xb->max_dma_time);
 	}
 #endif
 }
@@ -451,14 +438,7 @@ static irqreturn_t _wcxb_isr(int irq, void *dev_id)
 
 			spin_lock(&xb->lock);
 
-			if (xb->flags.io_error) {
-				/* Since an IO error is not necessarily because
-				 * the host could not keep up, we do not want to
-				 * bump the latency. */
-				xb->flags.io_error = 0;
-				dev_warn(&xb->pdev->dev,
-					 "IO error reported by firmware.\n");
-			} else if (!xb->flags.latency_locked) {
+			if (!xb->flags.latency_locked) {
 				/* bump latency */
 
 				xb->latency = min(xb->latency + 1,
diff --git a/drivers/dahdi/wcxb.h b/drivers/dahdi/wcxb.h
index 3a0f8d3..d23c89f 100644
--- a/drivers/dahdi/wcxb.h
+++ b/drivers/dahdi/wcxb.h
@@ -24,7 +24,7 @@
 #define __WCXB_H__
 
 #define WCXB_DEFAULT_LATENCY	3U
-#define WCXB_DEFAULT_MAXLATENCY 20U
+#define WCXB_DEFAULT_MAXLATENCY 12U
 #define WCXB_DMA_CHAN_SIZE	128
 
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
@@ -66,7 +66,7 @@ struct wcxb {
 #ifdef WCXB_PCI_DEV_DOES_NOT_HAVE_IS_PCIE
 		u32	is_pcie:1;
 #endif
-		u32	io_error:1;
+		u32	dma_ins:1;
 	} flags;
 	void __iomem			*membase;
 	struct wcxb_meta_desc		*meta_dring;
@@ -78,6 +78,9 @@ struct wcxb {
 	unsigned long			framecount;
 #ifdef DEBUG
 	u8				last_retry_count;
+	u8				max_retry_count;
+	u32				last_dma_time;
+	u32				max_dma_time;
 #endif
 };
 

commit b6fe19cff5c324578dbd55d217209745e67ed607
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Mon Mar 30 15:35:09 2015 +0300

    xpp: USB_FW*: fix incorrect chan num with 2FXS6FXO
    
    New USB firmware that fix mis-reporting of the number of channels (or
    rather: licenses) in the Astribank when a 2FXS6FXO module is used in
    conjunction with another module.
    
    USB_FW.hex: rev. 11452
    USB_FW.201.hex: rev. 11453
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 62879540871bd5837359f3525499912346563a1b)

diff --git a/drivers/dahdi/xpp/firmwares/USB_FW.201.hex b/drivers/dahdi/xpp/firmwares/USB_FW.201.hex
index 3e55a28..2320826 100644
--- a/drivers/dahdi/xpp/firmwares/USB_FW.201.hex
+++ b/drivers/dahdi/xpp/firmwares/USB_FW.201.hex
@@ -1,5 +1,5 @@
 #
-# $Id: USB_FW.201.hex 10402 2012-02-15 15:34:50Z dima $
+# $Id: USB_FW.201.hex 11453 2015-03-29 18:27:25Z dima $
 #
 :03004300021F0099
 :03005300021F0089
@@ -27,7 +27,7 @@
 :050FF6000300000000F3
 :100F3C0041E0370041E0B60042E0B1000041E0384A
 :100F4C0000021BE0850218E07943E0B30000004D7D
-:0F0F5C00E03931303339354D202020202020005E
+:0F0F5C00E03931313435314D2020202020200064
 :101D71008B538A548955E5581558AE57700215573B
 :101D81004E6014AB530555E555AA54700205541421
 :081D9100F9ED12077780DF2253
@@ -164,7 +164,7 @@
 :100B7E00AB45AA46A9477401120777E4F550E55034
 :100B8E00C454F0AB45AA46A94790000112078985C7
 :100B9E004858854959854A5A755B08121A95AB48CB
-:100BAE00AA49A94A90000212074AFE5403FFEE54C6
+:100BAE00AA49A94A90000212074AFE5407FFEE54C2
 :100BBE0070F55124E0602924F0604B24F0605D2430
 :100BCE00F0606F24406003020C5675410185184297
 :100BDE00851943EF24FE600624FE703B801C801FA7
diff --git a/drivers/dahdi/xpp/firmwares/USB_FW.hex b/drivers/dahdi/xpp/firmwares/USB_FW.hex
index dc68d08..1e2f001 100644
--- a/drivers/dahdi/xpp/firmwares/USB_FW.hex
+++ b/drivers/dahdi/xpp/firmwares/USB_FW.hex
@@ -1,5 +1,5 @@
 # 
-# $Id: USB_FW.hex 10401 2012-02-15 15:30:24Z dima $
+# $Id: USB_FW.hex 11452 2015-03-29 18:21:13Z dima $
 # 
 :03004300021F0099
 :03005300021F0089
@@ -27,7 +27,7 @@
 :051EF1000300000000E9
 :1011F50041E0370041E0B70042E0B2000041E0388D
 :1012050000021BE0860218E07A43E0B40000004EBD
-:10121500E03931303339354D502020202020200051
+:10121500E03931313435314D502020202020200057
 :101D9A008B518A528953E5561556AE557002155520
 :101DAA004E6014AB510553E553AA52700205521402
 :081DBA00F9ED12077180DF2230
@@ -165,7 +165,7 @@
 :100B7800AB43AA44A9457401120771E4F54EE54E4A
 :100B8800C454F0AB43AA44A94590000112078385D9
 :100B98004656854757854858755908121A94AB46E2
-:100BA800AA47A948900002120744FE5403FFEE54D6
+:100BA800AA47A948900002120744FE5407FFEE54D2
 :100BB80070F54F24E0602924F0604B24F0605D2438
 :100BC800F0606F24406003020C50753F01851840A7
 :100BD800851941EF24FE600624FE703B801C801FAF

commit 108b0641aad54f38953ce997c1c2cc6e78dd0583
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Mon Mar 2 19:44:02 2015 +0200

    README: use file time for reproducable build
    
    https://bugs.debian.org/776622 asks to avoid using the build time in the
    generated result to help make the build reproducable.
    
    This fix uses the timestamp of README for generating the timestamp in
    the footer of README.html.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit b978e35636b23d4bff95c5bd2c8a379e10794d22)

diff --git a/Makefile b/Makefile
index 1cf2ccd..d246865 100644
--- a/Makefile
+++ b/Makefile
@@ -196,7 +196,8 @@ test:
 docs: $(GENERATED_DOCS)
 
 README.html: README
-	$(ASCIIDOC_CMD) -o $@ $<
+	date=`stat -c "%y" $<`
+	$(ASCIIDOC_CMD)  -a revdate="$$date" -o $@ $<
 
 dahdi-api.html: drivers/dahdi/dahdi-base.c
 	build_tools/kernel-doc --kernel $(KSRC) $^ >$@

commit 368d8bec4bad1a6cf2eb5070b0cd884b6c2ed0f7
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Mon Mar 2 18:33:35 2015 +0200

    xpp: module_refcount is back to int on 3.19
    
    Commit d5db139ab3764640e0882a1746e7b9fdee33fd87 "module: make
    module_refcount() a signed integer." included in 3.19 makes this
    condition slightly more complex.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 5c072d5bce2df7f93ce52af334e60a8eee79ecb6)

diff --git a/drivers/dahdi/xpp/xproto.c b/drivers/dahdi/xpp/xproto.c
index 25618fa..1fd130c 100644
--- a/drivers/dahdi/xpp/xproto.c
+++ b/drivers/dahdi/xpp/xproto.c
@@ -80,7 +80,8 @@ static const xproto_table_t *xproto_table(xpd_type_t cardtype)
 	return xprotocol_tables[cardtype];
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0) || \
+	LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
 #define MODULE_REFCOUNT_FORMAT "%s refcount was %d\n"
 #else
 #define MODULE_REFCOUNT_FORMAT "%s refcount was %lu\n"

commit 799753aefdccd130eab3d8c718c7dcbaf696de3a
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Mar 2 09:00:14 2015 -0600

    dahdi: strnicmp() -> strncasecmp()
    
    With commit (af3cd13501 "lib/string.c: remove strnicmp()") [1] dahdi can no
    longer call strnicmp directly. strncasecmp was added into lib/string.c in kernel
    version 2.6.22 so we'll map calls to strncasecmp to strnicmp for any kernel
    before that.
    
    This is necessary to compile against kernels >= 4.0.
    
    [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=af3cd13501
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Acked-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 1559db9d1ae03780788788c07334ca54cdd1253a)

diff --git a/drivers/dahdi/xpp/card_pri.c b/drivers/dahdi/xpp/card_pri.c
index 29b457b..edc8bd2 100644
--- a/drivers/dahdi/xpp/card_pri.c
+++ b/drivers/dahdi/xpp/card_pri.c
@@ -2399,11 +2399,11 @@ static DEVICE_ATTR_WRITER(pri_protocol_store, dev, buf, count)
 			buf, i);
 		return -EINVAL;
 	}
-	if (strnicmp(buf, "E1", 2) == 0)
+	if (strncasecmp(buf, "E1", 2) == 0)
 		new_protocol = PRI_PROTO_E1;
-	else if (strnicmp(buf, "T1", 2) == 0)
+	else if (strncasecmp(buf, "T1", 2) == 0)
 		new_protocol = PRI_PROTO_T1;
-	else if (strnicmp(buf, "J1", 2) == 0)
+	else if (strncasecmp(buf, "J1", 2) == 0)
 		new_protocol = PRI_PROTO_J1;
 	else {
 		XPD_NOTICE(xpd,
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index 54c415e..90d48a3 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1502,6 +1502,8 @@ void dahdi_pci_disable_link_state(struct pci_dev *pdev, int state);
 #define list_first_entry(ptr, type, member) \
 	list_entry((ptr)->next, type, member)
 
+#define strncasecmp strnicmp
+
 #ifndef __packed
 #define __packed  __attribute__((packed))
 #endif 

commit a3da9f1d039368ae508ce52cc18c444b4fb73773
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Mar 2 09:00:13 2015 -0600

    dahdi: Fix "void value not ignored..." error when compiling against kernel 4.0.
    
    With commit (d1f1052c52 "device: Change dev_<level> logging functions to return
    void") [1] in kernel version 4.0, DAHDI would fail to compile with the following
    error:
    
      .../drivers/dahdi/dahdi-base.c:7150:2: error: void value not ignored as it ought to be
        dahdi_dev_dbg(ASSIGN, span_device(span),
        ^
    
    Now ignore the dev_printk return value.
    
    [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d1f1052c5204524
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Acked-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 1cc0ad510acd404e63923ed3062b9302d53580da)

diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index 365801d..54c415e 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1665,9 +1665,11 @@ struct mutex {
 				chan_printk(DEBUG, "-" #bits, chan, \
 					"%s: " fmt, __func__, ## __VA_ARGS__)))
 #define dahdi_dev_dbg(bits, dev, fmt, ...)         \
-			((void)((debug & (DAHDI_DBG_ ## bits)) && \
+		do { if (debug & (DAHDI_DBG_ ## bits)) { \
 			dev_printk(KERN_DEBUG, dev, \
-			"DBG-%s(%s): " fmt, #bits, __func__, ## __VA_ARGS__)))
+			"DBG-%s(%s): " fmt, #bits, __func__, ## __VA_ARGS__); \
+		} } while (0)
+
 #endif /* DAHDI_PRINK_MACROS_USE_debug */
 
 #endif /* _DAHDI_KERNEL_H */

commit 701f633e0dc4b17e3efc4fc3657ed7de7b513dad
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Dec 22 11:21:28 2014 -0600

    dahdi: struct file.f_dentry macro was removed in kernel 3.19
    
    This is necessary to build against kernel version 3.19 since commit
    (78d28e651f97866d608d9b41 "kill f_dentry macro") [1]
    
    [1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=78d28e651
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit 4d86a8f3f690ee9bb9429e17cc03856c6c2dc760)

diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
index 0892734..f2caad0 100644
--- a/drivers/dahdi/dahdi-base.c
+++ b/drivers/dahdi/dahdi-base.c
@@ -98,7 +98,11 @@
 #define chan_to_netdev(h) ((h)->hdlcnetdev->netdev)
 
 /* macro-oni for determining a unit (channel) number */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20)
 #define	UNIT(file) MINOR(file->f_dentry->d_inode->i_rdev)
+#else
+#define	UNIT(file) MINOR(file->f_path.dentry->d_inode->i_rdev)
+#endif
 
 EXPORT_SYMBOL(dahdi_transcode_fops);
 EXPORT_SYMBOL(dahdi_init_tone_state);

commit 9d62e703fec2af8f4be845a71eab7c618d2727f1
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Wed Dec 10 08:39:39 2014 -0600

    dahdi_dynamic: Release reference count on network device when destroying dynamic spans.
    
    It was reported that for VLAN interfaces, failing to release this reference
    count will prevent a system from rebooting properly, resulting in the need to
    power cycle.
    
    Reported-by: Assen Totin
    Internal-Issue-ID: DAHLIN-343
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>
    Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
    (cherry picked from commit e005030995d5942a91095add9b8dee9390c96dd1)

diff --git a/drivers/dahdi/dahdi_dynamic_eth.c b/drivers/dahdi/dahdi_dynamic_eth.c
index e92ba30..ab63d71 100644
--- a/drivers/dahdi/dahdi_dynamic_eth.c
+++ b/drivers/dahdi/dahdi_dynamic_eth.c
@@ -266,6 +266,7 @@ static void ztdeth_destroy(struct dahdi_dynamic *dyn)
 	struct ztdeth *z = dyn->pvt;
 	unsigned long flags;
 	struct ztdeth *prev=NULL, *cur;
+
 	spin_lock_irqsave(&zlock, flags);
 	cur = zdevs;
 	while(cur) {
@@ -279,12 +280,14 @@ static void ztdeth_destroy(struct dahdi_dynamic *dyn)
 		prev = cur;
 		cur = cur->next;
 	}
+	spin_unlock_irqrestore(&zlock, flags);
+
 	if (cur == z) {	/* Successfully removed */
 		dyn->pvt = NULL;
+		dev_put(z->dev);
 		printk(KERN_INFO "TDMoE: Removed interface for %s\n", z->span->name);
 		kfree(z);
 	}
-	spin_unlock_irqrestore(&zlock, flags);
 }
 
 static int ztdeth_create(struct dahdi_dynamic *dyn, const char *addr)

commit 6dd89a7ae5b4386aa1291782af71deb2c3e2affe
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Mon Nov 17 18:00:51 2014 +0200

    xpp: firmware: a stray ^Z in FPGA_1161.201.hex
    
    (cherry picked from commit ee691c23f4069a1097cab8066c9787c68ee03ea8)

diff --git a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
index 2dd19ec..e63b7f1 100644
--- a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
+++ b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
@@ -20588,4 +20588,3 @@
 :1006200004000400040004000400040004000400AA
 :020630000400C4
 :00000001FF
-

commit 0981935d5cfb182779791e6b3b725853e742f4bb
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Mon Nov 17 17:55:47 2014 +0200

    xpp: firmware: 203 as alias to (newer) 201
    
    Latest Astribank firmware (as of Rev. 11426 also supports some newer
    hardware types, which will have the ID 203. Anyone installing this newer
    version will now have 203 as an alias, but older versions will not have
    it.
    
    (cherry picked from commit 9698657f7a5f60911a6d1be4ae0fcbd9c40d9580)

diff --git a/drivers/dahdi/xpp/firmwares/Makefile b/drivers/dahdi/xpp/firmwares/Makefile
index f2be560..e176ef0 100644
--- a/drivers/dahdi/xpp/firmwares/Makefile
+++ b/drivers/dahdi/xpp/firmwares/Makefile
@@ -20,7 +20,12 @@ install:
 	mkdir -p $(TARGET)
 	install $(SCRIPTS) $(TARGET)/
 	install -m 644 ../XppConfig.pm $(FIRMWARES) $(TARGET)/
-	if [ ! -r $(TARGET)/USB_FW.202.hex ]; then \
-		ln -s USB_FW.201.hex $(TARGET)/USB_FW.202.hex;\
+	for id in 202 203; do \
+		if [ ! -r $(TARGET)/USB_FW.$$id.hex ]; then \
+			ln -s USB_FW.201.hex $(TARGET)/USB_FW.$$id.hex;\
+		fi; \
+	done
+	if [ ! -r $(TARGET)/FPGA_1161.203.hex ]; then \
+		ln -s FPGA_1161.201.hex $(TARGET)/FPGA_1161.203.hex;\
 	fi
 

commit cf057d4b0e61542f617d7386c1af1e29382f43d6
Author: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
Date:   Wed Nov 5 20:00:58 2014 +0200

    xpp: FPGA_1161.201.hex: module types detection
    
    New firmware that includes a better way to identify hardware modules
    type that does not require multiplexers.
    
    This is firmware file FPGA_1161.201.hex rev. 11426.
    
    Signed-off-by: Tzafrir Cohen <tzafrir.cohen at xorcom.com>
    (cherry picked from commit 79bf41ea8b69250984ff701f61bc97716e107cfb)

diff --git a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
index 06c5d59..2dd19ec 100644
--- a/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
+++ b/drivers/dahdi/xpp/firmwares/FPGA_1161.201.hex
@@ -1,5 +1,5 @@
 #
-# $Id: FPGA_1161.201.hex 10545 2012-04-09 09:30:01Z dima $
+# $Id: FPGA_1161.201.hex 11426 2014-10-06 08:45:39Z dima $
 #
 :020000040000FA
 :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
@@ -12,11 +12,11 @@
 :100070000020CC8080004C8600004C8100004C8524
 :1000800000004C8300004C870000CC85D847CC434F
 :1000900000000000040004000C44000000000C8577
-:1000A00000800A060000004100000000000000007F
+:1000A00000800A06000080610000000000000000DF
 :1000B0000000000000000000000000000000000040
 :1000C0000000000000000000000000000000000030
 :1000D0000000000000000000000000000000000020
-:1000E00000000000000000000000089000004880B0
+:1000E0000000000000000000000040900000409070
 :1000F0000000000000000000000000000000000000
 :1001000000000000000000000000000000000000EF
 :1001100000000000000000000000000000000000DF
@@ -24,3811 +24,3811 @@
 :1001300000000000000000000000000000000000BF
 :1001400000000000000000000000000000000000AF
 :10015000000000000000000000000000000000009F
-:10016000000000000000000000000000000000008F
+:10016000000000000000000000000000004000014E
 :10017000000000000000000000000000000000007F
 :10018000000000000000000000000000000000006F
 :10019000000000000000000000000000000000005F
-:1001A0000000000000000000000000000004AB9709
-:1001B0000C85004004000400040004000400040056
-:1001C00004000400CC2600000000000000000C44E5
-:1001D00000800080CC2600000000000000000C44DD
-:1001E00000800020CC2600000000000000000C442D
-:1001F000008000A0CC2600000000000000000C449D
-:10020000008000E0CC2600000000000000000C444C
-:1002100000800090CC2600000000000000000C448C
-:1002200000800050CC2600000000000000000C44BC
-:1002300000800030CC2600000000000000000C44CC
-:10024000008000B0CC2600000000000000000C443C
-:1002500000800008CC2600000000000000000C44D4
-:1002600000800088CC2600000000000000000C4444
-:10027000008000C8CC2600000000000000000C44F4
-:10028000008000A8CC2600000000000000000C4404
-:1002900000800098CC2600000000000000000C4404
-:1002A00000800058CC2600000000000000000C4434
-:1002B00000400080CC2600000000000000000C443C
-:1002C000004000E8CC2600000000000000000C44C4
-:1002D00000200080CC2600000000000000000C443C
-:1002E000002000A8CC2600000000000000000C4404
-:1002F00000200068CC2600000000000000000C4434
-:1003000000E00030CC2600000000000000000C449B
-:1003100000E000B0CC2600000000000000000C440B
-:1003200000E00070CC2600000000000000000C443B
-:1003300000E000F0CC2600000000000000000C44AB
-:1003400000E00008CC2600000000000000000C4483
-:1003500000E00088CC2600000000000000000C44F3
-:1003600000E00048CC2600000000000000000C4423
-:1003700000E000C8CC2600000000000000000C4493
-:1003800000E00028CC2600000000000000000C4423
-:1003900000E000A8CC2600000000000000000C4493
-:1003A00000E00068CC2600000000000000000C44C3
-:1003B00000E000E8CC2600000000000000000C4433
-:1003C000001000E8CC2600000000000000000C44F3
-:1003D00000700040CC2600000000000000000C442B
-:1003E00000700030CC2600000000000000000C442B
-:1003F000007000B0CC2600000000000000000C449B
-:1004000000700070CC2600000000000000000C44CA
-:10041000007000F0CC2600000000000000000C443A
-:1004200000700008CC2600000000000000000C4412
-:1004300000700088CC2600000000000000000C4482
-:1004400000700048CC2600000000000000000C44B2
-:10045000007000C8CC2600000000000000000C4422
-:1004600000700028CC2600000000000000000C44B2
-:10047000007000A8CC2600000000000000000C4422
-:1004800000700068CC2600000000000000000C4452
-:10049000007000E8CC2600000000000000000C44C2
-:1004A00000700018CC2600000000000000000C4482
-:1004B00000F000E8CC2600000000000000000C4422
-:1004C00000880040CC2600000000000000000C4422
-:1004D000008800E0CC2600000000000000000C4472
-:1004E000008800D0CC2600000000000000000C4472
-:1004F00000880030CC2600000000000000000C4402
-:10050000008800B0CC2600000000000000000C4471
-:10051000008800F0CC2600000000000000000C4421
-:1005200000880008CC2600000000000000000C44F9
-:1005300000880088CC2600000000000000000C4469
-:1005400000880048CC2600000000000000000C4499
-:10055000008800C8CC2600000000000000000C4409
-:1005600000880028CC2600000000000000000C4499
-:10057000008800A8CC2600000000000000000C4409
-:1005800000880018CC2600000000000000000C4489
-:1005900000880098CC2600000000000000000C44F9
-:1005A00000880058CC2600000000000000000C4429
-:1005B000000000400C8500800A060000802000003A
-:1005C000000000000000000000000000000000002B
-:1005D000000000000000000000000000000000001B
-:1005E000000000000000000000000000000000000B
-:1005F00000000000000000000000000000000000FB
-:1006000010000000100000000000000000000000CA
-:1006100000000000000000000000000000000000DA
-:1006200000000000000000000000000000000000CA
-:1006300000000000000000000000000000000000BA
-:100640000000000000000000250000000000000085
-:10065000000000000000000000000000000000009A
-:10066000000000000000000000000000000000008A
-:10067000000020D00000000000000C00000000007E
-:10068000000000000000000000000000000000006A
-:10069000000000000000000000000000000000005A
-:1006A000000000000000000000000000000000004A
-:1006B000000000000000000000000000000000003A
-:1006C000000000000000000000000000000000002A
-:1006D0000400000000000000000000000000000016
-:1006E000000000000000000000000000000000000A
-:1006F00004000000000000000000000000000000F6
-:1007000000000000000000000000000000000000E9
-:1007100000000000000000000000000000000000D9
-:1007200000000000000000000000000000000000C9
-:1007300000000000000000000000000000000000B9
-:1007400000000000FFFFFFFFFFFFFFFFFFFFFFFFB5
-:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
-:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
-:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
-:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
-:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
-:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
-:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
-:1007C000FFFFFFFFFFFF0014983C0C440080004037
-:1007D0000A06000000C30000000000000000000046
+:1001A000000000000000000000000000000000004F
+:1001B000000000000000000000000000000000003F
+:1001C000000000000000000000000000000000002F
+:1001D000000000000000000000000000000000001F
+:1001E00000000000000000000000000000000020EF
+:1001F00000040020000000000000000000000000DB
+:1002000000000000000000000000000000000000EE
+:1002100000000000000000000000000000000000DE
+:1002200000000000000000000000000000000000CE
+:100230000000000000002500000000000000000099
+:1002400000000000000000000000000000000000AE
+:10025000000000000000000000000000000000009E
+:10026000200000000000000004000000000000006A
+:10027000000000000000000000000000440000003A
+:100280000000000000D0800000000000000000001E
+:10029000000000000000000000000000000000005E
+:1002A000000000000000000000000000000000004E
+:1002B0000800000000000000000000000000000036
+:1002C000000000000000000000000000000000002E
+:1002D000040000000000000000000000000000001A
+:1002E000000000000000000000000000000000000E
+:1002F00000000000000000000000000000000000FE
+:1003000000000000000000000000000000000000ED
+:1003100000000000000000000000000000000000DD
+:1003200000000000000000000000000000000000CD
+:1003300000000000000000000000000000000000BD
+:1003400000000000000000000000000000000000AD
+:10035000000000000000000000000000000000009D
+:10036000000000000000000000000000000000008D
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000000004D
+:1003B0000000000000ACE5D60C85004004000400FD
+:1003C000040004000400040004000400CC26000023
+:1003D0000000000000000C44008000A0CC260000BB
+:1003E0000000000000000C4400800030CC2600001B
+:1003F0000000000000000C44008000B0CC2600008B
+:100400000000000000000C4400800008CC26000022
+:100410000000000000000C4400800088CC26000092
+:100420000000000000000C44008000C8CC26000042
+:100430000000000000000C44008000A8CC26000052
+:100440000000000000000C4400800098CC26000052
+:100450000000000000000C4400800058CC26000082
+:100460000000000000000C44002000A8CC26000082
+:100470000000000000000C4400200068CC260000B2
+:100480000000000000000C4400E00030CC2600001A
+:100490000000000000000C4400E000B0CC2600008A
+:1004A0000000000000000C4400E00070CC260000BA
+:1004B0000000000000000C4400E000F0CC2600002A
+:1004C0000000000000000C4400E00008CC26000002
+:1004D0000000000000000C4400E00088CC26000072
+:1004E0000000000000000C4400E00048CC260000A2
+:1004F0000000000000000C4400E000C8CC26000012
+:100500000000000000000C4400E00028CC260000A1
+:100510000000000000000C4400E000A8CC26000011
+:100520000000000000000C4400E00068CC26000041
+:100530000000000000000C4400E000E8CC260000B1
+:100540000000000000000C44003000E8CC26000051
+:100550000000000000000C4400700040CC260000A9
+:100560000000000000000C4400700030CC260000A9
+:100570000000000000000C44007000B0CC26000019
+:100580000000000000000C4400700070CC26000049
+:100590000000000000000C44007000F0CC260000B9
+:1005A0000000000000000C4400700008CC26000091
+:1005B0000000000000000C4400700088CC26000001
+:1005C0000000000000000C4400700048CC26000031
+:1005D0000000000000000C44007000C8CC260000A1
+:1005E0000000000000000C4400700028CC26000031
+:1005F0000000000000000C44007000A8CC260000A1
+:100600000000000000000C4400700068CC260000D0
+:100610000000000000000C44007000E8CC26000040
+:100620000000000000000C4400700018CC26000000
+:100630000000000000000C4400F000E8CC260000A0
+:100640000000000000000C4400880040CC260000A0
+:100650000000000000000C44008800C0CC26000010
+:100660000000000000000C4400880020CC260000A0
+:100670000000000000000C44008800E0CC260000D0
+:100680000000000000000C4400880010CC26000090
+:100690000000000000000C44008800D0CC260000C0
+:1006A0000000000000000C4400880030CC26000050
+:1006B0000000000000000C44008800B0CC260000C0
+:1006C0000000000000000C4400880008CC26000058
+:1006D0000000000000000C4400880088CC260000C8
+:1006E0000000000000000C4400880048CC260000F8
+:1006F0000000000000000C44008800C8CC26000068
+:100700000000000000000C4400880028CC260000F7
+:100710000000000000000C44008800A8CC26000067
+:100720000000000000000C4400880018CC260000E7
+:100730000000000000000C4400880098CC26000057
+:100740000000000000000C4400880058CC26000087
+:100750000000000000000C44008000400C85008078
+:100760000A060000802000000000000000000000D9
+:1007700000000000000000000000008800000000F1
+:100780000000000000000000000000000000000069
+:100790000000000000000000000000000000000059
+:1007A0000000000000000000000000000000000049
+:1007B0000000000000000000000000000000000039
+:1007C0000000000000000000000000000000020027
+:1007D0000000000011000000000000000000000008
 :1007E0000000000000000000000000000000000009
 :1007F00000000000000000000000000000000000F9
 :1008000000000000000000000000000000000000E8
 :1008100000000000000000000000000000000000D8
 :1008200000000000000000000000000000000000C8
-:1008300000000000000000000000000000000200B6
-:100840000000000000001100000000000000000097
-:100850000000000000000000000000000000000098
-:100860000000000000000010000000000000000078
+:1008300000000000000000000000000000000000B8
+:1008400000000000000000000000000000000000A8
+:100850000100000000000000000000000000000097
+:100860000000000000000000000000000000000088
 :100870000000000000000000000000000000000078
-:100880000000000000000010000000000000000058
+:100880000000000000000000000000000000000068
 :100890000000000000000000000000000000000058
-:1008A0000000000000000000001000000000000038
-:1008B0000000000000000000000000000000000038
-:1008C0000100000000000000002000000000000007
-:1008D00000000000000000000000FFFFFFFFFFFF1E
-:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
+:1008A0000000000000000000000000000000000048
+:1008B000000000000000090000000000000000002F
+:1008C0000000000000000000000000000000000028
+:1008D0000000000000000000000000000000000018
+:1008E000000000000000000000000000FFFFFFFF0C
 :1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
 :10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
 :10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
 :10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
 :10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
 :10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
-:10095000FFFFFFFFFFFFFFFFFFFFFFFF0050E22948
-:100960000C44008000600A06000000410000000006
-:100970000000000000000000000000000000000077
+:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
+:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFF008015
+:1009700027560C44008000600A06000080E3000057
 :100980000000000000000000000000000000000067
 :100990000000000000000000000000000000000057
 :1009A0000000000000000000000000000000000047
-:1009B0000000000000000000000000001000000027
-:1009C00000000000000000000000000041000000E6
-:1009D0000000000000000000000000000000000017
-:1009E0000000000000000000000000000000FFFF09
-:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
-:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
-:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
-:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
-:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
-:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
-:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
-:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
-:100A7000000471E40C44008000100A0600000041EC
+:1009B0000000000000000000000000000000000037
+:1009C0000000000000000000050000000900000019
+:1009D00000000000000000000000000041000000D6
+:1009E0000000000000000000000000000000000007
+:1009F00000000000000000000000000000000000F7
+:100A000000000000000000000000000008000000DE
+:100A100000000000000000000000000000000000D6
+:100A200000000000000000000000000000000000C6
+:100A300000000000000000000000000000000000B6
+:100A400000000000000000000000000000000000A6
+:100A50000000000000000000000000000000000096
+:100A60000000000000000000000000000000000086
+:100A70000000000000000000000000000000000076
 :100A80000000000000000000000000000000000066
 :100A90000000000000000000000000000000000056
 :100AA0000000000000000000000000000000000046
-:100AB00000000000000000004000000000000000F6
-:100AC0000000000000000000000000000000000026
-:100AD0000000000000000000000000000000000016
-:100AE00000000000000000001100000000000000F5
-:100AF00000000000000000000000000000000000F6
-:100B00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
-:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
-:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
-:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
-:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
-:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
-:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
-:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
-:100B8000FFFFFFFF008824FB0C44008000D00A0612
-:100B90000000004100000000000000000000000014
+:100AB0000000000000000000000000000000000036
+:100AC0000000000000000200000000000000000024
+:100AD0000000200000000000000000004100200095
+:100AE00000000500030000000000200000000000DE
+:100AF00000001100000000000000000000000000E5
+:100B000000000000000000000000000000000000E5
+:100B100000000000000000000000000000000000D5
+:100B200000000000000000000000000000000000C5
+:100B300000000000000000000000000000000000B5
+:100B400000000000000000000000000000000000A5
+:100B50000000000000110000000082000000000002
+:100B60000000000000000000000082000000000003
+:100B70000000000000000000000000000000000075
+:100B80000000000000000000000000000000000065
+:100B90000000000000000000000000000000000055
 :100BA0000000000000000000000000000000000045
 :100BB0000000000000000000000000000000000035
-:100BC0000000000000000000000000000000000025
-:100BD0000000000000000000000000008200002073
-:100BE00000000000A0000000000000000000000065
+:100BC0000000000000000000100000000000000015
+:100BD0000000000000000000000000000000110004
+:100BE0000000000000000000000000000000030002
 :100BF00000000000000000000000000000000000F5
 :100C000000000000000000000000000000000000E4
-:100C1000000000000000FFFFFFFFFFFFFFFFFFFFDE
-:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
-:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
-:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
-:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
-:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
-:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
-:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
-:100C9000FFFFFFFFFFFFFFFF00681A330C440080D7
-:100CA00000700A06000000C3000000000000000001
-:100CB0000000000000000000000000000000000034
-:100CC0000000000000000000000000000000000024
-:100CD0000000000000000000000000000000000014
-:100CE0000000000000000000000000000000000004
-:100CF00000000000000000000000000000000000F4
-:100D000000000000000000000000000000000000E3
-:100D100000080000000000000002000000000000C9
+:100C100000000000080000000000000000000400C8
+:100C200000000000000000000000000000000000C4
+:100C300000000000000000000000000000000000B4
+:100C400000000000000000000000000000000000A4
+:100C50000000820000000000000000000000000012
+:100C6000A000C00000000000000000000000000024
+:100C70009000000000000000000000000000820062
+:100C800000000000000000000000FFFFFFFFFFFF6A
+:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
+:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
+:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
+:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
+:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
+:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
+:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
+:100D0000FFFFFFFFFFFFFFFFFFFFFFFF00805D4EC4
+:100D10000C44008000700A06000000C300000000C0
 :100D200000000000000000000000000000000000C3
 :100D300000000000000000000000000000000000B3
 :100D400000000000000000000000000000000000A3
 :100D50000000000000000000000000000000000093
 :100D60000000000000000000000000000000000083
 :100D70000000000000000000000000000000000073
-:100D80000000000000000000000000000000000063
-:100D900000000080090000000000000000000000CA
-:100DA000000000000000000000000000FFFFFFFF47
-:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
-:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
-:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
-:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
-:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
-:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
-:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
-:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFF00D000
-:100E300046C70C44008000480A060000004100003C
-:100E400000000000000000000000000000000000A2
-:100E50000000000000000000000000000000000092
-:100E60000000000000000000000000000000000082
-:100E70000000000000000000000000000000004032
-:100E80000000000000000000000000000000000062
-:100E90000000000000000000000000000000000052
-:100EA0000000000000000000000000000000000042
-:100EB0000000000000000000000000000000000032
-:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
-:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
-:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
-:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
-:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
-:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
-:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
-:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
-:100F4000FFFF00F8722F0C44008000280A06000002
-:100F50000041000000000000000000000000000050
-:100F60000000000000000000000000000000000081
-:100F70000000000000000000000000000000000071
-:100F80000000000000000000000000000000000061
-:100F90000000000000000000000000000000000051
-:100FA0000000000000000000000000000000000041
-:100FB0000000000000000000000000000000000031
-:100FC00000000060000000000000000000000000C1
-:100FD00000000000FFFFFFFFFFFFFFFFFFFFFFFF1D
-:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
-:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
-:10100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
-:10101000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
-:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
-:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
-:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
-:10105000FFFFFFFFFFFF0018CECA0C4400800068AE
-:101060000A060000802000000000000000000000D0
-:101070000000000000000000000000000000000070
-:101080000000000000000000000000000000000060
-:101090000000000000000000000000000000000050
-:1010A0000000000000000000000000000000000040
-:1010B0000000000000000000000000000000000030
-:1010C0000000000000000000000000000000000020
-:1010D0000000000000800000000000000000000090
+:100D80000000000000C00100000000C000C1000021
+:100D90000000000000000000000000000000000053
+:100DA0000000000000000000000000000000000043
+:100DB0000000000000000000000000000000000033
+:100DC0000000000000000000000000000000000023
+:100DD0000000000000000000000000000000000013
+:100DE0000000000000000000000000000000000003
+:100DF00000000000000000000000000000000000F3
+:100E000000000000000000000200000000000020C0
+:100E100000000000000000000000000000000000D2
+:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
+:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
+:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
+:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
+:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
+:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
+:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
+:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
+:100EA000FFFF0000D0FE0C44008000480A0600004E
+:100EB00000410000000000000000000000000000F1
+:100EC0000000000000000000000000000000000022
+:100ED0000000000000000000000000000000000012
+:100EE0000000000000000000000000000000000002
+:100EF00000000040000000000000000000000000B2
+:100F000000000000000000000000000000000000E1
+:100F100000000000000000000000000000000000D1
+:100F200000000000000000000000000000000000C1
+:100F300000000000FFFFFFFFFFFFFFFFFFFFFFFFBD
+:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
+:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
+:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
+:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
+:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
+:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
+:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
+:100FB000FFFFFFFFFFFF0010E5860C4400800028C4
+:100FC0000A060000004100000000000000000000D0
+:100FD0000000000000000000000000000000000011
+:100FE0000000000000000000000000000000000001
+:100FF00000000000000000000000000000000000F1
+:1010000000000000000000000000000000000000E0
+:1010100000000000000000000000000000000000D0
+:1010200000000000000000000000000000000000C0
+:10103000000000000000008200000000000000002E
+:101040000000000000000000FFFFFFFFFFFFFFFFA8
+:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
+:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
+:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
+:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
+:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
+:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
+:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
+:1010C000FFFFFFFFFFFFFFFFFFFF000005DE0C44F7
+:1010D000008000680A060000802000000000000078
 :1010E0000000000000000000000000000000000000
 :1010F00000000000000000000000000000000000F0
 :1011000000000000000000000000000000000000DF
 :1011100000000000000000000000000000000000CF
 :1011200000000000000000000000000000000000BF
 :1011300000000000000000000000000000000000AF
-:10114000000000000000000000000000000000009F
-:10115000000200000000000000000000000000008D
-:1011600000000000000000008C00000000000000F3
+:10114000000000000000000000800000000000001F
+:10115000000000000000000000000000000000008F
+:10116000000000000000000000000000000000007F
 :10117000000000000000000000000000000000006F
 :10118000000000000000000000000000000000005F
 :10119000000000000000000000000000000000004F
 :1011A000000000000000000000000000000000003F
 :1011B000000000000000000000000000000000002F
-:1011C000000000000000000000000000000000001F
-:1011D00000000000000000000820000000000000E7
-:1011E000000000000000000000000000FFFFFFFF03
-:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
-:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
-:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
-:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
-:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
-:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
-:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
-:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFF005834
-:10127000C8600C44008000D80A06000080A200006C
-:10128000000000000000000000000000000000005E
-:10129000000000000000000000000000000000004E
-:1012A000000000000000000000000000000000003E
-:1012B000000000000000000000000000000000002E
-:1012C000000000000000000000000000000000001E
-:1012D000000000000000000000000000000000000E
-:1012E00000000000000001000000002000000100DC
-:1012F00000000000000000000000000000000000EE
+:1011C000000000000002000000000000000000001D
+:1011D0000000000000000000000000008C00000083
+:1011E00000000000000000000000000000000000FF
+:1011F00000000000000000000000000000000000EF
+:1012000000000000000000000000000000000000DE
+:1012100000000000000000000000000000000000CE
+:1012200000000000000000000000000000000000BE
+:1012300000000000000000000000000000000000AE
+:101240000000000000000000000000000820000076
+:10125000000000000000000000000000000000008E
+:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
+:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
+:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
+:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
+:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
+:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
+:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
+:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
+:1012E000FFFF0054BCFD0C44008000D80A0600003B
+:1012F000A86B0000000000000000000000000000DB
 :1013000000000000000000000000000000000000DD
 :1013100000000000000000000000000000000000CD
 :1013200000000000000000000000000000000000BD
 :1013300000000000000000000000000000000000AD
 :10134000000000000000000000000000000000009D
-:10135000000000000000000000000000000000008D
-:1013600000000040000000000000004000000000FD
+:10135000000000000000000000000100000000206C
+:10136000000001000000000000000000000000007C
 :10137000000000000000000000000000000000006D
 :10138000000000000000000000000000000000005D
 :10139000000000000000000000000000000000004D
 :1013A000000000000000000000000000000000003D
 :1013B000000000000000000000000000000000002D
 :1013C000000000000000000000000000000000001D
-:1013D000000000000000000000000000000000000D
-:1013E00000000000000000100800000000000001E4
-:1013F00009000000000000000000000000000000E4
+:1013D000000000000000004000000000000000408D
+:1013E00000000000000000000000000000000000FD
+:1013F00000000000000000000000000000000000ED
 :1014000000000000000000000000000000000000DC
-:1014100000000000000000000400000000000000C8
-:1014200000000400000000000000000000000000B8
-:1014300000000000000000000400000000000000A8
-:101440000000040000000000000000000000000098
-:10145000000000000000000000000000000000008C
-:10146000000000000000000000000000000000007C
+:1014100000000000000000000000000000000000CC
+:1014200000000000000000000000000000000000BC
+:1014300000000000000000000000000000000000AC
+:10144000000000000000000000000000000000009C
+:101450000000000000000000000000100800000074
+:101460000000000109000000000000000000000072
 :10147000000000000000000000000000000000006C
-:10148000000000000000FFFFFFFFFFFFFFFFFFFF66
-:10149000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
-:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
-:1014B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
-:1014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
-:1014D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
-:1014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
-:1014F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
-:10150000FFFFFFFFFFFFFFFF007CF7B30C4400402D
-:1015100000400A060000A069000000000000000072
+:10148000000000000000000000000000000000005C
+:101490000000000004000000000002000000000046
+:1014A000000000000000000002000000000000003A
+:1014B00000000000040000000080000004000000A4
+:1014C0000000000000000000000004000000000018
+:1014D000000000000000000000000000000000000C
+:1014E00000000000000000000000000000000000FC
+:1014F00000000000000000000000000000000000EC
+:1015000000000000000000000000000000000000DB
+:1015100000000000000000000000000000000000CB
 :1015200000000000000000000000000000000000BB
-:1015300000000000000000000000000000000000AB
+:101530000000000000000000000000C000000000EB
 :10154000000000000000000000000000000000009B
 :10155000000000000000000000000000000000008B
 :10156000000000000000000000000000000000007B
-:10157000000000000000000000000000000011005A
-:10158000000000000000000000000000000000005B
-:101590000800000000000000000000000000000043
-:1015A000000000000000000000000000000000003B
-:1015B000000000000000000000000000000000002B
-:1015C000000000000000000000000000000000001B
-:1015D0000000000000000000000000C0000000004B
+:10157000000000000000000000000000000000006B
+:1015800000008000000000000000000000000000DB
+:10159000000000000000000000000000000000004B
+:1015A000000000000000000000000000000020001B
+:1015B000200080000000000000000000008000000B
+:1015C0000004000000040000000000000000000013
+:1015D000000000000000000000000000000000000B
 :1015E00000000000000000000000000000000000FB
-:1015F00000000000000000000000000000000000EB
-:1016000000000000000000000000000000000000DA
-:1016100000000100000000000000000000000000C9
+:1015F00000000000080000000000000000000000E3
+:101600000020000020000000020002000000000096
+:1016100000000000000000000000000000000000CA
 :1016200000000000000000000000000000000000BA
-:1016300000000000000000000000000000000000AA
-:10164000000000000000000000000000000000009A
+:101630000100010020000000000000000000000088
+:10164000000000800000008000000000000000009A
 :10165000000000000000000000000000000000008A
-:1016600000000000800010000000000000000000EA
-:10167000000000000000000000000000000000006A
+:10166000000000000000000000000000000000007A
+:101670000000000000000100000000000000000069
 :10168000000000000000000000000000000000005A
-:10169000000000000000000000000000000000004A
+:101690000000000000000800000000000000000042
 :1016A000000000000000000000000000000000003A
-:1016B000000000000000000000000000000000002A
+:1016B0000000000000000000000000000000000426
 :1016C000000000000000000000000000000000001A
-:1016D000000000000000000000000000000000000A
-:1016E00000000000000004000100000000000000F5
+:1016D0008000000000080000000200000000000080
+:1016E00000200000000000000000000000000000DA
 :1016F00000000000000000000000000000000000EA
 :1017000000000000000000000000000000000000D9
-:1017100000000000000000000000000000000000C9
-:1017200000020000000000000000000000000000B7
+:1017100000000000000000000100000000000000C8
+:1017200000000000000000000000000000000000B9
 :1017300000000000000000000000000000000000A9
-:101740000000000000000000000000000000000198
-:101750000000000000000000000000000000000089
-:101760000000000080000000800000000000000079
-:101770000000000000001000000400000000000055
-:101780000000000000000000000000000000000059
-:101790000000000000000000000000000000000049
-:1017A00000000080000008000000000000000000B1
-:1017B0000000000000000000000000000000000029
+:101740000080000000000000000000000000000019
+:101750000000200000000080000000800000000069
+:1017600000000080000000000000000000000000F9
+:101770000000000000000000000000000000000069
+:101780000000000000000000A00080010000000038
+:10179000000000000000000000010009000000003F
+:1017A0000000000000010001000100000000000036
+:1017B00000008000000000000000000000000000A9
 :1017C0000000000000000000000000000000000019
-:1017D00000200000000000000000000000000000E9
-:1017E0000000000000001000A00040000000000009
-:1017F0000000000000000000000000800000000069
-:1018000000001000000000000000000000000000C8
-:1018100000000000000000000000000000000000C8
-:1018200000000000000000000000000000000000B8
-:1018300000000000000000000000000000000000A8
-:101840000000000000000000000000000000000098
-:101850000000000000000000000000200000000068
-:101860001100000000000400040004200400000037
-:1018700021004000004008000400000004000000B7
-:101880000000000000000000000000000000000058
-:101890000000000000000000000000000000000048
-:1018A0000000000000000000000000000000000038
-:1018B0000000000000000000000000000000000028
-:1018C0000000000000000000000000000000000018
-:1018D0000000000000000000000000000080000088
-:1018E0000000000000000000010001000180010074
-:1018F0000000000001000080010001000000010064
-:10190000000000000000000000000000C000000017
-:1019100000000000000002000000000000000000C5
-:1019200000000000000000000000000000000000B7
-:1019300000000000000000000000000000000000A7
+:1017D0000001000000000000000000000000000008
+:1017E0000000000000900000100005000000000054
+:1017F00000000000000000000000000000000000E9
+:10180000000000000000A000000005000440C0002F
+:1018100000008200000000000000000400A00000A2
+:101820000000000000000020002000100000000068
+:10183000000000000405000000000000000000009F
+:101840000000000000000000000000000000A000F8
+:101850000000004000000000000000000000000048
+:101860000000000000000000000000000000000078
+:101870000000000000000000000000000000000068
+:1018800000000000000000004100000021000900ED
+:101890001088000004000040000002000000000466
+:1018A000000000000000000000000900000000002F
+:1018B0004000000000000084000000000004000060
+:1018C0000000000000000000000000001100000007
+:1018D00002202000200120882000000003000000DA
+:1018E00000000000000000000020000000000000D8
+:1018F0000000000000000000000010004100000097
+:1019000000000000000000000000000000000000D7
+:101910000000000000000100008000000100000045
+:101920000080000000000000000000000000000037
+:101930000000000000000000000000000000008027
 :101940000000000000000000000000000000000097
-:101950000000000000000000000000000000000087
-:101960000000000000000000000000000400210052
-:101970000000040000000890800080000401840042
-:10198000880000000040000000000000000000008F
-:101990000000000000000000000000000000000047
-:1019A0000000000000000000000000000000000037
-:1019B000080000000000000000000000000000001F
-:1019C0000000000000000000000000000000000017
-:1019D00000000041000000000000000000000000C6
-:1019E00000000000000000000000000000000100F6
-:1019F0000000000201000000850002000800010252
-:101A0000050005000000008000000000000000004C
-:101A100000000000000000000000000000000000C6
-:101A200000000000000000000000000000000000B6
-:101A300000000000000000000000000000000000A6
-:101A40000000000000000000000000000000000096
-:101A50000000000000000000000000000000000086
-:101A600000000000000000000000000000408803AB
-:101A700088048405840991808900858041000000E4
-:101A80000000000000000000040000000000000052
-:101A90000000000000000000000000000000000046
-:101AA0000000000000000000000000000000000036
-:101AB0000000000000000000000000000000000026
-:101AC0000000000000000000000000000000000016
-:101AD000000000000000000088000000000000007E
-:101AE00000000000000000000000000000000000F6
-:101AF00089010901C001840088828484830801006F
-:101B000000000000100000000000000000C000C045
-:101B100000000000000000000000000000000000C5
-:101B200000000000000000000000000000000000B5
-:101B300000000000000000000000000000000000A5
-:101B40000000000000000000000000000000000095
-:101B50000000000000000000000000000000000085
-:101B60000000000000000000000000000000000075
-:101B700000000082000001040000A001C084C01128
-:101B80000504010101008988839100000000000024
-:101B900000C0000000000000000000000000000085
-:101BA0000000000000000000000000000000000035
-:101BB0000004000000000000000000000000000021
-:101BC0000000000000000000000000000000000015
-:101BD0000000000000000000000000000000000005
-:101BE00000000000000000000000000000000000F5
-:101BF00000000000098011000980040988401000DD
-:101C00008411400020024000A18083910004000064
-:101C10000000008000000000000000000000000044
-:101C200000000000090000000000000004000000A7
-:101C300000000000000000000000000000000000A4
-:101C40000000000000000000000000000000000094
-:101C50000000000000000000000000000080000004
-:101C60000080008000000000000000000000000074
-:101C7000000000000000000904090082050900843A
-:101C8000001180A080110000000000008080000092
-:101C90000000000000000000000000000000000044
-:101CA0000000000000000000000000000000000034
-:101CB0000000000000000000000000000000000024
-:101CC0000000000000000000000000000000000014
-:101CD00000000000000000000000000000000008FC
-:101CE0000000001000880000000000000400000058
-:101CF000000000000000000000C0010900110509FB
-:101D0000000800C09085840800000000000088885A
-:101D100000000000000000000000000000000000C3
-:101D200000000000000000000000000000000000B3
-:101D300000000000000000000000000000000000A3
-:101D40000000000000000000000000000000000093
-:101D50000000000000000000000000000000000083
-:101D60000010000000000000000000000000000063
-:101D70000000000000000000000000100001000151
-:101D80000000C1050403C101C01082918401A001BB
-:101D9000C0888400A000A000A00000000000000097
-:101DA0000000000000000000000000000000000033
-:101DB0000000000000000000000000000000000023
-:101DC0000000000000000000000000000000000013
-:101DD0000000000000000000000000000000000003
-:101DE0000000008000000000000000000000000073
-:101DF000000000000000000000000000008000095A
-:101E000000100000030309A0110200808091000966
-:101E10008020008080000000000000000000000022
-:101E200000000000000000000000000000000000B2
-:101E300000000000000000000000000000000000A2
-:101E40000000000000000000000000000000000092
-:101E50000000000000000000000000000000000082
-:101E600000000000810000830000000000000083EB
-:101E70000000000000000000000000000000000062
-:101E800000830000110041880306600021811200D8
-:101E900000831000000000000000000000000000AF
-:101EA0000000000000000000000000000000000032
-:101EB0000000000000000000000000000000000022
-:101EC0000000000000000000000000000000000012
-:101ED0000000000000000000000000000000000002
-:101EE00000000000000000000000000000000000F2
-:101EF00000000000000000000000000000000000E2
-:101F000000000000024F024FFFF90069B930B930FC
+:1019500000000180012001400100010000000000A2
+:1019600000000000000000000000008000000000F7
+:1019700000000000000000008400000000000000E3
+:10198000000000000000000000000000000008004F
+:1019900041000300000083002101800000000000DE
+:1019A0000200830000000000002080000000000012
+:1019B0000000800000000000000000840000000023
+:1019C0000000000000000000000000000000020015
+:1019D000000000000000000400042000008400C09B
+:1019E00000000090000000000000100080010000D6
+:1019F00000000900000000000000000000000000DE
+:101A00000000000000000000000000000000C00016
+:101A100001000000100010412000C0040400080074
+:101A200000000000400000000000008004000000F2
+:101A30000000000008210000000000000005000078
+:101A40000000000000000002000000000000000094
+:101A50000100000000000021008000800100A000C3
+:101A6000000000000000A0020002000000000420AE
+:101A70000000000000000000000000000000000066
+:101A800000008800000000000000000000000000CE
+:101A900000000000080000000000110080000000AD
+:101AA0000003002080200000000000000000000073
+:101AB0000080000080000000000000000000000026
+:101AC000000000000000030000000000040000000F
+:101AD0000000808591090889419000008000110074
+:101AE0000080400300110005034000008000110049
+:101AF00000000000000000000000000000000000E6
+:101B000000000000000000000000000000000000D5
+:101B1000000000000000C100000000000100C00043
+:101B200000000001000104010000C000000082006C
+:101B30000000008200881004000400000000000083
+:101B40000000880000000000010010008800000074
+:101B5000000000000811108400100109C0A0888452
+:101B600000C00008010100000001010100000800A0
+:101B70000000000000000000000000000000000065
+:101B80000000000000000000000000000000000055
+:101B90000000000000000000000200010000000042
+:101BA00000A0000000000100014000010000000052
+:101BB00000A00000000000000000009000000000F5
+:101BC0000000000000000001000000010000010012
+:101BD000000001000000000000840101010000017C
+:101BE000000001000084010000000100000000006E
+:101BF00000000000000000000000000000000000E5
+:101C000000000000000001000000000200000100D0
+:101C10000000000000C000000000000000400000C4
+:101C20000005000000000904400009801140000088
+:101C300000000000000000040000000000000000A0
+:101C4000000000000000000000040000004004004C
+:101C50000800000009000000110011000503100039
+:101C60000410041102000985400011002000110039
+:101C70000000000000000000000000000000000064
+:101C80000000000000000000020000000000000052
+:101C90004000000000000000000000800200808082
+:101CA000000000804000008004000000410080002F
... 31276 lines suppressed ...


-- 
dahdi/linux.git



More information about the dahdi-commits mailing list