From nobody Mon Dec 1 23:33:38 2025 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1288722172C for ; Wed, 26 Nov 2025 09:19:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764148758; cv=none; b=aMnb4XmMxyYOR/Y6K/4MRX3LWCud0HupIwdve777OPdNSAiIJwuWOq5RGKlD6aTIIRk5Shz37C4UdmuTgQbGiGJmfYhJbGq5o8VyIMtKd9KdlTODhaawchtB1yFYc4LtXn8aPSfbZQBYLa4dxyDX6fyZ++Hcdsn9CjsaOxBpirU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764148758; c=relaxed/simple; bh=lV92Dq1K5U8/FYT/NF0602UbX85TSTnnFDmslVcrStU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=K4y2vzElvxmPIlXPx9dIfTa+nQSQAMnACM+9OKUBOsIDF2X8Gw9leOyinRIfB6embYa4AYlKRe1mxTQFz+T1M6Q8MCeJPqyspjGxUVVaGPFAdjHXwY+E8PPvZ9H0zANPg/X0g/8FwiqP5mZBFPb+utzJVE7U5Lg+uC2fYDVE2UI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=S8S7GCil; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="S8S7GCil" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1764148756; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Z6izH8Jt0wq5sgFxhohHJ1O7UT1Spvg9P4PltKlETPo=; b=S8S7GCiloSIISQRoFtFh6RwXRBcypvUJJYA5NtBQ1F9o2Eh8iKc6X7n8FfTYLbCLM+e4yA Cd/fxCn+Mw5FI1P6seLxjQDFW9vJ0m7G4L2RuNpwr8uS8QRDyyxlawKMn9dM+PDewLjL4H vjVpEH1/bD3odpjZWwX1N4/y18/aqLo= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-301-ml6ZfNocNaagmdDSGooI4A-1; Wed, 26 Nov 2025 04:19:12 -0500 X-MC-Unique: ml6ZfNocNaagmdDSGooI4A-1 X-Mimecast-MFC-AGG-ID: ml6ZfNocNaagmdDSGooI4A_1764148751 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 683811956089; Wed, 26 Nov 2025 09:19:11 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.44.32.32]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8A5BF19560B2; Wed, 26 Nov 2025 09:19:09 +0000 (UTC) From: Jose Ignacio Tornos Martinez To: pkshih@realtek.com, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jose Ignacio Tornos Martinez Subject: [PATCH v2] wifi: rtw89: 8922a: set random mac if efuse contains zeroes Date: Wed, 26 Nov 2025 10:18:56 +0100 Message-ID: <20251126091905.217951-1-jtornosm@redhat.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 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Content-Type: text/plain; charset="utf-8" I have some rtl8922ae devices with no permanent mac stored in efuse. It could be properly saved and/or configured from user tools like NetworkManager, but it would be desirable to be able to initialize it somehow to get the device working by default. So, in the same way as with other devices, if the mac address read from efuse contains zeros, a random mac address is assigned to at least allow operation, and the user is warned about this in case any action needs to be considered. Signed-off-by: Jose Ignacio Tornos Martinez Acked-by: Ping-Ke Shih --- v2: - Fix the typo for the hardware model in comments. - Use rtw89_info instead of rtw89_warn. - Some fixes in the format of the info message. v1: https://lore.kernel.org/all/20251125120350.228288-1-jtornosm@redhat.com/ drivers/net/wireless/realtek/rtw89/rtw8922a.c | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/rtw8922a.c b/drivers/net/wi= reless/realtek/rtw89/rtw8922a.c index 6aa19ad259ac..050307fa16d2 100644 --- a/drivers/net/wireless/realtek/rtw89/rtw8922a.c +++ b/drivers/net/wireless/realtek/rtw89/rtw8922a.c @@ -636,16 +636,30 @@ static int rtw8922a_read_efuse_rf(struct rtw89_dev *r= twdev, u8 *log_map) static int rtw8922a_read_efuse(struct rtw89_dev *rtwdev, u8 *log_map, enum rtw89_efuse_block block) { + struct rtw89_efuse *efuse =3D &rtwdev->efuse; + int ret; + switch (block) { case RTW89_EFUSE_BLOCK_HCI_DIG_PCIE_SDIO: - return rtw8922a_read_efuse_pci_sdio(rtwdev, log_map); + ret =3D rtw8922a_read_efuse_pci_sdio(rtwdev, log_map); + break; case RTW89_EFUSE_BLOCK_HCI_DIG_USB: - return rtw8922a_read_efuse_usb(rtwdev, log_map); + ret =3D rtw8922a_read_efuse_usb(rtwdev, log_map); + break; case RTW89_EFUSE_BLOCK_RF: - return rtw8922a_read_efuse_rf(rtwdev, log_map); + ret =3D rtw8922a_read_efuse_rf(rtwdev, log_map); + break; default: - return 0; + ret =3D 0; + break; + } + + if (!ret && is_zero_ether_addr(efuse->addr)) { + rtw89_info(rtwdev, "efuse mac address is zero, using random mac\n"); + eth_random_addr(efuse->addr); } + + return ret; } =20 #define THM_TRIM_POSITIVE_MASK BIT(6) --=20 2.51.1