From patchwork Thu Mar 10 10:10:40 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jamie Iles X-Patchwork-Id: 86215 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 3D2E5B6F9B for ; Thu, 10 Mar 2011 21:11:19 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752330Ab1CJKLK (ORCPT ); Thu, 10 Mar 2011 05:11:10 -0500 Received: from mail-wy0-f174.google.com ([74.125.82.174]:34325 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752002Ab1CJKLI (ORCPT ); Thu, 10 Mar 2011 05:11:08 -0500 Received: by mail-wy0-f174.google.com with SMTP id 21so1289541wya.19 for ; Thu, 10 Mar 2011 02:11:08 -0800 (PST) Received: by 10.216.243.195 with SMTP id k45mr7121885wer.66.1299751858989; Thu, 10 Mar 2011 02:10:58 -0800 (PST) Received: from localhost (cpc3-chap8-2-0-cust205.aztw.cable.virginmedia.com [94.171.253.206]) by mx.google.com with ESMTPS id c54sm1428802wer.30.2011.03.10.02.10.58 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 10 Mar 2011 02:10:58 -0800 (PST) From: Jamie Iles To: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: nicolas.ferre@atmel.com, Jamie Iles Subject: [PATCH 5/8] macb: handle HW address registers for GEM devices Date: Thu, 10 Mar 2011 10:10:40 +0000 Message-Id: <1299751843-9743-6-git-send-email-jamie@jamieiles.com> X-Mailer: git-send-email 1.7.4 In-Reply-To: <1299751843-9743-1-git-send-email-jamie@jamieiles.com> References: <1299751843-9743-1-git-send-email-jamie@jamieiles.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org GEM has it's hardware address registers in a different location to MACB so we need to make this conditional on type. Signed-off-by: Jamie Iles --- drivers/net/macb.c | 19 +++++++++++++++---- drivers/net/macb.h | 4 ++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 204afa6..2541e3b 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -57,9 +57,15 @@ static void __macb_set_hwaddr(struct macb *bp) u16 top; bottom = cpu_to_le32(*((u32 *)bp->dev->dev_addr)); - macb_writel(bp, SA1B, bottom); top = cpu_to_le16(*((u16 *)(bp->dev->dev_addr + 4))); - macb_writel(bp, SA1T, top); + + if (!bp->is_gem) { + macb_writel(bp, SA1B, bottom); + macb_writel(bp, SA1T, top); + } else { + gem_writel(bp, SA1B, bottom); + gem_writel(bp, SA1T, top); + } } static void __init macb_get_hwaddr(struct macb *bp) @@ -68,8 +74,13 @@ static void __init macb_get_hwaddr(struct macb *bp) u16 top; u8 addr[6]; - bottom = macb_readl(bp, SA1B); - top = macb_readl(bp, SA1T); + if (!bp->is_gem) { + bottom = macb_readl(bp, SA1B); + top = macb_readl(bp, SA1T); + } else { + bottom = gem_readl(bp, SA1B); + top = gem_readl(bp, SA1T); + } addr[0] = bottom & 0xff; addr[1] = (bottom >> 8) & 0xff; diff --git a/drivers/net/macb.h b/drivers/net/macb.h index f838615..6248af6 100644 --- a/drivers/net/macb.h +++ b/drivers/net/macb.h @@ -60,6 +60,10 @@ #define MACB_USRIO 0x00c0 #define MACB_WOL 0x00c4 +/* GEM register offsets. */ +#define GEM_SA1B 0x0088 +#define GEM_SA1T 0x008C + /* Bitfields in NCR */ #define MACB_LB_OFFSET 0 #define MACB_LB_SIZE 1