Thread (8 messages) 8 messages, 3 authors, 2009-08-26
  • sniff mode · Luiz Augusto von Dentz <luiz.dentz@gmail.com> · 2009-08-24
  • Re: sniff mode · Marcel Holtmann <marcel@holtmann.org> · 2009-08-24
  • Re: sniff mode · Luiz Augusto von Dentz <luiz.dentz@gmail.com> · 2009-08-24
  • Re: sniff mode · Marcel Holtmann <marcel@holtmann.org> · 2009-08-24
  • Re: sniff mode · Luiz Augusto von Dentz <luiz.dentz@gmail.com> · 2009-08-24
  • Re: sniff mode · Marcel Holtmann <marcel@holtmann.org> · 2009-08-24
  • Re: sniff mode · Ville Tervo <hidden> · 2009-08-26
  • Re: sniff mode · Marcel Holtmann <marcel@holtmann.org> · 2009-08-26

Re: sniff mode

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2009-08-24 19:26:30

Hi Marcel,

On Mon, Aug 24, 2009 at 3:40 PM, Marcel Holtmann[off-list ref] wrote=
:
Hi Luiz,
quoted
It is just me or hci_conn_enter_active_mode will never do what its
name suggests. This check will always succeed:

=A0 =A0 =A0 if (conn->mode !=3D HCI_CM_SNIFF || !conn->power_save)
=A0 =A0 =A0 =A0 =A0 =A0 =A0 goto timer;
so conn->power_save is used to disable automatic sniff mode for incoming
connections. Mainly HID since they manager it by themselves.
Hmm, but this seems to be done for any device regardless of its type.
So for example we start sending/receiving data to a headset it will
triggers hci_conn_enter_active_mode which I thought would exit sniff
mode, right? (yep, I have seem some headset that doesn't leave sniff
mode by their own).
quoted
But in hci_mode_change_evt whatever mode different than HCI_CM_ACTIVE
reset power_save to zero:


=A0 =A0 =A0 =A0 =A0 =A0 =A0 if (!test_and_clear_bit(HCI_CONN_MODE_CHANGE=
_PEND, &conn->pend)) {
quoted
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (conn->mode =3D=3D HCI_CM=
_ACTIVE)
quoted
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 conn->power_=
save =3D 1;
quoted
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 conn->power_=
save =3D 0;
quoted
=A0 =A0 =A0 =A0 =A0 =A0 =A0 }
And again, we are not setting the sniff mode. We disable automatic sniff
mode feature.
It really seems the opposite, like we were disabling the automatic
active mode since this make us to always hit goto timer; while in
sniff mode. Perhaps this is meant for when remote device has been
controlling modes, which sound strange to me since hci_mode_change_evt
is called even when the we actively change the mode, right?
(hci_conn_idle does that)

--=20
Luiz Augusto von Dentz
Engenheiro de Computa=E7=E3o
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help