From patchwork Sun Nov 12 15:16:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 837196 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QxptQ88N"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yZcmh33Tnz9s82 for ; Mon, 13 Nov 2017 02:16:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751249AbdKLPQP (ORCPT ); Sun, 12 Nov 2017 10:16:15 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:55539 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750995AbdKLPQN (ORCPT ); Sun, 12 Nov 2017 10:16:13 -0500 Received: by mail-wm0-f68.google.com with SMTP id 9so5114638wme.4 for ; Sun, 12 Nov 2017 07:16:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:message-id:date:user-agent:mime-version :content-transfer-encoding; bh=EPxZndFtFlc12UllIiP4l1Cknvuy+rTTj6uRsYq/Vu4=; b=QxptQ88NLs7ywonnlCUuexAdpTK6sofM1jJBCjU/K0hCdY4/C8dWdvZlHhgt4wSCKo /dV2SH1SyaCpb7iAAQDDqdfURAjHxVFzIW1aXmzgNuzVmfmyqln8HuDtVqcM4Tzwew+E UwU3/chRW94UMZx3FDc7/xyptK8dm+iUkabPz4tp+r7b/QL1UsJW3gfsPyResepgjmKj tEMFZsHeUBFA2AeDEf74MUIIG1l+PIFlnu4Q9yZ/sbpynXGn7DT99dz2ESu/71ifZ3y3 c/BS84MkRS96F4cD5eW8xAZs6ewn4OEOITd5Uf71IDoIIHjqALMSHDbdA49BRiXO7uUx zkHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=EPxZndFtFlc12UllIiP4l1Cknvuy+rTTj6uRsYq/Vu4=; b=qOThKgDhuBok35/LPo1sef7nA8SRKAVJ/PwX+I/nZ49mOUAS0iDm+ry1k6VWE+We6F DW9YdlzsJMLq8oLwaHYsxW3VLRinBisN2JXrWBIfac9k2OpXd0iKdvvsWKU5b5Ty7/xY CFnRfMrB0RhHTqeA7097y2mPPJ/f0KYJ+0zastyAzhbccnHwuwEADYD0stfknu4cd46N BTL4g5pHTcuVS4ra1ZK6FN7VOA0lanedawoyDEmq00F7CimEI6dMiV9PWnXcsWzpmrbs wpCZaoEPeEPpS9gHxpnCRbJDg70BF8sQRRm4kjEAe4TnLUcjjfPSM0xLnvpGrvSGke73 KKjg== X-Gm-Message-State: AJaThX7Rjxpq+fo6/THtM+9CpxzeT26quaelqxnl36xJC9wuYbZmsrfY FH79rluboK/R6QINhGfHKWw= X-Google-Smtp-Source: AGs4zMYlGs/RL9PNbhWYxGK5zHca4ODw+xF3Agk/pnVDmO8h9kWEGvzNLqpXdrp1UgTcTiclLP6htA== X-Received: by 10.80.213.214 with SMTP id g22mr8984311edj.277.1510499772670; Sun, 12 Nov 2017 07:16:12 -0800 (PST) Received: from ?IPv6:2003:ea:8bd4:ad00:5189:3128:f457:b0e9? (p200300EA8BD4AD0051893128F457B0E9.dip0.t-ipconnect.de. [2003:ea:8bd4:ad00:5189:3128:f457:b0e9]) by smtp.googlemail.com with ESMTPSA id d60sm11173450edc.44.2017.11.12.07.16.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Nov 2017 07:16:12 -0800 (PST) From: Heiner Kallweit Subject: [PATCH] net: phy: realtek: fix RTL8211F interrupt mode To: "David S. Miller" , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" , "open list:ARM/Amlogic Meson..." , Shengzhou Liu , Jerome Brunet Message-ID: <66991733-9d1a-dbd2-9857-bba1ffca1cf8@gmail.com> Date: Sun, 12 Nov 2017 16:16:04 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org After commit b94d22d94ad22 "ARM64: dts: meson-gx: add external PHY interrupt on some platforms" ethernet stopped working on my Odroid-C2 which has a RTL8211F phy. It turned out that no interrupts were triggered. Further analysis showed the register INER can't be altered on page 0. Because register INSR needs to be accessed via page 0xa43 I assumed that register INER needs to be accessed via some page too. Some brute force check resulted in page 0xa42 being the right one. With this patch the phy is working properly in interrupt mode. Signed-off-by: Heiner Kallweit Tested-by: Jerome Brunet --- drivers/net/phy/realtek.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c index d4670ecdb..eda0a6e86 100644 --- a/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c @@ -115,11 +115,13 @@ static int rtl8211f_config_intr(struct phy_device *phydev) { int err; + phy_write(phydev, RTL821x_PAGE_SELECT, 0xa42); if (phydev->interrupts == PHY_INTERRUPT_ENABLED) err = phy_write(phydev, RTL821x_INER, RTL8211F_INER_LINK_STATUS); else err = phy_write(phydev, RTL821x_INER, 0); + phy_write(phydev, RTL821x_PAGE_SELECT, 0); return err; }