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

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Mon Mar 17 17:08:30 CDT 2014


branch "master" has been updated
       via  e4fce6849a64461943af7fc6c2730313d085d51a (commit)
       via  bc0c04fb1348e64c36c3a7557a97cdafb28300f3 (commit)
       via  45b4937a350ec4221ade0bc6c58c66cab0d9c837 (commit)
       via  50f2fd15b6d23298eb0cafcc28da000814bebe55 (commit)
       via  665bf9feb627d2dd13cc60d03a611b9e0e6510e5 (commit)
       via  b817c7625acdd05e3c060bb9ebd69a289da29180 (commit)
       via  6cebc1c1fb12cc0661f3810ef47ad33206b2e398 (commit)
       via  7ce849846502ff9d5a6a7a95cf89a7f23c5680ef (commit)
      from  d4868092bfdb9c6bdbdd38219c208139c70c44c7 (commit)

Summary of changes:
 build_tools/install_firmware    |   23 +++++
 drivers/dahdi/firmware/Makefile |  191 ++++-----------------------------------
 drivers/dahdi/wcaxx-base.c      |    4 +-
 drivers/dahdi/wcte13xp-base.c   |   13 ++-
 drivers/dahdi/wcte43x-base.c    |    2 +-
 drivers/dahdi/wcxb.c            |   62 +++++++++++--
 drivers/dahdi/wcxb.h            |    9 ++
 7 files changed, 120 insertions(+), 184 deletions(-)
 create mode 100755 build_tools/install_firmware


- Log -----------------------------------------------------------------
commit e4fce6849a64461943af7fc6c2730313d085d51a
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Mar 17 11:58:49 2014 -0500

    wcte43x: Update firmware for TE435 / TE235 to e0019.
    
    This firmware image is able to handle system conditions that would result in
    spans internmittenly going down and recovering.
    
    Internal-Issue-ID: DAHDI-1087
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index d5b24a9..6840f4a 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -33,7 +33,7 @@ VPMOCT032_VERSION:=1.12.0
 WCT820_VERSION:=1.76
 TE133_VERSION:=780019
 TE134_VERSION:=780017
-TE435_VERSION:=e0017
+TE435_VERSION:=e0019
 A8A_VERSION:=1d0017
 A8B_VERSION:=1d0019
 A4A_VERSION:=a0017
diff --git a/drivers/dahdi/wcte43x-base.c b/drivers/dahdi/wcte43x-base.c
index a285fa2..bb68183 100644
--- a/drivers/dahdi/wcte43x-base.c
+++ b/drivers/dahdi/wcte43x-base.c
@@ -52,7 +52,7 @@
 #include "wcxb_flash.h"
 
 static const char *TE435_FW_FILENAME = "dahdi-fw-te435.bin";
-static const u32 TE435_VERSION = 0xe0017;
+static const u32 TE435_VERSION = 0xe0019;
 
 /* #define RPC_RCLK */
 

commit bc0c04fb1348e64c36c3a7557a97cdafb28300f3
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Mar 17 11:54:27 2014 -0500

    wcaxx: Update firmware for A8B/A4B to 1d0019/b0019.
    
    These firmware images can handle system conditions that would previously result
    in transmitted audio being intermittently silenced and then unsilenced.
    
    Internal-Issue-ID: DAHDI-1087
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index 1c2e5f7..d5b24a9 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -35,9 +35,9 @@ TE133_VERSION:=780019
 TE134_VERSION:=780017
 TE435_VERSION:=e0017
 A8A_VERSION:=1d0017
-A8B_VERSION:=1d0017
+A8B_VERSION:=1d0019
 A4A_VERSION:=a0017
-A4B_VERSION:=b0017
+A4B_VERSION:=b0019
 
 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 d90f014..2d2904b 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 = 0x0b0017;
+	const unsigned int A4B_VERSION = 0x0b0019;
 	const unsigned int A8A_VERSION = 0x1d0017;
