aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hardware
diff options
context:
space:
mode:
authorMartin Bachem <info@colognechip.com>2012-05-15 19:51:04 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-16 15:23:06 -0400
commit37952cfa3afdfa5cec39d9d76e80bc3a0e6a910c (patch)
tree829737484a661c49903ceb13d536b89c0a9a8ca9 /drivers/isdn/hardware
parent09e79a777a0c9c3de85abc395b5d984bd4bae19d (diff)
mISDN: Bugfix hfcsusb: usb endpoint activation/deactivation
Here was a off by one in the activation/deactivation. The additional activation in open_bchannel() did hide it, but only if you do not try to use B2. Signed-off-by: Martin Bachem <info@colognechip.com> Signed-off-by: Karsten Keil <kkeil@linux-pingi.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn/hardware')
-rw-r--r--drivers/isdn/hardware/mISDN/hfcsusb.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c
index a4c5b24b2266..919ecccb9939 100644
--- a/drivers/isdn/hardware/mISDN/hfcsusb.c
+++ b/drivers/isdn/hardware/mISDN/hfcsusb.c
@@ -231,7 +231,7 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
231 return ret; 231 return ret;
232 case PH_ACTIVATE_REQ: 232 case PH_ACTIVATE_REQ:
233 if (!test_and_set_bit(FLG_ACTIVE, &bch->Flags)) { 233 if (!test_and_set_bit(FLG_ACTIVE, &bch->Flags)) {
234 hfcsusb_start_endpoint(hw, bch->nr); 234 hfcsusb_start_endpoint(hw, bch->nr - 1);
235 ret = hfcsusb_setup_bch(bch, ch->protocol); 235 ret = hfcsusb_setup_bch(bch, ch->protocol);
236 } else 236 } else
237 ret = 0; 237 ret = 0;
@@ -495,12 +495,6 @@ open_bchannel(struct hfcsusb *hw, struct channel_req *rq)
495 bch->ch.protocol = rq->protocol; 495 bch->ch.protocol = rq->protocol;
496 rq->ch = &bch->ch; 496 rq->ch = &bch->ch;
497 497
498 /* start USB endpoint for bchannel */
499 if (rq->adr.channel == 1)
500 hfcsusb_start_endpoint(hw, HFC_CHAN_B1);
501 else
502 hfcsusb_start_endpoint(hw, HFC_CHAN_B2);
503
504 if (!try_module_get(THIS_MODULE)) 498 if (!try_module_get(THIS_MODULE))
505 printk(KERN_WARNING "%s: %s:cannot get module\n", 499 printk(KERN_WARNING "%s: %s:cannot get module\n",
506 hw->name, __func__); 500 hw->name, __func__);
@@ -1801,7 +1795,7 @@ deactivate_bchannel(struct bchannel *bch)
1801 mISDN_clear_bchannel(bch); 1795 mISDN_clear_bchannel(bch);
1802 spin_unlock_irqrestore(&hw->lock, flags); 1796 spin_unlock_irqrestore(&hw->lock, flags);
1803 hfcsusb_setup_bch(bch, ISDN_P_NONE); 1797 hfcsusb_setup_bch(bch, ISDN_P_NONE);
1804 hfcsusb_stop_endpoint(hw, bch->nr); 1798 hfcsusb_stop_endpoint(hw, bch->nr - 1);
1805} 1799}
1806 1800
1807/* 1801/*