Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp17470pxb; Tue, 24 Aug 2021 18:41:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzhpi59MgK9YCB46G9uhEZElM8Smp0rN4kzt3Ftu0thIhTremy5cIUa3Mke+BvlFLdLU3LI X-Received: by 2002:a02:7348:: with SMTP id a8mr36807176jae.116.1629855679712; Tue, 24 Aug 2021 18:41:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629855679; cv=none; d=google.com; s=arc-20160816; b=oC2W4Txnw35Jn+RCwKJr0tPAmZEikFaxIVNqtN8VHk8s66oo6a3gLwY90A6uI3I2GH LC80iTL3QjXX/cgYvqdQImddlJTgq5X1DSP6BNIPj8wmxK0Scv+PAJMJHfjg0s/SlxPw /ww6cwTCK7GjYGNbEZ4sRjgbA7S9L75OlvLI2SiWU43UL//XXkX10ntjb4e8m/xfUZC9 Hl2/K7JkJUPG377Kd0QFdnkmJPZKhw0UUXRnS0hfiRWcDbxCRvUv87svMbxZA4Tc9hSD YM/4LSM/+8EdqOW31PmGlYE3NBDtH2TTZYv4gQ2kQ6sG5wjBywwZZbI1RZ4MvT9bmJOo Urxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date; bh=+S2ZuRRLhP3oknglvD6zrr0p2GIJ5Q2dhVIMBlF8Dxc=; b=vzxL7Jv6nTRrIvYXOk85FkH7CbX28oGoG1BoX2gZdavuMGPHiEvCQqpTzdNqm8PmPk FX9gQZVGvW1wlbdqp3t0MqthjV1piDKHXuov4eY80euq4yUuWOHzXgeanoot8ugrQvIa UUdnGDMSWFV8IjcCvK7PIr5CH7YDbnuA/1JgNMf3e/cWAOMpYilDlVr52BnQz1rIVraz mIlnrPoUKu6HQm9unT8g4gqqki/4I/BHz1gFVC2u7qYw0x44DmtjCzjszH6UwJqNobhb s8bd6PNCnuVmL3KgxFa3qPcHQLqn1pf8lOrlRz1s9x9HgBegCtxSNkZzZrEJGnjvoMxP 8oYQ== 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 b135si19768936iof.27.2021.08.24.18.41.07; Tue, 24 Aug 2021 18:41:19 -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 S232656AbhHYBiJ (ORCPT + 99 others); Tue, 24 Aug 2021 21:38:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231415AbhHYBiI (ORCPT ); Tue, 24 Aug 2021 21:38:08 -0400 Received: from fudo.makrotopia.org (fudo.makrotopia.org [IPv6:2a07:2ec0:3002::71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD84DC061757 for ; Tue, 24 Aug 2021 18:37:23 -0700 (PDT) Received: from local by fudo.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.94.2) (envelope-from ) id 1mIhmE-0007rm-DA; Wed, 25 Aug 2021 03:32:25 +0200 Date: Wed, 25 Aug 2021 02:32:16 +0100 From: Daniel Golle To: linux-mediatek@lists.infradead.org, linux-wireless@vger.kernel.org Cc: Ryder Lee , Lorenzo Bianconi , Felix Fietkau , Matthias Brugger Subject: [PATCH 1/2] mt76: support reading EEPROM data embedded in fdt Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Some platforms boot from SD card and don't come with calibration data stored anywhere on the board. As EEPROM data is rather small it can be embedded into the device tree to be loaded from there by the mt76. Signed-off-by: Daniel Golle --- drivers/net/wireless/mediatek/mt76/eeprom.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c index 3b47e85e95e7c..01bc42dc71c26 100644 --- a/drivers/net/wireless/mediatek/mt76/eeprom.c +++ b/drivers/net/wireless/mediatek/mt76/eeprom.c @@ -15,6 +15,7 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int offset, int len) struct device_node *np = dev->dev->of_node; struct mtd_info *mtd; const __be32 *list; + const void *data; const char *part; phandle phandle; int size; @@ -24,6 +25,16 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int offset, int len) if (!np) return -ENOENT; + data = of_get_property(np, "mediatek,eeprom-data", &size); + if (data) { + if (size > len) + return -EINVAL; + + memcpy(eep, data, size); + + return 0; + } + list = of_get_property(np, "mediatek,mtd-eeprom", &size); if (!list) return -ENOENT; -- 2.32.0