linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Add misc device handling.
@ 2010-11-23 12:29 Marek Belisko
  2010-11-23 12:29 ` [PATCH 1/6] staging: ft1000: Remove functions which create devices in kernel space Marek Belisko
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Following patch series use misc device instead of character device
creation by kernel space (which is obvious obsolete and wrong).
We add limitation for maximum 3 devices to be connected simultaneously.
This interface is used only for testing and not influence basic device 
functionality.

Marek Belisko (6):
  staging: ft1000: Remove functions which create devices in kernel
    space.
  staging: ft1000: Use misc device instead self created device.
  staging: ft1000: Remove unused variables.
  staging: ft1000: Remove unused headers.
  staging: ft1000: Remove dead code
  staging: ft1000: Check return value of ft1000_CreateDevice().

 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |  272 ++++++----------------
 drivers/staging/ft1000/ft1000-usb/ft1000_hw.c    |   11 +-
 drivers/staging/ft1000/ft1000-usb/ft1000_usb.h   |    3 -
 3 files changed, 79 insertions(+), 207 deletions(-)


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/6] staging: ft1000: Remove functions which create devices in kernel space.
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-23 12:29 ` [PATCH 2/6] staging: ft1000: Use misc device instead self created device Marek Belisko
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Remove exec_mknod() and rm_mknod() helpers which was used for
device nodes creating/removing in kernel space.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   93 ----------------------
 1 files changed, 0 insertions(+), 93 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
index 76cee9e..1aec926 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
@@ -78,88 +78,6 @@ static struct file_operations ft1000fops =
 	.llseek		= no_llseek,
 };
 
-
-
-
-//---------------------------------------------------------------------------
-// Function:    exec_mknod
-//
-// Parameters:
-//
-// Returns:
-//
-// Description:
-//
-// Notes:
-//
-//---------------------------------------------------------------------------
-static int exec_mknod (void *pdata)
-{
-	struct ft1000_info *info;
-    char mjnum[4];
-    char minornum[4];
-    char temp[32];
-    int retcode;
-//    int i;					//aelias [-] reason : unused variable
-    char *envp[] = { "HOME=/", "PATH=/usr/bin:/bin", NULL };
-    char *argv[]={"-m 666",temp,"c",mjnum,minornum,NULL};
-
-    info = pdata;
-    DEBUG("ft1000_chdev:exec_mknod is called with major number = %d\n", info->DeviceMajor);
-    sprintf(temp, "%s%s", "/dev/", info->DeviceName) ;
-    sprintf(mjnum, "%d", info->DeviceMajor);
-    sprintf(minornum, "%d", info->CardNumber);
-
-    //char *argv[]={"mknod","-m 666",temp,"c",mjnum,minornum,NULL};
-//    char *argv[]={"-m 666",temp,"c",mjnum,minornum,NULL};
-
-    //for (i=0; i<7;i++)
-    //    DEBUG("argv[%d]=%s\n", i, argv[i]);
-
-
-    retcode = call_usermodehelper ("/bin/mknod", argv, envp, 1);
-    if (retcode) {
-        DEBUG("ft1000_chdev:exec_mknod failed to make the node: retcode = %d\n", retcode);
-    }
-
-
-
-    return retcode;
-
-}
-
-//---------------------------------------------------------------------------
-// Function:    rm_mknod
-//
-// Description: This module removes the FT1000 device file
-//
-//---------------------------------------------------------------------------
-static int rm_mknod (void *pdata)
-{
-
-	struct ft1000_info *info;
-    //char *argv[4]={"rm", "-f", "/dev/FT1000", NULL};
-    int retcode;
-    char temp[32];
-    char *argv[]={"rm", "-f", temp, NULL};
-
-	info = (struct ft1000_info *)pdata;
-    DEBUG("ft1000_chdev:rm_mknod is called for device %s\n", info->DeviceName);
-    sprintf(temp, "%s%s", "/dev/", info->DeviceName) ;
-
-//    char *argv[]={"rm", "-f", temp, NULL};
-
-    retcode = call_usermodehelper ("/bin/rm", argv, NULL, 1);
-    if (retcode) {
-        DEBUG("ft1000_chdev:rm_mknod failed to remove the node: retcode = %d\n", retcode);
-    }
-    else
-        DEBUG("ft1000_chdev:rm_mknod done!\n");
-
-
-    return retcode;
-
-}
 //---------------------------------------------------------------------------
 // Function:    ft1000_get_buffer
 //
@@ -238,15 +156,10 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 	struct ft1000_info *info = netdev_priv(dev->net);
     int result;
     int i;
-    pid_t pid;
 
     // make a new device name
     sprintf(info->DeviceName, "%s%d", "FT100", info->CardNumber);
 
-    // Delete any existing FT1000 node
-    pid = kernel_thread (rm_mknod,(void *)info, 0);
-    msleep(1000);
-
     DEBUG("ft1000_CreateDevice: number of instance = %d\n", ft1000_flarion_cnt);
     DEBUG("DeviceCreated = %x\n", info->DeviceCreated);
 
@@ -282,9 +195,6 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 	DEBUG("ft1000_PcdCreateDevice: device major = %d\n", info->DeviceMajor);
     }
 
-    // Create a thread to call user mode app to mknod
-    pid = kernel_thread (exec_mknod, (void *)info, 0);
-
     // initialize application information
 
 //    if (ft1000_flarion_cnt == 0) {
@@ -350,7 +260,6 @@ void ft1000_DestroyDevice(struct net_device *dev)
 {
 	struct ft1000_info *info = netdev_priv(dev);
     int result = 0;
-    pid_t pid;
 		int i;
 	struct dpram_blk *pdpram_blk;
 	struct dpram_blk *ptr;
@@ -366,8 +275,6 @@ void ft1000_DestroyDevice(struct net_device *dev)
 		DEBUG("ft1000_DestroyDevice: unregistered device \"%s\", result = %d\n",
 					   info->DeviceName, result);
 
-       pid = kernel_thread (rm_mknod, (void *)info, 0);
-
         // Make sure we free any memory reserve for slow Queue
         for (i=0; i<MAX_NUM_APP; i++) {
             while (list_empty(&info->app_info[i].app_sqlist) == 0) {
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
  2010-11-23 12:29 ` [PATCH 1/6] staging: ft1000: Remove functions which create devices in kernel space Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-23 13:53   ` Jiri Slaby
  2010-11-23 12:29 ` [PATCH 3/6] staging: ft1000: Remove unused variables Marek Belisko
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Use simple misc device for ioctl driver funtionality testing.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
 1 files changed, 77 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
index 1aec926..d1784a3 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
@@ -32,6 +32,7 @@
 #include <linux/poll.h>
 #include <linux/netdevice.h>
 #include <linux/delay.h>
+#include <linux/miscdevice.h>
 
 #include <linux/fs.h>
 #include <linux/kmod.h>
@@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
 	.llseek		= no_llseek,
 };
 
+struct ft1000_misc_device {
+	struct miscdevice dev;
+	int inf_id;
+};
+
+#define FREE_ID (0xFF)
+
+/* we support just 3 devices */
+#define MAX_DEVICE 3
+
+static struct ft1000_misc_device ft1000dev[MAX_DEVICE] = {
+	[0] = {
+		.dev = {
+			.minor = MISC_DYNAMIC_MINOR,
+			.name = "ft1000_1",
+			.nodename = "/net/ft1000_1",
+			.fops = &ft1000fops,
+		},
+		.inf_id = FREE_ID,
+	},
+	[1] = {
+		.dev = {
+			.minor = MISC_DYNAMIC_MINOR,
+			.name = "ft1000_2",
+			.nodename = "/net/ft1000_2",
+			.fops = &ft1000fops,
+		},
+		.inf_id = FREE_ID,
+	},
+	[2] = {
+		.dev = {
+			.minor = MISC_DYNAMIC_MINOR,
+			.name = "ft1000_3",
+			.nodename = "/net/ft1000_3",
+			.fops = &ft1000fops,
+		},
+		.inf_id = FREE_ID,
+	},
+};
+
+
 //---------------------------------------------------------------------------
 // Function:    ft1000_get_buffer
 //
@@ -157,8 +199,17 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
     int result;
     int i;
 
-    // make a new device name
-    sprintf(info->DeviceName, "%s%d", "FT100", info->CardNumber);
+	for (i = 0; i < MAX_DEVICE; i++) {
+		if (ft1000dev[i].inf_id == FREE_ID)
+			break;
+	}
+
+	if (i == MAX_DEVICE) {
+		DEBUG("Max number of devices reached.\n");
+		return -ENODEV;
+	}
+
+	ft1000dev[i].inf_id = info->CardNumber;
 
     DEBUG("ft1000_CreateDevice: number of instance = %d\n", ft1000_flarion_cnt);
     DEBUG("DeviceCreated = %x\n", info->DeviceCreated);
@@ -176,17 +227,17 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 
 
     // register the device
-    DEBUG("ft1000_CreateDevice: \"%s\" device registration\n", info->DeviceName);
+	DEBUG("ft1000_CreateDevice: \"%s\" device registration\n",
+		ft1000dev[i].dev.nodename);
     info->DeviceMajor = 0;
+	result = misc_register(&ft1000dev[i].dev);
+	if (result) {
+		DEBUG("%s: return:  %d\n", __func__, result);
+		return result;
+	}
 
-    result = register_chrdev(info->DeviceMajor, info->DeviceName, &ft1000fops);
-    if (result < 0)
-    {
-	DEBUG("ft1000_CreateDevice: unable to get major %d\n", info->DeviceMajor);
-	return result;
-    }
-
-    DEBUG("ft1000_CreateDevice: registered char device \"%s\"\n", info->DeviceName);
+	DEBUG("ft1000_CreateDevice: registered misc device \"%s\"\n",
+		ft1000dev[i].dev.nodename);
 
     // save a dynamic device major number
     if (info->DeviceMajor == 0)
@@ -271,9 +322,22 @@ void ft1000_DestroyDevice(struct net_device *dev)
     if (info->DeviceCreated)
 	{
         ft1000_flarion_cnt--;
-		unregister_chrdev(info->DeviceMajor, info->DeviceName);
+		for (i = 0; i < MAX_DEVICE; i++) {
+			if (info->CardNumber == ft1000dev[i].inf_id)
+				break;
+		}
+
+		if (i == MAX_DEVICE) {
+			DEBUG("Device couldn't be found\n");
+			return;
+		}
+
 		DEBUG("ft1000_DestroyDevice: unregistered device \"%s\", result = %d\n",
-					   info->DeviceName, result);
+			ft1000dev[i].dev.nodename, result);
+
+		misc_deregister(&ft1000dev[i].dev);
+		ft1000dev[i].inf_id = FREE_ID;
+
 
         // Make sure we free any memory reserve for slow Queue
         for (i=0; i<MAX_NUM_APP; i++) {
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/6] staging: ft1000: Remove unused variables.
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
  2010-11-23 12:29 ` [PATCH 1/6] staging: ft1000: Remove functions which create devices in kernel space Marek Belisko
  2010-11-23 12:29 ` [PATCH 2/6] staging: ft1000: Use misc device instead self created device Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-23 12:29 ` [PATCH 4/6] staging: ft1000: Remove unused headers Marek Belisko
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Remove various variables which was used in old character device
interface. When use misc device variables aren't necessary anymore
so remove them.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   22 ----------------------
 drivers/staging/ft1000/ft1000-usb/ft1000_hw.c    |    2 --
 drivers/staging/ft1000/ft1000-usb/ft1000_usb.h   |    3 ---
 3 files changed, 0 insertions(+), 27 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
index d1784a3..8d2c059 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
@@ -212,24 +212,15 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 	ft1000dev[i].inf_id = info->CardNumber;
 
     DEBUG("ft1000_CreateDevice: number of instance = %d\n", ft1000_flarion_cnt);
-    DEBUG("DeviceCreated = %x\n", info->DeviceCreated);
 
     //save the device info to global array
     pdevobj[info->CardNumber] = dev;
 
     DEBUG("ft1000_CreateDevice: ******SAVED pdevobj[%d]=%p\n", info->CardNumber, pdevobj[info->CardNumber]);	//aelias [+] reason:up
 
-    if (info->DeviceCreated)
-    {
-	DEBUG("ft1000_CreateDevice: \"%s\" already registered\n", info->DeviceName);
-	return -EIO;
-    }
-
-
     // register the device
 	DEBUG("ft1000_CreateDevice: \"%s\" device registration\n",
 		ft1000dev[i].dev.nodename);
-    info->DeviceMajor = 0;
 	result = misc_register(&ft1000dev[i].dev);
 	if (result) {
 		DEBUG("%s: return:  %d\n", __func__, result);
@@ -239,12 +230,6 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 	DEBUG("ft1000_CreateDevice: registered misc device \"%s\"\n",
 		ft1000dev[i].dev.nodename);
 
-    // save a dynamic device major number
-    if (info->DeviceMajor == 0)
-    {
-	info->DeviceMajor = result;
-	DEBUG("ft1000_PcdCreateDevice: device major = %d\n", info->DeviceMajor);
-    }
 
     // initialize application information
 
@@ -291,7 +276,6 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 //                                  S_IFCHR | S_IRUGO | S_IWUGO, &ft1000fops, NULL);
 
 
-    info->DeviceCreated = TRUE;
     ft1000_flarion_cnt++;
 
     return result;
@@ -319,8 +303,6 @@ void ft1000_DestroyDevice(struct net_device *dev)
 
 
 
-    if (info->DeviceCreated)
-	{
         ft1000_flarion_cnt--;
 		for (i = 0; i < MAX_DEVICE; i++) {
 			if (info->CardNumber == ft1000dev[i].inf_id)
@@ -362,12 +344,8 @@ void ft1000_DestroyDevice(struct net_device *dev)
 
 //        devfs_unregister(ft1000Handle[info->CardNumber]);
 
-		info->DeviceCreated = FALSE;
 
 		pdevobj[info->CardNumber] = NULL;
-	}
-
-
 }
 
 //---------------------------------------------------------------------------
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index 1ca01e2..57a235f 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -834,8 +834,6 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
     pInfo->ft1000_reset = ft1000_reset;
     pInfo->mediastate = 0;
     pInfo->fifo_cnt = 0;
-    pInfo->DeviceCreated = FALSE;
-    pInfo->DeviceMajor = 0;
     pInfo->CurrentInterruptEnableMask = ISR_DEFAULT_MASK;
     pInfo->InterruptsEnabled = FALSE;
     pInfo->CardReady = 0;
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
index a07db26..1572985 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.h
@@ -502,12 +502,9 @@ struct ft1000_info {
     int DSPResetNum;
     int NumIOCTLBufs;
     int IOCTLBufLvl;
-    int DeviceCreated;
     int CardReady;
     int NetDevRegDone;
     u8 CardNumber;
-    u8 DeviceName[15];
-    int DeviceMajor;
     int registered;
     int mediastate;
     int dhcpflg;
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/6] staging: ft1000: Remove unused headers.
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
                   ` (2 preceding siblings ...)
  2010-11-23 12:29 ` [PATCH 3/6] staging: ft1000: Remove unused variables Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-29 19:43   ` Greg KH
  2010-11-23 12:29 ` [PATCH 5/6] staging: ft1000: Remove dead code Marek Belisko
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |    9 ---------
 1 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
index 8d2c059..3df4b4c 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
@@ -24,23 +24,14 @@
 // 6/05/06    Whc                Porting to Linux 2.6.9
 //
 //---------------------------------------------------------------------------
-#include <linux/module.h>
-#include <linux/kernel.h>
 #include <linux/sched.h>
-#include <linux/signal.h>
-#include <linux/errno.h>
 #include <linux/poll.h>
 #include <linux/netdevice.h>
 #include <linux/delay.h>
 #include <linux/miscdevice.h>
-
-#include <linux/fs.h>
-#include <linux/kmod.h>
 #include <linux/ioctl.h>
-#include <linux/unistd.h>
 
 #include "ft1000_usb.h"
-//#include "ft1000_ioctl.h"
 
 static int ft1000_flarion_cnt = 0;
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/6] staging: ft1000: Remove dead code
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
                   ` (3 preceding siblings ...)
  2010-11-23 12:29 ` [PATCH 4/6] staging: ft1000: Remove unused headers Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-23 12:29 ` [PATCH 6/6] staging: ft1000: Check return value of ft1000_CreateDevice() Marek Belisko
  2010-11-29 19:44 ` [PATCH 0/6] Add misc device handling Greg KH
  6 siblings, 0 replies; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   68 +---------------------
 1 files changed, 1 insertions(+), 67 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
index 3df4b4c..768cad0 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
@@ -35,8 +35,6 @@
 
 static int ft1000_flarion_cnt = 0;
 
-//need to looking usage of ft1000Handle
-
 static int ft1000_ChOpen (struct inode *Inode, struct file *File);
 static unsigned int ft1000_ChPoll(struct file *file, poll_table *wait);
 static long ft1000_ChIoctl(struct file *File, unsigned int Command,
@@ -45,7 +43,6 @@ static int ft1000_ChRelease (struct inode *Inode, struct file *File);
 
 // Global pointer to device object
 static struct ft1000_device *pdevobj[MAX_NUM_CARDS + 2];
-//static devfs_handle_t ft1000Handle[MAX_NUM_CARDS];
 
 // List to free receive command buffer pool
 struct list_head freercvpool;
@@ -55,12 +52,6 @@ spinlock_t free_buff_lock;
 
 int numofmsgbuf = 0;
 
-// Global variable to indicate that all provisioning data is sent to DSP
-//bool fProvComplete;
-
-//
-// Table of entry-point routines for char device
-//
 static struct file_operations ft1000fops =
 {
 	.unlocked_ioctl	= ft1000_ChIoctl,
@@ -207,9 +198,8 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
     //save the device info to global array
     pdevobj[info->CardNumber] = dev;
 
-    DEBUG("ft1000_CreateDevice: ******SAVED pdevobj[%d]=%p\n", info->CardNumber, pdevobj[info->CardNumber]);	//aelias [+] reason:up
+    DEBUG("ft1000_CreateDevice: ******SAVED pdevobj[%d]=%p\n", info->CardNumber, pdevobj[info->CardNumber]);
 
-    // register the device
 	DEBUG("ft1000_CreateDevice: \"%s\" device registration\n",
 		ft1000dev[i].dev.nodename);
 	result = misc_register(&ft1000dev[i].dev);
@@ -221,30 +211,6 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
 	DEBUG("ft1000_CreateDevice: registered misc device \"%s\"\n",
 		ft1000dev[i].dev.nodename);
 
-
-    // initialize application information
-
-//    if (ft1000_flarion_cnt == 0) {
-//
-//    	  DEBUG("Initialize free_buff_lock and freercvpool\n");
-//        spin_lock_init(&free_buff_lock);
-//
-//        // initialize a list of buffers to be use for queuing up receive command data
-//        INIT_LIST_HEAD (&freercvpool);
-//
-//        // create list of free buffers
-//        for (i=0; i<NUM_OF_FREE_BUFFERS; i++) {
-//            // Get memory for DPRAM_DATA link list
-//            pdpram_blk = kmalloc ( sizeof(struct dpram_blk), GFP_KERNEL );
-//            // Get a block of memory to store command data
-//            pdpram_blk->pbuffer = kmalloc ( MAX_CMD_SQSIZE, GFP_KERNEL );
-//            // link provisioning data
-//            list_add_tail (&pdpram_blk->list, &freercvpool);
-//        }
-//        numofmsgbuf = NUM_OF_FREE_BUFFERS;
-//    }
-
-
     // initialize application information
     info->appcnt = 0;
     for (i=0; i<MAX_NUM_APP; i++) {
@@ -260,13 +226,6 @@ int ft1000_CreateDevice(struct ft1000_device *dev)
         INIT_LIST_HEAD (&info->app_info[i].app_sqlist);
     }
 
-
-
-
-//    ft1000Handle[info->CardNumber] = devfs_register(NULL, info->DeviceName, DEVFS_FL_AUTO_DEVNUM, 0, 0,
-//                                  S_IFCHR | S_IRUGO | S_IWUGO, &ft1000fops, NULL);
-
-
     ft1000_flarion_cnt++;
 
     return result;
@@ -333,9 +292,6 @@ void ft1000_DestroyDevice(struct net_device *dev)
             }
         }
 
-//        devfs_unregister(ft1000Handle[info->CardNumber]);
-
-
 		pdevobj[info->CardNumber] = NULL;
 }
 
@@ -362,7 +318,6 @@ static int ft1000_ChOpen (struct inode *Inode, struct file *File)
         DEBUG("pdevobj[%d]=%p\n", i, pdevobj[i]); //aelias [+] reason: down
 
     if ( pdevobj[num] != NULL )
-        //info = (struct ft1000_info *)(pdevobj[num]->net->priv);
 		info = netdev_priv(pdevobj[num]->net);
     else
     {
@@ -591,7 +546,6 @@ static long ft1000_ChIoctl (struct file *File, unsigned int Command,
     case IOCTL_SET_DPRAM_CMD:
         {
             IOCTL_DPRAM_BLK *dpram_data = NULL;
-            //IOCTL_DPRAM_COMMAND dpram_command;
             u16 qtype;
             u16 msgsz;
 		struct pseudo_hdr *ppseudo_hdr;
@@ -637,19 +591,11 @@ static long ft1000_ChIoctl (struct file *File, unsigned int Command,
 		if (!dpram_data)
 			break;
 
-                //if ( copy_from_user(&(dpram_command.dpram_blk), (PIOCTL_DPRAM_BLK)Argument, msgsz+2) ) {
                 if ( copy_from_user(dpram_data, argp, msgsz+2) ) {
                     DEBUG("FT1000:ft1000_ChIoctl: copy fault occurred\n");
                     result = -EFAULT;
                 }
                 else {
-#if 0
-                    // whc - for debugging only
-                    ptr = (char *)&dpram_data;
-                    for (i=0; i<msgsz; i++) {
-                        DEBUG(1,"FT1000:ft1000_ChIoctl: data %d = 0x%x\n", i, *ptr++);
-                    }
-#endif
                     // Check if this message came from a registered application
                     for (i=0; i<MAX_NUM_APP; i++) {
                         if ( info->app_info[i].fileobject == &File->f_owner) {
@@ -665,7 +611,6 @@ static long ft1000_ChIoctl (struct file *File, unsigned int Command,
                     app_index = i;
 
                     // Check message qtype type which is the lower byte within qos_class
-                    //qtype = ntohs(dpram_command.dpram_blk.pseudohdr.qos_class) & 0xff;
                     qtype = ntohs(dpram_data->pseudohdr.qos_class) & 0xff;
                     //DEBUG("FT1000_ft1000_ChIoctl: qtype = %d\n", qtype);
                     if (qtype) {
@@ -705,7 +650,6 @@ static long ft1000_ChIoctl (struct file *File, unsigned int Command,
                         // Make sure we are within the limits of the slow queue memory limitation
                         if ( (msgsz < MAX_CMD_SQSIZE) && (msgsz > PSEUDOSZ) ) {
                             // Need to put sequence number plus new checksum for message
-                            //pmsg = (u16 *)&dpram_command.dpram_blk.pseudohdr;
                             pmsg = (u16 *)&dpram_data->pseudohdr;
 				ppseudo_hdr = (struct pseudo_hdr *)pmsg;
                             total_len = msgsz+2;
@@ -725,16 +669,6 @@ static long ft1000_ChIoctl (struct file *File, unsigned int Command,
                             }
                             pmsg++;
 				ppseudo_hdr = (struct pseudo_hdr *)pmsg;
-#if 0
-                            ptr = dpram_data;
-                            DEBUG("FT1000:ft1000_ChIoctl: Command Send\n");
-                            for (i=0; i<total_len; i++) {
-                                DEBUG("FT1000:ft1000_ChIoctl: data %d = 0x%x\n", i, *ptr++);
-                            }
-#endif
-                            //dpram_command.extra = 0;
-
-                            //CardSendCommand(ft1000dev,(unsigned char*)&dpram_command,total_len+2);
                             CardSendCommand(ft1000dev,(unsigned short*)dpram_data,total_len+2);
 
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 6/6] staging: ft1000: Check return value of ft1000_CreateDevice().
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
                   ` (4 preceding siblings ...)
  2010-11-23 12:29 ` [PATCH 5/6] staging: ft1000: Remove dead code Marek Belisko
@ 2010-11-23 12:29 ` Marek Belisko
  2010-11-29 19:44 ` [PATCH 0/6] Add misc device handling Greg KH
  6 siblings, 0 replies; 17+ messages in thread
From: Marek Belisko @ 2010-11-23 12:29 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: devel, linux-kernel, Marek Belisko

Registering of misc device could fail so add checking
of return value.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
---
 drivers/staging/ft1000/ft1000-usb/ft1000_hw.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index 57a235f..fd1f071 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -948,9 +948,12 @@ int reg_ft1000_netdev(struct ft1000_device *ft1000dev, struct usb_interface *int
 	return rc;
     }
 
-
-    //Create character device, implemented by Jim
-    ft1000_CreateDevice(ft1000dev);
+	rc = ft1000_CreateDevice(ft1000dev);
+	if (rc) {
+		DEBUG("Could not register misc device :%d\n", rc);
+		free_netdev(netdev);
+		return rc;
+	}
 
     DEBUG ("reg_ft1000_netdev returned\n");
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-23 12:29 ` [PATCH 2/6] staging: ft1000: Use misc device instead self created device Marek Belisko
@ 2010-11-23 13:53   ` Jiri Slaby
  2010-11-23 14:00     ` Belisko Marek
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Slaby @ 2010-11-23 13:53 UTC (permalink / raw)
  To: Marek Belisko; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On 11/23/2010 01:29 PM, Marek Belisko wrote:
> Use simple misc device for ioctl driver funtionality testing.
> 
> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
> ---
>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>  1 files changed, 77 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> index 1aec926..d1784a3 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> @@ -32,6 +32,7 @@
>  #include <linux/poll.h>
>  #include <linux/netdevice.h>
>  #include <linux/delay.h>
> +#include <linux/miscdevice.h>
>  
>  #include <linux/fs.h>
>  #include <linux/kmod.h>
> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>  	.llseek		= no_llseek,
>  };
>  
> +struct ft1000_misc_device {
> +	struct miscdevice dev;
> +	int inf_id;
> +};
> +
> +#define FREE_ID (0xFF)
> +
> +/* we support just 3 devices */
> +#define MAX_DEVICE 3

No, why this should be converted to miscdevice? Leave it as chrdev.

regards,
-- 
js

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-23 13:53   ` Jiri Slaby
@ 2010-11-23 14:00     ` Belisko Marek
  2010-11-23 21:28       ` Jiri Slaby
  0 siblings, 1 reply; 17+ messages in thread
From: Belisko Marek @ 2010-11-23 14:00 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> On 11/23/2010 01:29 PM, Marek Belisko wrote:
>> Use simple misc device for ioctl driver funtionality testing.
>>
>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
>> ---
>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>>  1 files changed, 77 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> index 1aec926..d1784a3 100644
>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> @@ -32,6 +32,7 @@
>>  #include <linux/poll.h>
>>  #include <linux/netdevice.h>
>>  #include <linux/delay.h>
>> +#include <linux/miscdevice.h>
>>
>>  #include <linux/fs.h>
>>  #include <linux/kmod.h>
>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>>       .llseek         = no_llseek,
>>  };
>>
>> +struct ft1000_misc_device {
>> +     struct miscdevice dev;
>> +     int inf_id;
>> +};
>> +
>> +#define FREE_ID (0xFF)
>> +
>> +/* we support just 3 devices */
>> +#define MAX_DEVICE 3
>
> No, why this should be converted to miscdevice? Leave it as chrdev.
Is there any problem with using miscdev? Old interface create /dev nodes with
calling kernel thread and some usermode_helper or whatever. Just
convert to misc dev
where this is done automatically.
>
> regards,
> --
> js
>

thanks,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
icq: 290551086
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-23 14:00     ` Belisko Marek
@ 2010-11-23 21:28       ` Jiri Slaby
  2010-11-24  9:16         ` Belisko Marek
  0 siblings, 1 reply; 17+ messages in thread
From: Jiri Slaby @ 2010-11-23 21:28 UTC (permalink / raw)
  To: Belisko Marek; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On 11/23/2010 03:00 PM, Belisko Marek wrote:
> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
>>> Use simple misc device for ioctl driver funtionality testing.
>>>
>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
>>> ---
>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>>>  1 files changed, 77 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>> index 1aec926..d1784a3 100644
>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>> @@ -32,6 +32,7 @@
>>>  #include <linux/poll.h>
>>>  #include <linux/netdevice.h>
>>>  #include <linux/delay.h>
>>> +#include <linux/miscdevice.h>
>>>
>>>  #include <linux/fs.h>
>>>  #include <linux/kmod.h>
>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>>>       .llseek         = no_llseek,
>>>  };
>>>
>>> +struct ft1000_misc_device {
>>> +     struct miscdevice dev;
>>> +     int inf_id;
>>> +};
>>> +
>>> +#define FREE_ID (0xFF)
>>> +
>>> +/* we support just 3 devices */
>>> +#define MAX_DEVICE 3
>>
>> No, why this should be converted to miscdevice? Leave it as chrdev.
> Is there any problem with using miscdev?

Yes, if you want more than a single device per system.

> Old interface create /dev nodes with
> calling kernel thread and some usermode_helper or whatever.

Yes, that's crap indeed. But doesn't judge for miscdevice.

> Just convert to misc dev
> where this is done automatically.

So the only thing you need to do is to send a uevent to udev appropriately.

regards,
-- 
js

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-23 21:28       ` Jiri Slaby
@ 2010-11-24  9:16         ` Belisko Marek
  2010-11-29 19:44           ` Greg KH
  0 siblings, 1 reply; 17+ messages in thread
From: Belisko Marek @ 2010-11-24  9:16 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On Tue, Nov 23, 2010 at 10:28 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> On 11/23/2010 03:00 PM, Belisko Marek wrote:
>> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
>>>> Use simple misc device for ioctl driver funtionality testing.
>>>>
>>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
>>>> ---
>>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>>>>  1 files changed, 77 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>>> index 1aec926..d1784a3 100644
>>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>>>> @@ -32,6 +32,7 @@
>>>>  #include <linux/poll.h>
>>>>  #include <linux/netdevice.h>
>>>>  #include <linux/delay.h>
>>>> +#include <linux/miscdevice.h>
>>>>
>>>>  #include <linux/fs.h>
>>>>  #include <linux/kmod.h>
>>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>>>>       .llseek         = no_llseek,
>>>>  };
>>>>
>>>> +struct ft1000_misc_device {
>>>> +     struct miscdevice dev;
>>>> +     int inf_id;
>>>> +};
>>>> +
>>>> +#define FREE_ID (0xFF)
>>>> +
>>>> +/* we support just 3 devices */
>>>> +#define MAX_DEVICE 3
>>>
>>> No, why this should be converted to miscdevice? Leave it as chrdev.
>> Is there any problem with using miscdev?
>
> Yes, if you want more than a single device per system.
>
>> Old interface create /dev nodes with
>> calling kernel thread and some usermode_helper or whatever.
>
> Yes, that's crap indeed. But doesn't judge for miscdevice.
>
>> Just convert to misc dev
>> where this is done automatically.
>
> So the only thing you need to do is to send a uevent to udev appropriately.
Could be used something like:
register_chrdev(0,"ft1000", &fops)
class = class_create(THIS_MODULE, "ft1000");
device_create(class, NULL, MKDEV(major, i), NULL, "ft1000%d", i);
Then will be created different devices for every plugged device.
This should have effect of automatic device node creation also suppose.

>
> regards,
> --
> js
>

thanks,

marek
,
-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
icq: 290551086
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/6] staging: ft1000: Remove unused headers.
  2010-11-23 12:29 ` [PATCH 4/6] staging: ft1000: Remove unused headers Marek Belisko
@ 2010-11-29 19:43   ` Greg KH
  0 siblings, 0 replies; 17+ messages in thread
From: Greg KH @ 2010-11-29 19:43 UTC (permalink / raw)
  To: Marek Belisko; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On Tue, Nov 23, 2010 at 01:29:31PM +0100, Marek Belisko wrote:
> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
> ---
>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |    9 ---------
>  1 files changed, 0 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> index 8d2c059..3df4b4c 100644
> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> @@ -24,23 +24,14 @@
>  // 6/05/06    Whc                Porting to Linux 2.6.9
>  //
>  //---------------------------------------------------------------------------
> -#include <linux/module.h>
> -#include <linux/kernel.h>
>  #include <linux/sched.h>

Odds are you do want module.h and kernel.h but not sched.h, right?

> -#include <linux/signal.h>
> -#include <linux/errno.h>

You have no error numbers in this driver?  I doubt that.

>  #include <linux/poll.h>
>  #include <linux/netdevice.h>
>  #include <linux/delay.h>
>  #include <linux/miscdevice.h>
> -
> -#include <linux/fs.h>
> -#include <linux/kmod.h>

These can be removed.

>  #include <linux/ioctl.h>
> -#include <linux/unistd.h>

As can this.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-24  9:16         ` Belisko Marek
@ 2010-11-29 19:44           ` Greg KH
  2010-11-29 20:08             ` Belisko Marek
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2010-11-29 19:44 UTC (permalink / raw)
  To: Belisko Marek; +Cc: Jiri Slaby, devel, Greg Kroah-Hartman, linux-kernel

On Wed, Nov 24, 2010 at 10:16:36AM +0100, Belisko Marek wrote:
> On Tue, Nov 23, 2010 at 10:28 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> > On 11/23/2010 03:00 PM, Belisko Marek wrote:
> >> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> >>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
> >>>> Use simple misc device for ioctl driver funtionality testing.
> >>>>
> >>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
> >>>> ---
> >>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
> >>>>  1 files changed, 77 insertions(+), 13 deletions(-)
> >>>>
> >>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >>>> index 1aec926..d1784a3 100644
> >>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >>>> @@ -32,6 +32,7 @@
> >>>>  #include <linux/poll.h>
> >>>>  #include <linux/netdevice.h>
> >>>>  #include <linux/delay.h>
> >>>> +#include <linux/miscdevice.h>
> >>>>
> >>>>  #include <linux/fs.h>
> >>>>  #include <linux/kmod.h>
> >>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
> >>>>       .llseek         = no_llseek,
> >>>>  };
> >>>>
> >>>> +struct ft1000_misc_device {
> >>>> +     struct miscdevice dev;
> >>>> +     int inf_id;
> >>>> +};
> >>>> +
> >>>> +#define FREE_ID (0xFF)
> >>>> +
> >>>> +/* we support just 3 devices */
> >>>> +#define MAX_DEVICE 3
> >>>
> >>> No, why this should be converted to miscdevice? Leave it as chrdev.
> >> Is there any problem with using miscdev?
> >
> > Yes, if you want more than a single device per system.
> >
> >> Old interface create /dev nodes with
> >> calling kernel thread and some usermode_helper or whatever.
> >
> > Yes, that's crap indeed. But doesn't judge for miscdevice.
> >
> >> Just convert to misc dev
> >> where this is done automatically.
> >
> > So the only thing you need to do is to send a uevent to udev appropriately.
> Could be used something like:
> register_chrdev(0,"ft1000", &fops)
> class = class_create(THIS_MODULE, "ft1000");
> device_create(class, NULL, MKDEV(major, i), NULL, "ft1000%d", i);
> Then will be created different devices for every plugged device.
> This should have effect of automatic device node creation also suppose.

Please don't create new classes.

Is this a USB device?  If so, why not just use the USB major number?
Just ask me and I can reserve you a USB minor number for your driver.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 0/6] Add misc device handling.
  2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
                   ` (5 preceding siblings ...)
  2010-11-23 12:29 ` [PATCH 6/6] staging: ft1000: Check return value of ft1000_CreateDevice() Marek Belisko
@ 2010-11-29 19:44 ` Greg KH
  6 siblings, 0 replies; 17+ messages in thread
From: Greg KH @ 2010-11-29 19:44 UTC (permalink / raw)
  To: Marek Belisko; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On Tue, Nov 23, 2010 at 01:29:27PM +0100, Marek Belisko wrote:
> Following patch series use misc device instead of character device
> creation by kernel space (which is obvious obsolete and wrong).
> We add limitation for maximum 3 devices to be connected simultaneously.
> This interface is used only for testing and not influence basic device 
> functionality.

I've only applied the first patch in this series, please remove the
miscdevice stuff as others have pointed out.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-29 19:44           ` Greg KH
@ 2010-11-29 20:08             ` Belisko Marek
  2010-12-01  4:06               ` Greg KH
  0 siblings, 1 reply; 17+ messages in thread
From: Belisko Marek @ 2010-11-29 20:08 UTC (permalink / raw)
  To: Greg KH; +Cc: Jiri Slaby, devel, Greg Kroah-Hartman, linux-kernel

On Mon, Nov 29, 2010 at 8:44 PM, Greg KH <greg@kroah.com> wrote:
> On Wed, Nov 24, 2010 at 10:16:36AM +0100, Belisko Marek wrote:
>> On Tue, Nov 23, 2010 at 10:28 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>> > On 11/23/2010 03:00 PM, Belisko Marek wrote:
>> >> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>> >>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
>> >>>> Use simple misc device for ioctl driver funtionality testing.
>> >>>>
>> >>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
>> >>>> ---
>> >>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>> >>>>  1 files changed, 77 insertions(+), 13 deletions(-)
>> >>>>
>> >>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >>>> index 1aec926..d1784a3 100644
>> >>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >>>> @@ -32,6 +32,7 @@
>> >>>>  #include <linux/poll.h>
>> >>>>  #include <linux/netdevice.h>
>> >>>>  #include <linux/delay.h>
>> >>>> +#include <linux/miscdevice.h>
>> >>>>
>> >>>>  #include <linux/fs.h>
>> >>>>  #include <linux/kmod.h>
>> >>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>> >>>>       .llseek         = no_llseek,
>> >>>>  };
>> >>>>
>> >>>> +struct ft1000_misc_device {
>> >>>> +     struct miscdevice dev;
>> >>>> +     int inf_id;
>> >>>> +};
>> >>>> +
>> >>>> +#define FREE_ID (0xFF)
>> >>>> +
>> >>>> +/* we support just 3 devices */
>> >>>> +#define MAX_DEVICE 3
>> >>>
>> >>> No, why this should be converted to miscdevice? Leave it as chrdev.
>> >> Is there any problem with using miscdev?
>> >
>> > Yes, if you want more than a single device per system.
>> >
>> >> Old interface create /dev nodes with
>> >> calling kernel thread and some usermode_helper or whatever.
>> >
>> > Yes, that's crap indeed. But doesn't judge for miscdevice.
>> >
>> >> Just convert to misc dev
>> >> where this is done automatically.
>> >
>> > So the only thing you need to do is to send a uevent to udev appropriately.
>> Could be used something like:
>> register_chrdev(0,"ft1000", &fops)
>> class = class_create(THIS_MODULE, "ft1000");
>> device_create(class, NULL, MKDEV(major, i), NULL, "ft1000%d", i);
>> Then will be created different devices for every plugged device.
>> This should have effect of automatic device node creation also suppose.
>
> Please don't create new classes.
>
> Is this a USB device?  If so, why not just use the USB major number?
Yes it is USB device.
> Just ask me and I can reserve you a USB minor number for your driver.
Idea behind existing code is that for every plugged device you will have created
/dev node. NUmber of devices was limited by number of plugged devices.
But who will plug more
then one device which just used for internet connection? So maybe I
should implement some
limit and would be nice if you could reserve me some USB minors (lest
say max. 3 devices?).

>
> thanks,
>
> greg k-h
>

thanks,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
icq: 290551086
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-11-29 20:08             ` Belisko Marek
@ 2010-12-01  4:06               ` Greg KH
  2010-12-01  9:35                 ` Belisko Marek
  0 siblings, 1 reply; 17+ messages in thread
From: Greg KH @ 2010-12-01  4:06 UTC (permalink / raw)
  To: Belisko Marek; +Cc: Jiri Slaby, devel, Greg Kroah-Hartman, linux-kernel

On Mon, Nov 29, 2010 at 09:08:07PM +0100, Belisko Marek wrote:
> On Mon, Nov 29, 2010 at 8:44 PM, Greg KH <greg@kroah.com> wrote:
> > On Wed, Nov 24, 2010 at 10:16:36AM +0100, Belisko Marek wrote:
> >> On Tue, Nov 23, 2010 at 10:28 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> >> > On 11/23/2010 03:00 PM, Belisko Marek wrote:
> >> >> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
> >> >>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
> >> >>>> Use simple misc device for ioctl driver funtionality testing.
> >> >>>>
> >> >>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
> >> >>>> ---
> >> >>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
> >> >>>>  1 files changed, 77 insertions(+), 13 deletions(-)
> >> >>>>
> >> >>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >> >>>> index 1aec926..d1784a3 100644
> >> >>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >> >>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
> >> >>>> @@ -32,6 +32,7 @@
> >> >>>>  #include <linux/poll.h>
> >> >>>>  #include <linux/netdevice.h>
> >> >>>>  #include <linux/delay.h>
> >> >>>> +#include <linux/miscdevice.h>
> >> >>>>
> >> >>>>  #include <linux/fs.h>
> >> >>>>  #include <linux/kmod.h>
> >> >>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
> >> >>>>       .llseek         = no_llseek,
> >> >>>>  };
> >> >>>>
> >> >>>> +struct ft1000_misc_device {
> >> >>>> +     struct miscdevice dev;
> >> >>>> +     int inf_id;
> >> >>>> +};
> >> >>>> +
> >> >>>> +#define FREE_ID (0xFF)
> >> >>>> +
> >> >>>> +/* we support just 3 devices */
> >> >>>> +#define MAX_DEVICE 3
> >> >>>
> >> >>> No, why this should be converted to miscdevice? Leave it as chrdev.
> >> >> Is there any problem with using miscdev?
> >> >
> >> > Yes, if you want more than a single device per system.
> >> >
> >> >> Old interface create /dev nodes with
> >> >> calling kernel thread and some usermode_helper or whatever.
> >> >
> >> > Yes, that's crap indeed. But doesn't judge for miscdevice.
> >> >
> >> >> Just convert to misc dev
> >> >> where this is done automatically.
> >> >
> >> > So the only thing you need to do is to send a uevent to udev appropriately.
> >> Could be used something like:
> >> register_chrdev(0,"ft1000", &fops)
> >> class = class_create(THIS_MODULE, "ft1000");
> >> device_create(class, NULL, MKDEV(major, i), NULL, "ft1000%d", i);
> >> Then will be created different devices for every plugged device.
> >> This should have effect of automatic device node creation also suppose.
> >
> > Please don't create new classes.
> >
> > Is this a USB device?  If so, why not just use the USB major number?
> Yes it is USB device.
> > Just ask me and I can reserve you a USB minor number for your driver.
> Idea behind existing code is that for every plugged device you will have created
> /dev node. NUmber of devices was limited by number of plugged devices.
> But who will plug more
> then one device which just used for internet connection? So maybe I
> should implement some
> limit and would be nice if you could reserve me some USB minors (lest
> say max. 3 devices?).

Send me a patch using the USB major number, and I'll add an additional
one that reserves the proper minor number for your driver.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/6] staging: ft1000: Use misc device instead self created device.
  2010-12-01  4:06               ` Greg KH
@ 2010-12-01  9:35                 ` Belisko Marek
  0 siblings, 0 replies; 17+ messages in thread
From: Belisko Marek @ 2010-12-01  9:35 UTC (permalink / raw)
  To: Greg KH; +Cc: Jiri Slaby, devel, Greg Kroah-Hartman, linux-kernel

On Wed, Dec 1, 2010 at 5:06 AM, Greg KH <greg@kroah.com> wrote:
> On Mon, Nov 29, 2010 at 09:08:07PM +0100, Belisko Marek wrote:
>> On Mon, Nov 29, 2010 at 8:44 PM, Greg KH <greg@kroah.com> wrote:
>> > On Wed, Nov 24, 2010 at 10:16:36AM +0100, Belisko Marek wrote:
>> >> On Tue, Nov 23, 2010 at 10:28 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>> >> > On 11/23/2010 03:00 PM, Belisko Marek wrote:
>> >> >> On Tue, Nov 23, 2010 at 2:53 PM, Jiri Slaby <jirislaby@gmail.com> wrote:
>> >> >>> On 11/23/2010 01:29 PM, Marek Belisko wrote:
>> >> >>>> Use simple misc device for ioctl driver funtionality testing.
>> >> >>>>
>> >> >>>> Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
>> >> >>>> ---
>> >> >>>>  drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c |   90 ++++++++++++++++++---
>> >> >>>>  1 files changed, 77 insertions(+), 13 deletions(-)
>> >> >>>>
>> >> >>>> diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >> >>>> index 1aec926..d1784a3 100644
>> >> >>>> --- a/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >> >>>> +++ b/drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
>> >> >>>> @@ -32,6 +32,7 @@
>> >> >>>>  #include <linux/poll.h>
>> >> >>>>  #include <linux/netdevice.h>
>> >> >>>>  #include <linux/delay.h>
>> >> >>>> +#include <linux/miscdevice.h>
>> >> >>>>
>> >> >>>>  #include <linux/fs.h>
>> >> >>>>  #include <linux/kmod.h>
>> >> >>>> @@ -78,6 +79,47 @@ static struct file_operations ft1000fops =
>> >> >>>>       .llseek         = no_llseek,
>> >> >>>>  };
>> >> >>>>
>> >> >>>> +struct ft1000_misc_device {
>> >> >>>> +     struct miscdevice dev;
>> >> >>>> +     int inf_id;
>> >> >>>> +};
>> >> >>>> +
>> >> >>>> +#define FREE_ID (0xFF)
>> >> >>>> +
>> >> >>>> +/* we support just 3 devices */
>> >> >>>> +#define MAX_DEVICE 3
>> >> >>>
>> >> >>> No, why this should be converted to miscdevice? Leave it as chrdev.
>> >> >> Is there any problem with using miscdev?
>> >> >
>> >> > Yes, if you want more than a single device per system.
>> >> >
>> >> >> Old interface create /dev nodes with
>> >> >> calling kernel thread and some usermode_helper or whatever.
>> >> >
>> >> > Yes, that's crap indeed. But doesn't judge for miscdevice.
>> >> >
>> >> >> Just convert to misc dev
>> >> >> where this is done automatically.
>> >> >
>> >> > So the only thing you need to do is to send a uevent to udev appropriately.
>> >> Could be used something like:
>> >> register_chrdev(0,"ft1000", &fops)
>> >> class = class_create(THIS_MODULE, "ft1000");
>> >> device_create(class, NULL, MKDEV(major, i), NULL, "ft1000%d", i);
>> >> Then will be created different devices for every plugged device.
>> >> This should have effect of automatic device node creation also suppose.
>> >
>> > Please don't create new classes.
>> >
>> > Is this a USB device?  If so, why not just use the USB major number?
>> Yes it is USB device.
>> > Just ask me and I can reserve you a USB minor number for your driver.
>> Idea behind existing code is that for every plugged device you will have created
>> /dev node. NUmber of devices was limited by number of plugged devices.
>> But who will plug more
>> then one device which just used for internet connection? So maybe I
>> should implement some
>> limit and would be nice if you could reserve me some USB minors (lest
>> say max. 3 devices?).
>
> Send me a patch using the USB major number, and I'll add an additional
> one that reserves the proper minor number for your driver.
Patch sent (subject: [PATCH] staging: ft1000: Use usb device registration.)
>
> thanks,
>
> greg k-h
>

thanks,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
icq: 290551086
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2010-12-01  9:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-23 12:29 [PATCH 0/6] Add misc device handling Marek Belisko
2010-11-23 12:29 ` [PATCH 1/6] staging: ft1000: Remove functions which create devices in kernel space Marek Belisko
2010-11-23 12:29 ` [PATCH 2/6] staging: ft1000: Use misc device instead self created device Marek Belisko
2010-11-23 13:53   ` Jiri Slaby
2010-11-23 14:00     ` Belisko Marek
2010-11-23 21:28       ` Jiri Slaby
2010-11-24  9:16         ` Belisko Marek
2010-11-29 19:44           ` Greg KH
2010-11-29 20:08             ` Belisko Marek
2010-12-01  4:06               ` Greg KH
2010-12-01  9:35                 ` Belisko Marek
2010-11-23 12:29 ` [PATCH 3/6] staging: ft1000: Remove unused variables Marek Belisko
2010-11-23 12:29 ` [PATCH 4/6] staging: ft1000: Remove unused headers Marek Belisko
2010-11-29 19:43   ` Greg KH
2010-11-23 12:29 ` [PATCH 5/6] staging: ft1000: Remove dead code Marek Belisko
2010-11-23 12:29 ` [PATCH 6/6] staging: ft1000: Check return value of ft1000_CreateDevice() Marek Belisko
2010-11-29 19:44 ` [PATCH 0/6] Add misc device handling Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).