Hi Luiz, > >> 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) > > > > I am not following. > > Perhaps it is just me, but I don't see any attempt to detect which > part has initiated the connection, so regardless of who has been the > initiator, on any mode change different than active we will reset the > power_save to 0 which will prevent any attempt to leave sniff mode. actually it is not based on who initiated the connection, it is based on who initiated the sniff mode: if (conn->mode == HCI_CM_ACTIVE) conn->power_save = 1; else conn->power_save = 0; If we are back to active mode, then reset power_save and trigger automatic sniff-mode else disable it. Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html