From nobody Tue Dec 16 08:54:12 2025 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5DEA25393C; Wed, 9 Jul 2025 22:35:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752100552; cv=none; b=dhU59rZDqqlTWiAAE8ZPmnKCSUQJm0g3oC5+923OnXY1e89Yh7kcEJq2A79wNOUgtQt3F+y/trw6zhoae4uK7+lCf9xt7ErxZTAPXfEwc0qJAzbMfWUq6UW+8lq7u18QKJfXiwaxYtWFpU1izZDmGJeiuAIrnDWbWTuSpvdm1+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752100552; c=relaxed/simple; bh=NuAKWBJztT0Lv2dro0HNgXgH3Fn/s08lZdbUWNzKk8U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mtC+DLtkD8vddDyy3hbjHiBkK3VSbfvDLQ/jJZ93kCf1dXoQ3fg0FfDlHECBUxN2lh7hHK4GNTuXZ01rdO1t8o3yTUF3aacLB3UBvy39Rk+5zpQOel8izY4PmqeGQ0DKafEnapzJHLib2yCytoUeQBhJOe++9cW2vr7PR9f92ZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cbLmg00W; arc=none smtp.client-ip=209.85.167.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cbLmg00W" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-558fa0b2cc8so270698e87.1; Wed, 09 Jul 2025 15:35:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752100549; x=1752705349; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0l9R8puC87zBx7GlN0c3QVlLRK1+6Ilh2p8dNod1NDQ=; b=cbLmg00WChjLGeovHsDx/P8Av92bNYLz3drOlDfkCxYRr+wAB9jbt9fjG3s9H+NK1M OQUnsM2A5aCeaVWE1cpsduAh8bRCXnyaIpEE7MbDaI5hUy7irymgdpk5NjN/q2AjCeCQ v9KXB4cNXABxB78jXbhLL/UC9ja4AymmHOBHAndZCNqVwJqbZbchkd6NuFporzPBrCPy Aiq/PTj2J/HyC1RTcjj4D/bEYZbnpVhLfkW8PbvgNm0Q99saKvGkgv0tDve4AEIaa94B FuyqVqc8ZJ79oO4FgAFrqWm3gF1RcOhL3vQR5Ix6Tz4MLGGwQLF0cLKrMp+I8pysRwuy aSGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752100549; x=1752705349; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0l9R8puC87zBx7GlN0c3QVlLRK1+6Ilh2p8dNod1NDQ=; b=mF147YTxP0ZHVCbIsglQRtOONfkCCiopqHzWZaGZ0PMDlKPBAYcrtzkJrT0dikJOtC xr98JkGxpVPSpVpXl6sz7+WwwfizyR8XwmWb7SYbZjpZWhG/9dzOo8WDrHWYxk4LY4NS t1rRPKiI3O0QUGZxwSEBe4jw34FqecbKJTYcup8lqezEyE1ZahwGvXv55a26FDuYtxrD Uvpa9iDZk1QmXqO1g4tQt5mWewPKzLaXKG85ftwyzK7I5zpvlh5lj9yAQmOsEA5rCJV3 VLrLB6DKKQBNltz+Px0oKhmNfOKHhzls5BTmj6WmhJLBMgicPCMTu5s2M03rRGv6pyh+ jMig== X-Forwarded-Encrypted: i=1; AJvYcCWasLg3pYp7NK1gRLa6PZDkQV1yQ55hRu3elHLr5FYMlASzs42shssYLCRlq6VTD01oj4gsYTNjMOcIMLeA6yE=@vger.kernel.org, AJvYcCXwRewQbJ5k7Y96LIGVywya8MttMV+MQRCGas7en3Sw4IPStWI/p9cFmuprlaoq0NJD3zgMaCNvxknjBJE=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0DyY/7LP4q6esEOSl8IZlp9h+ncI8iduXGbZRxqjqHPEeYKiD Jgy+JTpJb4AEU1wXTTJ74G+Gy41ptVDHkcVE2/jNAKLxHKH83Homkjn3 X-Gm-Gg: ASbGncuqHMwnOstoCkTHZsEZP94urnOjpDvZCP9T09V3f9mtCBE3ED/zdY+NA6lBhXK 7G6KfMBo6LDVeI2IbnGdTmXuBKjs4ux9naewiXpWVkkvaQA2yr7+zdVpcHCfoA1tWCJmA4EUy+p e0sS51NyJdyRh5NSzXUE7i6PJjKaj2wcMi2kD8hZwSbJPAOi8QLuEpDE5fPAfmMoFxBcUsu2QAV uUITirkZe28aQOaUxhJqi3j6pv46nIQjQJOvZizYl3/uG5iS5VokV4WF1AYS62EsK2P7I3KVlF3 iQTIpkk5HRPv9EOTpMPB63DzGITRG/lGhZ7pTcIp4F1IGZOXfBzz8gHi85h5SgQrurRrt/rAkPK MxjApyHQpEFrwnswNDg== X-Google-Smtp-Source: AGHT+IEpdFzT7v+ZJ4M/mMZfNK/rD6Y9am5QWgYEI6D3YX1Ew3d4U3OEB2MxssRktnSUbmuXWyMxqA== X-Received: by 2002:a05:6512:2252:b0:553:341f:12a3 with SMTP id 2adb3069b0e04-55935b358d9mr128203e87.39.1752100548716; Wed, 09 Jul 2025 15:35:48 -0700 (PDT) Received: from localhost.localdomain ([94.19.228.143]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55943b74335sm54149e87.215.2025.07.09.15.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jul 2025 15:35:48 -0700 (PDT) From: Andrey Skvortsov To: Ping-Ke Shih , Kalle Valo , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Bitterblue Smith , Fiona Klute Cc: Andrey Skvortsov Subject: [PATCH v2 1/2] wifi: rtw88: introduce callback to override phy parameters from tables Date: Thu, 10 Jul 2025 01:31:58 +0300 Message-ID: <20250709223159.2787192-2-andrej.skvortzov@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250709223159.2787192-1-andrej.skvortzov@gmail.com> References: <20250709223159.2787192-1-andrej.skvortzov@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" tables with register values for phy parameters initialization are copied from vendor driver usually. Sometimes these parameters has to be modified. When table will be regenerated, manual modifications to it may be lost. To avoid regressions in this case new callback mac_postinit is introduced, that is called after parameters from table are set. Signed-off-by: Andrey Skvortsov --- drivers/net/wireless/realtek/rtw88/mac.c | 11 +++++++++++ drivers/net/wireless/realtek/rtw88/mac.h | 1 + drivers/net/wireless/realtek/rtw88/main.c | 6 ++++++ drivers/net/wireless/realtek/rtw88/main.h | 1 + 4 files changed, 19 insertions(+) diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireles= s/realtek/rtw88/mac.c index 011b81c82f3ba..e05d06678050d 100644 --- a/drivers/net/wireless/realtek/rtw88/mac.c +++ b/drivers/net/wireless/realtek/rtw88/mac.c @@ -1409,3 +1409,14 @@ int rtw_mac_init(struct rtw_dev *rtwdev) =20 return 0; } + +int rtw_mac_postinit(struct rtw_dev *rtwdev) +{ + const struct rtw_chip_info *chip =3D rtwdev->chip; + int ret =3D 0; + + if (chip->ops->mac_postinit) + ret =3D chip->ops->mac_postinit(rtwdev); + + return 0; +} diff --git a/drivers/net/wireless/realtek/rtw88/mac.h b/drivers/net/wireles= s/realtek/rtw88/mac.h index e92b1483728d5..b73af90ee1d7f 100644 --- a/drivers/net/wireless/realtek/rtw88/mac.h +++ b/drivers/net/wireless/realtek/rtw88/mac.h @@ -38,6 +38,7 @@ void rtw_write_firmware_page(struct rtw_dev *rtwdev, u32 = page, const u8 *data, u32 size); int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw); int rtw_mac_init(struct rtw_dev *rtwdev); +int rtw_mac_postinit(struct rtw_dev *rtwdev); void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop); int rtw_set_trx_fifo_info(struct rtw_dev *rtwdev); int rtw_ddma_to_fw_fifo(struct rtw_dev *rtwdev, u32 ocp_src, u32 size); diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wirele= ss/realtek/rtw88/main.c index 97756bdf57b27..b706c5a21a6c5 100644 --- a/drivers/net/wireless/realtek/rtw88/main.c +++ b/drivers/net/wireless/realtek/rtw88/main.c @@ -1412,6 +1412,12 @@ int rtw_power_on(struct rtw_dev *rtwdev) =20 chip->ops->phy_set_param(rtwdev); =20 + ret =3D rtw_mac_postinit(rtwdev); + if (ret) { + rtw_err(rtwdev, "failed to configure mac in postinit\n"); + goto err_off; + } + ret =3D rtw_hci_start(rtwdev); if (ret) { rtw_err(rtwdev, "failed to start hci\n"); diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wirele= ss/realtek/rtw88/main.h index b42538cce3598..43ed6d6b42919 100644 --- a/drivers/net/wireless/realtek/rtw88/main.h +++ b/drivers/net/wireless/realtek/rtw88/main.h @@ -858,6 +858,7 @@ struct rtw_chip_ops { int (*power_on)(struct rtw_dev *rtwdev); void (*power_off)(struct rtw_dev *rtwdev); int (*mac_init)(struct rtw_dev *rtwdev); + int (*mac_postinit)(struct rtw_dev *rtwdev); int (*dump_fw_crash)(struct rtw_dev *rtwdev); void (*shutdown)(struct rtw_dev *rtwdev); int (*read_efuse)(struct rtw_dev *rtwdev, u8 *map); --=20 2.47.2 From nobody Tue Dec 16 08:54:12 2025 Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24A7E258CF2; Wed, 9 Jul 2025 22:35:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752100562; cv=none; b=ruZMEU0hDYsnVHps/ZjmtlXDZkUdiwC96vvQjJwghXRvdYMc6XHC/N7RWyrHEeMhdfJSRWzxaorKfsI8fYpKv9y638Pxh5PUCdBxNHkeIjmH55FVC1iQHb+DbovyYebvkj2vsWt6m9t3ddIsweOJz1sBhkB4ffhREh8pDhh1hmU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752100562; c=relaxed/simple; bh=cudM931q96Enm/V/abm5Y7W00+CM/ur/OOjYNcCoXqI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RnZ30Zeon11J32/BE+7a7KEaGqyhWfg1hrlNTR4aBF0p5tcKMLsmJvHbi6jeBp1QBsxtlwwKEigiXEjdzymfAaP5ZWhiQHERBNdmKWWCwqArgRdhlyzCMO9DsvTwR9L+gnXnz0kY7MrmvI4kpu43LfQ3fmDgh18pPORY9S/zITU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TDjflDin; arc=none smtp.client-ip=209.85.167.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TDjflDin" Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5561c20e2d5so409310e87.0; Wed, 09 Jul 2025 15:35:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752100558; x=1752705358; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5sF2pH7vg7mkam0Ppnm/J2rn06QMb7fY+GacdRu7g/8=; b=TDjflDinZgTn2RX1zE64yVKZfXWsgOFPHpaKPeasNMxQDu//pNPWGHFi4YVmnWPu7i NpKkxNlfkIJx1NlowbSblB8uGjjo8FR6+Q7L7Hpnv8W4WvfiFefSoqD79SqTiq+pU9Am VSMOInGbYEb06y9s1leKg6gUGC/0DAxj6DDmMJiqN+CgXGSqPgTTvFpU5zrNT+uqleh7 PjVZluT2MxhusCLAeGGbYGAt7fN1k14fLOgQ505vbWYjWCuk4gksrdtSL+7y86542MFV bXRJMnjS24tGHvbTRD4ji00Fh69LGyfa0Nc/1/QUqkg6MdYSzy19i9nw2TXhzpn/8xor 5dNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752100558; x=1752705358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5sF2pH7vg7mkam0Ppnm/J2rn06QMb7fY+GacdRu7g/8=; b=gQ5Xff+zO+9OsK8Zzoe3po7WCao3TNAc4xnK33S0yRfL9Osgg8aj3ev01P0NpTxLwJ Lb+6wloDcaZl3JauLrJ+i1sQdNRHoxexsMk6qtO8x2z2VAxhU8v5k+wfi2j6W3t0z0w1 +oN+RN3+T2AYHlgahj0noks7zuyF1gaU6gnlHl1hdJf7dQ61WkvU3uTccawJ3YXwkKND cZI6eVCZ6RXkURYYbcoSRnrNPcfdB6C526MahdUqV1tmo8bYMR+xRhO8TKkYhjUVmbLP 46eGnmnxKPKKw6NzRox/22+5xGVf5fQORvkcKMHw3vSTXClvKl6eddjBWR7vARCxnNbM X6Mw== X-Forwarded-Encrypted: i=1; AJvYcCUFKMluI2VOk44Yb4MVYT7Ugb8kB1VjPBksjbGYXoDQeLmoHxwOU9kxhyG+BY3Y3gbYvGQRmTLAeH27uIKJA50=@vger.kernel.org, AJvYcCX/HgZeyWO8/T1QOmUY5vEwcGRPRouQKw7uttKJPftQju4vxu8bsoKLlP8R/3pyXTHaUNnRvnOLZZSjlLg=@vger.kernel.org X-Gm-Message-State: AOJu0YzbigpNICnE/8GyMKw25u36mYB3OuY/LPO7gbOrj2Ii3H5qj2ag AWwfGwPRir93afZXzmQlSv56aM1N0UqkgLYjvJUBGeWj6SH6wtOVz8fv X-Gm-Gg: ASbGncuO/2GzgZTExLzCSgvyednCK7hcPCq946DiJOCdkFE803RrxnqFLZaV8n6Dywo t3mpEw+KZvCVhJkH9rfYBrFQFoUCHiU6rF8GXXC9q/NVWwgs35YGAVE3rmyALimL81LpnAdyVCo JpW4RK2jll8KEbbT7b922KzwVVtfIhfeZzrxtjLuVTLgCccBTF/yBbyOEcIA6CiBSI7CQPcSd/D xQ7q8hPhtErCkwVlLFTCnX50H9DHpemrKx5HZHEhWA9uFdpymmc7klPXcej9CydgBUSfnkIGYHf cJ0in68TppcbfS0sJkzTX1MBE8Ny19KomlwMGkcSyfcpdiMWpyA5o5h51hxL9D0uWFYCLqMIzVn Rztc7H+Q= X-Google-Smtp-Source: AGHT+IGdavaqdnmk/dYZImRnU7cuatf8trGDKnz1v5IfVvrEBFdhGrnmBRxNK6gbLzUFddF+osb4tw== X-Received: by 2002:a05:6512:6ce:b0:553:35f5:7aac with SMTP id 2adb3069b0e04-559000c4384mr403655e87.48.1752100557858; Wed, 09 Jul 2025 15:35:57 -0700 (PDT) Received: from localhost.localdomain ([94.19.228.143]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55943b74335sm54149e87.215.2025.07.09.15.35.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jul 2025 15:35:57 -0700 (PDT) From: Andrey Skvortsov To: Ping-Ke Shih , Kalle Valo , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Bitterblue Smith , Fiona Klute Cc: Andrey Skvortsov Subject: [PATCH v2 2/2] wifi: rtw88: enable TX reports for the management queue Date: Thu, 10 Jul 2025 01:31:59 +0300 Message-ID: <20250709223159.2787192-3-andrej.skvortzov@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250709223159.2787192-1-andrej.skvortzov@gmail.com> References: <20250709223159.2787192-1-andrej.skvortzov@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This is needed for AP mode. Otherwise client sees the network, but can't connect to it. REG_FWHW_TXQ_CTRL+1 is set to WLAN_TXQ_RPT_EN (0x1F) in common mac init function (__rtw8723x_mac_init), but the value was overwritten from mac table later. mac_postinit is run after registers from mac table are set, this allows to set correct values. Tested on rtl8723cs, that reuses rtw8703b driver. Signed-off-by: Andrey Skvortsov --- drivers/net/wireless/realtek/rtw88/rtw8703b.c | 1 + drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 + drivers/net/wireless/realtek/rtw88/rtw8723x.c | 9 ++++++++- drivers/net/wireless/realtek/rtw88/rtw8723x.h | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.c b/drivers/net/wi= reless/realtek/rtw88/rtw8703b.c index 03475af973b52..821c28d9cb5d4 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c @@ -1832,6 +1832,7 @@ static const struct rtw_chip_ops rtw8703b_ops =3D { .power_on =3D rtw_power_on, .power_off =3D rtw_power_off, .mac_init =3D rtw8723x_mac_init, + .mac_postinit =3D rtw8723x_mac_postinit, .dump_fw_crash =3D NULL, .shutdown =3D NULL, .read_efuse =3D rtw8703b_read_efuse, diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wi= reless/realtek/rtw88/rtw8723d.c index bf69f5b06ce26..8715e0435f173 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c @@ -1397,6 +1397,7 @@ static const struct rtw_chip_ops rtw8723d_ops =3D { .query_phy_status =3D query_phy_status, .set_channel =3D rtw8723d_set_channel, .mac_init =3D rtw8723x_mac_init, + .mac_postinit =3D rtw8723x_mac_postinit, .shutdown =3D rtw8723d_shutdown, .read_rf =3D rtw_phy_read_rf_sipi, .write_rf =3D rtw_phy_write_rf_reg_sipi, diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.c b/drivers/net/wi= reless/realtek/rtw88/rtw8723x.c index 4c77963fdd370..3f3e9b0c44e80 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8723x.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.c @@ -353,7 +353,6 @@ static int __rtw8723x_read_efuse(struct rtw_dev *rtwdev= , u8 *log_map) =20 static int __rtw8723x_mac_init(struct rtw_dev *rtwdev) { - rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 1, WLAN_TXQ_RPT_EN); rtw_write32(rtwdev, REG_TCR, BIT_TCR_CFG); =20 rtw_write16(rtwdev, REG_RXFLTMAP0, WLAN_RX_FILTER0); @@ -370,6 +369,13 @@ static int __rtw8723x_mac_init(struct rtw_dev *rtwdev) return 0; } =20 +static int __rtw8723x_mac_postinit(struct rtw_dev *rtwdev) +{ + rtw_write8(rtwdev, REG_FWHW_TXQ_CTRL + 1, WLAN_TXQ_RPT_EN); + + return 0; +} + static void __rtw8723x_cfg_ldo25(struct rtw_dev *rtwdev, bool enable) { u8 ldo_pwr; @@ -760,6 +766,7 @@ const struct rtw8723x_common rtw8723x_common =3D { .lck =3D __rtw8723x_lck, .read_efuse =3D __rtw8723x_read_efuse, .mac_init =3D __rtw8723x_mac_init, + .mac_postinit =3D __rtw8723x_mac_postinit, .cfg_ldo25 =3D __rtw8723x_cfg_ldo25, .set_tx_power_index =3D __rtw8723x_set_tx_power_index, .efuse_grant =3D __rtw8723x_efuse_grant, diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.h b/drivers/net/wi= reless/realtek/rtw88/rtw8723x.h index a99af527c92cf..0fc70dfdfc8b2 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h +++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h @@ -137,6 +137,7 @@ struct rtw8723x_common { void (*lck)(struct rtw_dev *rtwdev); int (*read_efuse)(struct rtw_dev *rtwdev, u8 *log_map); int (*mac_init)(struct rtw_dev *rtwdev); + int (*mac_postinit)(struct rtw_dev *rtwdev); void (*cfg_ldo25)(struct rtw_dev *rtwdev, bool enable); void (*set_tx_power_index)(struct rtw_dev *rtwdev); void (*efuse_grant)(struct rtw_dev *rtwdev, bool on); @@ -383,6 +384,11 @@ static inline int rtw8723x_mac_init(struct rtw_dev *rt= wdev) return rtw8723x_common.mac_init(rtwdev); } =20 +static inline int rtw8723x_mac_postinit(struct rtw_dev *rtwdev) +{ + return rtw8723x_common.mac_postinit(rtwdev); +} + static inline void rtw8723x_cfg_ldo25(struct rtw_dev *rtwdev, bool enable) { rtw8723x_common.cfg_ldo25(rtwdev, enable); --=20 2.47.2