Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp3613911imm; Mon, 2 Jul 2018 02:17:34 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLsg6dLMzvnuNFQP5susZDEQjJ5DlO170DMLrUd3Oq6kwzRIX8AcV76KXZ7zZ8GYObAiAsA X-Received: by 2002:a17:902:3381:: with SMTP id b1-v6mr25501872plc.248.1530523054855; Mon, 02 Jul 2018 02:17:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530523054; cv=none; d=google.com; s=arc-20160816; b=sOVjLnTJRhgcZS67pq8u/CHu+TEQhCmr4JjtpGj1xleXSVcxvavu+YosDAf2Nwo2ah M1WJUfK1/0dmnik30fmLa1FeDYMcWSffErr1Qa5jzVxGZcJ5T9WMHvH6GfuK0o/GWGm6 PalzIv+a7lxBAXp/gyM9J6bQ3Ut6VVhuYmT5KuyDyriibiJFFrZqUY1/2WWCBfTL99tb AMmqXR/3Oq4rJF0u8GxB2zZLfktz8CUP0E1PJj0lGLMKITzdQmgbiVaShp+vy54zaSRi hbgo+cG+J9GN72P92T6pvIJw8F9kp/+tzxobpWlhPtRAStS2KYP3qrP0mAVSnH3VATGA 4MOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=OxbH/gETGATA9XOTmCf9gQveO0CUa2EhLuIVyOq/FKM=; b=stzdwDX/x/gn88GGNB96QlC2a7kg5vACebyUQVTbCjG53XH67IQ5fI7fWYDEGbl2Fo DxwQ8KWR0oP8z6UMGJUTn9pxkuLGi48m7HVenub8TXkw05d8QNmsqeuBP/vZM+YhBzmY 4BYP5555Oboi66oFx1lICTbJ/woK0KVdKJ6iDoM73fMCeeQPr1LBDXT11HmYLB2apqKG Vy3F64m3LMV7x6cuuOwxxxtCO1Cqned9VXuVxoNqf9z5ykGMJmchhxIhOrcri11Gxq2N Ox1BOVQQAWBP9qC+GLg/B+m69ZuKDvLp0PqiZFX2Ep7L9ox2mE+pAncxY62DEKzI7Ov2 vz9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=fKH6pyoy; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o9-v6si8283280pfe.259.2018.07.02.02.17.20; Mon, 02 Jul 2018 02:17:34 -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=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=fKH6pyoy; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753495AbeGBHlk (ORCPT + 99 others); Mon, 2 Jul 2018 03:41:40 -0400 Received: from mail-oi0-f65.google.com ([209.85.218.65]:33819 "EHLO mail-oi0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753121AbeGBHlh (ORCPT ); Mon, 2 Jul 2018 03:41:37 -0400 Received: by mail-oi0-f65.google.com with SMTP id 13-v6so2186961ois.1 for ; Mon, 02 Jul 2018 00:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=OxbH/gETGATA9XOTmCf9gQveO0CUa2EhLuIVyOq/FKM=; b=fKH6pyoyFPfQOYRpvDRqHrAU2naF/IBjLI7/T3rh/tH5uiO8xbWMTmNY6wxbvVu3jH 3mRxodnYvwBLZDY+BaULQffw3A5Zecp0/0gJFEYUWiFmc/R2NfeZemtw+XEvA+pdxGSX v/3QvTha4FcMrHPWmgzy1aK2iersvdZJKbRwVmn+PwDtJ60ZmK3GfDVHT23gskzdvKDN xCdH2Bmf6DuE/KB9sFrcCkx3ZfQiRB9lLlBspeJMJWOgSAWMN/Fu5DIJle/i0XJFeoWY lIyaAy2F8+3KnPEpUEpZGf/sacAO4bxoSKeVazzeXlm8b+h/IF6eREIXMw7kZs2Tjd9z Ds5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OxbH/gETGATA9XOTmCf9gQveO0CUa2EhLuIVyOq/FKM=; b=glvR5kDiluY3Op1atS1v8IJJA+MQx50t86pofECqXvrsjGiNBMFayT+T+tCPYPh5TY aCjMutyT+9iEo9l+E+LG21VQs3hcx56HfSUSIiJH9JLYQ5xnijFY7AMW2Rp382H9+sPS xoACE+mBphaRZHBpmxDwAD/IrrjsPVoDlVnS6Hl8Ytc4/eQ24bXwfTpYn3hTH+Ddu5z9 DIz7vzsAaJqJr6FXxMhiWU8QWz1R9TDG7F6EhTUwz1vRqkwncFszKE3vngdsVzHbrHW5 59GumgUPnK4sVZPzqXrt++VPbbAGpziJp5ZnIQFEwPy+RB/7q60wU2XZJvBXqkgIInaO R7rg== X-Gm-Message-State: APt69E0DbyWs2C0zFW6XcTCaNkwROsIxXBZ4lXlvOPM1/fLlE+L5uZHN c9B5R74TednC786uCWTEhuuZdfJPQFpeFREl103PRw== X-Received: by 2002:aca:310b:: with SMTP id x11-v6mr12169992oix.74.1530517296598; Mon, 02 Jul 2018 00:41:36 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ac9:2c15:0:0:0:0:0 with HTTP; Mon, 2 Jul 2018 00:41:36 -0700 (PDT) In-Reply-To: References: <20180629094039.7543-1-brgl@bgdev.pl> <20180629094039.7543-9-brgl@bgdev.pl> From: Bartosz Golaszewski Date: Mon, 2 Jul 2018 09:41:36 +0200 Message-ID: Subject: Re: [PATCH v4 08/18] net: davinci_emac: potentially get the MAC address from MTD To: David Lechner Cc: Bartosz Golaszewski , Sekhar Nori , Kevin Hilman , Russell King , Grygorii Strashko , "David S . Miller" , Srinivas Kandagatla , Lukas Wunner , Rob Herring , Florian Fainelli , Dan Carpenter , Ivan Khoronzhuk , Greg Kroah-Hartman , Andrew Lunn , Jonathan Corbet , arm-soc , LKML , Linux-OMAP , netdev@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018-06-29 22:35 GMT+02:00 David Lechner : > On 06/29/2018 03:09 PM, David Lechner wrote: >> >> On 06/29/2018 04:40 AM, Bartosz Golaszewski wrote: >>> >>> From: Bartosz Golaszewski >>> >>> On da850-evm board we can read the MAC address from MTD. It's currently >>> done in the relevant board file, but we want to get rid of all the MAC >>> reading callbacks from the board file (SPI and NAND). Move the reading >>> of the MAC address from SPI to the emac driver's probe function. >>> >>> Signed-off-by: Bartosz Golaszewski >>> --- >>> drivers/net/ethernet/ti/davinci_emac.c | 20 ++++++++++++++++++-- >>> 1 file changed, 18 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/net/ethernet/ti/davinci_emac.c >>> b/drivers/net/ethernet/ti/davinci_emac.c >>> index a1a6445b5a7e..48e6a7755811 100644 >>> --- a/drivers/net/ethernet/ti/davinci_emac.c >>> +++ b/drivers/net/ethernet/ti/davinci_emac.c >>> @@ -67,7 +67,7 @@ >>> #include >>> #include >>> #include >>> - >>> +#include >>> #include >>> #include >>> @@ -1783,7 +1783,10 @@ static int davinci_emac_probe(struct >>> platform_device *pdev) >>> struct cpdma_params dma_params; >>> struct clk *emac_clk; >>> unsigned long emac_bus_frequency; >>> - >>> +#ifdef CONFIG_MTD >>> + size_t mac_addr_len; >>> + struct mtd_info *mtd; >>> +#endif /* CONFIG_MTD */ >>> /* obtain emac clock from kernel */ >>> emac_clk = devm_clk_get(&pdev->dev, NULL); >>> @@ -1815,6 +1818,19 @@ static int davinci_emac_probe(struct >>> platform_device *pdev) >>> goto err_free_netdev; >>> } >>> +#ifdef CONFIG_MTD >> >> >> What about the case when MTD is compiled as a module? >> >>> + mtd = get_mtd_device_nm("MAC-Address"); >> >> >> What about the case when PTR_ERR(mtd) == -EPROBE_DEFER? > > > To answer my own question: because get_mtd_device_nm() doesn't > ever return -EPROBE_DEFER. > > I'm trying to make this work on LCDK, but the emac driver probes > before any mtd device is registered, so, I just get -ENODEV even > though I've added a partition to the device tree labeled > "MAC-Address". You can see in the kernel messages that MTD is > not probed until later. > I tested it on da850-evm - all MTD & SPI related modules need to be built-in for it to work, so: CONFIG_MTD=y CONFIG_MTD_M25P80=y CONFIG_SPI_DAVINCI=y Best regards, Bartosz Golaszewski > >> >>> + if (!IS_ERR(mtd)) { >>> + rc = mtd_read(mtd, 0, ETH_ALEN, >>> + &mac_addr_len, priv->mac_addr); >>> + if (rc == 0) >>> + dev_info(&pdev->dev, >>> + "Read MAC addr from SPI Flash: %pM\n", >>> + priv->mac_addr); >>> + put_mtd_device(mtd); >>> + } >>> +#endif /* CONFIG_MTD */ >>> + >>> /* MAC addr and PHY mask , RMII enable info from platform_data */ >>> memcpy(priv->mac_addr, pdata->mac_addr, ETH_ALEN); >>> priv->phy_id = pdata->phy_id; >>> >> >