From patchwork Mon Oct 31 23:00:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iyappan Subramanian X-Patchwork-Id: 689694 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 3t78wB028Pz9snm for ; Tue, 1 Nov 2016 10:00:26 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=apm.com header.i=@apm.com header.b=XplG5LPE; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S947899AbcJaXAU (ORCPT ); Mon, 31 Oct 2016 19:00:20 -0400 Received: from mail-oi0-f49.google.com ([209.85.218.49]:36611 "EHLO mail-oi0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932263AbcJaXAT (ORCPT ); Mon, 31 Oct 2016 19:00:19 -0400 Received: by mail-oi0-f49.google.com with SMTP id v84so97867344oie.3 for ; Mon, 31 Oct 2016 16:00:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apm.com; s=apm; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=twGq2qDU7baoY9hbebA5X6U0JSiyuToZ5qfPe53tbJQ=; b=XplG5LPEaaxSe2ZE2NZ9vCnjtpOLwFilscreNm6Zd9acKOnzfov9hTgZqpHVQVTS0s RuTHju2jDbEo6NnHwT9HbdgIuqEVvHlU2UeCHkf9udHTlgphFVayykNLUYhP51gfn3FT Qt4/MavUOtcXr6tkn0N0/p95/WQaC9Nb/0SHk= 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:in-reply-to :references; bh=twGq2qDU7baoY9hbebA5X6U0JSiyuToZ5qfPe53tbJQ=; b=H7sP9LHChKGsNyoJvkGMNOWcXWhdzB2eElnu8vYFvjBRUi9S5Gc0XBhM7g6bCyJ2ju AH2z2H0FL+QcNVTfYI6jYWvXBxuWNzJk6r2KHw9IxjnxRhD9VEpEtxERC7ZxtBle3R0B 2qvd/vfMishcH3jEQWvivzaVNW0Kx6YCd0EcQQUkM6FH/vRtCMlfDIivIYOl2RekbLtv JOVisC0xS4SuDHEJGcRm2pbKIdqNrw/62w9V6O2TullLSvoOPrZOfql8IFak9xp/Vdq4 jSVR3FcFifPQBcEaT9C3YaTKprl7u/zTv9klQhU2BwEV0RaRkH5sn0rRDO761muPaiBP eQrQ== X-Gm-Message-State: ABUngvfCUwZhqgubHItUFcK34ZG6l32MUlMVYMpISIRqYhqbgoFuHSWbA5DbM5RFiMIXEGPr X-Received: by 10.36.225.135 with SMTP id n129mr9931514ith.56.1477954818524; Mon, 31 Oct 2016 16:00:18 -0700 (PDT) Received: from isubrama-dev.amcc.com ([206.80.4.98]) by smtp.gmail.com with ESMTPSA id h137sm9333680itb.17.2016.10.31.16.00.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 31 Oct 2016 16:00:18 -0700 (PDT) From: Iyappan Subramanian To: davem@davemloft.net, netdev@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, patches@apm.com, Iyappan Subramanian , Toan Le Subject: [PATCH net-next 1/2] drivers: net: xgene: fix: Disable coalescing on v1 hardware Date: Mon, 31 Oct 2016 16:00:26 -0700 Message-Id: <1477954827-9951-2-git-send-email-isubramanian@apm.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1477954827-9951-1-git-send-email-isubramanian@apm.com> References: <1477954827-9951-1-git-send-email-isubramanian@apm.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Since ethernet v1 hardware has a bug related to coalescing, disabling this feature. Signed-off-by: Iyappan Subramanian Signed-off-by: Toan Le --- drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 12 ------------ drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 3 ++- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c b/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c index c481f10..5390ae8 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c @@ -204,17 +204,6 @@ static u32 xgene_enet_ring_len(struct xgene_enet_desc_ring *ring) return num_msgs; } -static void xgene_enet_setup_coalescing(struct xgene_enet_desc_ring *ring) -{ - u32 data = 0x7777; - - xgene_enet_ring_wr32(ring, CSR_PBM_COAL, 0x8e); - xgene_enet_ring_wr32(ring, CSR_PBM_CTICK1, data); - xgene_enet_ring_wr32(ring, CSR_PBM_CTICK2, data << 16); - xgene_enet_ring_wr32(ring, CSR_THRESHOLD0_SET1, 0x40); - xgene_enet_ring_wr32(ring, CSR_THRESHOLD1_SET1, 0x80); -} - void xgene_enet_parse_error(struct xgene_enet_desc_ring *ring, struct xgene_enet_pdata *pdata, enum xgene_enet_err_code status) @@ -929,5 +918,4 @@ struct xgene_ring_ops xgene_ring1_ops = { .clear = xgene_enet_clear_ring, .wr_cmd = xgene_enet_wr_cmd, .len = xgene_enet_ring_len, - .coalesce = xgene_enet_setup_coalescing, }; diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index 3fc7b0d..1352b52 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -1188,7 +1188,8 @@ static int xgene_enet_create_desc_rings(struct net_device *ndev) tx_ring->dst_ring_num = xgene_enet_dst_ring_num(cp_ring); } - pdata->ring_ops->coalesce(pdata->tx_ring[0]); + if (pdata->ring_ops->coalesce) + pdata->ring_ops->coalesce(pdata->tx_ring[0]); pdata->tx_qcnt_hi = pdata->tx_ring[0]->slots - 128; return 0;