* Any flag indicating bt/fm is ready to run "hcitool cmd"
@ 2011-01-12 7:02 zhangfei gao
2011-01-12 8:37 ` Johan Hedberg
0 siblings, 1 reply; 4+ messages in thread
From: zhangfei gao @ 2011-01-12 7:02 UTC (permalink / raw)
To: linux-bluetooth
Is there any flag indicating bt/fm is ready to run "hcitool cmd", ie,
"hciconfig hci0 up" is really finished.
We met error "Send failed: File descriptor in bad state", if run
hcitool immediately after "hciconfig hci0 up"
For example:
hciconfig hci0 up
hcitool cmd 3f 66 02 26 00 00 00 30
And it could be workaround adding sleep.
The reason is "hciconfig hci0 up" is asynchronous, when it return,
bt/fm is not ready in fact, so add sleep could solve the issue, but
still may fail in stress test since race condition.
We have test bit HCI_UP, but hcitool cmd still would failed, when
HCI_UP=1, which is set in hci_dev_open instead of handler.
How about HCI_RAW?
The question is any bit user place could check and then safe to send
any command via hcitool cmd.
Thanks in advance.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Any flag indicating bt/fm is ready to run "hcitool cmd"
2011-01-12 7:02 Any flag indicating bt/fm is ready to run "hcitool cmd" zhangfei gao
@ 2011-01-12 8:37 ` Johan Hedberg
2011-01-13 6:53 ` zhangfei gao
0 siblings, 1 reply; 4+ messages in thread
From: Johan Hedberg @ 2011-01-12 8:37 UTC (permalink / raw)
To: zhangfei gao; +Cc: linux-bluetooth
Hi,
On Wed, Jan 12, 2011, zhangfei gao wrote:
> Is there any flag indicating bt/fm is ready to run "hcitool cmd", ie,
> "hciconfig hci0 up" is really finished.
>
> We met error "Send failed: File descriptor in bad state", if run
> hcitool immediately after "hciconfig hci0 up"
> For example:
> hciconfig hci0 up
> hcitool cmd 3f 66 02 26 00 00 00 30
The HCIDEVUP ioctl is at least synchronized with the open() callback for
the HCI driver so in that sense if the driver is working fine it should
be possible to send commands when it returns. There is however an issue
with existing kernels that HCIDEVUP doesn't wait for all of the kernels
own HCI commands to finish before returning to user space. There was a
patch sent for this some time ago which you might be interested in
trying: http://marc.info/?l=linux-bluetooth&m=129296529630642&w=4
Johan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Any flag indicating bt/fm is ready to run "hcitool cmd"
2011-01-12 8:37 ` Johan Hedberg
@ 2011-01-13 6:53 ` zhangfei gao
2011-01-13 12:26 ` Johan Hedberg
0 siblings, 1 reply; 4+ messages in thread
From: zhangfei gao @ 2011-01-13 6:53 UTC (permalink / raw)
To: Johan Hedberg, linux-bluetooth
On Wed, Jan 12, 2011 at 3:37 AM, Johan Hedberg <johan.hedberg@gmail.com> wrote:
> Hi,
>
> On Wed, Jan 12, 2011, zhangfei gao wrote:
>> Is there any flag indicating bt/fm is ready to run "hcitool cmd", ie,
>> "hciconfig hci0 up" is really finished.
>>
>> We met error "Send failed: File descriptor in bad state", if run
>> hcitool immediately after "hciconfig hci0 up"
>> For example:
>> hciconfig hci0 up
>> hcitool cmd 3f 66 02 26 00 00 00 30
>
> The HCIDEVUP ioctl is at least synchronized with the open() callback for
> the HCI driver so in that sense if the driver is working fine it should
> be possible to send commands when it returns. There is however an issue
> with existing kernels that HCIDEVUP doesn't wait for all of the kernels
> own HCI commands to finish before returning to user space. There was a
> patch sent for this some time ago which you might be interested in
> trying: http://marc.info/?l=linux-bluetooth&m=129296529630642&w=4
Really thanks Johan,
The patch synchronize hci_dev_open, it solve the problem we met, and
"hcitool cmd" could immediately send after "hciconfig hci0 up" without
problem.
By the way, is this patch already in the kernel?
>
> Johan
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-01-13 12:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-12 7:02 Any flag indicating bt/fm is ready to run "hcitool cmd" zhangfei gao
2011-01-12 8:37 ` Johan Hedberg
2011-01-13 6:53 ` zhangfei gao
2011-01-13 12:26 ` Johan Hedberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox