From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 27 Jan 2015 13:09:10 +0200 From: Johan Hedberg To: Marcel Holtmann Cc: linux-bluetooth@vger.kernel.org Subject: Re: [PATCH v3] Bluetooth: btusb: Add firmware loading for Intel Snowfield Peak devices Message-ID: <20150127110910.GB14108@t440s> References: <1422336828-32215-1-git-send-email-marcel@holtmann.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1422336828-32215-1-git-send-email-marcel@holtmann.org> List-ID: Hi Marcel, On Mon, Jan 26, 2015, Marcel Holtmann wrote: > The Intel Snowfield Peak devices do not come with Bluetooth firmware > loaded and thus require a full download of the operational Bluetooth > firmware when the device is connected via USB. > > Snowfield Peak devices start with a bootloader mode that only accepts > a very limited set of HCI commands. The supported commands are enough > to identify the hardware and select the right firmware to load. > > Previous patches to the btusb driver allow overwriting the handling > for bulk receive endpoint packets and HCI events processing. The > firmware loading makes heavy use of these new internal callbacks. > > This patch also introduces additional internal states to track if the > device is in bootloader or operational mode. This allows for correct > feedback about the firmware loading procedure. > > Output from /sys/kernel/debug/usb/devices for this device: > > T: Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 > D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 > P: Vendor=8087 ProdID=0a2b Rev= 0.01 > C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA > I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb > E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms > E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms > E: Ad=82(I) 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=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms > E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms > E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms > E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms > E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms > I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb > E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms > E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms > I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb > E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms > E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms > > Based-on-patch-by: Tedd Ho-Jeong An . > Signed-off-by: Marcel Holtmann > --- > drivers/bluetooth/btusb.c | 571 +++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 568 insertions(+), 3 deletions(-) Applied to bluetooth-next. Thanks. Johan