I've modified the upstream drivers a little bit and managed to get it
working, but the changes are so ulgy they'll never make into upstream.
Below are my findings:
* a GET_STATE has to be issued before firmware can be loaded
* no USB device reset happens after firmware downloaded
(I mentioned observed a USB re-enumeration, which is wrong - double
checked, no re-enumeration happened, it was me manually removing
the ath3k module)
* no PID change after firmware downloaded, even if the command
SWITCH_VID_PID is issued (same one as for ATH_AR3012)
* btusb.ko will be working if the line below is removed from btusb.c
* I have to do 'rmmod ath3k' and 'insmod btusb' to make btusb to
attach to the device
Considering there is no reliable/standard way in Linux kernel for
two drivers to attach to the same USB device, a feasible way to
fix this is really to change the firmware to follow a little bit the
way as AR3012, so a PID change will happen.
I've modified the upstream drivers a little bit and managed to get it
working, but the changes are so ulgy they'll never make into upstream.
Below are my findings:
* a GET_STATE has to be issued before firmware can be loaded
* no USB device reset happens after firmware downloaded
(I mentioned observed a USB re-enumeration, which is wrong - double
checked, no re-enumeration happened, it was me manually removing
the ath3k module)
* no PID change after firmware downloaded, even if the command
SWITCH_VID_PID is issued (same one as for ATH_AR3012)
* btusb.ko will be working if the line below is removed from btusb.c
{ USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE },
* I have to do 'rmmod ath3k' and 'insmod btusb' to make btusb to
attach to the device
Considering there is no reliable/standard way in Linux kernel for
two drivers to attach to the same USB device, a feasible way to
fix this is really to change the firmware to follow a little bit the
way as AR3012, so a PID change will happen.