linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH rtw-next 0/2] wifi: rtw89: only print once for unknown C2H events
@ 2025-08-04  1:22 Ping-Ke Shih
  2025-08-04  1:22 ` [PATCH rtw-next 1/2] wifi: rtw89: print just " Ping-Ke Shih
  2025-08-04  1:22 ` [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done Ping-Ke Shih
  0 siblings, 2 replies; 6+ messages in thread
From: Ping-Ke Shih @ 2025-08-04  1:22 UTC (permalink / raw)
  To: linux-wireless; +Cc: rtl8821cerfe2, sean.anderson

The unknown C2H events are printed once driver receives, causing thousands
of messages. Since this is only for developers who must implement the
handlers during development, to print once is enough to be a hint. Also,
to avoid somehow missing to implement causes messages to users.

Ping-Ke Shih (2):
  wifi: rtw89: print just once for unknown C2H events
  wifi: rtw89: add dummy C2H handlers for BCN resend and update done

 drivers/net/wireless/realtek/rtw89/debug.h |  1 +
 drivers/net/wireless/realtek/rtw89/mac.c   | 20 +++++++++++++++-----
 drivers/net/wireless/realtek/rtw89/mac.h   |  1 +
 drivers/net/wireless/realtek/rtw89/phy.c   |  7 +++----
 4 files changed, 20 insertions(+), 9 deletions(-)

-- 
2.25.1


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

* [PATCH rtw-next 1/2] wifi: rtw89: print just once for unknown C2H events
  2025-08-04  1:22 [PATCH rtw-next 0/2] wifi: rtw89: only print once for unknown C2H events Ping-Ke Shih
@ 2025-08-04  1:22 ` Ping-Ke Shih
  2025-08-04 18:40   ` Sean Anderson
  2025-08-12  8:20   ` Ping-Ke Shih
  2025-08-04  1:22 ` [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done Ping-Ke Shih
  1 sibling, 2 replies; 6+ messages in thread
From: Ping-Ke Shih @ 2025-08-04  1:22 UTC (permalink / raw)
  To: linux-wireless; +Cc: rtl8821cerfe2, sean.anderson

When driver receives new or unknown C2H events, it print out messages
repeatedly once events are received, like

  rtw89_8922ae 0000:81:00.0: PHY c2h class 2 not support

To avoid the thousands of messages, use rtw89_info_once() instead. Also,
print out class/func for unknown (undefined) class.

Reported-by: Sean Anderson <sean.anderson@linux.dev>
Closes: https://lore.kernel.org/linux-wireless/20250729204437.164320-1-sean.anderson@linux.dev/
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw89/debug.h | 1 +
 drivers/net/wireless/realtek/rtw89/mac.c   | 7 +++----
 drivers/net/wireless/realtek/rtw89/phy.c   | 7 +++----
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw89/debug.h b/drivers/net/wireless/realtek/rtw89/debug.h
index fc690f7c55dc..a364e7adb079 100644
--- a/drivers/net/wireless/realtek/rtw89/debug.h
+++ b/drivers/net/wireless/realtek/rtw89/debug.h
@@ -56,6 +56,7 @@ static inline void rtw89_debugfs_deinit(struct rtw89_dev *rtwdev) {}
 #endif
 
 #define rtw89_info(rtwdev, a...) dev_info((rtwdev)->dev, ##a)
+#define rtw89_info_once(rtwdev, a...) dev_info_once((rtwdev)->dev, ##a)
 #define rtw89_warn(rtwdev, a...) dev_warn((rtwdev)->dev, ##a)
 #define rtw89_err(rtwdev, a...) dev_err((rtwdev)->dev, ##a)
 
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index 5a5da9d9c0c5..ef17a307b770 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -5813,12 +5813,11 @@ void rtw89_mac_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
 	case RTW89_MAC_C2H_CLASS_ROLE:
 		return;
 	default:
-		rtw89_info(rtwdev, "MAC c2h class %d not support\n", class);
-		return;
+		break;
 	}
 	if (!handler) {
-		rtw89_info(rtwdev, "MAC c2h class %d func %d not support\n", class,
-			   func);
+		rtw89_info_once(rtwdev, "MAC c2h class %d func %d not support\n",
+				class, func);
 		return;
 	}
 	handler(rtwdev, skb, len);
diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
index d607577b353c..01a03d2de3ff 100644
--- a/drivers/net/wireless/realtek/rtw89/phy.c
+++ b/drivers/net/wireless/realtek/rtw89/phy.c
@@ -3626,12 +3626,11 @@ void rtw89_phy_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
 			handler = rtw89_phy_c2h_dm_handler[func];
 		break;
 	default:
-		rtw89_info(rtwdev, "PHY c2h class %d not support\n", class);
-		return;
+		break;
 	}
 	if (!handler) {
-		rtw89_info(rtwdev, "PHY c2h class %d func %d not support\n", class,
-			   func);
+		rtw89_info_once(rtwdev, "PHY c2h class %d func %d not support\n",
+				class, func);
 		return;
 	}
 	handler(rtwdev, skb, len);
-- 
2.25.1


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

* [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done
  2025-08-04  1:22 [PATCH rtw-next 0/2] wifi: rtw89: only print once for unknown C2H events Ping-Ke Shih
  2025-08-04  1:22 ` [PATCH rtw-next 1/2] wifi: rtw89: print just " Ping-Ke Shih
@ 2025-08-04  1:22 ` Ping-Ke Shih
  2025-08-04 18:39   ` Sean Anderson
  1 sibling, 1 reply; 6+ messages in thread
From: Ping-Ke Shih @ 2025-08-04  1:22 UTC (permalink / raw)
  To: linux-wireless; +Cc: rtl8821cerfe2, sean.anderson

Two C2H events are not listed, and driver throws

  MAC c2h class 0 func 6 not support
  MAC c2h class 1 func 3 not support

Since the implementation in vendor driver does nothing, add two dummy
functions for them.

Reported-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Closes: https://lore.kernel.org/linux-wireless/d2d62793-046c-4b55-93ed-1d1f43cff7f2@gmail.com/
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw89/mac.c | 13 ++++++++++++-
 drivers/net/wireless/realtek/rtw89/mac.h |  1 +
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
index ef17a307b770..33a7dd9d6f0e 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.c
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
@@ -5235,6 +5235,11 @@ rtw89_mac_c2h_bcn_cnt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
 {
 }
 
+static void
+rtw89_mac_c2h_bcn_upd_done(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
+{
+}
+
 static void
 rtw89_mac_c2h_pkt_ofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h,
 			   u32 len)
@@ -5257,6 +5262,11 @@ rtw89_mac_c2h_pkt_ofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h,
 	rtw89_complete_cond(wait, cond, &data);
 }
 
+static void
+rtw89_mac_c2h_bcn_resend(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
+{
+}
+
 static void
 rtw89_mac_c2h_tx_duty_rpt(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h, u32 len)
 {
@@ -5646,7 +5656,7 @@ void (* const rtw89_mac_c2h_ofld_handler[])(struct rtw89_dev *rtwdev,
 	[RTW89_MAC_C2H_FUNC_EFUSE_DUMP] = NULL,
 	[RTW89_MAC_C2H_FUNC_READ_RSP] = NULL,
 	[RTW89_MAC_C2H_FUNC_PKT_OFLD_RSP] = rtw89_mac_c2h_pkt_ofld_rsp,
-	[RTW89_MAC_C2H_FUNC_BCN_RESEND] = NULL,
+	[RTW89_MAC_C2H_FUNC_BCN_RESEND] = rtw89_mac_c2h_bcn_resend,
 	[RTW89_MAC_C2H_FUNC_MACID_PAUSE] = rtw89_mac_c2h_macid_pause,
 	[RTW89_MAC_C2H_FUNC_SCANOFLD_RSP] = rtw89_mac_c2h_scanofld_rsp,
 	[RTW89_MAC_C2H_FUNC_TX_DUTY_RPT] = rtw89_mac_c2h_tx_duty_rpt,
@@ -5661,6 +5671,7 @@ void (* const rtw89_mac_c2h_info_handler[])(struct rtw89_dev *rtwdev,
 	[RTW89_MAC_C2H_FUNC_DONE_ACK] = rtw89_mac_c2h_done_ack,
 	[RTW89_MAC_C2H_FUNC_C2H_LOG] = rtw89_mac_c2h_log,
 	[RTW89_MAC_C2H_FUNC_BCN_CNT] = rtw89_mac_c2h_bcn_cnt,
+	[RTW89_MAC_C2H_FUNC_BCN_UPD_DONE] = rtw89_mac_c2h_bcn_upd_done,
 };
 
 static
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
index 241e89983c4a..25fe5e5c8a97 100644
--- a/drivers/net/wireless/realtek/rtw89/mac.h
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
@@ -419,6 +419,7 @@ enum rtw89_mac_c2h_info_func {
 	RTW89_MAC_C2H_FUNC_DONE_ACK,
 	RTW89_MAC_C2H_FUNC_C2H_LOG,
 	RTW89_MAC_C2H_FUNC_BCN_CNT,
+	RTW89_MAC_C2H_FUNC_BCN_UPD_DONE = 0x06,
 	RTW89_MAC_C2H_FUNC_INFO_MAX,
 };
 
-- 
2.25.1


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

* Re: [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done
  2025-08-04  1:22 ` [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done Ping-Ke Shih
@ 2025-08-04 18:39   ` Sean Anderson
  0 siblings, 0 replies; 6+ messages in thread
From: Sean Anderson @ 2025-08-04 18:39 UTC (permalink / raw)
  To: Ping-Ke Shih, linux-wireless; +Cc: rtl8821cerfe2

On 8/3/25 21:22, Ping-Ke Shih wrote:
> Two C2H events are not listed, and driver throws
> 
>   MAC c2h class 0 func 6 not support
>   MAC c2h class 1 func 3 not support
> 
> Since the implementation in vendor driver does nothing, add two dummy
> functions for them.
> 
> Reported-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> Closes: https://lore.kernel.org/linux-wireless/d2d62793-046c-4b55-93ed-1d1f43cff7f2@gmail.com/
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---
>  drivers/net/wireless/realtek/rtw89/mac.c | 13 ++++++++++++-
>  drivers/net/wireless/realtek/rtw89/mac.h |  1 +
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
> index ef17a307b770..33a7dd9d6f0e 100644
> --- a/drivers/net/wireless/realtek/rtw89/mac.c
> +++ b/drivers/net/wireless/realtek/rtw89/mac.c
> @@ -5235,6 +5235,11 @@ rtw89_mac_c2h_bcn_cnt(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
>  {
>  }
>  
> +static void
> +rtw89_mac_c2h_bcn_upd_done(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
> +{
> +}
> +
>  static void
>  rtw89_mac_c2h_pkt_ofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h,
>  			   u32 len)
> @@ -5257,6 +5262,11 @@ rtw89_mac_c2h_pkt_ofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h,
>  	rtw89_complete_cond(wait, cond, &data);
>  }
>  
> +static void
> +rtw89_mac_c2h_bcn_resend(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
> +{
> +}
> +
>  static void
>  rtw89_mac_c2h_tx_duty_rpt(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h, u32 len)
>  {
> @@ -5646,7 +5656,7 @@ void (* const rtw89_mac_c2h_ofld_handler[])(struct rtw89_dev *rtwdev,
>  	[RTW89_MAC_C2H_FUNC_EFUSE_DUMP] = NULL,
>  	[RTW89_MAC_C2H_FUNC_READ_RSP] = NULL,
>  	[RTW89_MAC_C2H_FUNC_PKT_OFLD_RSP] = rtw89_mac_c2h_pkt_ofld_rsp,
> -	[RTW89_MAC_C2H_FUNC_BCN_RESEND] = NULL,
> +	[RTW89_MAC_C2H_FUNC_BCN_RESEND] = rtw89_mac_c2h_bcn_resend,
>  	[RTW89_MAC_C2H_FUNC_MACID_PAUSE] = rtw89_mac_c2h_macid_pause,
>  	[RTW89_MAC_C2H_FUNC_SCANOFLD_RSP] = rtw89_mac_c2h_scanofld_rsp,
>  	[RTW89_MAC_C2H_FUNC_TX_DUTY_RPT] = rtw89_mac_c2h_tx_duty_rpt,
> @@ -5661,6 +5671,7 @@ void (* const rtw89_mac_c2h_info_handler[])(struct rtw89_dev *rtwdev,
>  	[RTW89_MAC_C2H_FUNC_DONE_ACK] = rtw89_mac_c2h_done_ack,
>  	[RTW89_MAC_C2H_FUNC_C2H_LOG] = rtw89_mac_c2h_log,
>  	[RTW89_MAC_C2H_FUNC_BCN_CNT] = rtw89_mac_c2h_bcn_cnt,
> +	[RTW89_MAC_C2H_FUNC_BCN_UPD_DONE] = rtw89_mac_c2h_bcn_upd_done,
>  };
>  
>  static
> diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
> index 241e89983c4a..25fe5e5c8a97 100644
> --- a/drivers/net/wireless/realtek/rtw89/mac.h
> +++ b/drivers/net/wireless/realtek/rtw89/mac.h
> @@ -419,6 +419,7 @@ enum rtw89_mac_c2h_info_func {
>  	RTW89_MAC_C2H_FUNC_DONE_ACK,
>  	RTW89_MAC_C2H_FUNC_C2H_LOG,
>  	RTW89_MAC_C2H_FUNC_BCN_CNT,
> +	RTW89_MAC_C2H_FUNC_BCN_UPD_DONE = 0x06,
>  	RTW89_MAC_C2H_FUNC_INFO_MAX,
>  };
>  

It's not how I would fix it, but fine with me.

Reviewed-by: Sean Anderson <sean.anderson@linux.dev>

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

* Re: [PATCH rtw-next 1/2] wifi: rtw89: print just once for unknown C2H events
  2025-08-04  1:22 ` [PATCH rtw-next 1/2] wifi: rtw89: print just " Ping-Ke Shih
@ 2025-08-04 18:40   ` Sean Anderson
  2025-08-12  8:20   ` Ping-Ke Shih
  1 sibling, 0 replies; 6+ messages in thread
From: Sean Anderson @ 2025-08-04 18:40 UTC (permalink / raw)
  To: Ping-Ke Shih, linux-wireless; +Cc: rtl8821cerfe2

On 8/3/25 21:22, Ping-Ke Shih wrote:
> When driver receives new or unknown C2H events, it print out messages
> repeatedly once events are received, like
> 
>   rtw89_8922ae 0000:81:00.0: PHY c2h class 2 not support
> 
> To avoid the thousands of messages, use rtw89_info_once() instead. Also,
> print out class/func for unknown (undefined) class.
> 
> Reported-by: Sean Anderson <sean.anderson@linux.dev>
> Closes: https://lore.kernel.org/linux-wireless/20250729204437.164320-1-sean.anderson@linux.dev/
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> ---
>  drivers/net/wireless/realtek/rtw89/debug.h | 1 +
>  drivers/net/wireless/realtek/rtw89/mac.c   | 7 +++----
>  drivers/net/wireless/realtek/rtw89/phy.c   | 7 +++----
>  3 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtw89/debug.h b/drivers/net/wireless/realtek/rtw89/debug.h
> index fc690f7c55dc..a364e7adb079 100644
> --- a/drivers/net/wireless/realtek/rtw89/debug.h
> +++ b/drivers/net/wireless/realtek/rtw89/debug.h
> @@ -56,6 +56,7 @@ static inline void rtw89_debugfs_deinit(struct rtw89_dev *rtwdev) {}
>  #endif
>  
>  #define rtw89_info(rtwdev, a...) dev_info((rtwdev)->dev, ##a)
> +#define rtw89_info_once(rtwdev, a...) dev_info_once((rtwdev)->dev, ##a)
>  #define rtw89_warn(rtwdev, a...) dev_warn((rtwdev)->dev, ##a)
>  #define rtw89_err(rtwdev, a...) dev_err((rtwdev)->dev, ##a)
>  
> diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
> index 5a5da9d9c0c5..ef17a307b770 100644
> --- a/drivers/net/wireless/realtek/rtw89/mac.c
> +++ b/drivers/net/wireless/realtek/rtw89/mac.c
> @@ -5813,12 +5813,11 @@ void rtw89_mac_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
>  	case RTW89_MAC_C2H_CLASS_ROLE:
>  		return;
>  	default:
> -		rtw89_info(rtwdev, "MAC c2h class %d not support\n", class);
> -		return;
> +		break;
>  	}
>  	if (!handler) {
> -		rtw89_info(rtwdev, "MAC c2h class %d func %d not support\n", class,
> -			   func);
> +		rtw89_info_once(rtwdev, "MAC c2h class %d func %d not support\n",
> +				class, func);
>  		return;
>  	}
>  	handler(rtwdev, skb, len);
> diff --git a/drivers/net/wireless/realtek/rtw89/phy.c b/drivers/net/wireless/realtek/rtw89/phy.c
> index d607577b353c..01a03d2de3ff 100644
> --- a/drivers/net/wireless/realtek/rtw89/phy.c
> +++ b/drivers/net/wireless/realtek/rtw89/phy.c
> @@ -3626,12 +3626,11 @@ void rtw89_phy_c2h_handle(struct rtw89_dev *rtwdev, struct sk_buff *skb,
>  			handler = rtw89_phy_c2h_dm_handler[func];
>  		break;
>  	default:
> -		rtw89_info(rtwdev, "PHY c2h class %d not support\n", class);
> -		return;
> +		break;
>  	}
>  	if (!handler) {
> -		rtw89_info(rtwdev, "PHY c2h class %d func %d not support\n", class,
> -			   func);
> +		rtw89_info_once(rtwdev, "PHY c2h class %d func %d not support\n",
> +				class, func);
>  		return;
>  	}
>  	handler(rtwdev, skb, len);

Reviewed-by: Sean Anderson <sean.anderson@linux.dev>

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

* Re: [PATCH rtw-next 1/2] wifi: rtw89: print just once for unknown C2H events
  2025-08-04  1:22 ` [PATCH rtw-next 1/2] wifi: rtw89: print just " Ping-Ke Shih
  2025-08-04 18:40   ` Sean Anderson
@ 2025-08-12  8:20   ` Ping-Ke Shih
  1 sibling, 0 replies; 6+ messages in thread
From: Ping-Ke Shih @ 2025-08-12  8:20 UTC (permalink / raw)
  To: Ping-Ke Shih, linux-wireless; +Cc: rtl8821cerfe2, sean.anderson

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

> When driver receives new or unknown C2H events, it print out messages
> repeatedly once events are received, like
> 
>   rtw89_8922ae 0000:81:00.0: PHY c2h class 2 not support
> 
> To avoid the thousands of messages, use rtw89_info_once() instead. Also,
> print out class/func for unknown (undefined) class.
> 
> Reported-by: Sean Anderson <sean.anderson@linux.dev>
> Closes: https://lore.kernel.org/linux-wireless/20250729204437.164320-1-sean.anderson@linux.dev/
> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
> Reviewed-by: Sean Anderson <sean.anderson@linux.dev>

2 patch(es) applied to rtw-next branch of rtw.git, thanks.

7e1c44fe4c2e wifi: rtw89: print just once for unknown C2H events
04a2de8cfc95 wifi: rtw89: add dummy C2H handlers for BCN resend and update done

---
https://github.com/pkshih/rtw.git


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

end of thread, other threads:[~2025-08-12  8:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04  1:22 [PATCH rtw-next 0/2] wifi: rtw89: only print once for unknown C2H events Ping-Ke Shih
2025-08-04  1:22 ` [PATCH rtw-next 1/2] wifi: rtw89: print just " Ping-Ke Shih
2025-08-04 18:40   ` Sean Anderson
2025-08-12  8:20   ` Ping-Ke Shih
2025-08-04  1:22 ` [PATCH rtw-next 2/2] wifi: rtw89: add dummy C2H handlers for BCN resend and update done Ping-Ke Shih
2025-08-04 18:39   ` Sean Anderson

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).