-	const unsigned int A8B_VERSION = 0x1d0017;
+	const unsigned int A8B_VERSION = 0x1d0019;
 
 	if (wc->desc == &device_a8a) {
 		firmware_version = A8A_VERSION;

commit 45b4937a350ec4221ade0bc6c58c66cab0d9c837
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Tue Mar 11 23:58:11 2014 -0500

    wcte13xp: Update firmware for TE133/TE131 to 780019
    
    This firmware image is able to handle system conditions that would result in
    spans going down and then coming back intermittently.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index 07d1a02..1c2e5f7 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -31,7 +31,7 @@ VPMADT032_VERSION:=1.25.0
 HX8_VERSION:=2.06
 VPMOCT032_VERSION:=1.12.0
 WCT820_VERSION:=1.76
-TE133_VERSION:=780017
+TE133_VERSION:=780019
 TE134_VERSION:=780017
 TE435_VERSION:=e0017
 A8A_VERSION:=1d0017
diff --git a/drivers/dahdi/wcte13xp-base.c b/drivers/dahdi/wcte13xp-base.c
index 5c61309..a7e02de 100644
--- a/drivers/dahdi/wcte13xp-base.c
+++ b/drivers/dahdi/wcte13xp-base.c
@@ -45,7 +45,8 @@
 
 static const char *TE133_FW_FILENAME = "dahdi-fw-te133.bin";
 static const char *TE134_FW_FILENAME = "dahdi-fw-te134.bin";
-static const u32 TE13X_FW_VERSION = 0x780017;
+static const u32 TE133_FW_VERSION = 0x780019;
+static const u32 TE134_FW_VERSION = 0x780017;
 
 #define WC_MAX_IFACES 8
 
@@ -2434,12 +2435,16 @@ error_exit:
 static int te13xp_check_firmware(struct t13x *wc)
 {
 	const char *filename;
+	u32 expected_version;
 	enum wcxb_reset_option reset;
 
-	if (is_pcie(wc))
+	if (is_pcie(wc)) {
 		filename = TE133_FW_FILENAME;
-	else
+		expected_version = TE133_FW_VERSION;
+	} else {
 		filename = TE134_FW_FILENAME;
+		expected_version = TE134_FW_VERSION;
+	}
 
 	/* Specific firmware requires power cycle to properly reset */
 	if (0x6f0017 == wcxb_get_firmware_version(&wc->xb))
@@ -2447,7 +2452,7 @@ static int te13xp_check_firmware(struct t13x *wc)
 	else
 		reset = WCXB_RESET_NOW;
 
-	return wcxb_check_firmware(&wc->xb, TE13X_FW_VERSION, filename,
+	return wcxb_check_firmware(&wc->xb, expected_version, filename,
 			force_firmware, reset);
 }
 

commit 50f2fd15b6d23298eb0cafcc28da000814bebe55
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Thu Mar 13 01:37:51 2014 -0500

    wcxb: Add diagnostic message if DMA retries are increasing when DEBUG is defined.
    
    There are some platforms where the DMA operation to the host does not complete
    within the required 50us. When this happens some versions of the firmware will
    issue a retry and increment the retry field in the descriptor status word.
    
    Now if this driver is configured in DEBUG mode, the presence of these retries
    will be printed to the kernel log as a potential troubleshooting aide.
    
    Internal-Issue-ID: DAHDI-1087
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index 6e770fb..c456282 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -64,7 +64,7 @@
 #define DESC_INT		(1 << 1)
 #define DESC_IO_ERROR		(1 << 30)
 #define DESC_OWN		(1 << 31)
-#define DESC_DEFAULT_STATUS	0xdeadbeef
+#define DESC_DEFAULT_STATUS	0xdeadbe00
 #define DMA_CHAN_SIZE		128
 
 /* Echocan definitions */
@@ -352,11 +352,18 @@ static void _wcxb_reset_dring(struct wcxb *xb)
 	BUG_ON(!hdesc);
 	/* Set end of ring bit in last descriptor to force hw to loop around */
 	hdesc->control |= cpu_to_be32(DESC_EOR);
+#ifdef DEBUG
+	xb->last_retry_count = 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]);
 
@@ -380,6 +387,14 @@ static void wcxb_handle_dma(struct wcxb *xb)
 			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;
+		}
+#endif
+
 		mdesc = &xb->meta_dring[xb->dma_tail];
 		frame = mdesc->rx_buf_virt;
 
@@ -399,6 +414,13 @@ static void wcxb_handle_dma(struct wcxb *xb)
 		xb->dma_head =
 			(xb->dma_head == xb->latency-1) ? 0 : xb->dma_head + 1;
 	}
+
+#ifdef DEBUG
+	if (did_retry_dma) {
+		dev_info(&xb->pdev->dev,
+			 "DMA retries detected: %d\n", xb->last_retry_count);
+	}
+#endif
 }
 
 static irqreturn_t _wcxb_isr(int irq, void *dev_id)
