Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp680296pxb; Thu, 19 Aug 2021 08:43:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/HxFrcSPXh2jb5CsrLrNNK7wTZs8KMBUBBsHebnfNFvEiw9/YbMBqw3lNrpeCg6f6bSiK X-Received: by 2002:a05:6402:37b:: with SMTP id s27mr17071561edw.55.1629387806372; Thu, 19 Aug 2021 08:43:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629387806; cv=none; d=google.com; s=arc-20160816; b=a+2YJbD2In8voXfBsUgeQZSYxF7hYA4TgE2rZiCfy6+p/Z79//d/c38eTVC+htKFRq 7XQMdQxFrogfTzLDQ5gYVo47O183DzmAteQU0ZVUVGByemjp+f4GK/lCi7LXx57MSyIy h+kLZ/b8IdISY8t17B1HBDqaXqYaYfVwgFXgi3ogJeaNrnUGy0gz9Oq8y+BdZb3hLvXs nAErcmhPDu0NdhAKN2KtvKEJwwDwbAo7Ydrfzs7eJyTkp9YVhlVVKMBht5dwBSRCEt0t 4TxWBZ6PY5Je3a/5XxfaWRE5z2jNRkvo3xngJNi0bedkRgXzuqgkWzLglBKt0FPB0BtH 97IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from; bh=jHjLNXi73KQPA1vd+57yfq+31lRK1aU9PKCGIoeLoNY=; b=YrgxSv0d2jO8JW9mGw5zqoKyutrAW8IlJ8UEOWs9yOn8tnXKjCU8AGThmNb6fU6ikH 6RIBjmwoHSx9LMqVGscUK49VIt/bUcz1Y9b3htibzxe1is10Kq3IMzsQ6OrPbY0yq631 FmEN794NU2iz8JY9SNe6pT5AiX+ai3T50XA90+Ou2+xgdKAtE8ltZvTv8spKmzGKk1hu VjP272c9MDbBTQ35SF+oHIFfMJqpfTL3hZr9UuEgRILl1L/j4vhf4shHmA7avAoZSQQH gVfmyt3GzvEfyeNpFSt6dapvzL7kacCVH9F9iOc7bGytwzb6hhJjdkZHJYBPSoWH9EKq KlRA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hs10si28800ejc.33.2021.08.19.08.43.00; Thu, 19 Aug 2021 08:43:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240487AbhHSPlS (ORCPT + 99 others); Thu, 19 Aug 2021 11:41:18 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:56896 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S240526AbhHSPlR (ORCPT ); Thu, 19 Aug 2021 11:41:17 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=kveik.lan) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1mGk9m-002Hje-8C; Thu, 19 Aug 2021 18:40:40 +0300 From: Luca Coelho To: kvalo@codeaurora.org Cc: luca@coelho.fi, linux-wireless@vger.kernel.org Date: Thu, 19 Aug 2021 18:40:26 +0300 Message-Id: X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210819154035.72584-1-luca@coelho.fi> References: <20210819154035.72584-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.5-pre1 Subject: [PATCH 02/11] iwlwifi: acpi: fill in WGDS table with defaults Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Luca Coelho The tables we store are the larger of all the revisions, so we need to fill in the values that we don't get from ACPI when using older revisions. Signed-off-by: Luca Coelho --- drivers/net/wireless/intel/iwlwifi/fw/acpi.c | 42 ++++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c index de1e9271dcd2..37da836a8c08 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.c +++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.c @@ -745,20 +745,18 @@ int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt) read_table: fwrt->geo_rev = tbl_rev; for (i = 0; i < ACPI_NUM_GEO_PROFILES; i++) { - for (j = 0; j < num_bands; j++) { + for (j = 0; j < ACPI_GEO_NUM_BANDS_REV2; j++) { union acpi_object *entry; - entry = &wifi_pkg->package.elements[idx++]; - if (entry->type != ACPI_TYPE_INTEGER || - entry->integer.value > U8_MAX) { - ret = -EINVAL; - goto out_free; - } - - fwrt->geo_profiles[i].bands[j].max = - entry->integer.value; - - for (k = 0; k < ACPI_GEO_NUM_CHAINS; k++) { + /* + * num_bands is either 2 or 3, if it's only 2 then + * fill the third band (6 GHz) with the values from + * 5 GHz (second band) + */ + if (j >= num_bands) { + fwrt->geo_profiles[i].bands[j].max = + fwrt->geo_profiles[i].bands[1].max; + } else { entry = &wifi_pkg->package.elements[idx++]; if (entry->type != ACPI_TYPE_INTEGER || entry->integer.value > U8_MAX) { @@ -766,9 +764,27 @@ int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt) goto out_free; } - fwrt->geo_profiles[i].bands[j].chains[k] = + fwrt->geo_profiles[i].bands[j].max = entry->integer.value; } + + for (k = 0; k < ACPI_GEO_NUM_CHAINS; k++) { + /* same here as above */ + if (j >= num_bands) { + fwrt->geo_profiles[i].bands[j].chains[k] = + fwrt->geo_profiles[i].bands[1].chains[k]; + } else { + entry = &wifi_pkg->package.elements[idx++]; + if (entry->type != ACPI_TYPE_INTEGER || + entry->integer.value > U8_MAX) { + ret = -EINVAL; + goto out_free; + } + + fwrt->geo_profiles[i].bands[j].chains[k] = + entry->integer.value; + } + } } } -- 2.33.0