From 072de836f53be56a70cecf70b43ae43b7ce17376 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 10:08:36 +0000
Subject: [PATCH] mk-rootfs.sh
---
kernel/net/rfkill/rfkill-bt.c | 25 ++++++++++++-------------
1 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/kernel/net/rfkill/rfkill-bt.c b/kernel/net/rfkill/rfkill-bt.c
index 719a23d..73b802c 100644
--- a/kernel/net/rfkill/rfkill-bt.c
+++ b/kernel/net/rfkill/rfkill-bt.c
@@ -175,15 +175,11 @@
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 @@
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");
@@ -323,8 +313,6 @@
gpio_direction_output(poweron->io,
poweron->enable);
msleep(20);
- if (gpio_is_valid(wake_host->io))
- gpio_direction_input(wake_host->io);
}
}
@@ -335,6 +323,11 @@
msleep(20);
gpio_direction_output(reset->io, reset->enable);
}
+ }
+
+ if (gpio_is_valid(wake_host->io)) {
+ LOG("%s: set bt wake_host input!\n", __func__);
+ gpio_direction_input(wake_host->io);
}
if (pinctrl && gpio_is_valid(rts->io)) {
@@ -369,6 +362,10 @@
}
}
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);
@@ -410,6 +407,7 @@
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
@@ -439,6 +437,7 @@
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)) {
--
Gitblit v1.6.2