diff --git a/drivers/dahdi/wcxb.h b/drivers/dahdi/wcxb.h
index c7d54d5..3a0f8d3 100644
--- a/drivers/dahdi/wcxb.h
+++ b/drivers/dahdi/wcxb.h
@@ -47,6 +47,11 @@ struct wcxb_operations {
 struct wcxb_meta_desc;
 struct wcxb_hw_desc;
 
+/**
+ *  struct wcxb - Interface to wcxb firmware.
+ *  @last_retry_count: Running count of times firmware had to retry host DMA
+ *  	transaction. Debugging aide.
+ */
 struct wcxb {
 	struct pci_dev			*pdev;
 	spinlock_t			lock;
@@ -71,6 +76,9 @@ struct wcxb {
 	dma_addr_t			hw_dring_phys;
 	struct dma_pool			*pool;
 	unsigned long			framecount;
+#ifdef DEBUG
+	u8				last_retry_count;
+#endif
 };
 
 extern int wcxb_init(struct wcxb *xb, const char *board_name, u32 int_mode);

commit 665bf9feb627d2dd13cc60d03a611b9e0e6510e5
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Tue Mar 11 23:41:44 2014 -0500

    wcxb: Reset TDM engine on IO errors.
    
    There are error conditions that the firmware can detect but cannot recover from
    without help from the driver. When firmware detects these conditions the
    DESC_IO_ERROR bit will be set in the descriptor header to signal that the driver
    should reset the TDM engine on the card. Since this is not due to failure of the
    host to service the interrupt in time, it does not make sense to increase
    latency when these conditions are detected.
    
    Internal-Issue-ID: DAHDI-1087
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index d02023b..6e770fb 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -62,6 +62,7 @@
 #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	0xdeadbeef
 #define DMA_CHAN_SIZE		128
@@ -357,10 +358,28 @@ static void _wcxb_reset_dring(struct wcxb *xb)
 static void wcxb_handle_dma(struct wcxb *xb)
 {
 	struct wcxb_meta_desc *mdesc;
+	struct wcxb_hw_desc *tail = &(xb->hw_dring[xb->dma_tail]);
 
-	while (!(xb->hw_dring[xb->dma_tail].control & cpu_to_be32(DESC_OWN))) {
+	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;
+		}
+
 		mdesc = &xb->meta_dring[xb->dma_tail];
 		frame = mdesc->rx_buf_virt;
 
@@ -368,6 +387,7 @@ static void wcxb_handle_dma(struct wcxb *xb)
 
 		xb->dma_tail =
 			(xb->dma_tail == xb->latency-1) ? 0 : xb->dma_tail + 1;
+		tail = &(xb->hw_dring[xb->dma_tail]);
 
 		mdesc = &xb->meta_dring[xb->dma_head];
 		frame = mdesc->tx_buf_virt;
@@ -403,10 +423,18 @@ static irqreturn_t _wcxb_isr(int irq, void *dev_id)
 			if (xb->ops->handle_error)
 				xb->ops->handle_error(xb);
 
-			/* bump latency */
 			spin_lock(&xb->lock);
 
-			if (!xb->flags.latency_locked) {
+			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) {
+				/* bump latency */
+
 				xb->latency = min(xb->latency + 1,
 						  xb->max_latency);
 #ifdef HAVE_RATELIMIT
diff --git a/drivers/dahdi/wcxb.h b/drivers/dahdi/wcxb.h
index af7828b..c7d54d5 100644
--- a/drivers/dahdi/wcxb.h
+++ b/drivers/dahdi/wcxb.h
@@ -61,6 +61,7 @@ struct wcxb {
 #ifdef WCXB_PCI_DEV_DOES_NOT_HAVE_IS_PCIE
 		u32	is_pcie:1;
 #endif
+		u32	io_error:1;
 	} flags;
 	void __iomem			*membase;
 	struct wcxb_meta_desc		*meta_dring;

commit b817c7625acdd05e3c060bb9ebd69a289da29180
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Wed Mar 12 00:46:02 2014 -0500

    wcxb: Print running version when recommending power cycle.
    
    Without this change it's hard to see what is actually running on the card when
    the firmware in the flash doesn't match the reported version. This is a
    debugging aide.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/drivers/dahdi/wcxb.c b/drivers/dahdi/wcxb.c
index 3373723..d02023b 100644
--- a/drivers/dahdi/wcxb.c
+++ b/drivers/dahdi/wcxb.c
@@ -925,8 +925,8 @@ int wcxb_check_firmware(struct wcxb *xb, const u32 expected_version,
 	if ((meta.version == cpu_to_le32(expected_version))
 			&& !force_firmware) {
 		dev_info(&xb->pdev->dev,
-			"Detected previous firmware updated to current version %x, but not running. You likely need to power cycle your system.\n",
-			expected_version);
+			"Detected previous firmware updated to current version %x, but %x is currently running on card. You likely need to power cycle your system.\n",
+			expected_version, version);
 		return 0;
 	}
 

commit 6cebc1c1fb12cc0661f3810ef47ad33206b2e398
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Wed Mar 12 23:01:47 2014 -0500

    build_tools/install_firwmare: Try to extract the .bin file from .tar.gz
    
    This allows a .tar.gz file that is normally downloaded from the server to be
    checked directly into a test branch. Now when the firmware is being installed,
    it can be extracted from any present .tar.gz.  Again, this is primarily to
    simplify testing.
    
    A nice side effect is that when going from a newer version to an older version,
    any stale .bin files in the firmware directory will not be installed into
    /lib/firmware, but instead the bin file from the *versioned* .tar.gz will always
    be installed. This should reduce problems where you have to run "make
    dist-clean" when reverting to an older version that has a firmware change.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/build_tools/install_firmware b/build_tools/install_firmware
index e98b4f9..f60c45a 100755
--- a/build_tools/install_firmware
+++ b/build_tools/install_firmware
@@ -8,13 +8,16 @@ DESTDIR=$3
 
 if ! test -f ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION} || ! test -f ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}; then
 	echo "Installing ${FIRMWARE_PATTERN}.bin to hotplug firmware directories"
-	set -e
-	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/usr/lib/hotplug/firmware
+	tar --no-same-owner -xf ${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}.tar.gz || exit 1
+	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/usr/lib/hotplug/firmware || exit 1
 	rm -rf ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-*
 	touch ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}
-	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/lib/firmware
+	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/lib/firmware || exit 1
 	rm -rf ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-*
 	touch ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}
