From patchwork Wed Nov 23 14:26:57 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Priit Laes X-Patchwork-Id: 127316 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 5DBA01007D4 for ; Thu, 24 Nov 2011 01:41:22 +1100 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1RTDxi-00034a-HG; Wed, 23 Nov 2011 14:38:10 +0000 Received: from bombadil.infradead.org ([2001:4830:2446:ff00:4687:fcff:fea6:5117]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1RTDxd-000333-8A for linux-arm-kernel@merlin.infradead.org; Wed, 23 Nov 2011 14:38:05 +0000 Received: from gn237.zone.eu ([217.146.67.237]) by bombadil.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1RTDxb-0008GK-0f for linux-arm-kernel@lists.infradead.org; Wed, 23 Nov 2011 14:38:04 +0000 Received: from wow (226-54-131-46.internet.emt.ee [46.131.54.226]) (Authenticated sender: plaes@plaes.org) by gn237.zone.eu (Postfix) with ESMTPSA id 2DEF1E4EB4D8; Wed, 23 Nov 2011 16:28:19 +0200 (EET) Received: by wow (sSMTP sendmail emulation); Wed, 23 Nov 2011 16:26:58 +0200 From: plaes@plaes.org Subject: [PATCH] ARM: mach-orion5x: Use hex2bin that is present in kernel lib To: linux-arm-kernel@lists.infradead.org Date: Wed, 23 Nov 2011 16:26:57 +0200 Message-ID: <1322058417.2472.9.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.32.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20111123_093803_337406_ED6EEBAE X-CRM114-Status: GOOD ( 15.49 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: kernel@wantstofly.org, nico@fluxnic.net X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org Hey! I noticed there was some duplicate code under arm/mach-orion5x directory so I ended up with a patch that uses existing library function present in kernel code. I regretfully have to admit that this patch is NOT even compile-tested, but I hope that it still useful in case it happens to break something... Päikest, Priit ;) From 846a67c15d49bb23ec3928967b3588362d8abfe3 Mon Sep 17 00:00:00 2001 From: Priit Laes Date: Wed, 23 Nov 2011 16:11:04 +0200 Subject: [PATCH] ARM: mach-orion5x: Use hex2bin that is present in kernel lib --- arch/arm/mach-orion5x/dns323-setup.c | 39 +--------------------------------- arch/arm/mach-orion5x/tsx09-common.c | 34 +---------------------------- 2 files changed, 2 insertions(+), 71 deletions(-) diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index 343f60e..9b55a88 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c @@ -172,37 +172,6 @@ static struct mv643xx_eth_platform_data dns323_eth_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(8), }; -/* dns323_parse_hex_*() taken from tsx09-common.c; should a common copy of these - * functions be kept somewhere? - */ -static int __init dns323_parse_hex_nibble(char n) -{ - if (n >= '0' && n <= '9') - return n - '0'; - - if (n >= 'A' && n <= 'F') - return n - 'A' + 10; - - if (n >= 'a' && n <= 'f') - return n - 'a' + 10; - - return -1; -} - -static int __init dns323_parse_hex_byte(const char *b) -{ - int hi; - int lo; - - hi = dns323_parse_hex_nibble(b[0]); - lo = dns323_parse_hex_nibble(b[1]); - - if (hi < 0 || lo < 0) - return -1; - - return (hi << 4) | lo; -} - static int __init dns323_read_mac_addr(void) { u_int8_t addr[6]; @@ -224,14 +193,8 @@ static int __init dns323_read_mac_addr(void) } for (i = 0; i < 6; i++) { - int byte; - - byte = dns323_parse_hex_byte(mac_page + (i * 3)); - if (byte < 0) { + if (hex2bin(addr[i], mac_page + (i * 3), 2)) goto error_fail; - } - - addr[i] = byte; } iounmap(mac_page); diff --git a/arch/arm/mach-orion5x/tsx09-common.c b/arch/arm/mach-orion5x/tsx09-common.c index c9abb8f..3bc7ff0 100644 --- a/arch/arm/mach-orion5x/tsx09-common.c +++ b/arch/arm/mach-orion5x/tsx09-common.c @@ -52,52 +52,20 @@ struct mv643xx_eth_platform_data qnap_tsx09_eth_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(8), }; -static int __init qnap_tsx09_parse_hex_nibble(char n) -{ - if (n >= '0' && n <= '9') - return n - '0'; - - if (n >= 'A' && n <= 'F') - return n - 'A' + 10; - - if (n >= 'a' && n <= 'f') - return n - 'a' + 10; - - return -1; -} - -static int __init qnap_tsx09_parse_hex_byte(const char *b) -{ - int hi; - int lo; - - hi = qnap_tsx09_parse_hex_nibble(b[0]); - lo = qnap_tsx09_parse_hex_nibble(b[1]); - - if (hi < 0 || lo < 0) - return -1; - - return (hi << 4) | lo; -} - static int __init qnap_tsx09_check_mac_addr(const char *addr_str) { u_int8_t addr[6]; int i; for (i = 0; i < 6; i++) { - int byte; - /* * Enforce "xx:xx:xx:xx:xx:xx\n" format. */ if (addr_str[(i * 3) + 2] != ((i < 5) ? ':' : '\n')) return -1; - byte = qnap_tsx09_parse_hex_byte(addr_str + (i * 3)); - if (byte < 0) + if (hex2bin(addr[i], addr_str + (i * 3), 2)) return -1; - addr[i] = byte; } printk(KERN_INFO "tsx09: found ethernet mac address "); -- 1.7.8.rc3