net: rfkill-bt: match irq_wake to irq.
Signed-off-by: Longjian Lin <llj@rock-chips.com> Change-Id: I5965b5d12bf3fa8bb13c9346fb8ee609800abdf6 Signed-off-by: Zou Dengming <marsow.zou@rock-chips.com>
This commit is contained in:
+7
-11
@@ -175,15 +175,11 @@ static int rfkill_rk_setup_wake_irq(struct rfkill_rk_data *rfkill, int flag)
|
||||
rfkill->irq_req = 1;
|
||||
LOG("** disable irq\n");
|
||||
disable_irq(irq->irq);
|
||||
ret = enable_irq_wake(irq->irq);
|
||||
if (ret)
|
||||
goto fail3;
|
||||
/*ret = disable_irq_wake(irq->irq);init irq wake is disabled,no need to disable*/
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
fail3:
|
||||
free_irq(irq->irq, rfkill);
|
||||
fail2:
|
||||
gpio_free(irq->gpio.io);
|
||||
fail1:
|
||||
@@ -292,12 +288,6 @@ static int rfkill_rk_set_power(void *data, bool blocked)
|
||||
|
||||
toggle = rfkill->pdata->power_toggle;
|
||||
|
||||
if (toggle) {
|
||||
if (rfkill_get_wifi_power_state(&wifi_power)) {
|
||||
LOG("%s: cannot get wifi power state!\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
DBG("%s: toggle = %s\n", __func__, toggle ? "true" : "false");
|
||||
|
||||
@@ -372,6 +362,10 @@ static int rfkill_rk_set_power(void *data, bool blocked)
|
||||
}
|
||||
}
|
||||
if (toggle) {
|
||||
if (rfkill_get_wifi_power_state(&wifi_power)) {
|
||||
LOG("%s: cannot get wifi power state!\n", __func__);
|
||||
return -EPERM;
|
||||
}
|
||||
if (!wifi_power) {
|
||||
LOG("%s: bt will set vbat to low\n", __func__);
|
||||
rfkill_set_wifi_bt_power(0);
|
||||
@@ -413,6 +407,7 @@ static int rfkill_rk_pm_prepare(struct device *dev)
|
||||
if (gpio_is_valid(wake_host_irq->gpio.io) && bt_power_state) {
|
||||
DBG("enable irq for bt wakeup host\n");
|
||||
enable_irq(wake_host_irq->irq);
|
||||
enable_irq_wake(wake_host_irq->irq);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_RFKILL_RESET
|
||||
@@ -442,6 +437,7 @@ static void rfkill_rk_pm_complete(struct device *dev)
|
||||
if (gpio_is_valid(wake_host_irq->gpio.io) && bt_power_state) {
|
||||
LOG("** disable irq\n");
|
||||
disable_irq(wake_host_irq->irq);
|
||||
disable_irq_wake(wake_host_irq->irq);
|
||||
}
|
||||
|
||||
if (rfkill->pdata->pinctrl && gpio_is_valid(rts->io)) {
|
||||
|
||||
@@ -319,6 +319,11 @@ int rockchip_wifi_power(int on)
|
||||
}
|
||||
|
||||
wifi_power_state = 0;
|
||||
|
||||
if (!rfkill_get_bt_power_state(&bt_power, &toggle)) {
|
||||
LOG("%s: toggle = %s\n", __func__, toggle ? "true" : "false");
|
||||
}
|
||||
|
||||
if (toggle) {
|
||||
if (!bt_power) {
|
||||
LOG("%s: wifi will set vbat to low\n", __func__);
|
||||
|
||||
Reference in New Issue
Block a user