+	# Remove the .bin file so that if the version is reverted, it will not
+	# be installed with a non-matching ${FIRMARE_VERSION} file.
+	rm ${FIRMWARE_PATTERN}.bin
 else
 	echo "Firmware ${FIRMWARE_PATTERN}.bin is already installed with required version ${FIRMWARE_VERSION}"
 fi
diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index 67bb177..07d1a02 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -108,7 +108,6 @@ dahdi-fw-%.tar.gz:
 		echo "Attempting to download $@"; \
 		if test ! -f $@; then $(DOWNLOAD) $(WGET_ARGS) $(FIRMWARE_URL)/$@; fi; \
 		if test ! -f $@; then exit 1; fi; \
-		(cat $@ | gzip -d | tar --no-same-owner -xf -) \
 	fi
 
 firmware-loaders: $(FWLOADERS)

commit 7ce849846502ff9d5a6a7a95cf89a7f23c5680ef
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Wed Mar 12 15:35:51 2014 -0500

    firmware: Refactor by using build_tools/install_firmware.
    
    This is intended to simplify the Makefile and move a large common part into a
    subscript. The behavior is the same as it was before.
    
    Signed-off-by: Shaun Ruffell <sruffell at digium.com>

diff --git a/build_tools/install_firmware b/build_tools/install_firmware
new file mode 100755
index 0000000..e98b4f9
--- /dev/null
+++ b/build_tools/install_firmware
@@ -0,0 +1,20 @@
+#!/bin/sh
+# This is a helper script intended to be called from
+# drivers/dahdi/firmware/Makefile to install the different firmware version.
+
+FIRMWARE_PATTERN=$1
+FIRMWARE_VERSION=$2
+DESTDIR=$3
+
+if ! test -f ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION} || ! test -f ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}; then
+	echo "Installing ${FIRMWARE_PATTERN}.bin to hotplug firmware directories"
+	set -e
+	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/usr/lib/hotplug/firmware
+	rm -rf ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-*
+	touch ${DESTDIR}/usr/lib/hotplug/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}
+	install -m 644 ${FIRMWARE_PATTERN}.bin ${DESTDIR}/lib/firmware
+	rm -rf ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-*
+	touch ${DESTDIR}/lib/firmware/.${FIRMWARE_PATTERN}-${FIRMWARE_VERSION}
+else
+	echo "Firmware ${FIRMWARE_PATTERN}.bin is already installed with required version ${FIRMWARE_VERSION}"
+fi
diff --git a/drivers/dahdi/firmware/Makefile b/drivers/dahdi/firmware/Makefile
index 74c3e70..67bb177 100644
--- a/drivers/dahdi/firmware/Makefile
+++ b/drivers/dahdi/firmware/Makefile
@@ -82,6 +82,7 @@ OBJECT_FILES:=$(OBJECT_FILES:FIRMWARE-VPMOCT032=dahdi-fw-vpmoct032.o)
 # Force usage of wget, for now
 DOWNLOAD=wget
 WGET=wget
