From nobody Sat Apr 27 09:35:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1572905095; cv=none; d=zoho.com; s=zohoarc; b=nZwLmGzz8Rl5GuQ7mZiPzbqjBQmquEL0vIUlWIaiY251sQZyuFidQGcFexARHUeiiHp2LGNhpofHCX7exSjK+Qp67LaSgYGw6CPZt+72LwND6m/54tvuPgzd8jvjOxcRWnrjcXj4NvCVL9HM9HxiBX/Nl7g0ScYaBR0W48V/whA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1572905095; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=vZlHRNrWzOSLywQj2MWXmHR9NXbEechkL9y1Q+q5kes=; b=X+1BfBC2W0d4jL2Sog737g3DutOGnhC1+W4Tp2Ury7/+Vx4bcVAxfKESUmbwVU9dGLgnq0flYHkrtqeqQpMSf+AJYfXyPSsuheEzEQzaPGn4Gv18RlVq6lW1OuPXz9GlyOAfF/qD/YmHN3EQ+8JC3chGtuK6Dlo83594/zuxjnU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15729050953761009.207578482097; Mon, 4 Nov 2019 14:04:55 -0800 (PST) Received: from localhost ([::1]:38910 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRkSy-0005K9-MR for importer@patchew.org; Mon, 04 Nov 2019 17:04:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41150) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRgu4-0008MP-VC for qemu-devel@nongnu.org; Mon, 04 Nov 2019 13:16:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iRgu3-0006Zg-Oh for qemu-devel@nongnu.org; Mon, 04 Nov 2019 13:16:36 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:52452) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iRgu3-0006Yv-8l for qemu-devel@nongnu.org; Mon, 04 Nov 2019 13:16:35 -0500 Received: by mail-wm1-x342.google.com with SMTP id c17so10418285wmk.2 for ; Mon, 04 Nov 2019 10:16:34 -0800 (PST) Received: from localhost.localdomain ([194.162.236.226]) by smtp.gmail.com with ESMTPSA id q15sm17165703wrr.82.2019.11.04.10.16.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Nov 2019 10:16:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=holoplot-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vZlHRNrWzOSLywQj2MWXmHR9NXbEechkL9y1Q+q5kes=; b=CpVDj8d5jarBg9AgbBvLnr6G6Ny10ptuL3kZjzoDBd/JJ1TxIz4daZ3n0jHlAm3BAd Kk/0GLs+FBfikPVkJh6lQuPDV5btsM1aNBVdizVGG5jVU0R1PeLpgfRDBN5heeYQu5mh RGLCtOREljfsAiN3PGj6zcG2IMx0vwpyqlgEQRJNg1sZanVZWopFW71euSuI0UMxbEV7 CJfQgjfq2rNCJJgaPzGLEC0vGXCLhlMFxbkGaux7TX5iko/wxEh/rOsMCGRd6cmWqN/l eUIZlRGh2p0ZLSgKQFlildIzK3Tti0xNoHQMXzr4oXy/YzSAW6/wgCHix/KQlMVuJ+aO DxdA== 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=vZlHRNrWzOSLywQj2MWXmHR9NXbEechkL9y1Q+q5kes=; b=icrCh2ETmCGVYTjJTqUetq68LPl9kN8d0rpIVm1ronEk5ZknM8cKvnZvHgqONVLmRv nEOwIzOx43bRQstu1fnW5dvmjW1oAP1/2GawzfM0+ISg+uiDAHzMTNVydFknDVByD8At KLyUeHuipYEC83nXO7GQ/+3TuCxNq7C16Cum38xKlwQvn7BGBxjxm96sUdfoXHuhaJjV RvnOrVaLmf0YNxCvIukiveBpcshlTVskGMICvgUQfko8EZkIsJfbbbhzHBzbSJnFEptf 7oWZ3Awju6B48geF88eCz8gr0cEC/HC7dXUYGOghShbeRDJuTa/YmCb8IxE8+4ueE3LP xpgg== X-Gm-Message-State: APjAAAU6Vl3bvDQGH8imrG7aESW4SI7GvlH/XELYk0JQj6HLtWCuklW0 pozbPkyBUW24GaUdFLLreV4lYp/Yo3Dhg3Vu X-Google-Smtp-Source: APXvYqwBEg4tldsJiHmHURGcHn6YbY28cQeit2IjyAhc+ybQdMfmv/7xH2K7N29EQBRFNPNaGm84qw== X-Received: by 2002:a7b:ce12:: with SMTP id m18mr408194wmc.130.1572891393265; Mon, 04 Nov 2019 10:16:33 -0800 (PST) From: linus.ziegert@holoplot.com X-Google-Original-From: linus.ziegert+qemu@holoplot.com To: qemu-devel@nongnu.org Subject: [PATCH] net/cadence_gem: Set PHY autonegotiation restart status Date: Mon, 4 Nov 2019 19:16:04 +0100 Message-Id: <20191104181604.21943-1-linus.ziegert+qemu@holoplot.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 X-Mailman-Approved-At: Mon, 04 Nov 2019 17:02:21 -0500 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Jason Wang , Alistair Francis , "open list:Xilinx Zynq" , Linus Ziegert , "Edgar E. Iglesias" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Linus Ziegert The Linux kernel PHY driver sets AN_RESTART in the BMCR of the PHY when autonegotiation is started. Recently the kernel started to read back the PHY's AN_RESTART bit and now checks whether the autonegotiation is complete and the bit was cleared [1]. Otherwise the link status is down. The emulated PHY needs to clear AN_RESTART immediately to inform the kernel driver about the completion of autonegotiation phase. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/comm= it/?id=3Dc36757eb9dee Signed-off-by: Linus Ziegert Reviewed-by: Alistair Francis --- hw/net/cadence_gem.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c index 7f9cb5ab95..b8be73dc55 100644 --- a/hw/net/cadence_gem.c +++ b/hw/net/cadence_gem.c @@ -271,9 +271,10 @@ #define PHY_REG_EXT_PHYSPCFC_ST 27 #define PHY_REG_CABLE_DIAG 28 =20 -#define PHY_REG_CONTROL_RST 0x8000 -#define PHY_REG_CONTROL_LOOP 0x4000 -#define PHY_REG_CONTROL_ANEG 0x1000 +#define PHY_REG_CONTROL_RST 0x8000 +#define PHY_REG_CONTROL_LOOP 0x4000 +#define PHY_REG_CONTROL_ANEG 0x1000 +#define PHY_REG_CONTROL_ANRESTART 0x0200 =20 #define PHY_REG_STATUS_LINK 0x0004 #define PHY_REG_STATUS_ANEGCMPL 0x0020 @@ -1345,7 +1346,7 @@ static void gem_phy_write(CadenceGEMState *s, unsigne= d reg_num, uint16_t val) } if (val & PHY_REG_CONTROL_ANEG) { /* Complete autonegotiation immediately */ - val &=3D ~PHY_REG_CONTROL_ANEG; + val &=3D ~(PHY_REG_CONTROL_ANEG | PHY_REG_CONTROL_ANRESTART); s->phy_regs[PHY_REG_STATUS] |=3D PHY_REG_STATUS_ANEGCMPL; } if (val & PHY_REG_CONTROL_LOOP) { --=20 2.21.0