static void bcm_bt_lpm_exit_lpm_locked(struct hci_dev *hdev)
{
	bt_lpm.hdev = hdev;

	hrtimer_try_to_cancel(&bt_lpm.enter_lpm_timer);
	bt_is_running = 1;
	set_wake_locked(1);

	pr_debug("[BT] bcm_bt_lpm_exit_lpm_locked\n");
	hrtimer_start(&bt_lpm.enter_lpm_timer, bt_lpm.enter_lpm_delay,
		HRTIMER_MODE_REL);
}
Esempio n. 2
0
void bcm_bt_lpm_exit_lpm_locked(struct uart_port *uport)
{
	bt_lpm.uport = uport;

	hrtimer_try_to_cancel(&bt_lpm.enter_lpm_timer);
	bt_is_running = 1;
	set_wake_locked(1);

//	pr_info("[BT] bcm_bt_lpm_exit_lpm_locked\n");
	hrtimer_start(&bt_lpm.enter_lpm_timer, bt_lpm.enter_lpm_delay,
		HRTIMER_MODE_REL);
}
Esempio n. 3
0
void bcm_bt_lpm_exit_lpm_locked(struct uart_port *uport) {
	bt_lpm.uport = uport;

//pr_debug( "bbbluetooth.c:%s TOP uport=0x%x\n",__FUNCTION__,uport);

	hrtimer_try_to_cancel(&bt_lpm.enter_lpm_timer);

// DOWN_STREAM_BT_WAKE_AND_UART_CONTROL_FIX ++
// Assert BT_WAKE explicitly
	pr_debug( "bbbluetooth.c:%s setting BT_WAKE(high)\n",__FUNCTION__);
	gpio_set_value(BT_WAKE_GPIO, 1);
// DOWN_STREAM_BT_WAKE_AND_UART_CONTROL_FIX --
	set_wake_locked(1);

	hrtimer_start(&bt_lpm.enter_lpm_timer, bt_lpm.enter_lpm_delay,
		HRTIMER_MODE_REL);

	pr_debug( "bbbluetooth.c:%s called hrtimer_start(1 sec), END\n",__FUNCTION__);
}
static void bcm_bt_lpm_wake_peer(struct device *dev)
{
	bt_lpm.tty_dev = dev;

	/*
	 * the irq is enabled after the first host wake up signal.
	 * in the original code, the irq should be in levels but, since mfld
	 * does not support them, irq is triggering with edges.
	 */

	if (!int_handler_enabled) {
		int_handler_enabled = true;
		activate_irq_handler();
	}

	hrtimer_try_to_cancel(&bt_lpm.enter_lpm_timer);

	set_wake_locked(1);

	hrtimer_start(&bt_lpm.enter_lpm_timer, bt_lpm.enter_lpm_delay,
		HRTIMER_MODE_REL);

}