Received: by 2002:a05:7412:d008:b0:f9:6acb:47ec with SMTP id bd8csp438740rdb; Wed, 20 Dec 2023 01:22:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IFjJ4hhJjlP589DSkiyGuH26r8LaK6pVKOdT2P18vcO+OhSHFUt+Qni4xJbYPyBvsbKKmAJ X-Received: by 2002:ac2:4555:0:b0:50e:297b:208b with SMTP id j21-20020ac24555000000b0050e297b208bmr1168773lfm.257.1703064137381; Wed, 20 Dec 2023 01:22:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703064137; cv=none; d=google.com; s=arc-20160816; b=L3XM2hBssDsmXTn0O0M5hdgLOLNHJIITTyh+poDQf8plc62eg9L/W3KCfBwSjA25zo PIUfN4fw7eRfrPa73dSbwNGpVOh8nxtABc85yhqigs45aAZcJ5Jsc/Dz85ujUDxHLu7I GY+B7BOIEmL4LHE7Y7VIft7tUHBZcSJK2BAac4i2Pyzg4gyyGAIUFTo1i8xH5J3VTCAe ZynKcJht2Zr+wbtmzmdUvNsAyh1W19YNNEKd7+LzSN7s8ZrAECWUgD34DUpONdIJztKB k2RjuvD6Zt+k7gh+luSviagVtnMqJ3JRx20IuVCGyNd/cHSV3HZCnm8fWOsRfcSxMhc3 jXjw== 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=Q0I0I0CioJdiV790AwpyeQ69BPaHYra8hOlThsyEgq8iLaFxOrBRC7vQsl4/i7+bL7 VkdZ121QORPZeVw5zzNwY4BuTireiYBWk3yFPZL/E3aJAidLHfyAtCyjMWRng6mFnYsd w/DCLFaCLPwI2sMEWB035AqIbNuaZ8RouaCm3lVttmQYxTItcDfyagJu4ahN7v0eYiF2 NvaFkv6cQpbm/NOsi5D9w5Q2lkFsvvYv6DHBme8nbrHKI4GIJfjQGyKjQZdcQ2lAEH5h DPCItH4y6CeUbSz1S7NDZyrV9jEB9XClsSJftcHQgr8DVW5MZq2TUv/B9xli0vQXfJXQ QWIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=tlL76cFc; spf=pass (google.com: domain of linux-wireless+bounces-1079-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1079-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id r23-20020a50aad7000000b005534731f2c5si2685898edc.31.2023.12.20.01.22.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 01:22:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless+bounces-1079-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=tlL76cFc; spf=pass (google.com: domain of linux-wireless+bounces-1079-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-wireless+bounces-1079-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 am.mirrors.kernel.org (Postfix) with ESMTPS id EB8301F2336D for ; Wed, 20 Dec 2023 09:22:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 07EF0200C1; Wed, 20 Dec 2023 09:22:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="tlL76cFc" X-Original-To: linux-wireless@vger.kernel.org Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) (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 49D661F60A for ; Wed, 20 Dec 2023 09:21:57 +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: 3203cd2c9f1911eeba30773df0976c77-20231220 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=tlL76cFczcSxEsgED4EO+ieAL/VqlziSVII3RfjslOAveYFlVMaboyH6f25ZUTaWCwzgEJoP2uzkQQIRuIxIHjpWc8/wfDy4QPLEt1c69WJ46p8adzutlT5n0bzQP8yKk1mu1sFl1dupFjQaAimW4xBOt9Qjngx85sWmfKxayh0=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.35,REQID:913dc997-9957-4154-8cb0-b6fbea2e68b2,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:6608fa81-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: 3203cd2c9f1911eeba30773df0976c77-20231220 Received: from mtkmbs10n2.mediatek.inc [(172.21.101.183)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1422005244; Wed, 20 Dec 2023 17:21:45 +0800 Received: from mtkmbs11n1.mediatek.inc (172.21.101.185) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 20 Dec 2023 17:21:44 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Wed, 20 Dec 2023 17:21:44 +0800 From: Mingyen Hsieh To: , CC: , , , , , , , , , , , , , , Ming Yen Hsieh , Leon Yen Subject: [PATCH 3/4] wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI Date: Wed, 20 Dec 2023 17:21:37 +0800 Message-ID: <20231220092138.12830-4-mingyen.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20231220092138.12830-1-mingyen.hsieh@mediatek.com> References: <20231220092138.12830-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 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--6.013300-8.000000 X-TMASE-MatchedRID: PwZ81m9fkLbZK1rQqyNiGR3EEAbn+GRbI9yVcHNDU7a5ZjHyzYrpGt6M yUV+2+DZ+tt/G7x8wM7kQHSm+HqcuqPzznyWrbXqQpxiLlDD9FV9LQinZ4QefPcjNeVeWlqY+gt Hj7OwNO0gCYMnfcK3PF5UWE0xOO8BLkvWsDkhjDg8nmtjrcR7Xbvmmn0nKMw9bk8+unopmQA= X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--6.013300-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 33029EDED434522F11257E9B5B4B8735E34F5EACBA369F0BEA4EE4EB05AC578E2000:8 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