From patchwork Mon Sep 17 15:22:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Lamparter X-Patchwork-Id: 970645 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=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="JhQJ2Vg5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42DVHT6S87z9sB5 for ; Tue, 18 Sep 2018 01:22:45 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728896AbeIQUuc (ORCPT ); Mon, 17 Sep 2018 16:50:32 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:54247 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728820AbeIQUuc (ORCPT ); Mon, 17 Sep 2018 16:50:32 -0400 Received: by mail-wm1-f67.google.com with SMTP id b19-v6so10122865wme.3 for ; Mon, 17 Sep 2018 08:22:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/99zXcVM0rx9RgpHP50vVWWrbDr3lVZ47tfMgiu8Hj8=; b=JhQJ2Vg5zr+PXmjFUB0QTyInb3IJLpyWbe6v1aokkQI/nApVXVFqOFtnrwAnbFfpDa pQWeepTwzdywXI/P2OXXnyFB17h/+d38ZyId/7iNBZ3ErZ3L95fSH51P1kdBFGmZg/2t DbPyLK+nSqEi0ZUDDPMUilMotOp47K0DTBe/uyjvnRK43uNVBNTXZdmJfbtk7EuoqyvB LnT7x9AW5ddM117DWgWmWjWNee7OW9WwX0XP/SMvsCvcEXIkbu7qhuZ572j6/TqnvZN4 z2sxLG0A9JzEyIFzeVz6QdeywqGbsSySVkvMR+H7qu0t+Th49fZPFlkhbUvTKQYRCXte wf7w== 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:mime-version :content-transfer-encoding; bh=/99zXcVM0rx9RgpHP50vVWWrbDr3lVZ47tfMgiu8Hj8=; b=KJ/oXRk48ycexesbVLhm62GVnEClv20x0R+eiWI5lHoi0zJNFVp2Omp3kiW3qNIdnw MnU90VGbXgDHzWty2kdpXpU8QT4a0jbo0rJpIhDatpJE910XDZZNW0HY8Z0fGLG1TXma qaMhnkWh4ZlzSETdYTZDaYw7zsnoFc+WkH4Icgcs9IsIVTCn1qOgo96fB0H7M/paBdQN MnaqNgPulDPg7Mb6Fognmd08fETOiBgIzVwYn9TkaEtdWtAb4Qxwf4n2Dkkd8Fnrt1jw K83Vj9vijFyjPU+wku2fjldfT9eIkJZqGCcgsiFfuelujXQy7GWN51h9MTHaaSJCKDDc U2Rg== X-Gm-Message-State: APzg51CxO8+MLV8G9l54kbmd3dBhoK57pKeG6MmfCQI7f80okOvXI20A 5iv/T8olTQWtz42+kfk7FpicHc6C X-Google-Smtp-Source: ANB0VdYhgyjsFPj6Kam8+8ZINIBkuM+DfQX3a2KW9qKcur8n3hNu0cWgXUYOaS4jbhvMDhqQTZnBzQ== X-Received: by 2002:a1c:1182:: with SMTP id 124-v6mr12005319wmr.75.1537197761890; Mon, 17 Sep 2018 08:22:41 -0700 (PDT) Received: from debian64.daheim (p200300D5FBC352FCD63D7EFFFEBDE96E.dip0.t-ipconnect.de. [2003:d5:fbc3:52fc:d63d:7eff:febd:e96e]) by smtp.gmail.com with ESMTPSA id c10-v6sm24569990wrb.17.2018.09.17.08.22.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Sep 2018 08:22:41 -0700 (PDT) Received: from chuck by debian64.daheim with local (Exim 4.91) (envelope-from ) id 1g1vMG-0004jv-ES; Mon, 17 Sep 2018 17:22:40 +0200 From: Christian Lamparter To: netdev@vger.kernel.org Cc: Ivan Mikhaylov , "David S . Miller" Subject: [PATCH] net: emac: fix fixed-link setup for the RTL8363SB switch Date: Mon, 17 Sep 2018 17:22:40 +0200 Message-Id: <20180917152240.18177-1-chunkeey@gmail.com> X-Mailer: git-send-email 2.19.0.rc2 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On the Netgear WNDAP620, the emac ethernet isn't receiving nor xmitting any frames from/to the RTL8363SB (identifies itself as a RTL8367RB). This is caused by the emac hardware not knowing the forced link parameters for speed, duplex, pause, etc. This begs the question, how this was working on the original driver code, when it was necessary to set the phy_address and phy_map to 0xffffffff. But I guess without access to the old PPC405/440/460 hardware, it's not possible to know. Signed-off-by: Christian Lamparter --- drivers/net/ethernet/ibm/emac/core.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c index 354c0982847b..3b398ebdb5e6 100644 --- a/drivers/net/ethernet/ibm/emac/core.c +++ b/drivers/net/ethernet/ibm/emac/core.c @@ -2677,12 +2677,17 @@ static int emac_init_phy(struct emac_instance *dev) if (of_phy_is_fixed_link(np)) { int res = emac_dt_mdio_probe(dev); - if (!res) { - res = of_phy_register_fixed_link(np); - if (res) - mdiobus_unregister(dev->mii_bus); + if (res) + return res; + + res = of_phy_register_fixed_link(np); + dev->phy_dev = of_phy_find_device(np); + if (res || !dev->phy_dev) { + mdiobus_unregister(dev->mii_bus); + return res ? res : -EINVAL; } - return res; + emac_adjust_link(dev->ndev); + put_device(&dev->phy_dev->mdio.dev); } return 0; }