[PATCH] staging: ft100: cleanup ft1000_usb.c

Belisko Marek marek.belisko at gmail.com
Mon Sep 27 13:21:42 UTC 2010


remove unused comments, check for memory leaks, add header.

Signed-off-by: Marek Belisko <marek.belisko at gmail.com>

---
 drivers/staging/ft1000/ft1000-usb/ft1000_usb.c |  145 +++++++----------------
 1 files changed, 44 insertions(+), 101 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
index 4c1774f..35b655d 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
@@ -1,33 +1,36 @@
-//=====================================================
-// CopyRight (C) 2007 Qualcomm Inc. All Rights Reserved.
-//
-//
-// This file is part of Express Card USB Driver
-//
-// $Id:
-//====================================================
-// 20090926; aelias; removed all compiler warnings; ubuntu 9.04;
2.6.28-15-generic
+/*
+ *  Express Card USB driver (ft1000)
+ *
+ *  Copyright (C) 2007 Qualcomm Inc. All Rights Reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc.,
+ *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *
+ */
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/usb.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
-#include "ft1000_usb.h"
-
-//#include <linux/sched.h>
-//#include <linux/ptrace.h>
-//#include <linux/slab.h>
-//#include <linux/string.h>
-//#include <linux/timer.h>
-//#include <linux/netdevice.h>
-//#include <linux/ioport.h>
-//#include <linux/delay.h>
-//#include <asm/io.h>
-//#include <asm/system.h>
 #include <linux/kthread.h>
 #include <linux/firmware.h>

+#include "ft1000_usb.h"
+
 MODULE_DESCRIPTION("FT1000 EXPRESS CARD DRIVER");
 MODULE_LICENSE("Dual MPL/GPL");
 MODULE_SUPPORTED_DEVICE("QFT FT1000 Express Cards");
@@ -80,22 +83,9 @@ int ft1000_poll_thread(void *arg)
 			}
 		}
 	}
-	//DEBUG("returned from polling thread\n");
 	return STATUS_SUCCESS;
 }

