1. 03 12月, 2011 1 次提交
    • C
      btusb: fix a memory leak in btusb_send_frame() · 54a8a79c
      Cong Wang 提交于
      This patch fixes the following memory leak reported by kmemleak:
      
      unreferenced object 0xffff880060a53840 (size 192):
        comm "softirq", pid 0, jiffies 4320571771 (age 1406.569s)
        hex dump (first 32 bytes):
          01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<ffffffff81138a1c>] create_object+0x187/0x28b
          [<ffffffff814be12e>] kmemleak_alloc+0x73/0x98
          [<ffffffff811289d3>] __kmalloc+0xfc/0x123
          [<ffffffff81386546>] usb_alloc_urb+0x1e/0x48
          [<ffffffffa0130274>] btusb_send_frame+0x86/0x385 [btusb]
          [<ffffffffa02d8230>] hci_send_frame+0xa0/0xa5 [bluetooth]
          [<ffffffffa02d8a4e>] hci_cmd_task+0xa0/0xfb [bluetooth]
          [<ffffffff81058548>] tasklet_action+0x8f/0xef
          [<ffffffff81058a4c>] __do_softirq+0xf4/0x1db
          [<ffffffff81058bb7>] run_ksoftirqd+0x84/0x129
          [<ffffffff8106f1c4>] kthread+0xa0/0xa8
          [<ffffffff814dd144>] kernel_thread_helper+0x4/0x10
          [<ffffffffffffffff>] 0xffffffffffffffff
      
      The problem is that when inc_tx() returns non-zero, we forgot
      to call usb_free_urb().
      
      Cc: Marcel Holtmann <marcel@holtmann.org>
      Cc: "Gustavo F. Padovan" <padovan@profusion.mobi>
      Signed-off-by: NWANG Cong <amwang@redhat.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      54a8a79c
  2. 08 11月, 2011 1 次提交
    • W
      Bluetooth: Add support for Broadcom BCM20702A0 · d13431ca
      Wen-chien Jesse Sung 提交于
      Since this device declares itself as vendor specific, must add
      a new entry to device ID table to support it.
      
      usb-device output of this device:
      
      T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=413c ProdID=8197 Rev=01.12
      S:  Manufacturer=Broadcom Corp
      S:  Product=BCM20702A0
      S:  SerialNumber=D0DF9AA9C9F1
      C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: NWen-chien Jesse Sung <jesse.sung@canonical.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      d13431ca
  3. 30 9月, 2011 1 次提交
  4. 28 9月, 2011 1 次提交
    • P
      Bluetooth: Allow ACL packets over USB in HCI_RAW mode · 9fd481e0
      Peter Hurley 提交于
      Removed tests which prevent transmission of ACL packets
      when the device is in HCI_RAW mode. These tests verified that
      there are ACL or LE links currently tracked by the HCI
      connection manager. However, a HCI_RAW mode device does not
      use the connection manager. In these circumstances, the connection
      counts will be zero, and thus, transmitted ACL packets dropped.
      
      The acl_num test is actually a vestige of a previous bulk URB
      scheme that is no longer used by this driver (bulk URBs were not
      started until at least one ACL connection was created). This was
      incompatible with some endpoint implementations and was dropped -
      see commit 43c2e57f.
      
      The utility of these tests is marginal - currently, the hci tx
      scheduler cannot send an ACL or LE packet for an untracked connection
      (except if the device is in HCI_RAW mode).
      
      Lastly, no other transport layer driver enforces these same tests.
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Acked-by: NAcked-by: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      9fd481e0
  5. 18 9月, 2011 2 次提交
  6. 20 8月, 2011 1 次提交
  7. 12 8月, 2011 2 次提交
  8. 02 7月, 2011 1 次提交
  9. 12 5月, 2011 1 次提交
  10. 01 4月, 2011 2 次提交
  11. 25 3月, 2011 2 次提交
  12. 24 2月, 2011 1 次提交
  13. 17 2月, 2011 3 次提交
  14. 12 2月, 2011 1 次提交
  15. 27 1月, 2011 1 次提交
  16. 19 1月, 2011 1 次提交
  17. 02 12月, 2010 2 次提交
  18. 09 11月, 2010 2 次提交
    • E
      Bluetooth: Add MacBookAir3,1(2) support · 3e3ede7d
      Edgar (gimli) Hucek 提交于
      Adding the new MacBookAir3,1(2) to btusb.
      
      Output without the patch and btusb loaded :
      
      T:  Bus=03 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=821b Rev= 0.34
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      
      Output with the patch and btusb loaded :
      
      T:  Bus=03 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=821b Rev= 0.34
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: NEdgar (gimli) Hucek <gimli@dark-green.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      3e3ede7d
    • M
      Bluetooth: Enable USB autosuspend by default on btusb · 556ea928
      Matthew Garrett 提交于
      We've done this for a while in Fedora without any obvious problems other
      than some interaction with input devices. Those should be fixed now, so
      let's try this in mainline.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      556ea928
  19. 12 10月, 2010 2 次提交
    • N
      Bluetooth: Add support Bluetooth controller of MacbookPro 7,1 · 3cd01976
      Nobuhiro Iwamatsu 提交于
      Bluetooth controller of MacbookPro 7,1 does not work.
      Because Device Class of these controllers was set 255 (Vendor Sepecific Class).
      
      T:  Bus=04 Lev=02 Prnt=04 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=8213 Rev=01.86
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      S:  SerialNumber=5C5948C81B99
      C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
      I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)
      Signed-off-by: NNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      3cd01976
    • N
      Bluetooth: Add support Bluetooth controller of MacbookPro 6,2 · 9c047157
      Nobuhiro Iwamatsu 提交于
      Bluetooth controller of MacbookPro 6,2 does not work.
      Because Device Class of these controllers was set 255 (Vendor Sepecific Class).
      
      T:  Bus=01 Lev=03 Prnt=03 Port=02 Cnt=03 Dev#=  8 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=05ac ProdID=8218 Rev=00.22
      S:  Manufacturer=Apple Inc.
      S:  Product=Bluetooth USB Host Controller
      C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
      I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
      I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      Signed-off-by: NNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      9c047157
  20. 22 7月, 2010 2 次提交
  21. 27 2月, 2010 1 次提交
  22. 18 12月, 2009 1 次提交
  23. 12 12月, 2009 1 次提交
  24. 15 11月, 2009 1 次提交
  25. 12 11月, 2009 1 次提交
  26. 25 8月, 2009 1 次提交
    • O
      Bluetooth: Add USB autosuspend support to btusb driver · 7bee549e
      Oliver Neukum 提交于
      This patch adds support of USB autosuspend to the btusb driver.
      
      If the device doesn't support remote wakeup, simple support based on
      up/down is provided. If the device supports remote wakeup, additional
      support for autosuspend while the interface is up is provided. This is
      done by queueing URBs in an anchor structure and waking the device up
      from a work queue on sending. Reception triggers remote wakeup.
      
      The last busy facility of the USB autosuspend code is used. To close
      a race between autosuspend and transmission, a counter of ongoing
      transmissions is maintained.
      
      Add #ifdefs for CONFIG_PM as necessary.
      Signed-off-by: NOliver Neukum <oliver@neukum.org>
      Tested-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      7bee549e
  27. 23 8月, 2009 1 次提交
  28. 27 2月, 2009 1 次提交
    • M
      Bluetooth: Submit bulk URBs along with interrupt URBs · 43c2e57f
      Marcel Holtmann 提交于
      Submitting the bulk URBs for ACL data transfers only on demand has no
      real benefit compared to just submit them when a Bluetooth device gets
      opened. So when submitting the interrupt URBs for HCI events, just
      submit the bulk URBs, too.
      
      This solves a problem with some Bluetooth USB dongles that has been
      reported over the last few month. These devices require that the bulk
      URBs are actually present. These devices are really broken, but there
      is nothing we can do about it.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      43c2e57f
  29. 30 11月, 2008 2 次提交