+INSTALL_FIRMWARE=../../../build_tools/install_firmware
 
 # If "fetch" is used, --continue is not a valid option.
 ifeq ($(WGET),wget)
@@ -126,172 +127,21 @@ $(DESTDIR)/usr/lib/hotplug/firmware $(DESTDIR)/lib/firmware:
 
 # Install all downloaded firmware images for hotplug usage
 hotplug-install: $(DESTDIR)/usr/lib/hotplug/firmware $(DESTDIR)/lib/firmware $(FIRMWARE)
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-032-$(OCT6114_032_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-032-$(OCT6114_032_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-oct6114-032.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-oct6114-032.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-032-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-032-$(OCT6114_032_VERSION)
-	@install -m 644 dahdi-fw-oct6114-032.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-032-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-032-$(OCT6114_032_VERSION)
-else
-	@echo "Firmware dahdi-fw-oct6114-032.bin is already installed with required version $(OCT6114_032_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-$(OCT6114_064_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-064-$(OCT6114_064_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-oct6114-064.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-oct6114-064.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-$(OCT6114_064_VERSION)
-	@install -m 644 dahdi-fw-oct6114-064.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-064-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-064-$(OCT6114_064_VERSION)
-else
-	@echo "Firmware dahdi-fw-oct6114-064.bin is already installed with required version $(OCT6114_064_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-$(OCT6114_128_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-128-$(OCT6114_128_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-oct6114-128.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-oct6114-128.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-$(OCT6114_128_VERSION)
-	@install -m 644 dahdi-fw-oct6114-128.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-128-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-128-$(OCT6114_128_VERSION)
-else
-	@echo "Firmware dahdi-fw-oct6114-128.bin is already installed with required version $(OCT6114_128_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-256-$(OCT6114_256_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-256-$(OCT6114_256_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-oct6114-256.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-oct6114-256.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-256-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-oct6114-256-$(OCT6114_256_VERSION)
-	@install -m 644 dahdi-fw-oct6114-256.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-256-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-oct6114-256-$(OCT6114_256_VERSION)
-else
-	@echo "Firmware dahdi-fw-oct6114-256.bin is already installed with required version $(OCT6114_256_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-tc400m-$(TC400M_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-tc400m-$(TC400M_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-tc400m.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-tc400m.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-tc400m-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-tc400m-$(TC400M_VERSION)
-	@install -m 644 dahdi-fw-tc400m.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-tc400m-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-tc400m-$(TC400M_VERSION)
-else
-	@echo "Firmware dahdi-fw-tc400m.bin is already installed with required version $(TC400M_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-hx8-$(HX8_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-hx8-$(HX8_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-hx8.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-hx8.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-hx8-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-hx8-$(HX8_VERSION)
-	@install -m 644 dahdi-fw-hx8.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-hx8-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-hx8-$(HX8_VERSION)
-else
-	@echo "Firmware dahdi-fw-hx8.bin is already installed with required version $(HX8_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-vpmoct032-$(VPMOCT032_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-vpmoct032-$(VPMOCT032_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-vpmoct032.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-vpmoct032.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-vpmoct032-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-vpmoct032-$(VPMOCT032_VERSION)
-	@install -m 644 dahdi-fw-vpmoct032.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-vpmoct032-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-vpmoct032-$(VPMOCT032_VERSION)
-else
-	@echo "Firmware dahdi-fw-vpmoct032.bin is already installed with required version $(VPMOCT032_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te820-$(WCT820_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-te820-$(WCT820_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-te820.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-te820.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te820-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te820-$(WCT820_VERSION)
-	@install -m 644 dahdi-fw-te820.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-te820-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-te820-$(WCT820_VERSION)
-else
-	@echo "Firmware dahdi-fw-te820.bin is already installed with required version $(WCT820_VERSION)"
-endif
-
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te133-$(TE133_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-te133-$(TE133_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-te133.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-te133.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te133-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te133-$(TE133_VERSION)
-	@install -m 644 dahdi-fw-te133.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-te133-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-te133-$(TE133_VERSION)
-else
-	@echo "Firmware dahdi-fw-te133.bin is already installed with required version $(TE133_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te134-$(TE134_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-te134-$(TE134_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-te134.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-te134.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te134-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te134-$(TE134_VERSION)
-	@install -m 644 dahdi-fw-te134.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-te134-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-te134-$(TE134_VERSION)
-else
-	@echo "Firmware dahdi-fw-te134.bin is already installed with required version $(TE134_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te435-$(TE435_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-te435-$(TE435_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-te435.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-te435.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te435-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-te435-$(TE435_VERSION)
-	@install -m 644 dahdi-fw-te435.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-te435-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-te435-$(TE435_VERSION)
-else
-	@echo "Firmware dahdi-fw-te435.bin is already installed with required version $(TE435_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8a-$(A8A_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-a8a-$(A8A_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-a8a.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-a8a.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8a-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8a-$(A8A_VERSION)
-	@install -m 644 dahdi-fw-a8a.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-a8a-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-a8a-$(A8A_VERSION)
-else
-	@echo "Firmware dahdi-fw-a8a.bin is already installed with required version $(A8A_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8b-$(A8B_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-a8b-$(A8B_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-a8b.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-a8b.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8b-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a8b-$(A8B_VERSION)
-	@install -m 644 dahdi-fw-a8b.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-a8b-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-a8b-$(A8B_VERSION)
-else
-	@echo "Firmware dahdi-fw-a8b.bin is already installed with required version $(A8B_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4a-$(A4A_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-a4a-$(A4A_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-a4a.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-a4a.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4a-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4a-$(A4A_VERSION)
-	@install -m 644 dahdi-fw-a4a.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-a4a-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-a4a-$(A4A_VERSION)
-else
-	@echo "Firmware dahdi-fw-a4a.bin is already installed with required version $(A4A_VERSION)"
-endif
-ifeq ($(shell if ( [ -f $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4b-$(A4B_VERSION) ] ) && ( [ -f $(DESTDIR)/lib/firmware/.dahdi-fw-a4b-$(A4B_VERSION) ] ); then echo "no"; else echo "yes"; fi),yes)
-	@echo "Installing dahdi-fw-a4b.bin to hotplug firmware directories"
-	@install -m 644 dahdi-fw-a4b.bin $(DESTDIR)/usr/lib/hotplug/firmware
-	@rm -rf $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4b-*
-	@touch $(DESTDIR)/usr/lib/hotplug/firmware/.dahdi-fw-a4b-$(A4B_VERSION)
-	@install -m 645 dahdi-fw-a4b.bin $(DESTDIR)/lib/firmware
-	@rm -rf $(DESTDIR)/lib/firmware/.dahdi-fw-a4b-*
-	@touch $(DESTDIR)/lib/firmware/.dahdi-fw-a4b-$(A4B_VERSION)
-else
-	@echo "Firmware dahdi-fw-a4b.bin is already installed with required version $(A4B_VERSION)"
-endif
+	@$(INSTALL_FIRMWARE) dahdi-fw-oct6114-032 $(OCT6114_032_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-oct6114-064 $(OCT6114_064_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-oct6114-128 $(OCT6114_128_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-oct6114-256 $(OCT6114_256_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-tc400m $(TC400M_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-hx8 $(HX8_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-vpmoct032 $(VPMOCT032_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-te820 $(WCT820_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-te133 $(TE133_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-te134 $(TE134_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-te435 $(TE435_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-a8a $(A8A_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-a8b $(A8B_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-a4a $(A4A_VERSION)
+	@$(INSTALL_FIRMWARE) dahdi-fw-a4b $(A4B_VERSION)
 
 # Uninstall any installed dahdi firmware images from hotplug firmware directories
 hotplug-uninstall:

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


-- 
dahdi/linux.git



More information about the dahdi-commits mailing list