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); }
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); }
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); }