From patchwork Wed May 11 06:30:25 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akinobu Mita X-Patchwork-Id: 620903 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 3r4R8G2VMmz9t5Z for ; Wed, 11 May 2016 16:30:54 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=QzLf4zc/; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751658AbcEKGap (ORCPT ); Wed, 11 May 2016 02:30:45 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:35331 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751386AbcEKGan (ORCPT ); Wed, 11 May 2016 02:30:43 -0400 Received: by mail-pf0-f196.google.com with SMTP id r187so3592413pfr.2 for ; Tue, 10 May 2016 23:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=WLdlz4vRuxam5GyWFtBvT6v8tK3akncmZV73RyXa8iw=; b=QzLf4zc/2SV50Zk0ffZVja+GmB3AMbv3LlPDOWXfSdksFVdbNik3ue+5DvFhBrB8NE DtBWn5pLJewkhX5b8ZALjWK+MK8FbBUSqAhc5Ba4sAKanSs28CtHSZb/WcLmlU2Y+rLL hAaoZCjIdnqXiv9/SacXmWz6XC8VIK5xiNWjUIaoukwmVbVU7gr5DHpt1xfCzyRvz+s8 saM3Eix4ol3oaf0InKaTDLKyMtJiz+Dp74XVTe8zjsKyez9x+RDM2ouL3Fz/+kNxNzMJ fvd4mt8U8PgBH+L2QvYhUSoDQvEHdu0cCm8ZD+GZqVs4XejFeiBrE4ZhWTR3tVUHPWik 86AA== 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=WLdlz4vRuxam5GyWFtBvT6v8tK3akncmZV73RyXa8iw=; b=nGDQc8g0NpV7POQDclFSNv5OeqStZyeX3F9WgREEj9RU1HPeADx/PrRn2LRwbR8YJ3 /ECJTC9oFUlh26KQnPTxgbIhWN98iMeTa7XyxdKmSCA0mq5JPJNPQ9FwroPPfiS1cUYa bsAwtLY930oBWCAUGcefcjFqdsUjbDOQwhAMgbW3sdkgfxiLZF/eSbwxqjH8xVxnwkHC 6uAtHrgFYa2OsCws57v3uI8OvcbyO1F+SbJ53qlLCBPexDyjitYi87cl0msIJcuRTqwZ +WOlp2lunntvfCQSpq3gowC5fnw+eVfjdnkTUsPdKmUXtdRSHLfBLFLWEUR+yyyhP5bd XE2Q== X-Gm-Message-State: AOPr4FXi15Ao6WwFEE3kHGjUoAm7DcLMczKYY9hSKbfhzPqNCD4b5ndJoPvkhSWpYLoKEw== X-Received: by 10.98.66.145 with SMTP id h17mr2285372pfd.100.1462948242412; Tue, 10 May 2016 23:30:42 -0700 (PDT) Received: from localhost.localdomain ([240f:4:c2bc:1:35da:1eb8:fc70:2f52]) by smtp.gmail.com with ESMTPSA id 199sm9037274pfc.15.2016.05.10.23.30.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 10 May 2016 23:30:41 -0700 (PDT) From: Akinobu Mita To: netdev@vger.kernel.org Cc: Akinobu Mita , Mike Sinkovsky , "David S . Miller" Subject: [PATCH -next 2/4] net: w5100: fix MAC filtering for W5500 Date: Wed, 11 May 2016 15:30:25 +0900 Message-Id: <1462948227-21276-3-git-send-email-akinobu.mita@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1462948227-21276-1-git-send-email-akinobu.mita@gmail.com> References: <1462948227-21276-1-git-send-email-akinobu.mita@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org W5500 has different bit position for MAC filter in Socket n mode register from W5100 and W5200. Signed-off-by: Akinobu Mita Cc: Mike Sinkovsky Cc: David S. Miller --- drivers/net/ethernet/wiznet/w5100.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/wiznet/w5100.c b/drivers/net/ethernet/wiznet/w5100.c index 56ceed9..c80438c 100644 --- a/drivers/net/ethernet/wiznet/w5100.c +++ b/drivers/net/ethernet/wiznet/w5100.c @@ -63,8 +63,9 @@ MODULE_LICENSE("GPL"); #define S0_REGS(priv) ((priv)->s0_regs) #define W5100_S0_MR(priv) (S0_REGS(priv) + W5100_Sn_MR) -#define S0_MR_MACRAW 0x04 /* MAC RAW mode (promiscuous) */ -#define S0_MR_MACRAW_MF 0x44 /* MAC RAW mode (filtered) */ +#define S0_MR_MACRAW 0x04 /* MAC RAW mode */ +#define S0_MR_MF 0x40 /* MAC Filter for W5100 and W5200 */ +#define W5500_S0_MR_MF 0x80 /* MAC Filter for W5500 */ #define W5100_S0_CR(priv) (S0_REGS(priv) + W5100_Sn_CR) #define S0_CR_OPEN 0x01 /* OPEN command */ #define S0_CR_CLOSE 0x10 /* CLOSE command */ @@ -702,8 +703,16 @@ static int w5100_hw_reset(struct w5100_priv *priv) static void w5100_hw_start(struct w5100_priv *priv) { - w5100_write(priv, W5100_S0_MR(priv), priv->promisc ? - S0_MR_MACRAW : S0_MR_MACRAW_MF); + u8 mode = S0_MR_MACRAW; + + if (!priv->promisc) { + if (priv->ops->chip_id == W5500) + mode |= W5500_S0_MR_MF; + else + mode |= S0_MR_MF; + } + + w5100_write(priv, W5100_S0_MR(priv), mode); w5100_command(priv, S0_CR_OPEN); w5100_enable_intr(priv); }