From patchwork Tue Feb 2 06:47:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 576992 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id CAA8A140BCD for ; Tue, 2 Feb 2016 17:47:34 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=F+oySCyX; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753849AbcBBGra (ORCPT ); Tue, 2 Feb 2016 01:47:30 -0500 Received: from mail-lf0-f44.google.com ([209.85.215.44]:36542 "EHLO mail-lf0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752513AbcBBGr3 (ORCPT ); Tue, 2 Feb 2016 01:47:29 -0500 Received: by mail-lf0-f44.google.com with SMTP id 78so63187195lfy.3 for ; Mon, 01 Feb 2016 22:47:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=lBi94mNF7/q/YNV3h24lRgRP8sEUxjWaGzQxNmOhXoE=; b=F+oySCyXydm6C5hpDK9zdts1i48cvv74Y2KG5wg27acwpR/TbJlIqAhor1nbslymEm i03T8D7+cZpicsRDIxxDYa71OIBgmpKJBNF+6K38mIRCi2M1ogK2TrRq8m+GJ8S1WFzy L0fh6TUZKIn4ECbfxhNTaWqTsyPrVsw/XxH41oGfkdqBYIbcOHXyTGXRrkcHxCF8yj34 bzRv1/pDhz7ZNzH/6k2qQowXfyPwOfYEPKceg82daR2AlLP6twqi76kOCwThlj8P7QFM GyNxmBtz8wphkDNdwuvwm1w5psMKl2kI2613xeixJhTzW/lix2n5/0TlJADGzm+m6/Tz edbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=lBi94mNF7/q/YNV3h24lRgRP8sEUxjWaGzQxNmOhXoE=; b=akmi1lKj9ecL2pE6qTHLVBFELiZ1DyNi8ZZA+wC5KWoxpCGFlBorqefahPlDI+byWy NkOWtM77iad4e1bBRV70vmPhHXbHOwKot3cAT+QLfCaI2tZU4s8oqZwEWOlLoU77VyFC RiiLXt/XeL+M/gNkp7cmyPMt/uHcy+LPLS2nCdOjD7uofvlXqu+fhyb7H/9tilmoQtRq KFx1zINRx8XozwAE3sbXchPMYXT0BaWnu5DdG4jcQViLhRiy9rLf6myUfoqCMrj+1CX6 y6/ZQ5JPHGD9b65ZvVg6ESpr9pFefhCBKA31iIS/kgVxWwJRAGdi0+OxOjh7kQmS5Csy 5GLg== X-Gm-Message-State: AG10YOSOKcP7HKBortgirdY7n/AWTQa7KxGnfsXJ8MmqWehD2ejXVI7Xr7Dkyzda9Y2uZQ== X-Received: by 10.25.162.5 with SMTP id l5mr4142188lfe.104.1454395647918; Mon, 01 Feb 2016 22:47:27 -0800 (PST) Received: from linux-samsung.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id tv1sm4558963lbb.4.2016.02.01.22.47.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Feb 2016 22:47:27 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: "David S. Miller" , netdev@vger.kernel.org Cc: Hauke Mehrtens , Felix Fietkau , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH] bgmac: add helper checking for BCM4707 / BCM53018 chip id Date: Tue, 2 Feb 2016 07:47:14 +0100 Message-Id: <1454395634-11317-1-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.8.4.5 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Chipsets with BCM4707 / BCM53018 ID require special handling at a few places in the code. It's likely there will be more IDs to check in the future. To simplify it add this trivial helper. Signed-off-by: Rafał Miłecki --- It's the same change as sent few days ago, just resending it in a proper time (with net-next being open). --- drivers/net/ethernet/broadcom/bgmac.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 06f6cff..230f8e6 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -26,6 +26,17 @@ static const struct bcma_device_id bgmac_bcma_tbl[] = { }; MODULE_DEVICE_TABLE(bcma, bgmac_bcma_tbl); +static inline bool bgmac_is_bcm4707_family(struct bgmac *bgmac) +{ + switch (bgmac->core->bus->chipinfo.id) { + case BCMA_CHIP_ID_BCM4707: + case BCMA_CHIP_ID_BCM53018: + return true; + default: + return false; + } +} + static bool bgmac_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout) { @@ -987,11 +998,9 @@ static void bgmac_mac_speed(struct bgmac *bgmac) static void bgmac_miiconfig(struct bgmac *bgmac) { struct bcma_device *core = bgmac->core; - struct bcma_chipinfo *ci = &core->bus->chipinfo; u8 imode; - if (ci->id == BCMA_CHIP_ID_BCM4707 || - ci->id == BCMA_CHIP_ID_BCM53018) { + if (bgmac_is_bcm4707_family(bgmac)) { bcma_awrite32(core, BCMA_IOCTL, bcma_aread32(core, BCMA_IOCTL) | 0x40 | BGMAC_BCMA_IOCTL_SW_CLKEN); @@ -1055,9 +1064,7 @@ static void bgmac_chip_reset(struct bgmac *bgmac) } /* Request Misc PLL for corerev > 2 */ - if (core->id.rev > 2 && - ci->id != BCMA_CHIP_ID_BCM4707 && - ci->id != BCMA_CHIP_ID_BCM53018) { + if (core->id.rev > 2 && !bgmac_is_bcm4707_family(bgmac)) { bgmac_set(bgmac, BCMA_CLKCTLST, BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ); bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, @@ -1193,8 +1200,7 @@ static void bgmac_enable(struct bgmac *bgmac) break; } - if (ci->id != BCMA_CHIP_ID_BCM4707 && - ci->id != BCMA_CHIP_ID_BCM53018) { + if (!bgmac_is_bcm4707_family(bgmac)) { rxq_ctl = bgmac_read(bgmac, BGMAC_RXQ_CTL); rxq_ctl &= ~BGMAC_RXQ_CTL_MDP_MASK; bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) / @@ -1472,14 +1478,12 @@ static int bgmac_fixed_phy_register(struct bgmac *bgmac) static int bgmac_mii_register(struct bgmac *bgmac) { - struct bcma_chipinfo *ci = &bgmac->core->bus->chipinfo; struct mii_bus *mii_bus; struct phy_device *phy_dev; char bus_id[MII_BUS_ID_SIZE + 3]; int err = 0; - if (ci->id == BCMA_CHIP_ID_BCM4707 || - ci->id == BCMA_CHIP_ID_BCM53018) + if (bgmac_is_bcm4707_family(bgmac)) return bgmac_fixed_phy_register(bgmac); mii_bus = mdiobus_alloc(); @@ -1539,7 +1543,6 @@ static void bgmac_mii_unregister(struct bgmac *bgmac) /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */ static int bgmac_probe(struct bcma_device *core) { - struct bcma_chipinfo *ci = &core->bus->chipinfo; struct net_device *net_dev; struct bgmac *bgmac; struct ssb_sprom *sprom = &core->bus->sprom; @@ -1620,8 +1623,7 @@ static int bgmac_probe(struct bcma_device *core) bgmac_chip_reset(bgmac); /* For Northstar, we have to take all GMAC core out of reset */ - if (ci->id == BCMA_CHIP_ID_BCM4707 || - ci->id == BCMA_CHIP_ID_BCM53018) { + if (bgmac_is_bcm4707_family(bgmac)) { struct bcma_device *ns_core; int ns_gmac;