Received: by 2002:a05:7412:8d09:b0:fa:4c10:6cad with SMTP id bj9csp206430rdb; Mon, 15 Jan 2024 18:49:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IEw9lvslunHom06RNVWfrxYyzIqt3g8mSdUdc4hGYuXx5F7srisq4lK9GA5mv08FqWZJXCC X-Received: by 2002:a05:6870:bb14:b0:203:af45:1ea2 with SMTP id nw20-20020a056870bb1400b00203af451ea2mr7750542oab.3.1705373372266; Mon, 15 Jan 2024 18:49:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705373372; cv=none; d=google.com; s=arc-20160816; b=X55bQvxjz9R1p5Gj3cqu76iJ6Ql25t1ilbv/iThjbWOHvTygXuqfGgkxRbxRqOvwAa IoxodfSItLOFuvgnidUVYrQzT3JSzfQAZmboVW9prBm7x1jN8QoDrbKiq7RKaAnByumA vfHFmkQlm6CJ7nNPw7K5iO3dbCAc5ruysF0Ta/ZK45PxTf1k7z2N0WQU4V7KRr/rolYH O+Ajb5D1lWZBmmAxV+FANZn2XYU42KIbyU8+iU+t5QRR8IaTcUr+yjIVGwMz9vDOOc68 bToetVHe/Yyuy+2q3eLLArhSs77HqSxlmGumjzmaofA+uluqrAiRQeOLlMUkBTcOjRVg NvTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uSWtu7QGZlDy2U9rpLeluhtBrJ5IhbOXU4hBNtyp7lE=; fh=jlecVeJ1zmiUcWLoYt7W352gNllWYkqAa/aIazCPBg4=; b=fpoxKJYmTjgfMW9siQfwQD2nSwmzAHFOeQEwxMp9j/oZnpecGu82BNJRtdt/Aef1A+ HYmbm04D7/G2Qbs4wTW74jqO0NHv56+Y+hs9D9fVYK786ogXALJWDmt8jS0GKV4CJrbm NuKB4JjRxciCaMuDIpTmma581NAIuR7VcMEC++fiv9rnhx6QIecL1BF/eXXc7jxG3UjM OqcWX3E3CPid0CzwNWtEFcyGlu/1LbF2OwC+MpTgXj4n8S9GvW7bkjnrhtJqehFpelv0 OhXXCwcarvRZGWiCRwjvK+hbh1Yo0CodVoW6ew88mm9h3XdzoBe4OQmUHJy406LkBPqh NVtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=EXsUTtFP; spf=pass (google.com: domain of linux-wireless+bounces-1954-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1954-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id z9-20020a63c049000000b005cf0ac054d7si10284729pgi.290.2024.01.15.18.49.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jan 2024 18:49:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless+bounces-1954-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=EXsUTtFP; spf=pass (google.com: domain of linux-wireless+bounces-1954-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1954-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E69F3284AED for ; Tue, 16 Jan 2024 02:49:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 710977E; Tue, 16 Jan 2024 02:49:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="EXsUTtFP" X-Original-To: linux-wireless@vger.kernel.org Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) (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 9F3BE23A7 for ; Tue, 16 Jan 2024 02:49:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=mediatek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mediatek.com X-UUID: d28e2caab41911ee9e680517dc993faa-20240116 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=uSWtu7QGZlDy2U9rpLeluhtBrJ5IhbOXU4hBNtyp7lE=; b=EXsUTtFP3W8ExF4aDYiG2wZW1j30sbe5EFSOYJRHWQNUh7y2Bb3ppptzJJsv4pZ6PPwf7Gq230Im5nRYgj5Z/MfLjmzvrJ+xwSqVabruv6yxWqVYkBY3f1SOmASgMBl8CbRoMlfomGb2gqAqn1KFyiDIGYhMMDjpHlDXcOjgpcY=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.35,REQID:b04dd720-d0af-4ebf-afea-50148981208b,IP:0,U RL:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-25 X-CID-META: VersionHash:5d391d7,CLOUDID:a805e382-8d4f-477b-89d2-1e3bdbef96d1,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR: NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: d28e2caab41911ee9e680517dc993faa-20240116 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1109591708; Tue, 16 Jan 2024 10:49:09 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Tue, 16 Jan 2024 10:49:08 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Tue, 16 Jan 2024 10:49:08 +0800 From: Mingyen Hsieh To: , CC: , , , , , , , , , , , , , , Ming Yen Hsieh , Leon Yen Subject: [PATCH v2 2/4] wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI Date: Tue, 16 Jan 2024 10:48:55 +0800 Message-ID: <20240116024857.9071-3-mingyen.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20240116024857.9071-1-mingyen.hsieh@mediatek.com> References: <20240116024857.9071-1-mingyen.hsieh@mediatek.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain From: Ming Yen Hsieh In some case, the MTCL table will exist, but MTDS table will not. So the SAR will init fail. This patch make MTCL and MTDS can exist with no dependence. Fixes: f965333e491e ("mt76: mt7921: introduce ACPI SAR support") Signed-off-by: Ming Yen Hsieh Signed-off-by: Leon Yen --- .../wireless/mediatek/mt76/mt792x_acpi_sar.c | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c b/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c index e7afea87e82e..8fee3d481df0 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c +++ b/drivers/net/wireless/mediatek/mt76/mt792x_acpi_sar.c @@ -66,13 +66,15 @@ mt792x_acpi_read(struct mt792x_dev *dev, u8 *method, u8 **tbl, u32 *len) } /* MTCL : Country List Table for 6G band */ -static void +static int mt792x_asar_acpi_read_mtcl(struct mt792x_dev *dev, u8 **table, u8 *version) { - if (mt792x_acpi_read(dev, MT792x_ACPI_MTCL, table, NULL) < 0) - *version = 1; - else - *version = 2; + int ret; + + *version = ((ret = mt792x_acpi_read(dev, MT792x_ACPI_MTCL, table, NULL)) < 0) + ? 1 : 2; + + return ret; } /* MTDS : Dynamic SAR Power Table */ @@ -166,16 +168,16 @@ int mt792x_init_acpi_sar(struct mt792x_dev *dev) if (!asar) return -ENOMEM; - mt792x_asar_acpi_read_mtcl(dev, (u8 **)&asar->countrylist, &asar->ver); + ret = mt792x_asar_acpi_read_mtcl(dev, (u8 **)&asar->countrylist, &asar->ver); + if (ret) { + devm_kfree(dev->mt76.dev, asar->countrylist); + asar->countrylist = NULL; + } - /* MTDS is mandatory. Return error if table is invalid */ ret = mt792x_asar_acpi_read_mtds(dev, (u8 **)&asar->dyn, asar->ver); if (ret) { devm_kfree(dev->mt76.dev, asar->dyn); - devm_kfree(dev->mt76.dev, asar->countrylist); - devm_kfree(dev->mt76.dev, asar); - - return ret; + asar->dyn = NULL; } /* MTGS is optional */ @@ -290,7 +292,7 @@ int mt792x_init_acpi_sar_power(struct mt792x_phy *phy, bool set_default) const struct cfg80211_sar_capa *capa = phy->mt76->hw->wiphy->sar_capa; int i; - if (!phy->acpisar) + if (!phy->acpisar || !((struct mt792x_acpi_sar *)phy->acpisar)->dyn) return 0; /* When ACPI SAR enabled in HW, we should apply rules for .frp -- 2.18.0