diff --git a/packages/linux/patches/default/linux-122-rtw88-rfc-v1.patch b/packages/linux/patches/default/linux-122-rtw88-rfc-v1.patch index d7fcc326dc..362e6787f5 100644 --- a/packages/linux/patches/default/linux-122-rtw88-rfc-v1.patch +++ b/packages/linux/patches/default/linux-122-rtw88-rfc-v1.patch @@ -1547,7 +1547,7 @@ diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/rea index 4e5c194aac29..bf1291902661 100644 --- a/drivers/net/wireless/realtek/rtw88/mac.c +++ b/drivers/net/wireless/realtek/rtw88/mac.c -@@ -269,10 +269,18 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) +@@ -269,15 +269,23 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) if (pwr_on == cur_pwr) return -EALREADY; @@ -1560,6 +1560,11 @@ index 4e5c194aac29..bf1291902661 100644 pwr_seq = pwr_on ? chip->pwr_on_seq : chip->pwr_off_seq; if (rtw_pwr_seq_parser(rtwdev, pwr_seq)) return -EINVAL; + + if (pwr_on) + set_bit(RTW_FLAG_POWERON, rtwdev->flags); + else + clear_bit(RTW_FLAG_POWERON, rtwdev->flags); + rtw_hci_power_switch(rtwdev, pwr_on); + @@ -1826,7 +1831,7 @@ index 8e1fa824b32b..ad71f9838d1d 100644 u8 rpwm; bool cur_pwr; -@@ -278,12 +301,19 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) +@@ -278,17 +301,24 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on) */ rtw_hci_power_switch(rtwdev, false); @@ -1840,6 +1845,11 @@ index 8e1fa824b32b..ad71f9838d1d 100644 return -EINVAL; + } + if (pwr_on) + set_bit(RTW_FLAG_POWERON, rtwdev->flags); + else + clear_bit(RTW_FLAG_POWERON, rtwdev->flags); + rtw_hci_power_switch(rtwdev, pwr_on); + rtw_write32(rtwdev, REG_SDIO_HIMR, imr);