From patchwork Tue Jul 25 19:29:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 108667 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp939232qge; Tue, 25 Jul 2017 12:29:30 -0700 (PDT) X-Received: by 10.84.132.78 with SMTP id 72mr22012334ple.98.1501010970573; Tue, 25 Jul 2017 12:29:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501010970; cv=none; d=google.com; s=arc-20160816; b=rwhwA1A++FQQkj6bE2mtX8m6dfUPeUjrxhZ+O21M/QfnupkhPjb450wasgR1LzGMJG dyTcaE82aoE+UhD3tgdjpRp+AhqPVA1f4LTAqbbqEu2tiuFGC7s4hWi91fIXvGy70cUi MC8BDry1210MRp31jMrHd7jchGkvySU45e+EoKsSRacEaLKf4nVgln8aPd8WvcUGH/cd YDLyrHLe5mKV96LThGp+mAH4isVDOrZSvjLeGWmZoBVds5MewUrhyCu+wcuXwII5XHlM sCb7g1iEDY4Ug+6LJd5G7rDriYA3MHvu+K0AwBozlDo5L4zHxPMnckUHtj7RXZ9b56L7 lFCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=PcEzEgUvAa9tj0k7FRgzhFlqKvRchKnAw9TLL0OTJTs=; b=UN2HVTM/O/t9s89LclgkpWD4/pcFggGyyoA5hAAeADwth0dwp9XippLoXtr7BZi0qG ALj1EXBlGYXRRRzPvpGWm22yMWqGkZ6Mu+KKGz5Uzm+kt0Wf3dTfvfxwYYlYAFCtVzqQ Dt48YR4fUWHo8ArF2xTR/ENsILVpBfBVKguCPSzG2Ykm6ckLzt6Qpj8kyMDXYcp4xB2A /ZrBb4X7CmVWIsBYkqGXjmer0gcBwEheQu8KGKHtD1Vd+9P40Fpd4BCZEhFdBgQHxaAT ffbQrfjIE0ajUcHWvf/XbXYLlPzxKLZMvXtG4Y9Cb7ZEaK96JeQhSx8wPHS/lQM3tjL5 nm9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.b=HxuUgNRY; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o129si8605553pga.543.2017.07.25.12.29.30; Tue, 25 Jul 2017 12:29:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-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=@linaro.org header.b=HxuUgNRY; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754501AbdGYT32 (ORCPT + 6 others); Tue, 25 Jul 2017 15:29:28 -0400 Received: from mail-pg0-f41.google.com ([74.125.83.41]:36733 "EHLO mail-pg0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754432AbdGYT31 (ORCPT ); Tue, 25 Jul 2017 15:29:27 -0400 Received: by mail-pg0-f41.google.com with SMTP id 125so74108730pgi.3 for ; Tue, 25 Jul 2017 12:29:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=PcEzEgUvAa9tj0k7FRgzhFlqKvRchKnAw9TLL0OTJTs=; b=HxuUgNRY5vgQS3/zZ0BtGXQfUlUf9/HZJc5NfDhqHS1xPK9ReshoAYLztswuugGPlX 4dUbkhWgZvT+a4zck2Uxyzj9lZsuC8vhVHY7MENPnnEDhQntFYjZXm9jgjwkPZY33AQx aMuY5Ym7qvWmhBWm0JC8qACOzWL5BjQZY4nB4= 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; bh=PcEzEgUvAa9tj0k7FRgzhFlqKvRchKnAw9TLL0OTJTs=; b=D1Cxgh53GpdKenl3a/vrsz/iYFB0aNwUBMrrWhaykrVRebUVY8iEpcrVrCZ3tVdOY1 fd6+FGLbFfechaQRX4xqVK+K+o5MK+XbErwrhi+BEzYNmTEChIGa1ejoIy7dV812lQbu kACacrg+H3+nRIYPxQ0iKY2jsDAjRkJHuFFFsFsBnU3CU2Q6ACOBmubPKqaIMsIZaCy8 X4ZucHz/r3LpiyCFbFgQ+qtL+j9gmLiBfIfGJZwWe88lPw2Vfakazas+SfiwkNRjBR1H 4z1VhRXQ2DH3bQZODYt2tb1sb2EcCVsCWAgj/b2t1grqvuj/dlEKjFeOdblMoVv/q41/ 5iMg== X-Gm-Message-State: AIVw112WdAgvuMdHeiUIYW7O3kPe0fYMajd+gXHtjgyphEs4aKpHxGBo bEdYi3AgzpKPLw69 X-Received: by 10.84.232.143 with SMTP id i15mr22700140plk.248.1501010966649; Tue, 25 Jul 2017 12:29:26 -0700 (PDT) Received: from localhost.localdomain ([106.51.135.235]) by smtp.gmail.com with ESMTPSA id 85sm30371425pfr.90.2017.07.25.12.29.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 25 Jul 2017 12:29:25 -0700 (PDT) From: Amit Pundir To: Greg KH Cc: Stable , Florian Fainelli , "David S . Miller" Subject: [PATCH for-4.9 02/10] net: phy: Do not perform software reset for Generic PHY Date: Wed, 26 Jul 2017 00:59:08 +0530 Message-Id: <1501010956-27944-3-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1501010956-27944-1-git-send-email-amit.pundir@linaro.org> References: <1501010956-27944-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Florian Fainelli commit 0878fff1f42c18e448ab5b8b4f6a3eb32365b5b6 upstream. The Generic PHY driver is a catch-all PHY driver and it should preserve whatever prior initialization has been done by boot loader or firmware agents. For specific PHY device configuration it is expected that a specialized PHY driver would take over that role. Resetting the generic PHY was a bad idea that has lead to several complaints and downstream workarounds e.g: in OpenWrt/LEDE so restore the behavior prior to 87aa9f9c61ad ("net: phy: consolidate PHY reset in phy_init_hw()"). Reported-by: Felix Fietkau Fixes: 87aa9f9c61ad ("net: phy: consolidate PHY reset in phy_init_hw()") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller Signed-off-by: Amit Pundir --- drivers/net/phy/phy_device.c | 2 +- include/linux/phy.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 32b555a72e13..9e7b7836774f 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1792,7 +1792,7 @@ static struct phy_driver genphy_driver[] = { .phy_id = 0xffffffff, .phy_id_mask = 0xffffffff, .name = "Generic PHY", - .soft_reset = genphy_soft_reset, + .soft_reset = genphy_no_soft_reset, .config_init = genphy_config_init, .features = PHY_GBIT_FEATURES | SUPPORTED_MII | SUPPORTED_AUI | SUPPORTED_FIBRE | diff --git a/include/linux/phy.h b/include/linux/phy.h index 6c9b1e0006ee..8431c8c0c320 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -799,6 +799,10 @@ int genphy_read_status(struct phy_device *phydev); int genphy_suspend(struct phy_device *phydev); int genphy_resume(struct phy_device *phydev); int genphy_soft_reset(struct phy_device *phydev); +static inline int genphy_no_soft_reset(struct phy_device *phydev) +{ + return 0; +} void phy_driver_unregister(struct phy_driver *drv); void phy_drivers_unregister(struct phy_driver *drv, int n); int phy_driver_register(struct phy_driver *new_driver, struct module *owner);