Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp542204imm; Fri, 10 Aug 2018 16:41:35 -0700 (PDT) X-Google-Smtp-Source: AA+uWPxV2SWh/advD6MpAUU8k+T1fBV1ODQe+6ShllaLk3W2Xmy7J8Va1DPphEB1IWO/FE3mwqSR X-Received: by 2002:a63:e255:: with SMTP id y21-v6mr8237130pgj.160.1533944495352; Fri, 10 Aug 2018 16:41:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533944495; cv=none; d=google.com; s=arc-20160816; b=Ub1myO8/qs6VcdiLVDNfzIBTTa3PX1jWbw8crzPSRe18JSTQ4Y/oAE2kJitWITcDW5 iXEDIM/rhfn1DgWdA7324X7U5GaldOXX9Dv10j5tnbY8u7GVvMa7kBWJrVdyBMM8q8LP plLxlDE/mtwQIHMqJyHANNN9riicBFTNweBdEKbuzApsChqMY99sqVSCwit1W7FbKcpO 5NK8TKqnn7ULAdigs8z4qO1onALs5ux8jH78V2VCOknGFTa0vaoZyAf0/BUkUGVyanbe hbKMVAJnGrVH4FTWUkzNtRShbcXPvswol32ihW6gv/ghZqPP1x5uoL0ONcAe7O+sZHil bQaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=SHkDb6qaKxPT3RKCwWTlK162HxGfwzC3DwW8Inu+HKk=; b=QdctgaWRI+RiSEHLwYuIGrNq0d0dH0oECFSvrnu+HU6ERlZcQXoUOBqW78BGJfGKZ8 Zh78SPM1xeuttGw0Ssb1h/Kebh8PU53wGMDXxs05C7TnEsLm0mSZUjJtk3JiamlH8Vix tQ1QuWA9HW4JWfuKAwEMz3+aosNYLOgS8fX2yvXsJiYexEOai+eqUDYi06XvGCMnyLzp cvlbzYKTzvbZmwz5xDJhFNYzT+QFrSrlgmftt4cJMym41YcCtsxjWIA07DjEV5QTVwuL txpV2YSVMWHcM1SDHjskp2+x6WNeyNfKEm/Lfs4/cGTcgqQ7OQslCcrEHVCw3oagb8mu 0Rgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=QyQ+jWbo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 4-v6si9778680plc.436.2018.08.10.16.41.09; Fri, 10 Aug 2018 16:41:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=QyQ+jWbo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727191AbeHKCLz (ORCPT + 99 others); Fri, 10 Aug 2018 22:11:55 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:40929 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727033AbeHKCLz (ORCPT ); Fri, 10 Aug 2018 22:11:55 -0400 Received: by mail-pl0-f67.google.com with SMTP id s17-v6so4628487plp.7 for ; Fri, 10 Aug 2018 16:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SHkDb6qaKxPT3RKCwWTlK162HxGfwzC3DwW8Inu+HKk=; b=QyQ+jWboymP+kH1M8h+mDOk+EuHT0IQANJmMmzwTKJaJ3fxH9ag4EqOiXcQTc7aSbR pi46WirGbtb8a+6eOORZ5bcUys6xC0xqbUMxfGT6grh8RhSrAvUR6QdfLUEB+ysUrOk/ QPU9J+NCJ3jnXpAOuEqa2FbRfolJCNTcIsZmQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SHkDb6qaKxPT3RKCwWTlK162HxGfwzC3DwW8Inu+HKk=; b=ORqAMzDhJS5p3+78vTOipn4tJg9e1DrTvIgbsCGEucWZjA9qg9tSwzZu1vNSLhqAh7 xykrOoZ1E8LFV0M65c880SYAdqxaWK/JMamx7HG5YcLfnUvJULY3DRhcULPWy3CPeUrp GzX3hqbsEnbdbW2juFqq2FmC3w3bD5BD8crfl8uUOlXeXBCfYD74bURFQzBDfYnMw/eZ Q+Qiz7oMA9IpIv14cHduJwyl6iOpbpgiudrUMo+UlrYY3rgbg+Yscktnh/f+K6lRWG+7 uWFNK+vznofoD50jHgS/ZGrZ1qZ+vLkGWxLf5SiDvylOdKAvMtCa+fism3BzTHjNAKel 6JNQ== X-Gm-Message-State: AOUpUlEKsGA0+jM/9p7dNOrwCnymx43EMjCDFgedeGB6cUJCdOeW6GPE /pDogCx6tY8YKVO/1xJnxnCq1g== X-Received: by 2002:a17:902:e85:: with SMTP id 5-v6mr7798101plx.73.1533944393185; Fri, 10 Aug 2018 16:39:53 -0700 (PDT) Received: from smtp.gmail.com ([2620:15c:202:1:299d:6b87:5478:d28a]) by smtp.gmail.com with ESMTPSA id 75-v6sm20985577pfr.115.2018.08.10.16.39.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 10 Aug 2018 16:39:51 -0700 (PDT) From: Brian Norris To: Kalle Valo Cc: ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, Govind Singh , , Brian Norris Subject: [PATCH] ath10k: retrieve MAC address from firmware if provided Date: Fri, 10 Aug 2018 16:39:48 -0700 Message-Id: <20180810233948.144792-1-briannorris@chromium.org> X-Mailer: git-send-email 2.18.0.597.ga71716f1ad-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Devices may provide their own MAC address via system firmware (e.g., device tree), especially in the case where the device doesn't have a useful EEPROM on which to store its MAC address (e.g., for integrated Wifi). Use the generic device helper to retrieve the MAC address, and (if present) honor it above the MAC address advertised by the card. Signed-off-by: Brian Norris --- drivers/net/wireless/ath/ath10k/core.c | 3 +++ drivers/net/wireless/ath/ath10k/wmi.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index c40cd129afe7..840c1f039098 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -2602,6 +2603,8 @@ static int ath10k_core_probe_fw(struct ath10k *ar) ath10k_debug_print_board_info(ar); } + device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr)); + ret = ath10k_core_init_firmware_features(ar); if (ret) { ath10k_err(ar, "fatal problem with firmware features: %d\n", diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index fd612d2905b0..3cfd98de8ad2 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c @@ -5449,7 +5449,8 @@ int ath10k_wmi_event_ready(struct ath10k *ar, struct sk_buff *skb) arg.mac_addr, __le32_to_cpu(arg.status)); - ether_addr_copy(ar->mac_addr, arg.mac_addr); + if (is_zero_ether_addr(ar->mac_addr)) + ether_addr_copy(ar->mac_addr, arg.mac_addr); complete(&ar->wmi.unified_ready); return 0; } -- 2.18.0.597.ga71716f1ad-goog