Re: __hci_cmd_sync() not suitable for nokia h4p

From: Marcel Holtmann
Date: Fri Dec 12 2014 - 07:28:16 EST


Hi Pavel,

>>>>>> What needs to be done is the bring up of the device including the proper UART settings and speed and then just run the firmware downloads. All firmware files on the Nokia devices where just HCI commands with vendor specific details. Some from CSR, some from Broadcom and some from TI. You can actually decode them if you really want to. Shouldn't be that hard.
>>>>>>
>>>>>
>>>>> Speed changes at the end of firmware load, but I guess that's detail?
>>>>> Anyway, patch would look like this.
>>>>
>>>> You should really look into providing hdev->setup() callback. That is normally the callback where you want to load the firmware.
>>>>
>>>
>>> I can provide setup() callback and load firmware from there.
>>>
>>> I have created provisional device tree binding, and the driver still
>>> works.
>>>
>>> Some time ago you mentioned that with the "big" issues fixed, you'd be
>>> willing to take it into the tree. What way forward do you see? Would
>>> it make sense to re-enable the driver in staging, so that "big"
>>> changes could be applied, followed by renames?
>>
>> If the driver is clean, there is no point in taking it through staging. It can be cleaned up and then merged all together.
>>
>
> Ok, so you can revert a4102f90e87cfaa3fdbed6fdf469b23f0eeb4bfd in your
> tree, and I can post patches against that?

just treat this a submission of a new driver.

>> I think the important part is to focus on the N900 derivative with
>> the Broadcom chip inside. And just ignore all the rest. So start
>> small and do not try to carry the N770, N800, N810 hacks over.
>
> Well, I did remove non-relevant firmware loaders, and I can remove the
> switches for different firmware loaders, too, but spending time
> removing support for different hardware does not sound quite right.

Lets face it, you are not getting it upstream that way. If nobody has the hardware to test it or cares about the hardware anymore, then this should not be upstream in the first place.

Make your life easier and get your hardware supported. Then someone can evolve this for older Nokia devices. But I am not taking code that nobody has tested.

Keep it simple is really the only way to get this driver merged. There is so much old cruft in there that you are better off only caring about the N900 version of the hardware.

>> However you might want to check Neil Brown's patches for TTY-slave
>> devices he just posted. Maybe the N900 devices should be exposed as
>> TTY and we just attach N_HCI line discipline to it. If all the GPIO
>> wiggling can be done automatically at TTY open, then that should be
>> the way to go. I also send an email about using the new unconfigured
>> stage to get this done cleanly.
>
> I seen them, but they don't help, I'm afraid. The GPIOs are used for
> power saving, and they are used in various places including the serial
> irq handler.

That is something that might need some extra work on it, but it seems that the general direction of TTY slaves is the right one.

Anyway, the main order of business is really that it supports DT and that it can be compiled on every single platform and you could even load the driver on x86 without doing any harm.

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/