From patchwork Thu Oct 15 13:02:31 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gong Qianyu X-Patchwork-Id: 530671 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id AE0211402BF for ; Fri, 16 Oct 2015 00:10:36 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D9CFA4B71E; Thu, 15 Oct 2015 15:10:04 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BZfsBoI9wmCF; Thu, 15 Oct 2015 15:10:04 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E159C4B692; Thu, 15 Oct 2015 15:09:54 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 86B114B6B1 for ; Thu, 15 Oct 2015 15:09:45 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1DYuqU2_OagN for ; Thu, 15 Oct 2015 15:09:45 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bn0107.outbound.protection.outlook.com [157.56.110.107]) by theia.denx.de (Postfix) with ESMTPS id 09A214B6D4 for ; Thu, 15 Oct 2015 15:09:32 +0200 (CEST) Received: from CH1PR03CA004.namprd03.prod.outlook.com (10.255.156.149) by DM2PR0301MB0782.namprd03.prod.outlook.com (10.160.97.153) with Microsoft SMTP Server (TLS) id 15.1.293.16; Thu, 15 Oct 2015 13:09:31 +0000 Received: from BL2FFO11FD056.protection.gbl (10.255.156.132) by CH1PR03CA004.outlook.office365.com (10.255.156.149) with Microsoft SMTP Server (TLS) id 15.1.300.14 via Frontend Transport; Thu, 15 Oct 2015 13:09:30 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD056.mail.protection.outlook.com (10.173.161.184) with Microsoft SMTP Server (TLS) id 15.1.293.9 via Frontend Transport; Thu, 15 Oct 2015 13:09:29 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t9FD95wY032237; Thu, 15 Oct 2015 06:09:26 -0700 From: Gong Qianyu To: Date: Thu, 15 Oct 2015 21:02:31 +0800 Message-ID: <1444914162-34502-7-git-send-email-Qianyu.Gong@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1444914162-34502-1-git-send-email-Qianyu.Gong@freescale.com> References: <1444914162-34502-1-git-send-email-Qianyu.Gong@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD056; 1:SCgYwsBVpYkQ/Mg+vkl+lOdftELk/O3oKobEaoZuBzb0MxApiUTeqRsPmhkHdtkidKiruUxaoDeVGm6NCT0szGmD8+9+nLjtuSpWI3x5R2h+xva5DE/hHW9u7JsOlgmbSe1+5bZsJCQMmNBhL95LDF2ixK1ykExcw8FucvqLxFlUKkz3YYhV9td01eWlHppfwdFwyNRiFyrewmZWnMoDyRenYDcu8H0LUAO7T4mEtBgIRLpQNe3KT8Au9pZVyrYOuJQSOAb9HDR0sU4Np78kVdgZtGix+nPxkU2Hp9hbkMJFLxDfVSBTyZnRAz83dMcPqSg6mEGdYHUn6EgbmvzyiILjyKAf9fNAUp+QHpqfoNkaW9pVCj5+dU9/0s53C+2NWCRHhCDOucPiG6CBdZzMNA== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(979002)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(105606002)(2351001)(106466001)(229853001)(104016004)(77096005)(2950100001)(97736004)(81156007)(6806005)(36756003)(92566002)(50226001)(5007970100001)(69596002)(5008740100001)(87936001)(450100001)(85426001)(19580395003)(19580405001)(86362001)(48376002)(50466002)(47776003)(46102003)(110136002)(5001960100002)(64706001)(107886002)(189998001)(76176999)(50986999)(5003940100001)(4001430100001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR0301MB0782; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0782; 2:jKJGiNPIlnj7HbPFwLzIXGpVm1dHxSB6dE4zp6TuBhggzxVDIQ4vGCxMT4ji0lCWHTsk+aXMNionqotI4StQAAufs7vKbMWFp8ckj75Dzxug/rNwGA2rjMylrVG4cEsPh8/MHaqf8Jxf8lJ6Xjr+eqzIv3FWFwIrvUs6S/GNeAQ=; 3:06bmrr60T+HHwj0C7ex7UDMzTwMkzClEthQ6qHV7scBG1zDjR8d/XOyEt4OwWo0pLDB5/3hjkben7MnNzCs9wtHy8jGTuwAgZL9rkgz0hj8xLks26vQjmu6mFJgxMNZRkxMO/nat8kviJv4GSamvjh6YoKxkiCDJ8XI4Caqe2sx6p0RVx4t3LjWuK4biyCUPX4TbjSDqcHAFSkujfBvxW2OjyeYe2fS3D5NQxP0dE/8=; 25:lAkHtTfOQjwowm+4PZy2eMdDwDruiHjMB2Ot7WxKKfYuw0cdL1M67QBDJDEIQU64aXoJF5J24NK6DkacwhWgpzayQkbBI4pxZ/0iV2WV8RAqEOi9Hq8Elh021LJMAQlMXHDS0PYW1kpHvtJ2nAudXftcHvrFh+wfrMl9TKaZbU/biVzL4r1Qa4xxRoqx7mhnNIiSkKAZzxUbNBgRWCDDysuC4iJv1yRrqh82W2J5G3VhtRJS1OyZGEg5pVVyk4k1ISEk2dkyx6UPFJlA6o0Bzg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB0782; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0782; 20:qhypycXZtbSsfyZpdfZmhfLDmu12hRfrzTDE+K2euOccaW+8xyk6QEZYJobzwNsDxITeXLC6RtcwinGmKvmB9cu5DEBmB9Tr0I8JO539Z4zP33Jji4RVXvLPUHY/dkpTuJRYsVBtiNJHgXbzr502/M3/gCgqAYiEIubHI2qtEt8YjPF24RTMZTEhyJVhBWZURNWVQ6MnAwP4FrCidJvrqhqrKF+YrXEztqm3Cb9Qm4FJ6LxZuf70A+PlRIZRgN9g9xpXW0P+AaXiG5qMFjK6/MkiG9XPigqya0dzSkEyWVegOKKq7LbPfeUQ1MzDxJL6lmv4sGpYVmaI1ouHv55QNsr56Dgi6+tt2rIxwbarsBw=; 4:fxfWyYnxkjBmFdu7d9ix7xpWrIYZH5KKchzsmXLlFSc5ScFFmMUj7WiUlZcnwe7ry6uZVw1BlF9xoLHUmKK2BkroQKRsTvv5WqMuNkcW4UJYgZGrt8BSgs+kyEZPM6c6Y+/YyAG59f9uBS9MTkBn9doC9l3BHkCWFmP0Gcag0Vq2NQiT2KkcJ5erX0yH7kQpvpaXvLDkUM+HE6tZFVwDDInZn+KmxJ19pxjaHdYWUf8zRRlDpWhAKMtjoEE7ou7QxB2xvNyhwU6wAKQAreaUhUSJXQxG5ycRw+vCcRM6AAqzRV90yELF0BQZXy2ZWnAduTBJPuCYj5HcNcuWD72ewJPA0eFSgVsyjaIqyjGSrx0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001); SRVR:DM2PR0301MB0782; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0301MB0782; X-Forefront-PRVS: 0730093765 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0782; 23:lUkXi3frEWsc5erF7wsy0yRiQcMqoL5A0j2TUMR?= =?us-ascii?Q?Y7k+F/LRCmt1TJsNeWAiM1j1jFnKQ4462L2wPm/kkM655YIPtWcn0hYMJ0ih?= =?us-ascii?Q?fX/jBqsdOz7k+/bdsmzydqNve+gEwhI1fcM0VmtK9LOD7QDwkEea8phJzNyE?= =?us-ascii?Q?qKcIqdpaxElA2+RgMLmeyJMN6gZtv9WphTMzSmDU1FvFjhMJwJuqLjfb+kxk?= =?us-ascii?Q?6pE4GrVsnOQanRN4qUJUSsc5N4/pvOKZdiIn/dIbg8VLn/gdlovf65JS1SZ/?= =?us-ascii?Q?AnH+8ytGIyVC5o9og6XHXn83yDtiAcrt1kClUIri0wCKGbpq5t2AgbP5ZKJ0?= =?us-ascii?Q?U5ivg8y4slW6aFzJQxjcQOL5cL605w6PoNGW7tTLHW+jg6gngTW4LHFp+0vj?= =?us-ascii?Q?F5KCQxACISiInvOmkyJjNmdR029cY+TYjLkWGilaLjGYGinLbh34RP/64psD?= =?us-ascii?Q?8k6ef4MmXnm9GnqFA2yMLMm5tM5rprWRMBf8+D7u5R007DwNNr4dnbkdbr6X?= =?us-ascii?Q?g7UyPG3mB1iHgHa7ODOjmXlHlDKkfcg6R67FBtxbbYYGz4kAjoWlk8e2eQ+A?= =?us-ascii?Q?QFW2UwKPUj7qLAQJijA/RJtZEOKBjZQizO26Ax2XeNd13LIpQMY/Q8nc0JrM?= =?us-ascii?Q?gZFBGmnuWQclTsAXMJ+Hjo1KMcfA9gHkI26DZBkmnr0DzC74wYFLgrr/HeZR?= =?us-ascii?Q?v23sgrvhlKLY357nD4JbWH9qiQBC9119VleBA1TfMEKOaHpnunmHO1GivfNp?= =?us-ascii?Q?E2wTmvaCF6ifsK2Q1JLC7tg9AKmEWk3VPAz6RQqccNC0u3YEkWLh4ctdwXBe?= =?us-ascii?Q?VOHCPItMOY/sxRWEI0O+NTrKK3GgxsDpydBw6FsPkzZPO/9BOtyQQLZs/4Z1?= =?us-ascii?Q?uWu7EPTfE3tuQJpTOwO4LIvwUoUxjNTZrzuPU2DprP57H0uKWwwnrvaz5tUc?= =?us-ascii?Q?kBRrfGeoXgBvJ2WcYT6z+SBMrnFwQ0Uj6vc1tFj9LtxCG13mpr5aHHvQfGmZ?= =?us-ascii?Q?gszK7Y+bVu/39eq4p3+EZOlDZH0eNt783HZPnmmNxD22cJrn3X2GMSF6hX4E?= =?us-ascii?Q?kQye94nwPs/ZLuNVfM17LzIGGDCZBLYRYZ92h+VKLo2wwOj7s2gGg6snVQnO?= =?us-ascii?Q?oRKTmxF/eBdtzpe/OmoqT43e5x90Bg8bovNBl9VtJZZxhN/2yQZMy298Ehxb?= =?us-ascii?Q?WF3jCP30C0Uefy2Nfy5fzc5E+mjDvsig388ZIDs/lBVxwJlS4z8Fhbx5qoQ?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0782; 5:NTr5trQ9xBKcWQjKD9gyWW9etFxAb9VaJCZlSw5hZCdsXCFJpPDwFvLsNAVSfSmNIohcojHWRCbzrXTtm3vFHCEWbZEMwR1S2P9ezE5rn1MnVh9/5KwsKb+yNxX1k/Va02JGclh0olLxc+cDzYi8Bw==; 24:ZJKuv+yzDPuW6+smYcMqNbJ+qzOJHNXJjy5j4ZMCt7rVKuh/VQN2jmAugfzyqbcTE1dyLm8HN3ftPM2R937NUcNs+N/DMsXImkmakRSMiAU=; 20:ri4hRpSPmiadAnTOJQRKaFESEKv7gQL/gtroMBNQMoVhjIvMlCucKYg1KxRcGO/TUahoX/z1C1gM6nmzOOuopQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2015 13:09:29.9918 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0782 Cc: B07421@freescale.com, Gong Qianyu , alison.wang@freescale.com, B48286@freescale.com, Wenbin.Song@freescale.com Subject: [U-Boot] [Patch V5 06/17] net/fm: Make the return value logic consistent with convention X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Hou Zhiqiang In convention, the '0' is a normal return value indicating there isn't an error. While some functions of FMan IM driver treat '0' as an error return value. Signed-off-by: Hou Zhiqiang Signed-off-by: Gong Qianyu --- V5: - No change. V4: - No change. V3: - New patch. drivers/net/fm/eth.c | 60 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c index 6451dce..d7d064b 100644 --- a/drivers/net/fm/eth.c +++ b/drivers/net/fm/eth.c @@ -211,7 +211,7 @@ static int fm_eth_rx_port_parameter_init(struct fm_eth *fm_eth) FM_PRAM_SIZE, FM_PRAM_ALIGN); if (!pram) { printf("%s: No muram for Rx global parameter\n", __func__); - return 0; + return -ENOMEM; } fm_eth->rx_pram = pram; @@ -232,14 +232,16 @@ static int fm_eth_rx_port_parameter_init(struct fm_eth *fm_eth) rx_bd_ring_base = malloc(sizeof(struct fm_port_bd) * RX_BD_RING_SIZE); if (!rx_bd_ring_base) - return 0; + return -ENOMEM; + memset(rx_bd_ring_base, 0, sizeof(struct fm_port_bd) * RX_BD_RING_SIZE); /* alloc Rx buffer from main memory */ rx_buf_pool = malloc(MAX_RXBUF_LEN * RX_BD_RING_SIZE); if (!rx_buf_pool) - return 0; + return -ENOMEM; + memset(rx_buf_pool, 0, MAX_RXBUF_LEN * RX_BD_RING_SIZE); debug("%s: rx_buf_pool = %p\n", __func__, rx_buf_pool); @@ -277,7 +279,7 @@ static int fm_eth_rx_port_parameter_init(struct fm_eth *fm_eth) /* set IM parameter ram pointer to Rx Frame Queue ID */ out_be32(&bmi_rx_port->fmbm_rfqid, pram_page_offset); - return 1; + return 0; } static int fm_eth_tx_port_parameter_init(struct fm_eth *fm_eth) @@ -296,7 +298,7 @@ static int fm_eth_tx_port_parameter_init(struct fm_eth *fm_eth) FM_PRAM_SIZE, FM_PRAM_ALIGN); if (!pram) { printf("%s: No muram for Tx global parameter\n", __func__); - return 0; + return -ENOMEM; } fm_eth->tx_pram = pram; @@ -313,7 +315,8 @@ static int fm_eth_tx_port_parameter_init(struct fm_eth *fm_eth) tx_bd_ring_base = malloc(sizeof(struct fm_port_bd) * TX_BD_RING_SIZE); if (!tx_bd_ring_base) - return 0; + return -ENOMEM; + memset(tx_bd_ring_base, 0, sizeof(struct fm_port_bd) * TX_BD_RING_SIZE); /* save it to fm_eth */ @@ -344,29 +347,35 @@ static int fm_eth_tx_port_parameter_init(struct fm_eth *fm_eth) /* set IM parameter ram pointer to Tx Confirmation Frame Queue ID */ out_be32(&bmi_tx_port->fmbm_tcfqid, pram_page_offset); - return 1; + return 0; } static int fm_eth_init(struct fm_eth *fm_eth) { + int ret; - if (!fm_eth_rx_port_parameter_init(fm_eth)) - return 0; + ret = fm_eth_rx_port_parameter_init(fm_eth); + if (ret) + return ret; - if (!fm_eth_tx_port_parameter_init(fm_eth)) - return 0; + ret = fm_eth_tx_port_parameter_init(fm_eth); + if (ret) + return ret; - return 1; + return 0; } static int fm_eth_startup(struct fm_eth *fm_eth) { struct fsl_enet_mac *mac; + int ret; + mac = fm_eth->mac; /* Rx/TxBDs, Rx/TxQDs, Rx buff and parameter ram init */ - if (!fm_eth_init(fm_eth)) - return 0; + ret = fm_eth_init(fm_eth); + if (ret) + return ret; /* setup the MAC controller */ mac->init_mac(mac); @@ -381,7 +390,7 @@ static int fm_eth_startup(struct fm_eth *fm_eth) /* init bmi tx port, IM mode and disable */ bmi_tx_port_init(fm_eth->tx_port); - return 1; + return 0; } static void fmc_tx_port_graceful_stop_enable(struct fm_eth *fm_eth) @@ -628,7 +637,7 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg) /* alloc mac controller */ mac = malloc(sizeof(struct fsl_enet_mac)); if (!mac) - return 0; + return -ENOMEM; memset(mac, 0, sizeof(struct fsl_enet_mac)); /* save the mac to fm_eth struct */ @@ -643,7 +652,7 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg) init_tgec(mac, base, phyregs, MAX_RXBUF_LEN); #endif - return 1; + return 0; } static int init_phy(struct eth_device *dev) @@ -696,17 +705,18 @@ int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info) struct eth_device *dev; struct fm_eth *fm_eth; int i, num = info->num; + int ret; /* alloc eth device */ dev = (struct eth_device *)malloc(sizeof(struct eth_device)); if (!dev) - return 0; + return -ENOMEM; memset(dev, 0, sizeof(struct eth_device)); /* alloc the FMan ethernet private struct */ fm_eth = (struct fm_eth *)malloc(sizeof(struct fm_eth)); if (!fm_eth) - return 0; + return -ENOMEM; memset(fm_eth, 0, sizeof(struct fm_eth)); /* save off some things we need from the info struct */ @@ -721,8 +731,9 @@ int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info) fm_eth->max_rx_len = MAX_RXBUF_LEN; /* init global mac structure */ - if (!fm_eth_init_mac(fm_eth, reg)) - return 0; + ret = fm_eth_init_mac(fm_eth, reg); + if (ret) + return ret; /* keep same as the manual, we call FMAN1, FMAN2, DTSEC1, DTSEC2, etc */ if (fm_eth->type == FM_ETH_1G_E) @@ -743,8 +754,9 @@ int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info) fm_eth->enet_if = info->enet_if; /* startup the FM im */ - if (!fm_eth_startup(fm_eth)) - return 0; + ret = fm_eth_startup(fm_eth); + if (ret) + return ret; init_phy(dev); @@ -753,5 +765,5 @@ int fm_eth_initialize(struct ccsr_fman *reg, struct fm_eth_info *info) dev->enetaddr[i] = 0; eth_register(dev); - return 1; + return 0; }