Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please consider pre-approving dahdi-linux/1:2.6.1+dfsg-2 (not yet uploaded, would go via unstable) As explained in #693666, two of the older drivers in DAHDI include hardwired firmware. Ben Hutchings recently converted them as well to use loadable firmwares. The second part of the fix is (#699104) is to include those firmware files in the existing package dahdi-firmware-nonfree. Should I file a separate unblock request for dahdi-firmware 2.6.1-2? As there is a new upload, I figured I'll include some of the fixes accumulated in the recent monthes: * Patch fix_define_dev: fix building with kernel 3.8. (Build: building a modules package for dahdi-linux) * Patch fix_xpp_usermode: fixes odd xpp behaviour with later kernels. (not panic, but this is a low-risk fix for an odd-looking bug) * Patch fix_xpp_post_unregister: fixes a panic with manual 'dahdi_registration off'. All of them are low-risk and included in the recently-tagged 2.6.2-rc1. Packages could be found for now at: http://anonscm.debian.org/viewvc/pkg-voip/dahdi-linux/trunk/ http://anonscm.debian.org/viewvc/pkg-voip/dahdi-firmware/trunk/ debdiff (for dahdi-linux) The deleted files are noted in the debdiff as just '[deleted]'. diff -Nru dahdi-linux-2.6.1+dfsg/debian/changelog dahdi-linux-2.6.1+dfsg2/debian/changelog --- dahdi-linux-2.6.1+dfsg/debian/changelog 2012-04-23 13:26:35.000000000 +0300 +++ dahdi-linux-2.6.1+dfsg2/debian/changelog 2013-01-29 23:39:57.000000000 +0200 @@ -1,3 +1,14 @@ +dahdi-linux (1:2.6.1+dfsg2-1) UNRELEASED; urgency=low + + * Patch fix_define_dev: fix building with kernel 3.8. + * Remove non-free FPGA bitfiles and patch drivers to load them + (Closes: #693666) (Ben Hutchings). + * Patch fix_xpp_usermode: fixes odd xpp behaviour with later kernels. + * Patch fix_xpp_post_unregister: fixes a crash with manual + 'dahdi_registration off' + + -- Tzafrir Cohen <tzaf...@debian.org> Mon, 28 Jan 2013 14:23:01 +0200 + dahdi-linux (1:2.6.1+dfsg-1) unstable; urgency=low * New upstream release candidate: diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/fix_define_dev dahdi-linux-2.6.1+dfsg2/debian/patches/fix_define_dev --- dahdi-linux-2.6.1+dfsg/debian/patches/fix_define_dev 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/fix_define_dev 2013-01-28 16:08:17.000000000 +0200 @@ -0,0 +1,35 @@ +From: Tzafrir Cohen <tzafrir.co...@xorcom.com> +Date: Mon, 28 Jan 2013 15:22:13 +0200 +Subject: [PATCH] Redefine the removed __dev* for now + +The __dev* directives and functions were removed in 3.8, as they +are no-ops. We still have use of them for older versions, thus +we should define them (as noops) if they don't exist. + +Signed-off-by: Tzafrir Cohen <tzafrir.co...@xorcom.com> +--- + include/dahdi/kernel.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h +index 13bbb20..4a98af5 100644 +--- a/include/dahdi/kernel.h ++++ b/include/dahdi/kernel.h +@@ -120,6 +120,14 @@ + # endif + #endif + ++/* __dev* were removed in 3.8. They still have effect in 2.6.18. */ ++#ifndef __devinit ++# define __devinit ++# define __devinitdata ++# define __devexit ++# define __devexit_p(x) x ++#endif ++ + /*! Default chunk size for conferences and such -- static right now, might make + variable sometime. 8 samples = 1 ms = most frequent service interval possible + for a USB device */ +-- +1.7.10.4 + diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/fix_xpp_post_unregister dahdi-linux-2.6.1+dfsg2/debian/patches/fix_xpp_post_unregister --- dahdi-linux-2.6.1+dfsg/debian/patches/fix_xpp_post_unregister 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/fix_xpp_post_unregister 2013-01-29 23:38:53.000000000 +0200 @@ -0,0 +1,41 @@ +From: Tzafrir Cohen <tzafrir.co...@xorcom.com> +Date: Thu, 15 Nov 2012 15:15:48 +0000 +Subject: xpp: pre/post_unregister: not for the EC +Origin: http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commit;h=c0eebd73bb29f1187b38cc3a41f1a86579e481ac + +Don't run the pre- and post-unregister hooks on a non-phone XPD +(practically: the echo canceller). This fixes a panic with manual +'dahdi_registertion off' as it is now called for the whole device +(regression of 2.6.x). + +Signed-off-by: Tzafrir Cohen <tzafrir.co...@xorcom.com> + +--- + drivers/dahdi/xpp/xpp_dahdi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/dahdi/xpp/xpp_dahdi.c b/drivers/dahdi/xpp/xpp_dahdi.c +index b9fa49a..b2f7008 100644 +--- a/drivers/dahdi/xpp/xpp_dahdi.c ++++ b/drivers/dahdi/xpp/xpp_dahdi.c +@@ -1083,7 +1083,7 @@ int xpd_dahdi_postregister(xpd_t *xpd) + */ + void xpd_dahdi_preunregister(xpd_t *xpd) + { +- if (!xpd) ++ if (!xpd || !IS_PHONEDEV(xpd)) + return; + XPD_DBG(DEVICES, xpd, "\n"); + update_xpd_status(xpd, DAHDI_ALARM_NOTOPEN); +@@ -1103,7 +1103,7 @@ void xpd_dahdi_preunregister(xpd_t *xpd) + + void xpd_dahdi_postunregister(xpd_t *xpd) + { +- if (!xpd) ++ if (!xpd || !IS_PHONEDEV(xpd)) + return; + atomic_dec(&PHONEDEV(xpd).dahdi_registered); + atomic_dec(&num_registered_spans); +-- +1.7.10.4 + diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/fix_xpp_usermode dahdi-linux-2.6.1+dfsg2/debian/patches/fix_xpp_usermode --- dahdi-linux-2.6.1+dfsg/debian/patches/fix_xpp_usermode 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/fix_xpp_usermode 2013-01-29 23:31:13.000000000 +0200 @@ -0,0 +1,60 @@ +From c0eebd73bb29f1187b38cc3a41f1a86579e481ac Mon Sep 17 00:00:00 2001 +From: Oron Peled <oron.pe...@xorcom.com> +Date: Thu, 21 Jun 2012 17:53:33 +0000 +Subject: xpp: usermode_helper() bugfix for kernels >= 3.3.0 +Origin: http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commit;h=c0eebd73bb29f1187b38cc3a41f1a86579e481ac + +Respective kernels fail to run the initialization script but report it +was run, and thus the device behaves in an odd way. + +* UMH_WAIT_PROC semantics (and value) was changed from enum to + a bitmask (via #define) +* This constant was missing from kernels older than 2.6.23 + +Signed-off-by: Oron Peled <oron.pe...@xorcom.com> +Acked-by: Tzafrir Cohen <tzafrir.co...@xorcom.com> + +--- + drivers/dahdi/xpp/card_global.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/drivers/dahdi/xpp/card_global.c b/drivers/dahdi/xpp/card_global.c +index 29c43f0..dca5aee 100644 +--- a/drivers/dahdi/xpp/card_global.c ++++ b/drivers/dahdi/xpp/card_global.c +@@ -22,6 +22,7 @@ + + #include <linux/module.h> + #include <linux/delay.h> ++#include <linux/kmod.h> + #include "xdefs.h" + #include "xpd.h" + #include "xpp_dahdi.h" +@@ -655,6 +656,15 @@ static void global_packet_dump(const char *msg, xpacket_t *pack) + + #define MAX_PATH_STR 128 + ++#ifndef UMH_WAIT_PROC ++/* ++ * - UMH_WAIT_PROC was introduced as enum in 2.6.23 ++ * with a value of 1 ++ * - It was changed to a macro (and it's value was modified) in 3.3.0 ++ */ ++#define UMH_WAIT_PROC 1 ++#endif ++ + int run_initialize_registers(xpd_t *xpd) + { + int ret; +@@ -737,7 +747,7 @@ int run_initialize_registers(xpd_t *xpd) + } + XPD_DBG(DEVICES, xpd, "running '%s' for type=%d revision=%d\n", + init_card, xpd->type, xbus->revision); +- ret = call_usermodehelper(init_card, argv, envp, 1); ++ ret = call_usermodehelper(init_card, argv, envp, UMH_WAIT_PROC); + /* + * Carefully report results + */ +-- +1.7.10.4 + diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/pciradio-request_firmware dahdi-linux-2.6.1+dfsg2/debian/patches/pciradio-request_firmware --- dahdi-linux-2.6.1+dfsg/debian/patches/pciradio-request_firmware 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/pciradio-request_firmware 2013-01-28 16:40:40.000000000 +0200 @@ -0,0 +1,135 @@ +Author: Ben Hutchings <b...@decadent.org.uk> +Description: pciradio: Use request_firmware() to load bitfile +Bug-Debian: http://bugs.debian.org/693666 + +Non-free bits belong in separate (source & binary) packages. +This driver must use request_firmware() to load the FPGA bitfile. + +--- +--- a/drivers/dahdi/pciradio.c ++++ b/drivers/dahdi/pciradio.c +@@ -51,6 +51,7 @@ With driver: 303826 (1.5 %) + #include <linux/interrupt.h> + #include <linux/moduleparam.h> + #include <linux/sched.h> ++#include <linux/firmware.h> + #include <asm/io.h> + #include <asm/delay.h> + +@@ -220,8 +221,6 @@ struct tonedef { + unsigned char b2; + } ; + +-#include "radfw.h" +- + static struct tonedef cttable_tx [] = { + {0,0,0}, + {670,0xE,0xB1}, +@@ -1505,9 +1504,18 @@ static void wait_just_a_bit(int foo) + + static int pciradio_hardware_init(struct pciradio *rad) + { ++const struct firmware *bitfile; + unsigned char byte1,byte2; + int x; + unsigned long endjif; ++int res; ++ ++ res = request_firmware(&bitfile, "dahdi-fw-pciradio.bin", ++ &rad->dev->dev); ++ if (res) ++ return res; ++ ++ res = -EIO; + + /* Signal Reset */ + outb(0x01, rad->ioaddr + RAD_CNTL); +@@ -1539,7 +1547,7 @@ unsigned long endjif; + while (inb(rad->ioaddr + RAD_AUXR) & (XINIT | XDONE) && (jiffies <= endjif)); + if (endjif < jiffies) { + printk(KERN_DEBUG "Timeout waiting for INIT and DONE to go low\n"); +- return -1; ++ goto out; + } + if (debug) printk(KERN_DEBUG "fwload: Init and done gone to low\n"); + /* De-assert PGM */ +@@ -1550,16 +1558,16 @@ unsigned long endjif; + while (!(inb(rad->ioaddr + RAD_AUXR) & XINIT) && (jiffies <= endjif)); + if (endjif < jiffies) { + printk(KERN_DEBUG "Timeout waiting for INIT to go high\n"); +- return -1; ++ goto out; + } + if (debug) printk(KERN_DEBUG "fwload: Init went high (clearing done)\nNow loading...\n"); + /* Assert CS+Write */ + rad->ios &= ~XCS; + outb(rad->ios, rad->ioaddr + RAD_AUXD); +- for (x = 0; x < sizeof(radfw); x++) ++ for (x = 0; x < bitfile->size; x++) + { + /* write the byte */ +- outb(radfw[x],rad->ioaddr + RAD_REGBASE); ++ outb(bitfile->data[x], rad->ioaddr + RAD_REGBASE); + /* if DONE signal, we're done, exit */ + if (inb(rad->ioaddr + RAD_AUXR) & XDONE) break; + /* if INIT drops, we're screwed, exit */ +@@ -1580,12 +1588,12 @@ unsigned long endjif; + if (!(inb(rad->ioaddr + RAD_AUXR) & XINIT)) + { + printk(KERN_NOTICE "Drove Init low!! CRC Error!!!\n"); +- return -1; ++ goto out; + } + if (!(inb(rad->ioaddr + RAD_AUXR) & XDONE)) + { + printk(KERN_INFO "Did not get DONE signal. Short file maybe??\n"); +- return -1; ++ goto out; + } + wait_just_a_bit(2); + /* get the thingy started */ +@@ -1646,7 +1654,10 @@ unsigned long endjif; + /* Wait 1/4 of a sec */ + wait_just_a_bit(HZ/4); + +- return 0; ++ res = 0; ++out: ++ release_firmware(bitfile); ++ return res; + } + + static void pciradio_enable_interrupts(struct pciradio *rad) +@@ -1765,7 +1776,8 @@ static int __devinit pciradio_init_one(s + /* Keep track of which device we are */ + pci_set_drvdata(pdev, rad); + +- if (pciradio_hardware_init(rad)) { ++ res = pciradio_hardware_init(rad); ++ if (res) { + /* Set Reset Low */ + x=inb(rad->ioaddr + RAD_CNTL); + outb((~0x1)&x, rad->ioaddr + RAD_CNTL); +@@ -1780,7 +1792,7 @@ static int __devinit pciradio_init_one(s + pci_set_drvdata(pdev, NULL); + dahdi_free_device(rad->ddev); + kfree(rad); +- return -EIO; ++ return res; + + } + +--- a/drivers/dahdi/Kbuild ++++ b/drivers/dahdi/Kbuild +@@ -141,11 +141,4 @@ ifeq ($(HPEC_PRESENT),yes) + obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_HPEC) += dahdi_echocan_hpec.o + endif + +-$(obj)/pciradio.o: $(obj)/radfw.h +- + hostprogs-y := makefw +- +-$(obj)/radfw.h: $(src)/pciradio.rbt $(obj)/makefw +- $(obj)/makefw $< radfw > $@ +- +-clean-files := radfw.h diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/series dahdi-linux-2.6.1+dfsg2/debian/patches/series --- dahdi-linux-2.6.1+dfsg/debian/patches/series 2012-04-23 12:32:49.000000000 +0300 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/series 2013-01-29 23:40:15.000000000 +0200 @@ -3,3 +3,8 @@ no_firmware_download chanmute notest +fix_define_dev +tor2-request_firmware +pciradio-request_firmware +fix_xpp_usermode +fix_xpp_post_unregister diff -Nru dahdi-linux-2.6.1+dfsg/debian/patches/tor2-request_firmware dahdi-linux-2.6.1+dfsg2/debian/patches/tor2-request_firmware --- dahdi-linux-2.6.1+dfsg/debian/patches/tor2-request_firmware 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-linux-2.6.1+dfsg2/debian/patches/tor2-request_firmware 2013-01-28 16:40:40.000000000 +0200 @@ -0,0 +1,87 @@ +Author: Ben Hutchings <b...@decadent.org.uk> +Description: tor2: Use request_firmware() to load bitfile +Bug-Debian: http://bugs.debian.org/693666 + +Non-free bits belong in separate (source & binary) packages. +This driver must use request_firmware() to load the FPGA bitfile. + +--- +--- a/drivers/dahdi/tor2.c ++++ b/drivers/dahdi/tor2.c +@@ -31,11 +31,11 @@ + #include <linux/sched.h> + #include <linux/interrupt.h> + #include <linux/moduleparam.h> ++#include <linux/firmware.h> + + #include <dahdi/kernel.h> + #define NEED_PCI_IDS + #include "tor2-hw.h" +-#include "tor2fw.h" + + /* + * Tasklets provide better system interactive response at the cost of the +@@ -379,6 +379,7 @@ static int __devinit tor2_probe(struct p + unsigned long endjif; + __iomem volatile unsigned long *gpdata_io, *lasdata_io; + unsigned long gpdata,lasdata; ++ const struct firmware *bitfile; + + res = pci_enable_device(pdev); + if (res) +@@ -439,6 +440,11 @@ static int __devinit tor2_probe(struct p + tor->xilinx8_len, tor->xilinx8_region); + goto err_out_release_plx_region; + } ++ res = request_firmware(&bitfile, "dahdi-fw-tor2.bin", &pdev->dev); ++ if (res) { ++ ret = res; ++ goto err_out_release_all_regions; ++ } + pci_set_drvdata(pdev, tor); + printk(KERN_INFO "Detected %s at 0x%lx/0x%lx irq %d\n", tor->type, + tor->xilinx32_region, tor->xilinx8_region,tor->irq); +@@ -490,10 +496,10 @@ static int __devinit tor2_probe(struct p + /* assert WRITE signal */ + gpdata &= ~GPIO_WRITE; + writel(gpdata, gpdata_io); +- for (x = 0; x < sizeof(tor2fw); x++) ++ for (x = 0; x < bitfile->size; x++) + { + /* write the byte */ +- writeb(tor2fw[x], tor->mem8); ++ writeb(bitfile->data[x], tor->mem8); + /* if DONE signal, we're done, exit */ + if (readl(gpdata_io) & GPIO_DONE) + break; +@@ -612,9 +618,12 @@ static int __devinit tor2_probe(struct p + break; + } + ++ release_firmware(bitfile); + return 0; + + err_out_release_all: ++ release_firmware(bitfile); ++err_out_release_all_regions: + release_mem_region(tor->xilinx32_region, tor->xilinx32_len); + release_mem_region(tor->xilinx8_region, tor->xilinx8_len); + err_out_release_plx_region: +--- a/drivers/dahdi/Kbuild ++++ b/drivers/dahdi/Kbuild +@@ -142,14 +142,10 @@ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECH + endif + + $(obj)/pciradio.o: $(obj)/radfw.h +-$(obj)/tor2.o: $(obj)/tor2fw.h + + hostprogs-y := makefw + +-$(obj)/tor2fw.h: $(src)/tormenta2.rbt $(obj)/makefw +- $(obj)/makefw $< tor2fw > $@ +- + $(obj)/radfw.h: $(src)/pciradio.rbt $(obj)/makefw + $(obj)/makefw $< radfw > $@ + +-clean-files := radfw.h tor2fw.h ++clean-files := radfw.h diff -Nru dahdi-linux-2.6.1+dfsg/debian/rules dahdi-linux-2.6.1+dfsg2/debian/rules --- dahdi-linux-2.6.1+dfsg/debian/rules 2012-04-23 12:32:49.000000000 +0300 +++ dahdi-linux-2.6.1+dfsg2/debian/rules 2013-01-28 16:40:40.000000000 +0200 @@ -25,7 +25,7 @@ DEBVERSION:=$(shell head -n 1 debian/changelog \ | sed -e 's/^[^(]*(\([^)]*\)).*/\1/') DEB_BASE_VERSION:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9~.a-z]*$$//') -UPVERSION:=$(shell echo $(DEB_BASE_VERSION) | sed -e 's/[~+]dfsg\(~\|$$\)/\1/' -e 's/~\(rc\|beta\)/-\1/') +UPVERSION:=$(shell echo $(DEB_BASE_VERSION) | sed -e 's/[~+]dfsg[0-9]*\(~\|$$\)/\1/' -e 's/~\(rc\|beta\)/-\1/') UPFILENAME := $(PACKAGE_SRC)_$(UPVERSION).orig.tar.gz FILENAME := $(PACKAGE_SRC)_$(DEB_BASE_VERSION).orig.tar.gz @@ -117,6 +117,7 @@ @@cd $(TARBALL_DIR) ; \ tar xfz ../$(UPFILENAME) @@rm -rf $(TARBALL_DIR)/$(PACKAGE_SRC)-$(UPVERSION)/drivers/dahdi/xpp/firmwares/*.hex + @@rm -f $(TARBALL_DIR)/$(PACKAGE_SRC)-$(UPVERSION)/drivers/dahdi/*.rbt @@cd $(TARBALL_DIR) ; \ tar cfz ../$(FILENAME) * @@echo Cleaning up... diff -Nru dahdi-linux-2.6.1+dfsg/drivers/dahdi/pciradio.rbt dahdi-linux-2.6.1+dfsg2/drivers/dahdi/pciradio.rbt --- dahdi-linux-2.6.1+dfsg/drivers/dahdi/pciradio.rbt 2008-05-21 18:11:48.000000000 +0300 +++ dahdi-linux-2.6.1+dfsg2/drivers/dahdi/pciradio.rbt 1970-01-01 02:00:00.000000000 +0200 [deleted] diff -Nru dahdi-linux-2.6.1+dfsg/drivers/dahdi/tormenta2.rbt dahdi-linux-2.6.1+dfsg2/drivers/dahdi/tormenta2.rbt --- dahdi-linux-2.6.1+dfsg/drivers/dahdi/tormenta2.rbt 2008-05-21 18:11:48.000000000 +0300 +++ dahdi-linux-2.6.1+dfsg2/drivers/dahdi/tormenta2.rbt 1970-01-01 02:00:00.000000000 +0200 [deleted] debdiff for dahdi-firmware: diff -Nru dahdi-firmware-2.6.1/debian/changelog dahdi-firmware-2.6.1/debian/changelog --- dahdi-firmware-2.6.1/debian/changelog 2012-06-10 12:52:32.000000000 +0300 +++ dahdi-firmware-2.6.1/debian/changelog 2013-01-28 17:42:48.000000000 +0200 @@ -1,6 +1,12 @@ -dahdi-firmware (2.6.1-1) UNRELEASED; urgency=low +dahdi-firmware (2.6.1-2) UNRELEASED; urgency=low * NOT RELEASED YET + * Move old Zapata bitfiles (*.rbt) to this package (Closes: #699104). + + -- Tzafrir Cohen <tzaf...@debian.org> Sun, 10 Jun 2012 13:38:32 +0300 + +dahdi-firmware (2.6.1-1) unstable; urgency=low + * New upstream release. * Standards version 3.9.3 (no change needed). * Include the Octasic firmware for the Xorcom Astribank. diff -Nru dahdi-firmware-2.6.1/debian/install dahdi-firmware-2.6.1/debian/install --- dahdi-firmware-2.6.1/debian/install 2012-05-01 20:06:59.000000000 +0300 +++ dahdi-firmware-2.6.1/debian/install 2013-01-28 17:42:48.000000000 +0200 @@ -2,3 +2,4 @@ drivers/dahdi/firmware/Makefile var/lib/dahdi/digium-firm debian/get-digium-firmware usr/share/dahdi debian/OCT6104E-256D.ima usr/share/dahdi +drivers/dahdi/dahdi-fw-*.bin lib/firmware/ diff -Nru dahdi-firmware-2.6.1/debian/patches/make-binary-bitfiles dahdi-firmware-2.6.1/debian/patches/make-binary-bitfiles --- dahdi-firmware-2.6.1/debian/patches/make-binary-bitfiles 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-firmware-2.6.1/debian/patches/make-binary-bitfiles 2013-01-28 17:30:32.000000000 +0200 @@ -0,0 +1,73 @@ +Author: Ben Hutchings <b...@decadent.org.uk> +Description: Add makefw -b option to enable binary output +Bug-Debian: http://bugs.debian.org/699104 + +We can't compile these bitfiles into the drivers in the free +dahdi-source package. Add the -b option to write a binary +instead of a C array. + +--- +--- a/drivers/dahdi/makefw.c ++++ b/drivers/dahdi/makefw.c +@@ -1,6 +1,7 @@ + /* Xilinx firmware convertor program. + * + * Written by Jim Dixon <j...@lambdatel.com>. ++ * Binary output adde by Ben Hutchings <b...@decadent.org.uk>. + * + * Copyright (C) 2001 Jim Dixon / Zapata Telephony. + * Copyright (C) 2001-2008 Digium, Inc. +@@ -34,10 +35,12 @@ FILE *fp; + int i,j,nbytes; + unsigned char c; + char buf[300]; ++int bin; + + if (argc < 3) + { + puts("Usage... makefw filename.rbt array_name"); ++ puts(" makefw filename.rbt -b"); + exit(1); + } + +@@ -47,8 +50,10 @@ char buf[300]; + perror("bit file open"); + exit(1); + } ++ bin = !strcmp(argv[2], "-b"); + nbytes = 0; +- printf("static unsigned char %s[] = {\n",argv[2]); ++ if (!bin) ++ printf("static unsigned char %s[] = {\n",argv[2]); + i = 0; + while(fgets(buf,sizeof(buf) - 1,fp)) + { +@@ -66,17 +71,22 @@ char buf[300]; + if ((j & 7) == 7) + { + nbytes++; +- if (i) printf(","); +- printf("0x%02x",c); +- if (i++ == SWATH) { +- printf(",\n"); +- i = 0; ++ if (bin) { ++ putchar(c); ++ } else { ++ if (i) printf(","); ++ printf("0x%02x",c); ++ if (i++ == SWATH) { ++ printf(",\n"); ++ i = 0; ++ } + } + c = 0; + } + } + } +- printf("\n};\n\n"); ++ if (!bin) ++ printf("\n};\n\n"); + fprintf(stderr,"Loaded %d bytes from file\n",nbytes); + fclose(fp); + exit(0); diff -Nru dahdi-firmware-2.6.1/debian/patches/series dahdi-firmware-2.6.1/debian/patches/series --- dahdi-firmware-2.6.1/debian/patches/series 1970-01-01 02:00:00.000000000 +0200 +++ dahdi-firmware-2.6.1/debian/patches/series 2013-01-30 00:02:39.000000000 +0200 @@ -0,0 +1 @@ +make-binary-bitfiles diff -Nru dahdi-firmware-2.6.1/debian/rules dahdi-firmware-2.6.1/debian/rules --- dahdi-firmware-2.6.1/debian/rules 2010-04-15 13:02:53.000000000 +0300 +++ dahdi-firmware-2.6.1/debian/rules 2013-01-28 17:53:59.000000000 +0200 @@ -12,8 +12,19 @@ # included in the tarball. The same tarball is properly built in # dahdi-linux -install/dahdi-firmware:: - chmod +x $(CURDIR)/debian/dahdi-firmware/usr/share/dahdi/get-digium-firmware +drivers/dahdi/makefw: drivers/dahdi/makefw.c + $(CC) $(CFLAGS) -Wall -Wextra -o $@ $< + +drivers/dahdi/dahdi-fw-tor2.bin: drivers/dahdi/tormenta2.rbt drivers/dahdi/makefw + drivers/dahdi/makefw $< -b > $@ + +drivers/dahdi/dahdi-fw-pciradio.bin: drivers/dahdi/pciradio.rbt drivers/dahdi/makefw + drivers/dahdi/makefw $< -b > $@ + +build/dahdi-firmware-nonfree:: drivers/dahdi/dahdi-fw-tor2.bin drivers/dahdi/dahdi-fw-pciradio.bin + +clean:: + rm -f drivers/dahdi/makefw drivers/dahdi/dahdi-fw-*.bin get-orig-source: @@dh_testdir unblock dahdi-linux/1:2.6.1+dfsg-2 -- System Information: Debian Release: 7.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=he_IL.UTF-8, LC_CTYPE=he_IL.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il | | a Mutt's tzaf...@cohens.org.il | | best tzaf...@debian.org | | friend -- Tzafrir Cohen | tzaf...@jabber.org | VIM is http://tzafrir.org.il | | a Mutt's tzaf...@cohens.org.il | | best tzaf...@debian.org | | friend -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org