From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 124A0C43381 for ; Sun, 24 Feb 2019 16:41:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C58D720652 for ; Sun, 24 Feb 2019 16:41:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k96InDQs" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728430AbfBXQl4 (ORCPT ); Sun, 24 Feb 2019 11:41:56 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:53354 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728179AbfBXQl4 (ORCPT ); Sun, 24 Feb 2019 11:41:56 -0500 Received: by mail-wm1-f65.google.com with SMTP id e74so5895727wmg.3 for ; Sun, 24 Feb 2019 08:41:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=meAvMuNNTvbNm6kcT6FCl6EbdxppNPDI8w+b2iSROZg=; b=k96InDQs9toQtgiG+cxLwQ/U1m/x65+TgeJpEfh8ajVlm2mNd9PjExf++jMCaL1JST 9BJCLRgCYjbZz+BstssULpY0vaZ80elf4upM/llR/DFQl46P8tQbpZc2E7so1wB2IFCf 6d7nzPLw3RIHM/VIJ1XansVbI9e/dwFhZcH4xvpoeKT1EDRvOzmK0eMzsgqbU7y+i/YY kEBwg6ZGY8GDnyTs9+hoy/xBpeljnKAzzHeQbv64v880x9DK/040Db7UgHKPcP5cJo2o pomESgb0DbY4KxQoyJQNzJJZv/oiKoV+OS26fZiw3hYbCxgX8P8RVjt1tUx0EIgI0Qz+ HqVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=meAvMuNNTvbNm6kcT6FCl6EbdxppNPDI8w+b2iSROZg=; b=fNXBl26rGSUuAem/Yz0TxKUNGBlGJoaf94NB/JEVtzbm+fIHLonbz/aHU3BoX2dy4q SjQd0X90SHtk8/r2aZaU7xd2E6+2zh4nLAM5XQyWOu+LnxubKTFCRi1tFIGFtpDLuEzZ 3DKKtyhDAsv3r9z3YSRe53ckCkJnjU87YnQlK6nXViepGL+3h7UxSQXh+qYbiqgkfwYW ny4UtnshiVxE4uXf82ACtYDj9bM9CkVTIiQ1tkHoYLVbqlUh8Sjo8cutqNkLS5CywEd2 1eBkH4MQREGyClwtIwPVEH6UUILmmpNxjFFwerucLnYh/EACn1VrpJB+pranALZ+zHuR CEMQ== X-Gm-Message-State: AHQUAuaiJGqgIvcjy6boHxGaHKxcisRVCgE7QQjOMkfH8/dBa8YL7/dY gvrr9d6O7U/lGKuFd9Mfuj4wTHeb X-Google-Smtp-Source: AHgI3IaddW9Sbbf4nb4KZBrdjP5XHo1cU+2kxo8glcolyX59XSsKGyPkaJw9Gh0TfDJKWYfvsp0SQw== X-Received: by 2002:a7b:c0d5:: with SMTP id s21mr8861149wmh.153.1551026514225; Sun, 24 Feb 2019 08:41:54 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:1133:81d:72d3:c59f? (p200300EA8BF1E2001133081D72D3C59F.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:1133:81d:72d3:c59f]) by smtp.googlemail.com with ESMTPSA id 132sm20676501wmd.27.2019.02.24.08.41.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 24 Feb 2019 08:41:53 -0800 (PST) To: Andrew Lunn , Florian Fainelli , David Miller , Russell King - ARM Linux Cc: "netdev@vger.kernel.org" From: Heiner Kallweit Subject: [PATCH net-next] net: phy: improve auto-neg emulation in swphy Message-ID: Date: Sun, 24 Feb 2019 17:41:47 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Auto-neg emulation currently doesn't set bit BMCR_ANENABLE in BMCR, add this. Users will ignore speed and duplex settings in BMCR because we're emulating auto-neg, therefore we can remove related code. See also following discussion [0]. [0] https://marc.info/?t=155041784900002&r=1&w=2 Signed-off-by: Heiner Kallweit --- drivers/net/phy/swphy.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/net/phy/swphy.c b/drivers/net/phy/swphy.c index b9743569e..dad22481d 100644 --- a/drivers/net/phy/swphy.c +++ b/drivers/net/phy/swphy.c @@ -19,7 +19,6 @@ #define MII_REGS_NUM 29 struct swmii_regs { - u16 bmcr; u16 bmsr; u16 lpa; u16 lpagb; @@ -40,16 +39,13 @@ enum { */ static const struct swmii_regs speed[] = { [SWMII_SPEED_10] = { - .bmcr = BMCR_FULLDPLX, .lpa = LPA_10FULL | LPA_10HALF, }, [SWMII_SPEED_100] = { - .bmcr = BMCR_FULLDPLX | BMCR_SPEED100, .bmsr = BMSR_100FULL | BMSR_100HALF, .lpa = LPA_100FULL | LPA_100HALF, }, [SWMII_SPEED_1000] = { - .bmcr = BMCR_FULLDPLX | BMCR_SPEED1000, .bmsr = BMSR_ESTATEN, .lpagb = LPA_1000FULL | LPA_1000HALF, }, @@ -57,13 +53,11 @@ static const struct swmii_regs speed[] = { static const struct swmii_regs duplex[] = { [SWMII_DUPLEX_HALF] = { - .bmcr = ~BMCR_FULLDPLX, .bmsr = BMSR_ESTATEN | BMSR_100HALF, .lpa = LPA_10HALF | LPA_100HALF, .lpagb = LPA_1000HALF, }, [SWMII_DUPLEX_FULL] = { - .bmcr = ~0, .bmsr = BMSR_ESTATEN | BMSR_100FULL, .lpa = LPA_10FULL | LPA_100FULL, .lpagb = LPA_1000FULL, @@ -118,7 +112,6 @@ int swphy_read_reg(int reg, const struct fixed_phy_status *state) { int speed_index, duplex_index; u16 bmsr = BMSR_ANEGCAPABLE; - u16 bmcr = 0; u16 lpagb = 0; u16 lpa = 0; @@ -136,7 +129,6 @@ int swphy_read_reg(int reg, const struct fixed_phy_status *state) if (state->link) { bmsr |= BMSR_LSTATUS | BMSR_ANEGCOMPLETE; - bmcr |= speed[speed_index].bmcr & duplex[duplex_index].bmcr; lpa |= speed[speed_index].lpa & duplex[duplex_index].lpa; lpagb |= speed[speed_index].lpagb & duplex[duplex_index].lpagb; @@ -149,7 +141,7 @@ int swphy_read_reg(int reg, const struct fixed_phy_status *state) switch (reg) { case MII_BMCR: - return bmcr; + return BMCR_ANENABLE; case MII_BMSR: return bmsr; case MII_PHYSID1: -- 2.20.1 Andr