--- /dev/null
+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);
+ }
+
+ /*