From patchwork Thu Apr 19 14:32:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Elwell X-Patchwork-Id: 10350851 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 088D6602B7 for ; Thu, 19 Apr 2018 14:34:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC6DC2898D for ; Thu, 19 Apr 2018 14:34:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E0B282898F; Thu, 19 Apr 2018 14:34:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F8262898D for ; Thu, 19 Apr 2018 14:34:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752291AbeDSOeC (ORCPT ); Thu, 19 Apr 2018 10:34:02 -0400 Received: from mx08-00252a01.pphosted.com ([91.207.212.211]:53998 "EHLO mx08-00252a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752481AbeDSOcV (ORCPT ); Thu, 19 Apr 2018 10:32:21 -0400 Received: from pps.filterd (m0102629.ppops.net [127.0.0.1]) by mx08-00252a01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w3JEMqnQ022547 for ; Thu, 19 Apr 2018 15:32:20 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pp; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=QWiLp5AJowSFk9kZ+lyRC6kDEQVEeekD4/GufNLo8msiFq2YyB5M3fVsqHyALyK+4QSA /K1TY4wNq7SRwzv1aQTnt3uUgW3Enzjwh4l7a7xoIZgUObwXQeRCPepvNSNAbIkyiaKJ 84ikhIe1mrpL/JS8yZe69WgfFhvl6tchvOjMkMJV8b7jyuS3v2A/bes1npXukRb6Kn1Z +N+DlxeA/Vgb8L+ZTSBs0hXL5nf9KE8t7M3+Exn6NLMq7uEh2m5xke3avLah5up7D+yO Nw3D0i3lqnkUAP7cRatnvhxGlm2/TfbhDVF6M9+zBIlN/MzE46p4wRLVnR0C5Ni9DX4z BA== Received: from mail-wr0-f198.google.com (mail-wr0-f198.google.com [209.85.128.198]) by mx08-00252a01.pphosted.com with ESMTP id 2hdry78wte-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK) for ; Thu, 19 Apr 2018 15:32:20 +0100 Received: by mail-wr0-f198.google.com with SMTP id u56-v6so5278860wrf.18 for ; Thu, 19 Apr 2018 07:32:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=d7kRaVa/2cuulSLNtdsZDwgIEmQJpQjGEoMNKbcezw83ysmF0oIrUAo7JTlwCX/djC B+IX3FDEJsw/tOXSXem2lPIdV7n6xHX9KkUHPF/A0GSTMgbGPQ6uftSQUFGTjlmvIhg8 LN8xLLrcBlu4cajPgMp/n1698uiLpLsQoyzenz21JGxBZHDZj/kk3HzNwgiehKdBcV4d PRvu2wPmCV1ABM8QQFCkz2gYR+GZo/IUTRW48ScEz50BQsX/8PFjSXCLcNuJlHuuJmtS 33aOzdv8x+JtisMrW45Hey3CxX3J9U298Q8uuRB8/sbFATt1fCefC08VrFobfvT3k5ua 07FQ== 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:in-reply-to :references; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=crqZg3DxMaVqrKQ2gTDsoin304YSPcJnQDlX4wFmLJ0BKAPbiJDv0lFiQR2OMvhAms MtkimqyRgggCnQxN+e6aB4M7zxjg2is0yoNK7hKOWjK/DL7fcnTm9Kdc6Zc2wzVSz3Kd 0TYya08H3q/9D0eDIlB+iVyIq4lbJtnLp3rdm4u40cX8LPAus2krDd4K2xHtLENCZOhz JZJMeYQGRGe0HAYZc3G00apv3OIw14iNEX+qY+8+REYcIcMHjs/p0XNVPRaK0FFhp8DE wpcXSEvR7rlFqP5xhb0gAoUT6d91axpSb2trWMQltOlVJeAFq032uo+uKlrHXmgma23e bPFQ== X-Gm-Message-State: ALQs6tDbd8ootVQPh25pfXSgkmn9IUW4ogFpJ0QW7/PKycC0klCg9xqS Dmt6Yhc3IPNZWnWRk0+Dx1zrxLenL7f0j4eKQi5fnq4NuPXyU+V5wtaNR519sI5RRVnjsT5aGOq VNxRZcwKZRKGb4Ram/eUS X-Received: by 10.28.12.141 with SMTP id 135mr4471632wmm.99.1524148339439; Thu, 19 Apr 2018 07:32:19 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+Y+uevVwdxD0lVFXpgAXk38a+jeq6Y3+9iGYbSVWO+M33AKQyudvng+jgheaYshJHGO677kQ== X-Received: by 10.28.12.141 with SMTP id 135mr4471615wmm.99.1524148339207; Thu, 19 Apr 2018 07:32:19 -0700 (PDT) Received: from buildbot.pitowers.org ([2a00:2381:fdf7:14:3509:880e:14cc:3c11]) by smtp.gmail.com with ESMTPSA id i44-v6sm3465473wri.17.2018.04.19.07.32.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Apr 2018 07:32:18 -0700 (PDT) From: Phil Elwell To: Woojung Huh , Microchip Linux Driver Support , Rob Herring , Mark Rutland , "David S. Miller" , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Andrew Morton , Randy Dunlap , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: Phil Elwell Subject: [PATCH v3 1/3] lan78xx: Read MAC address from DT if present Date: Thu, 19 Apr 2018 15:32:03 +0100 Message-Id: <1524148325-78945-3-git-send-email-phil@raspberrypi.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524148325-78945-1-git-send-email-phil@raspberrypi.org> References: <1524148325-78945-1-git-send-email-phil@raspberrypi.org> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-04-19_05:, , signatures=0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There is a standard mechanism for locating and using a MAC address from the Device Tree. Use this facility in the lan78xx driver to support applications without programmed EEPROM or OTP. At the same time, regularise the handling of the different address sources. Signed-off-by: Phil Elwell --- drivers/net/usb/lan78xx.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 0867f72..a823f01 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "lan78xx.h" #define DRIVER_AUTHOR "WOOJUNG HUH " @@ -1652,34 +1653,31 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) addr[5] = (addr_hi >> 8) & 0xFF; if (!is_valid_ether_addr(addr)) { - /* reading mac address from EEPROM or OTP */ - if ((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, - addr) == 0) || - (lan78xx_read_otp(dev, EEPROM_MAC_OFFSET, ETH_ALEN, - addr) == 0)) { - if (is_valid_ether_addr(addr)) { - /* eeprom values are valid so use them */ - netif_dbg(dev, ifup, dev->net, - "MAC address read from EEPROM"); - } else { - /* generate random MAC */ - random_ether_addr(addr); - netif_dbg(dev, ifup, dev->net, - "MAC address set to random addr"); - } - - addr_lo = addr[0] | (addr[1] << 8) | - (addr[2] << 16) | (addr[3] << 24); - addr_hi = addr[4] | (addr[5] << 8); - - ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo); - ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi); + if (!eth_platform_get_mac_address(&dev->udev->dev, addr)) { + /* valid address present in Device Tree */ + netif_dbg(dev, ifup, dev->net, + "MAC address read from Device Tree"); + } else if (((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET, + ETH_ALEN, addr) == 0) || + (lan78xx_read_otp(dev, EEPROM_MAC_OFFSET, + ETH_ALEN, addr) == 0)) && + is_valid_ether_addr(addr)) { + /* eeprom values are valid so use them */ + netif_dbg(dev, ifup, dev->net, + "MAC address read from EEPROM"); } else { /* generate random MAC */ random_ether_addr(addr); netif_dbg(dev, ifup, dev->net, "MAC address set to random addr"); } + + addr_lo = addr[0] | (addr[1] << 8) | + (addr[2] << 16) | (addr[3] << 24); + addr_hi = addr[4] | (addr[5] << 8); + + ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo); + ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi); } ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo);