static int bcm4329_rfkill_suspend(struct platform_device *pdev, pm_message_t state) { DBG("%s\n",__FUNCTION__); cancel_delayed_work(&wakeup_work); #ifdef CONFIG_BT_AUTOSLEEP bcm4325_sleep(1); #endif DBG("Disable UART_RTS\n"); //To prevent uart to receive bt data when suspended IOMUX_UART_RTS_GPIO(); gpio_request(UART_RTS, "uart_rts"); gpio_set_value(UART_RTS, GPIO_HIGH); // enable bt wakeup host DBG("Request irq for bt wakeup host\n"); if (0 == request_irq(BT_IRQ_WAKE_UP_HOST, bcm4329_wake_host_irq, IRQF_TRIGGER_FALLING, "bt_wake", NULL)) enable_irq_wake(BT_IRQ_WAKE_UP_HOST); else LOG("Failed to request BT_WAKE_UP_HOST irq\n"); #ifdef CONFIG_RFKILL_RESET extern void rfkill_set_block(struct rfkill *rfkill, bool blocked); rfkill_set_block(gBtCtrl.bt_rfk, true); #endif return 0; }
static int bcm4329_rfkill_suspend(struct platform_device *pdev, pm_message_t state) { DBG("%s\n",__FUNCTION__); #ifdef CONFIG_BT_AUTOSLEEP bcm4325_sleep(1); #endif DBG("Disable UART_RTS\n"); //To prevent uart to receive bt data when suspended IOMUX_UART_RTS_GPIO(); gpio_request(UART_RTS, "uart_rts"); gpio_set_value(UART_RTS, GPIO_HIGH); #ifdef CONFIG_RFKILL_RESET extern void rfkill_set_block(struct rfkill *rfkill, bool blocked); rfkill_set_block(gBtCtrl.bt_rfk, true); #endif return 0; }