-//---------------------------------------------------------------------------
-// Function:    ft1000_probe
-//
-// Parameters:  struct usb_interface *interface  - passed by USB core
-//              struct usb_device_id *id         - passed by USB core
-// Returns:     0 - success
-//
-// Description: This function is invoked when the express card is plugged in
-//
-// Notes:
-//
-//---------------------------------------------------------------------------
 static int ft1000_probe(struct usb_interface *interface,
 			const struct usb_device_id *id)
 {
@@ -117,7 +107,6 @@ static int ft1000_probe(struct usb_interface *interface,

 	memset(ft1000dev, 0, sizeof(*ft1000dev));

-	//get usb device
 	dev = interface_to_usbdev(interface);
 	DEBUG("ft1000_probe: usb device descriptor info:\n");
 	DEBUG("ft1000_probe: number of configuration is %d\n",
@@ -184,7 +173,7 @@ static int ft1000_probe(struct usb_interface *interface,
 	ret = request_firmware(&dsp_fw, "ft3000.img", &dev->dev);
 	if (ret < 0) {
 		printk("Error reading firmware. ret:%d\n", ret);	
-		return -ENOMEM;
+		return -EIO;
 	}	
 	
 	size = max_t(uint, dsp_fw->size, 4096);
@@ -192,31 +181,28 @@ static int ft1000_probe(struct usb_interface *interface,
 	
 	if (!pFileStart) {
 		release_firmware(dsp_fw);
-		return -ENOMEM;
+		goto err_mem;
 	}

 	memcpy(pFileStart, dsp_fw->data, dsp_fw->size);
 	FileLength = dsp_fw->size;
 	release_firmware(dsp_fw);

-	//download dsp image
 	DEBUG("ft1000_probe: start downloading dsp image...\n");
 	init_ft1000_netdev(ft1000dev);
 	pft1000info = (FT1000_INFO *) netdev_priv(ft1000dev->net);

-//    DEBUG("In probe: pft1000info=%x\n", pft1000info);
          // aelias [-] reason: warning: format ???%x??? expects type
???unsigned int???, but argument 2 has type ???struct FT1000_INFO *???
-	DEBUG("In probe: pft1000info=%x\n", (unsigned int)pft1000info);	//
aelias [+] reason: up
+	DEBUG("In probe: pft1000info=%x\n", (unsigned int)pft1000info);	

 	dsp_reload(ft1000dev);
-	gPollingfailed = FALSE;	//mbelian
+	gPollingfailed = FALSE;	
 	pft1000info->pPollThread =
 	    kthread_run(ft1000_poll_thread, ft1000dev, "ft1000_poll");
-	msleep(500);		//mbelian
+	msleep(500);	

 	if (pft1000info->DSP_loading) {
-		DEBUG
-		    ("ERROR!!!! RETURN FROM ft1000_probe **********************\n");
-		return 0;
+		DEBUG("ERROR!!!! RETURN FROM ft1000_probe\n");
+		goto err_busy;
 	}

 	while (!pft1000info->CardReady) {
@@ -224,36 +210,28 @@ static int ft1000_probe(struct usb_interface *interface,
 			if (pft1000info->pPollThread) {
 				kthread_stop(pft1000info->pPollThread);
 			}
-			return 0;
+			goto err_busy;
 		}
 		msleep(100);
 		DEBUG("ft1000_probe::Waiting for Card Ready\n");
 	}

-	//initialize network device
 	DEBUG("ft1000_probe::Card Ready!!!! Registering network device\n");

 	reg_ft1000_netdev(ft1000dev, interface);

 	pft1000info->NetDevRegDone = 1;

-	ft1000InitProc(ft1000dev->net);	// +mbelian
+	ft1000InitProc(ft1000dev->net);

 	return 0;
+err_busy:
+	kfree(pFileStart);
+	return -EBUSY;
+err_mem:
+	return -ENOMEM;
 }

-//---------------------------------------------------------------------------
-// Function:    ft1000_disconnect
-//
-// Parameters:  struct usb_interface *interface  - passed by USB core
-//
-// Returns:     0 - success
-//
-// Description: This function is invoked when the express card is plugged out
-//
-// Notes:
-//
-//---------------------------------------------------------------------------
 static void ft1000_disconnect(struct usb_interface *interface)
 {
 	FT1000_INFO *pft1000info;
@@ -261,11 +239,10 @@ static void ft1000_disconnect(struct
usb_interface *interface)
 	DEBUG("ft1000_disconnect is called\n");

 	pft1000info = (PFT1000_INFO) usb_get_intfdata(interface);
-//    DEBUG("In disconnect pft1000info=%x\n", pft1000info);     //
aelias [-] reason: warning: format ???%x??? expects type ???unsigned
int???, but argument 2 has type ???struct FT1000_INFO *???
-	DEBUG("In disconnect pft1000info=%x\n", (unsigned
int)pft1000info);	// aelias [+] reason: up
+	DEBUG("In disconnect pft1000info=%x\n", (unsigned int)pft1000info);

 	if (pft1000info) {
-		ft1000CleanupProc(pft1000info);	//+mbelian
+		ft1000CleanupProc(pft1000info);
 		if (pft1000info->pPollThread) {
 			kthread_stop(pft1000info->pPollThread);
 		}
@@ -275,14 +252,10 @@ static void ft1000_disconnect(struct
usb_interface *interface)
 		if (pft1000info->pFt1000Dev->net) {
 			DEBUG("ft1000_disconnect: destroy char driver\n");
 			ft1000_DestroyDevice(pft1000info->pFt1000Dev->net);
-			//DEBUG("ft1000_disconnect: calling ft1000_close\n");
-			//ft1000_close(pft1000info->pFt1000Dev->net);
-			//DEBUG("ft1000_disconnect: ft1000_close is called\n");
 			unregister_netdev(pft1000info->pFt1000Dev->net);
 			DEBUG
 			    ("ft1000_disconnect: network device unregisterd\n");
 			free_netdev(pft1000info->pFt1000Dev->net);
-
 		}

 		usb_free_urb(pft1000info->pFt1000Dev->rx_urb);
@@ -290,40 +263,22 @@ static void ft1000_disconnect(struct
usb_interface *interface)

 		DEBUG("ft1000_disconnect: urb freed\n");

-		kfree(pft1000info->pFt1000Dev);	//+mbelian
+		kfree(pft1000info->pFt1000Dev);
 	}
-	//terminate other kernel threads
-	//in multiple instances case, first find the device
-	//in the link list
-    /**if (pPollThread)
-    {
-        kthread_stop(pPollThread);
-        DEBUG("Polling thread is killed \n");
-    }**/
+
+	if (pFileStart)
+		kfree(pFileStart);

 	return;
 }

 static struct usb_driver ft1000_usb_driver = {
-	//.owner =    THIS_MODULE,
 	.name = "ft1000usb",
 	.probe = ft1000_probe,
 	.disconnect = ft1000_disconnect,
 	.id_table = id_table,
 };

-//---------------------------------------------------------------------------
-// Function:    usb_ft1000_init
-//
-// Parameters:  none
-//
-// Returns:     0 - success
-//
-// Description: The entry point of the module, register the usb driver
-//
-// Notes:
-//
-//---------------------------------------------------------------------------
 static int __init usb_ft1000_init(void)
 {
 	int ret = 0;
@@ -337,18 +292,6 @@ static int __init usb_ft1000_init(void)
 	return ret;
 }

-//---------------------------------------------------------------------------
-// Function:    usb_ft1000_exit
-//
-// Parameters:
-//
-// Returns:
-//
-// Description: Moudle unload function, deregister usb driver
-//
-// Notes:
-//
-//---------------------------------------------------------------------------
 static void __exit usb_ft1000_exit(void)
 {
 	DEBUG("Deregister the driver\n");
-- 
1.7.1



More information about the devel mailing list