Hi Adam,

>>>>>>> This moves all remaining users of the legacy TI_ST driver to hcill 
>>>>>>> (patches
>>>>>>> 1-3). Then patches 4-7 convert wl128x-radio driver to a standard 
>>>>>>> platform
>>>>>>> device driver with support for multiple instances. Patch 7 will result 
>>>>>>> in
>>>>>>> (userless) TI_ST driver no longer supporting radio at runtime. Patch 
>>>>>>> 8-11 do
>>>>>>> some cleanups in the wl128x-radio driver. Finally patch 12 removes the 
>>>>>>> TI_ST
>>>>>>> specific parts from wl128x-radio and adds the required infrastructure 
>>>>>>> to use it
>>>>>>> with the serdev hcill driver instead. The remaining patches 13 and 14 
>>>>>>> remove
>>>>>>> the old TI_ST code.
>>>>>>> 
>>>>>>> The new code has been tested on the Motorola Droid 4. For testing the 
>>>>>>> audio
>>>>>>> should be configured to route Ext to Speaker or Headphone. Then you 
>>>>>>> need to
>>>>>>> plug headphone, since its cable is used as antenna. For testing there 
>>>>>>> is a
>>>>>>> 'radio' utility packages in Debian. When you start the utility you need 
>>>>>>> to
>>>>>>> specify a frequency, since initial get_frequency returns an error:
>>>>>> 
>>>>>> What is the status of this series?
>>>>>> 
>>>>>> Based on some of the replies (from Adam Ford in particular) it appears 
>>>>>> that
>>>>>> this isn't ready to be merged, so is a v2 planned?
>>>>> 
>>>>> Yes, a v2 is planned, but I'm super busy at the moment. I don't
>>>>> expect to send something for this merge window. Neither LogicPD
>>>>> nor IGEP use FM radio, so I can just remove FM support from the
>>>>> TI_ST framework. Converting those platforms to hci_ll can be done
>>>>> in a different patchset.
>>>>> 
>>>>> If that was the only issue there would be a v2 already. But Marcel
>>>>> Holtmann suggested to pass the custom packet data through the BT
>>>>> subsystem, which is non-trivial (at least for me) :)
>>>> 
>>>> I am running some tests today on the wl1283-st on the Logic PD Torpedo
>>>> board.  Tony had suggested a few options, so I'm going to try those.
>>>> Looking at those today.  If/when you have a V2, please CC me on it. If
>>>> it's been posted, can you send me a link?  I would really like to see
>>>> the st-kim driver go away so I'd like to resolve the issues with the
>>>> torpedo board.
>>> 
>>> I have run a bunch of tests on the 5.1 kernel.  I am able to get the
>>> firmware to load now and the hci0 goes up.  I was able to establish a
>>> BLE connection to a TI Sensor Tag and read and write data to it with
>>> good success on the wl1283.
>>> 
>>> Unfortunately, when I tried to do some more extensive testing over
>>> classic Bluetooth, I got an error that repeats itself at seemingly
>>> random intervals:
>>>     Bluetooth: hci0: Frame reassembly failed (-84)
>>> 
>>> I can still scan and pair, but these Frame reassembly failed errors
>>> appear to come and go.
>> 
>> there are only 3 places in h4_recv_buf that return EILSEQ. Just add an extra 
>> printk to these to figure out which one it is. Maybe it is just extra packet 
>> types that we need to handle. If it is not the packet type one, print what 
>> packet we have that is causing this.
>> 
> 
> I added some code around
> 
> /* Check for invalid packet type */
>    if (!skb) {
>     printk("Check for invalid packet type %x\n", (unsigned int)
> (&pkts[i])->type);
>     return ERR_PTR(-EILSEQ);
> }
> 
> I don't know if I did it right or I am reading the packet type
> correctly, but the frame reassembly errors are being caught here.
> 
> [  408.519165] Check for invalid packet type ff
> [  408.523559] Bluetooth: hci0: Frame reassembly failed (-84)

so now we need to figure our on how to handle HCI_VENDOR_PKT.

#define LL_RECV_VENDOR \
        .type = HCI_VENDOR_PKT, \
        .hlen = aaa, \
        .loff = bbb, \
        .lsize = ccc, \
        .maxlen = ddd

static const struct h4_recv_pkt ll_recv_pkts[] = {
        ...
        { LL_RECV_WAKE_ACK,  .recv = ll_recv_frame  },
        { LL_RECV_VENDOR,    .recv = hci_recv_diag  },
};

Can you hexdump the data inside the skb and we can figure out what it uses for 
the header and size.

In hci_bcm.c there are a few examples of fixed size packets and bpa10x.c 
contains one where it follows an actual header definition. Also hci_nokia.c 
contains a few for their packets.

Regards

Marcel

Reply via email to