stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 6.6.y 0/2] wifi: rtw89: RTL8852BE: Fix the shutdown issue
@ 2025-03-11  8:09 Zenm Chen
  2025-03-11  8:10 ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete Zenm Chen
  2025-03-11  8:10 ` [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit Zenm Chen
  0 siblings, 2 replies; 7+ messages in thread
From: Zenm Chen @ 2025-03-11  8:09 UTC (permalink / raw)
  To: stable; +Cc: pkshih, zenmchen

This patch series addresses a shutdown issue reported in [1].

This problem has been fixed on kernel 6.12 and later, kernel 6.6 is 
the last kernel these upstream patches should go to because the Realtek 
RTL8852BE chip supported by kernel since v6.2 is the only chip known to 
have this problem.

[1] https://github.com/lwfinger/rtw89/issues/372

Zenm Chen (2):
  wifi: rtw89: pci: add pre_deinit to be called after probe complete
  wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit

 drivers/net/wireless/realtek/rtw89/core.c |  2 ++
 drivers/net/wireless/realtek/rtw89/core.h |  6 ++++++
 drivers/net/wireless/realtek/rtw89/pci.c  | 10 ++++++++++
 3 files changed, 18 insertions(+)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete
  2025-03-11  8:09 [PATCH 6.6.y 0/2] wifi: rtw89: RTL8852BE: Fix the shutdown issue Zenm Chen
@ 2025-03-11  8:10 ` Zenm Chen
  2025-03-13  9:01   ` Sasha Levin
  2025-03-13 16:08   ` Greg KH
  2025-03-11  8:10 ` [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit Zenm Chen
  1 sibling, 2 replies; 7+ messages in thread
From: Zenm Chen @ 2025-03-11  8:10 UTC (permalink / raw)
  To: stable; +Cc: pkshih, zenmchen

From: Ping-Ke Shih <pkshih@realtek.com>

[ Upstream commit 9e1aff437a560cd72cb6a60ee33fe162b0afdaf1 ]

At probe stage, we only do partial initialization to enable ability to
download firmware and read capabilities. After that, we use this pre_deinit
to disable HCI to save power.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231110012319.12727-4-pkshih@realtek.com
[ Zenm: minor fix to make it apply on 6.6.y ]
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
---
 drivers/net/wireless/realtek/rtw89/core.c | 2 ++
 drivers/net/wireless/realtek/rtw89/core.h | 6 ++++++
 drivers/net/wireless/realtek/rtw89/pci.c  | 8 ++++++++
 3 files changed, 16 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 535393eca..d1d8fd812 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -3807,6 +3807,8 @@ static int rtw89_chip_efuse_info_setup(struct rtw89_dev *rtwdev)
 	rtw89_core_setup_phycap(rtwdev);
 	rtw89_core_setup_rfe_parms(rtwdev);
 
+	rtw89_hci_mac_pre_deinit(rtwdev);
+
 	rtw89_mac_pwr_off(rtwdev);
 
 	return 0;
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index ee6ae2a0c..16aad0f83 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -2989,6 +2989,7 @@ struct rtw89_hci_ops {
 	void (*write32)(struct rtw89_dev *rtwdev, u32 addr, u32 data);
 
 	int (*mac_pre_init)(struct rtw89_dev *rtwdev);
+	int (*mac_pre_deinit)(struct rtw89_dev *rtwdev);
 	int (*mac_post_init)(struct rtw89_dev *rtwdev);
 	int (*deinit)(struct rtw89_dev *rtwdev);
 
@@ -4515,6 +4516,11 @@ static inline void rtw89_hci_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch)
 	return rtwdev->hci.ops->tx_kick_off(rtwdev, txch);
 }
 
+static inline int rtw89_hci_mac_pre_deinit(struct rtw89_dev *rtwdev)
+{
+	return rtwdev->hci.ops->mac_pre_deinit(rtwdev);
+}
+
 static inline void rtw89_hci_flush_queues(struct rtw89_dev *rtwdev, u32 queues,
 					  bool drop)
 {
diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
index 98af64444..658ab61e3 100644
--- a/drivers/net/wireless/realtek/rtw89/pci.c
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
@@ -2568,6 +2568,13 @@ static int rtw89_pci_ops_mac_pre_init(struct rtw89_dev *rtwdev)
 	return 0;
 }
 
+static int rtw89_pci_ops_mac_pre_deinit(struct rtw89_dev *rtwdev)
+{
+	rtw89_pci_power_wake(rtwdev, false);
+
+	return 0;
+}
+
 int rtw89_pci_ltr_set(struct rtw89_dev *rtwdev, bool en)
 {
 	u32 val;
@@ -3812,6 +3819,7 @@ static const struct rtw89_hci_ops rtw89_pci_ops = {
 	.write32	= rtw89_pci_ops_write32,
 
 	.mac_pre_init	= rtw89_pci_ops_mac_pre_init,
+	.mac_pre_deinit	= rtw89_pci_ops_mac_pre_deinit,
 	.mac_post_init	= rtw89_pci_ops_mac_post_init,
 	.deinit		= rtw89_pci_ops_deinit,
 
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit
  2025-03-11  8:09 [PATCH 6.6.y 0/2] wifi: rtw89: RTL8852BE: Fix the shutdown issue Zenm Chen
  2025-03-11  8:10 ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete Zenm Chen
@ 2025-03-11  8:10 ` Zenm Chen
  2025-03-13  9:01   ` Sasha Levin
  1 sibling, 1 reply; 7+ messages in thread
From: Zenm Chen @ 2025-03-11  8:10 UTC (permalink / raw)
  To: stable; +Cc: pkshih, zenmchen

From: Ping-Ke Shih <pkshih@realtek.com>

[ Upstream commit 9c1df813e08832c3836c254bc8a2f83ff22dbc06 ]

The PCIE wake bit is to control PCIE wake signal to host. When PCIE is
going down, clear this bit to prevent waking up host unexpectedly.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20241111063835.15454-1-pkshih@realtek.com
[ Zenm: minor fix to make it apply on 6.6.y ]
Signed-off-by: Zenm Chen <zenmchen@gmail.com>
---
 drivers/net/wireless/realtek/rtw89/pci.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
index 658ab61e3..1edbe202a 100644
--- a/drivers/net/wireless/realtek/rtw89/pci.c
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
@@ -2482,6 +2482,8 @@ static int rtw89_pci_ops_deinit(struct rtw89_dev *rtwdev)
 {
 	const struct rtw89_pci_info *info = rtwdev->pci_info;
 
+	rtw89_pci_power_wake(rtwdev, false);
+
 	if (rtwdev->chip->chip_id == RTL8852A) {
 		/* ltr sw trigger */
 		rtw89_write32_set(rtwdev, R_AX_LTR_CTRL_0, B_AX_APP_LTR_IDLE);
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit
  2025-03-11  8:10 ` [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit Zenm Chen
@ 2025-03-13  9:01   ` Sasha Levin
  0 siblings, 0 replies; 7+ messages in thread
From: Sasha Levin @ 2025-03-13  9:01 UTC (permalink / raw)
  To: stable; +Cc: Zenm Chen, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 9c1df813e08832c3836c254bc8a2f83ff22dbc06

WARNING: Author mismatch between patch and upstream commit:
Backport author: Zenm Chen<zenmchen@gmail.com>
Commit author: Ping-Ke Shih<pkshih@realtek.com>

Status in newer kernel trees:
6.13.y | Present (different SHA1: bf1aaf8eb546)
6.12.y | Present (different SHA1: e5aeac73ab04)

Note: The patch differs from the upstream commit:
---
1:  9c1df813e0883 < -:  ------------- wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit
-:  ------------- > 1:  17fff42da3e65 wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.6.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete
  2025-03-11  8:10 ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete Zenm Chen
@ 2025-03-13  9:01   ` Sasha Levin
  2025-03-13 16:08   ` Greg KH
  1 sibling, 0 replies; 7+ messages in thread
From: Sasha Levin @ 2025-03-13  9:01 UTC (permalink / raw)
  To: stable; +Cc: Zenm Chen, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 9e1aff437a560cd72cb6a60ee33fe162b0afdaf1

WARNING: Author mismatch between patch and upstream commit:
Backport author: Zenm Chen<zenmchen@gmail.com>
Commit author: Ping-Ke Shih<pkshih@realtek.com>

Status in newer kernel trees:
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)

Note: The patch differs from the upstream commit:
---
1:  9e1aff437a560 < -:  ------------- wifi: rtw89: pci: add pre_deinit to be called after probe complete
-:  ------------- > 1:  1b950ee5b56cc wifi: rtw89: pci: add pre_deinit to be called after probe complete
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.6.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete
  2025-03-11  8:10 ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete Zenm Chen
  2025-03-13  9:01   ` Sasha Levin
@ 2025-03-13 16:08   ` Greg KH
  2025-03-13 20:38     ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called Zenm Chen
  1 sibling, 1 reply; 7+ messages in thread
From: Greg KH @ 2025-03-13 16:08 UTC (permalink / raw)
  To: Zenm Chen; +Cc: stable, pkshih

On Tue, Mar 11, 2025 at 04:10:00PM +0800, Zenm Chen wrote:
> From: Ping-Ke Shih <pkshih@realtek.com>
> 
> [ Upstream commit 9e1aff437a560cd72cb6a60ee33fe162b0afdaf1 ]
> 
> At probe stage, we only do partial initialization to enable ability to
> download firmware and read capabilities. After that, we use this pre_deinit
> to disable HCI to save power.
> 
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> Signed-off-by: Kalle Valo <kvalo@kernel.org>
> Link: https://lore.kernel.org/r/20231110012319.12727-4-pkshih@realtek.com
> [ Zenm: minor fix to make it apply on 6.6.y ]

That was not "minor" changes, as your diff looks like:

> Signed-off-by: Zenm Chen <zenmchen@gmail.com>
> ---
>  drivers/net/wireless/realtek/rtw89/core.c | 2 ++
>  drivers/net/wireless/realtek/rtw89/core.h | 6 ++++++
>  drivers/net/wireless/realtek/rtw89/pci.c  | 8 ++++++++
>  3 files changed, 16 insertions(+)

But the original was:
 drivers/net/wireless/realtek/rtw89/core.c   |    2 ++
 drivers/net/wireless/realtek/rtw89/core.h   |    6 ++++++
 drivers/net/wireless/realtek/rtw89/pci.c    |    2 ++
 drivers/net/wireless/realtek/rtw89/pci.h    |   12 ++++++++++++
 drivers/net/wireless/realtek/rtw89/pci_be.c |   18 ++++++++++++++++++
 drivers/net/wireless/realtek/rtw89/reg.h    |    9 +++++++++
 6 files changed, 49 insertions(+)

That is a big difference.

Please either backport the whole thing, or document exactly what you
changed here.  Otherwise this looks like a totally new patch and we
can't take that for obvious reasons.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called
  2025-03-13 16:08   ` Greg KH
@ 2025-03-13 20:38     ` Zenm Chen
  0 siblings, 0 replies; 7+ messages in thread
From: Zenm Chen @ 2025-03-13 20:38 UTC (permalink / raw)
  To: gregkh; +Cc: pkshih, stable, zenmchen

> On Tue, Mar 11, 2025 at 04:10:00PM +0800, Zenm Chen wrote:
> > From: Ping-Ke Shih <pkshih@realtek.com>
> > 
> > [ Upstream commit 9e1aff437a560cd72cb6a60ee33fe162b0afdaf1 ]
> > 
> > At probe stage, we only do partial initialization to enable ability to
> > download firmware and read capabilities. After that, we use this pre_deinit
> > to disable HCI to save power.
> > 
> > Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> > Signed-off-by: Kalle Valo <kvalo@kernel.org>
> > Link: https://lore.kernel.org/r/20231110012319.12727-4-pkshih@realtek.com
> > [ Zenm: minor fix to make it apply on 6.6.y ]
> 
> That was not "minor" changes, as your diff looks like:
> 
> > Signed-off-by: Zenm Chen <zenmchen@gmail.com>
> > ---
> >  drivers/net/wireless/realtek/rtw89/core.c | 2 ++
> >  drivers/net/wireless/realtek/rtw89/core.h | 6 ++++++
> >  drivers/net/wireless/realtek/rtw89/pci.c  | 8 ++++++++
> >  3 files changed, 16 insertions(+)
>
> But the original was:
>  drivers/net/wireless/realtek/rtw89/core.c   |    2 ++
>  drivers/net/wireless/realtek/rtw89/core.h   |    6 ++++++
>  drivers/net/wireless/realtek/rtw89/pci.c    |    2 ++
>  drivers/net/wireless/realtek/rtw89/pci.h    |   12 ++++++++++++
>  drivers/net/wireless/realtek/rtw89/pci_be.c |   18 ++++++++++++++++++
>  drivers/net/wireless/realtek/rtw89/reg.h    |    9 +++++++++
>  6 files changed, 49 insertions(+)
> 
> That is a big difference.
> 
> Please either backport the whole thing, or document exactly what you
> changed here.  Otherwise this looks like a totally new patch and we
> can't take that for obvious reasons.

Hi Greg,

Sorry about that, I will explain more clearly about the changes in v2, 
please drop this patch series, thanks!

>
> thanks,
>
> greg k-h


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-03-13 20:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-11  8:09 [PATCH 6.6.y 0/2] wifi: rtw89: RTL8852BE: Fix the shutdown issue Zenm Chen
2025-03-11  8:10 ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called after probe complete Zenm Chen
2025-03-13  9:01   ` Sasha Levin
2025-03-13 16:08   ` Greg KH
2025-03-13 20:38     ` [PATCH 6.6.y 1/2] wifi: rtw89: pci: add pre_deinit to be called Zenm Chen
2025-03-11  8:10 ` [PATCH 6.6.y 2/2] wifi: rtw89: pci: disable PCIE wake bit when PCIE deinit Zenm Chen
2025-03-13  9:01   ` Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).