]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/mISDN-hfcusb_bchannels.patch
mISDN-hfcusb bchannel endpoint patch.
[ipfire-2.x.git] / src / patches / mISDN-hfcusb_bchannels.patch
diff --git a/src/patches/mISDN-hfcusb_bchannels.patch b/src/patches/mISDN-hfcusb_bchannels.patch
new file mode 100644 (file)
index 0000000..322239d
--- /dev/null
@@ -0,0 +1,56 @@
+From: mbachem <info@colognechip.com>
+Date: Thu, 17 Dec 2009 01:45:58 +0000 (+0100)
+Subject: mISDN: Bugfix hfcsusb: usb endpoint activation/deactivation
+X-Git-Url: http://git.misdn.org/?p=mISDN.git;a=commitdiff_plain;h=e29960990df531faff42023dd663e8d6e2bf55fe;hp=5f0f8aed322de56932da90810062f46170443553
+
+mISDN: Bugfix hfcsusb: usb endpoint activation/deactivation
+
+fixed activation/deactivation of B1/B2's USB endpoints
+
+Signed-off-by: mbachem <info@colognechip.com>
+---
+
+diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c
+index c5f29db..e8c5754 100644
+--- a/drivers/isdn/hardware/mISDN/hfcsusb.c
++++ b/drivers/isdn/hardware/mISDN/hfcsusb.c
+@@ -36,7 +36,7 @@
+ #include <linux/isdn_compat.h>
+ #include "hfcsusb.h"
+-static const char *hfcsusb_rev = "Revision: 0.3.3 (socket), 2008-11-05";
++static const char *hfcsusb_rev = "Revision: 0.3.4 (socket), 2009-12-16";
+ static unsigned int debug;
+ static int poll = DEFAULT_TRANSP_BURST_SZ;
+@@ -239,7 +239,7 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
+               return ret;
+       case PH_ACTIVATE_REQ:
+               if (!test_and_set_bit(FLG_ACTIVE, &bch->Flags)) {
+-                      hfcsusb_start_endpoint(hw, bch->nr);
++                      hfcsusb_start_endpoint(hw, bch->nr-1);
+                       ret = hfcsusb_setup_bch(bch, ch->protocol);
+               } else
+                       ret = 0;
+@@ -502,12 +502,6 @@ open_bchannel(struct hfcsusb *hw, struct channel_req *rq)
+       bch->ch.protocol = rq->protocol;
+       rq->ch = &bch->ch;
+-      /* start USB endpoint for bchannel */
+-      if (rq->adr.channel  == 1)
+-              hfcsusb_start_endpoint(hw, HFC_CHAN_B1);
+-      else
+-              hfcsusb_start_endpoint(hw, HFC_CHAN_B2);
+-
+       if (!try_module_get(THIS_MODULE))
+               printk(KERN_WARNING "%s: %s:cannot get module\n",
+                   hw->name, __func__);
+@@ -1813,7 +1807,7 @@ deactivate_bchannel(struct bchannel *bch)
+       mISDN_clear_bchannel(bch);
+       spin_unlock_irqrestore(&hw->lock, flags);
+       hfcsusb_setup_bch(bch, ISDN_P_NONE);
+-      hfcsusb_stop_endpoint(hw, bch->nr);
++      hfcsusb_stop_endpoint(hw, bch->nr-1);
+ }
+ /*