From patchwork Thu Apr 19 15:16:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Elwell X-Patchwork-Id: 10351039 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 8372C60231 for ; Thu, 19 Apr 2018 15:18:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 73A1E28A1A for ; Thu, 19 Apr 2018 15:18:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6657528A61; Thu, 19 Apr 2018 15:18:38 +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 A9DE328A1A for ; Thu, 19 Apr 2018 15:18:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753002AbeDSPSH (ORCPT ); Thu, 19 Apr 2018 11:18:07 -0400 Received: from mx08-00252a01.pphosted.com ([91.207.212.211]:56652 "EHLO mx08-00252a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752640AbeDSPSD (ORCPT ); Thu, 19 Apr 2018 11:18:03 -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 w3JFEFVS021105 for ; Thu, 19 Apr 2018 16:18:02 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org; h=from : to : subject : date : message-id : in-reply-to : references; s=pp; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=C5kJgj1CaEhsPB0bN2N0a3CVhfRXVUMXMlB5eNW2EgRFUsMzrj7IFKreWG2BYpoqc3Cj D2Pbj12U21eYuWama9JflZRrWZe7InrUlw5KKmuodA620XNkEj2o6e/3304GQXLXbLbm 5FDXtSh85gZnFCz9aHoeZy9Jpan59PWpK7ijv3CpZtT/9VCGYw5C+YSJXFf/NadA6tP2 2hvry5TOBu0hoJO6RrIVeGDj/vji7nO/LanEWTBsLcHBjCJot1YnaIayi+gG6q2f4XsQ vGuWGJYzNHI7v5IrPSbL1CW1a2zcOK8pf9HGjqqFdpsvBfejJPzGAsoKfXGh7UeL+7IV Qw== Received: from mail-wr0-f198.google.com (mail-wr0-f198.google.com [209.85.128.198]) by mx08-00252a01.pphosted.com with ESMTP id 2hdry78xgh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK) for ; Thu, 19 Apr 2018 16:18:02 +0100 Received: by mail-wr0-f198.google.com with SMTP id p4-v6so5479720wrf.17 for ; Thu, 19 Apr 2018 08:18:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi-org.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=y9KINavL2ibknMBJpwxDLx6rx7wLUPJGAv5yX6xH9MNUYey/enASMhAPknhM1scSEj K14xd6RnTltNLJ8BZX/wS6dkY5MB4rKJWRv9YTdfRSnxT8mdhF4Era638jTb+7CpXKI8 1gtwUwwe5zIX209WRcq7nJj2LUtf1NiABPnEAL+W8kZ8X8VIkWE/Gxfz7lZCAFvB8gVe uESdtt/KlvieuZlxOe3U0xEJ960Y08is3pFM3hesO1M78YonLubXdA1CbA7JQe5D8zz0 GmYyWenOCqBN46g0iIKswKCstnAnEz33XHoXE88NDSYa689yFjmUvPod1cOaidT19Krq eTXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Wxwk4f09DQ3bab2rD8Ijo7xdPrwQ+P5nojp4DCte8B8=; b=RdMdfpbOpDIr7eujIG85eaw2yzhR396lze+5q85lBAUOO3aDM+NaHosSk2jxaa9IxT +rKo3Xvx4mww5Ggt0j+H9q5dynV5qRB8XSNrsR4yWkMU0ru9W9SQxL5q3wYQzCPh/JWX Q2t0BLP+X/oIWtJhKQbvvnbxmhXpoud61WgQrJee+DViNenq2bwt9/z0H4H3E2JGNzll MewL1ILGbIo/7gWEUMVAN+twq4X0pzrbGguG9gCEP0O6fWjvLGDsClbeEDAeZ6bhIFWd 2xffTa04KRuk8ZpB3vFSgHKIgCUcNFDRT7lfJ99G/DEk/TCVkdP7KKu3zbGOjQRpeTsB 1TRA== X-Gm-Message-State: ALQs6tAJ0kX4A/mO6d431o1/u7Acws0QkPm0/EuSgOiAg8t9W/63KEmH WYWBIEbxmdCZc+C1zv2u4Y4H5FSjqoDGCM1n0cHbzuAFW7ZwDZVEb8mABK2uM1fNBbEooFkIMT8 k7ndRpfSZE0lwR3RwT/Ra X-Received: by 10.28.155.206 with SMTP id d197mr5080082wme.44.1524151081878; Thu, 19 Apr 2018 08:18:01 -0700 (PDT) X-Google-Smtp-Source: AIpwx4853ZM7mFRLnRq4PWVVHo0HwhvDlWP0Cu8grfCoZzjiXcQxnDIFER+MbYGR2eeSlAI9XyQjOA== X-Received: by 10.28.155.206 with SMTP id d197mr5080065wme.44.1524151081645; Thu, 19 Apr 2018 08:18:01 -0700 (PDT) Received: from buildbot.pitowers.org ([2a00:2381:fdf7:14:3509:880e:14cc:3c11]) by smtp.gmail.com with ESMTPSA id f15-v6sm4322342wrh.35.2018.04.19.08.18.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Apr 2018 08:18:00 -0700 (PDT) From: Phil Elwell To: Woojung Huh , Microchip Linux Driver Support , Rob Herring , Mark Rutland , Andrew Lunn , Florian Fainelli , "David S. Miller" , Mauro Carvalho Chehab , Greg Kroah-Hartman , Linus Walleij , Andrew Morton , Randy Dunlap , Phil Elwell , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH resend v3 1/3] lan78xx: Read MAC address from DT if present Date: Thu, 19 Apr 2018 16:16:57 +0100 Message-Id: <1524151019-82823-2-git-send-email-phil@raspberrypi.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524151019-82823-1-git-send-email-phil@raspberrypi.org> References: <1524151019-82823-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);