Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 Dec 2025 15:44:27 +0000
From:      Bjoern A. Zeeb <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: e65e9bc1b4dd - stable/15 - rtw88: update Realtek's rtw88 driver
Message-ID:  <6936f25b.38d91.3c7944eb@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help

The branch stable/15 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=e65e9bc1b4dd4503b77c311dafdfc77eabe3243c

commit e65e9bc1b4dd4503b77c311dafdfc77eabe3243c
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2025-12-06 09:41:26 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2025-12-08 15:43:54 +0000

    rtw88: update Realtek's rtw88 driver
    
    This version is based on
    git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
    7d0a66e4bb9081d75c82ec4957c50034cb0ea449 ( tag: v6.18 ).
    
    Merge commit 'e543442afe3ad5b27616575be2d2402b988656eb' into rtw88
    
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit 8b4477f6b8e1b82acfef558a11facbb2797cb690)
---
 sys/contrib/dev/rtw88/led.c  | 13 +++++++------
 sys/contrib/dev/rtw88/sdio.c |  4 ++++
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/sys/contrib/dev/rtw88/led.c b/sys/contrib/dev/rtw88/led.c
index 25aa6cbaa728..4cc62e49d167 100644
--- a/sys/contrib/dev/rtw88/led.c
+++ b/sys/contrib/dev/rtw88/led.c
@@ -6,13 +6,17 @@
 #include "debug.h"
 #include "led.h"
 
-static int rtw_led_set_blocking(struct led_classdev *led,
-				enum led_brightness brightness)
+static int rtw_led_set(struct led_classdev *led,
+		       enum led_brightness brightness)
 {
 	struct rtw_dev *rtwdev = container_of(led, struct rtw_dev, led_cdev);
 
+	mutex_lock(&rtwdev->mutex);
+
 	rtwdev->chip->ops->led_set(led, brightness);
 
+	mutex_unlock(&rtwdev->mutex);
+
 	return 0;
 }
 
@@ -36,10 +40,7 @@ void rtw_led_init(struct rtw_dev *rtwdev)
 	if (!rtwdev->chip->ops->led_set)
 		return;
 
-	if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE)
-		led->brightness_set = rtwdev->chip->ops->led_set;
-	else
-		led->brightness_set_blocking = rtw_led_set_blocking;
+	led->brightness_set_blocking = rtw_led_set;
 
 	snprintf(rtwdev->led_name, sizeof(rtwdev->led_name),
 		 "rtw88-%s", dev_name(rtwdev->dev));
diff --git a/sys/contrib/dev/rtw88/sdio.c b/sys/contrib/dev/rtw88/sdio.c
index cc2d4fef3587..99d7c629eac6 100644
--- a/sys/contrib/dev/rtw88/sdio.c
+++ b/sys/contrib/dev/rtw88/sdio.c
@@ -144,6 +144,10 @@ static u32 rtw_sdio_to_io_address(struct rtw_dev *rtwdev, u32 addr,
 
 static bool rtw_sdio_use_direct_io(struct rtw_dev *rtwdev, u32 addr)
 {
+	if (!test_bit(RTW_FLAG_POWERON, rtwdev->flags) &&
+	    !rtw_sdio_is_bus_addr(addr))
+		return false;
+
 	return !rtw_sdio_is_sdio30_supported(rtwdev) ||
 		rtw_sdio_is_bus_addr(addr);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6936f25b.38d91.3c7944eb>