From patchwork Mon Apr 30 09:58:09 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaccon Bastiaansen X-Patchwork-Id: 155828 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 5452AB6F6E for ; Mon, 30 Apr 2012 19:58:19 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755576Ab2D3J6R (ORCPT ); Mon, 30 Apr 2012 05:58:17 -0400 Received: from mail-ey0-f174.google.com ([209.85.215.174]:53474 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752297Ab2D3J6Q (ORCPT ); Mon, 30 Apr 2012 05:58:16 -0400 Received: by mail-ey0-f174.google.com with SMTP id q12so631024eaa.19 for ; Mon, 30 Apr 2012 02:58:16 -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:x-mailer; bh=/rpv0fwW+iGWOtxwlzRoSVmClr/fNtFrR939AXz8GIg=; b=uGfcIIxs/LPq/a+xzkukw04IjPp0bI9PU7KoJkFjd5WHmGCDSC6C2NTw1bZ+Xw4Ad/ KwfbS2GwOhswDN2TJSn2fxxIoTkn5eDnaF8NeOMKawiTvUkcrybcHPlHltcetZFlN+89 UNlTbWQLB17b4y0kGkcN3i3/SS8ADdsvbyEAHXD5vgdIRhRnCaO3exajg8JJFFDDejla CCkn/A0uywg8S5YCyiKgyUNgJlo6NTzcVzUfb4LQ9mw8imqgfAiThgcnhrd/xgZxOOdO ren9o+FLljw3fhVr4Vv5eZLl6nyMAg5+bgBj0kMogNAzCxMaGpKLyjJsskVG0jQv5fpK BveQ== Received: by 10.14.28.76 with SMTP id f52mr3134823eea.117.1335779896048; Mon, 30 Apr 2012 02:58:16 -0700 (PDT) Received: from localhost.localdomain (s529d540e.adsl.wanadoo.nl. [82.157.84.14]) by mx.google.com with ESMTPS id r44sm72422113eef.2.2012.04.30.02.58.14 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 30 Apr 2012 02:58:15 -0700 (PDT) From: Jaccon Bastiaansen To: s.hauer@pengutronix.de, gfm@funxed.com, davem@davemloft.net Cc: festevam@gmail.com, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, netdev@vger.kernel.org, Jaccon Bastiaansen Subject: [PATCH 2/2] cs89x0_platform : avoid requesting the i/o memory range twice Date: Mon, 30 Apr 2012 11:58:09 +0200 Message-Id: <1335779889-30454-1-git-send-email-jaccon.bastiaansen@gmail.com> X-Mailer: git-send-email 1.7.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When the platform driver option of the cs89x0 driver is used, the i/o memory range is requested twice, resulting in a failed driver initialization. Signed-off-by: Jaccon Bastiaansen --- drivers/net/ethernet/cirrus/cs89x0.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/cirrus/cs89x0.c b/drivers/net/ethernet/cirrus/cs89x0.c index 95737e9..f88a237 100644 --- a/drivers/net/ethernet/cirrus/cs89x0.c +++ b/drivers/net/ethernet/cirrus/cs89x0.c @@ -544,14 +544,15 @@ cs89x0_probe1(struct net_device *dev, unsigned long ioaddr, int modular) } +#ifndef CONFIG_CS89x0_PLATFORM /* Grab the region so we can find another board if autoIRQ fails. */ /* WTF is going on here? */ if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, DRV_NAME)) { printk(KERN_ERR "%s: request_region(0x%lx, 0x%x) failed\n", DRV_NAME, ioaddr, NETCARD_IO_EXTENT); - retval = -EBUSY; - goto out1; + return -EBUSY; } +#endif /* if they give us an odd I/O address, then do ONE write to the address port, to get it back to address zero, where we @@ -565,7 +566,7 @@ cs89x0_probe1(struct net_device *dev, unsigned long ioaddr, int modular) printk(KERN_ERR "%s: bad signature 0x%x\n", dev->name, readword(ioaddr & ~3, ADD_PORT)); retval = -ENODEV; - goto out2; + goto out1; } } @@ -580,7 +581,7 @@ cs89x0_probe1(struct net_device *dev, unsigned long ioaddr, int modular) CHIP_EISA_ID_SIG_STR "\n", dev->name, ioaddr, DATA_PORT, tmp); retval = -ENODEV; - goto out2; + goto out1; } /* Fill in the 'dev' fields. */ @@ -799,13 +800,12 @@ cs89x0_probe1(struct net_device *dev, unsigned long ioaddr, int modular) retval = register_netdev(dev); if (retval) - goto out3; + goto out2; return 0; -out3: - writeword(dev->base_addr, ADD_PORT, PP_ChipID); out2: - release_region(ioaddr & ~3, NETCARD_IO_EXTENT); + writeword(dev->base_addr, ADD_PORT, PP_ChipID); out1: + release_region(ioaddr & ~3, NETCARD_IO_EXTENT); return retval; }