From patchwork Mon Feb 4 17:30:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Moritz Fischer X-Patchwork-Id: 1036087 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ettus.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ettus-com.20150623.gappssmtp.com header.i=@ettus-com.20150623.gappssmtp.com header.b="BrIUteSI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43tZW313vzz9sDr for ; Tue, 5 Feb 2019 04:31:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728433AbfBDRa7 (ORCPT ); Mon, 4 Feb 2019 12:30:59 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:33054 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728206AbfBDRa6 (ORCPT ); Mon, 4 Feb 2019 12:30:58 -0500 Received: by mail-pg1-f194.google.com with SMTP id z11so230556pgu.0 for ; Mon, 04 Feb 2019 09:30:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ettus-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pyNN/cBC8H0d9mt1rt0a7Z0pTJTwhk8gYyIq7n/7xJo=; b=BrIUteSIrwvJg/2uc01Tg+9ntfxpfujvtMk1TYiYj2gBafmE5tw2ZGBpqxm93b1lOA ybO2qSM2YJWvMjssHtrnLwAZndx1Cm494wud+eZpeejHDueirnp5MFLSqA3/Pz1zVbHu NLvRjdaxfyYVHV59ghBlZdi2iHXmbshKcw4CZPH+xhhc9zN3mvd8ri+RpJlxvfVmAR9T oebcvlylamWQyKepfycWxbmRgRQru+XoNXpKd5G7Lr0AxC26fluvf2x4IcXyRVAHxCNY tbJGXf+tNhFX2d3D0tJ1KuIPOD0KIgNKiRGses4Xn/aLP/zbxJRNA3MQAKzM9GpbWLXb 8Oig== 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:mime-version:content-transfer-encoding; bh=pyNN/cBC8H0d9mt1rt0a7Z0pTJTwhk8gYyIq7n/7xJo=; b=jDlE+iEIjxBZNsTm6KQqvaFGP3/JfKPQHWo7IO/gZmiQtwDqmZSRhrZkiY1TdHH4CO MnHvdI4VOl9tQEeiviw0H1RXFdKn/ezn5GtZNKLwk/SPV/ZUjN1xjFHFdvW9YT2geRXN cPEa4Qkl+qZvRUHhjz6xU0sOAaFHfuGgKJ5NqdOWv1tMSsfkzAfsmIJXM6ObhGTw/wDU ixb1Xq7kz0EqnfdnwuBgxtCuFnx2DMf0L2fsmyvidYBfcDx8o6EhrsBVWYKP9PhVBQq8 UOd3/yXKVyyKbzfcyZY3NZn49BmuMpLb1j40KZb3Zfn1nbRccrcoTEcdh3sMZFlXIQNh 0zDQ== X-Gm-Message-State: AHQUAuZ1i5+l5ZazF5vjpa4IT5pRb4ysaMSocdRrx+MgQCuSKLflCFji awa0n0+V6GyNsmmbXN6dI4UWudJbM0w= X-Google-Smtp-Source: AHgI3IaIzyOCAqTzDveM2kV3aUqjgrqlZBHRTWm/rAVePpIAU97U8n3ZEnfHOJPGd2g1kb6RWnSxaA== X-Received: by 2002:a63:ea4f:: with SMTP id l15mr455812pgk.102.1549301457148; Mon, 04 Feb 2019 09:30:57 -0800 (PST) Received: from localhost ([207.114.172.147]) by smtp.gmail.com with ESMTPSA id g11sm730212pfo.139.2019.02.04.09.30.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 04 Feb 2019 09:30:56 -0800 (PST) From: Moritz Fischer To: netdev@vger.kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, alex.williams@ni.com, andrew@lunn.ch, robh+dt@kernel.org, davem@davemloft.net, moritz.fischer@ettus.com, Moritz Fischer Subject: [PATCH net-next 2/3] net: nixge: Add support for fixed-link configurations Date: Mon, 4 Feb 2019 09:30:39 -0800 Message-Id: <20190204173040.5538-3-moritz.fischer@ettus.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190204173040.5538-1-moritz.fischer@ettus.com> References: <20190204173040.5538-1-moritz.fischer@ettus.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Moritz Fischer Add support for fixed-link configurations to nixge driver. Signed-off-by: Moritz Fischer --- drivers/net/ethernet/ni/nixge.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/ni/nixge.c b/drivers/net/ethernet/ni/nixge.c index c8dd1e4c759d..96f7a9818294 100644 --- a/drivers/net/ethernet/ni/nixge.c +++ b/drivers/net/ethernet/ni/nixge.c @@ -1282,9 +1282,9 @@ static int nixge_of_get_resources(struct platform_device *pdev) static int nixge_probe(struct platform_device *pdev) { + struct device_node *mn, *phy_node; struct nixge_priv *priv; struct net_device *ndev; - struct device_node *mn; const u8 *mac_addr; int err; @@ -1353,21 +1353,30 @@ static int nixge_probe(struct platform_device *pdev) goto unregister_mdio; } - priv->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0); - if (!priv->phy_node) { - netdev_err(ndev, "not find \"phy-handle\" property\n"); - err = -EINVAL; - goto unregister_mdio; + phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0); + if (!phy_node && of_phy_is_fixed_link(pdev->dev.of_node)) { + err = of_phy_register_fixed_link(pdev->dev.of_node); + if (err < 0) { + netdev_err(ndev, "broken fixed-link specification\n"); + goto unregister_mdio; + } + phy_node = of_node_get(pdev->dev.of_node); } + priv->phy_node = phy_node; err = register_netdev(priv->ndev); if (err) { netdev_err(ndev, "register_netdev() error (%i)\n", err); - goto unregister_mdio; + goto free_phy; } return 0; +free_phy: + if (of_phy_is_fixed_link(pdev->dev.of_node)) + of_phy_deregister_fixed_link(pdev->dev.of_node); + of_node_put(phy_node); + unregister_mdio: if (priv->mii_bus) mdiobus_unregister(priv->mii_bus); @@ -1385,6 +1394,10 @@ static int nixge_remove(struct platform_device *pdev) unregister_netdev(ndev); + if (of_phy_is_fixed_link(pdev->dev.of_node)) + of_phy_deregister_fixed_link(pdev->dev.of_node); + of_node_put(priv->phy_node); + if (priv->mii_bus) mdiobus_unregister(priv->mii_bus);