Re: [2.6 patch] drivers/usb/media/w9968cf.c: remove hooks for the vpp module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 06, 2006 at 03:30:00AM +0100, Adrian Bunk wrote:
> - the w9968cf-vpp module is not intended for inclusion into the kernel
> - the upstream w9968cf package shipping the w9968cf-vpp module suggests
>   to simply replace the w9968cf module shipped with the kernel
> 
> Therefore, there seems to be no good reason spending some bytes of 
> kernel memory for hooks for the w9968cf-vpp module.

It's okay, but could you complete the patch by updating the 
documentation w9968cf.txt as well?

Thanks
Luca Risolia

> 
> 
> Signed-off-by: Adrian Bunk <[email protected]>
Signed-off-by: Luca Risolia <[email protected]>

> 
> ---
> 
>  drivers/usb/media/w9968cf.c     |  128 --------------------------------
>  drivers/usb/media/w9968cf.h     |    1 
>  drivers/usb/media/w9968cf_vpp.h |    3 
>  3 files changed, 1 insertion(+), 131 deletions(-)
> 
> --- linux-2.6.15-mm1-full/drivers/usb/media/w9968cf_vpp.h.old	2006-01-06 02:26:01.000000000 +0100
> +++ linux-2.6.15-mm1-full/drivers/usb/media/w9968cf_vpp.h	2006-01-06 02:26:08.000000000 +0100
> @@ -37,7 +37,4 @@
>  	u8 busy; /* read-only flag: module is/is not in use */
>  };
>  
> -extern int w9968cf_vppmod_register(struct w9968cf_vpp_t*);
> -extern int w9968cf_vppmod_deregister(struct w9968cf_vpp_t*);
> -
>  #endif /* _W9968CF_VPP_H_ */
> --- linux-2.6.15-mm1-full/drivers/usb/media/w9968cf.h.old	2006-01-06 02:52:03.000000000 +0100
> +++ linux-2.6.15-mm1-full/drivers/usb/media/w9968cf.h	2006-01-06 02:52:08.000000000 +0100
> @@ -195,7 +195,6 @@
>  };
>  
>  static struct w9968cf_vpp_t* w9968cf_vpp;
> -static DECLARE_MUTEX(w9968cf_vppmod_lock);
>  static DECLARE_WAIT_QUEUE_HEAD(w9968cf_vppmod_wait);
>  
>  static LIST_HEAD(w9968cf_dev_list); /* head of V4L registered cameras list */
> --- linux-2.6.15-mm1-full/drivers/usb/media/w9968cf.c.old	2006-01-06 02:26:15.000000000 +0100
> +++ linux-2.6.15-mm1-full/drivers/usb/media/w9968cf.c	2006-01-06 03:01:55.000000000 +0100
> @@ -62,7 +62,6 @@
>  MODULE_SUPPORTED_DEVICE("Video");
>  
>  static int ovmod_load = W9968CF_OVMOD_LOAD;
> -static int vppmod_load = W9968CF_VPPMOD_LOAD;
>  static unsigned short simcams = W9968CF_SIMCAMS;
>  static short video_nr[]={[0 ... W9968CF_MAX_DEVICES-1] = -1}; /*-1=first free*/
>  static unsigned int packet_size[] = {[0 ... W9968CF_MAX_DEVICES-1] = 
> @@ -107,7 +106,6 @@
>  
>  #ifdef CONFIG_KMOD
>  module_param(ovmod_load, bool, 0644);
> -module_param(vppmod_load, bool, 0444);
>  #endif
>  module_param(simcams, ushort, 0644);
>  module_param_array(video_nr, short, &param_nv[0], 0444);
> @@ -150,18 +148,6 @@
>                   "\ninto memory."
>                   "\nDefault value is "__MODULE_STRING(W9968CF_OVMOD_LOAD)"."
>                   "\n");
> -MODULE_PARM_DESC(vppmod_load, 
> -                 "\n<0|1> Automatic 'w9968cf-vpp' module loading."
> -                 "\n0 disabled, 1 enabled."
> -                 "\nIf enabled, every time an application attempts to open a"
> -                 "\ncamera, 'insmod' searches for the video post-processing"
> -                 "\nmodule in the system and loads it automatically (if"
> -                 "\npresent). The optional 'w9968cf-vpp' module adds extra"
> -                 "\n image manipulation functions to the 'w9968cf' module,like"
> -                 "\nsoftware up-scaling,colour conversions and video decoding"
> -                 "\nfor very high frame rates."
> -                 "\nDefault value is "__MODULE_STRING(W9968CF_VPPMOD_LOAD)"."
> -                 "\n");
>  #endif
>  MODULE_PARM_DESC(simcams, 
>                   "\n<n> Number of cameras allowed to stream simultaneously."
> @@ -492,10 +478,6 @@
>  static void w9968cf_pop_frame(struct w9968cf_device*,struct w9968cf_frame_t**);
>  static void w9968cf_release_resources(struct w9968cf_device*);
>  
> -/* Intermodule communication */
> -static int w9968cf_vppmod_detect(struct w9968cf_device*);
> -static void w9968cf_vppmod_release(struct w9968cf_device*);
> -
>  
>  
>  /****************************************************************************
> @@ -2737,9 +2719,7 @@
>  	cam->streaming = 0;
>  	cam->misconfigured = 0;
>  
> -	if (!w9968cf_vpp)
> -		if ((err = w9968cf_vppmod_detect(cam)))
> -			goto out;
> +	w9968cf_adjust_configuration(cam);
>  
>  	if ((err = w9968cf_allocate_memory(cam)))
>  		goto deallocate_memory;
> @@ -2766,7 +2746,6 @@
>  
>  deallocate_memory:
>  	w9968cf_deallocate_memory(cam);
> -out:
>  	DBG(2, "Failed to open the video device")
>  	up(&cam->dev_sem);
>  	up_read(&w9968cf_disconnect);
> @@ -2784,8 +2763,6 @@
>  
>  	w9968cf_stop_transfer(cam);
>  
> -	w9968cf_vppmod_release(cam);
> -
>  	if (cam->disconnected) {
>  		w9968cf_release_resources(cam);
>  		up(&cam->dev_sem);
> @@ -3681,106 +3658,6 @@
>   * Module init, exit and intermodule communication                          *
>   ****************************************************************************/
>  
> -static int w9968cf_vppmod_detect(struct w9968cf_device* cam)
> -{
> -	if (!w9968cf_vpp)
> -		if (vppmod_load)
> -			request_module("w9968cf-vpp");
> -
> -	down(&w9968cf_vppmod_lock);
> -
> -	if (!w9968cf_vpp) {
> -		DBG(4, "Video post-processing module not detected")
> -		w9968cf_adjust_configuration(cam);
> -		goto out;
> -	}
> -
> -	if (!try_module_get(w9968cf_vpp->owner)) {
> -		DBG(1, "Couldn't increment the reference count of "
> -		       "the video post-processing module")
> -		up(&w9968cf_vppmod_lock);
> -		return -ENOSYS;
> -	}
> -
> -	w9968cf_vpp->busy++;
> -
> -	DBG(5, "Video post-processing module detected")
> -
> -out:
> -	up(&w9968cf_vppmod_lock);
> -	return 0;
> -}
> -
> -
> -static void w9968cf_vppmod_release(struct w9968cf_device* cam)
> -{
> -	down(&w9968cf_vppmod_lock);
> -
> -	if (w9968cf_vpp && w9968cf_vpp->busy) {
> -		module_put(w9968cf_vpp->owner);
> -		w9968cf_vpp->busy--;
> -		wake_up(&w9968cf_vppmod_wait);
> -		DBG(5, "Video post-processing module released")
> -	}
> -
> -	up(&w9968cf_vppmod_lock);
> -}
> -
> -
> -int w9968cf_vppmod_register(struct w9968cf_vpp_t* vpp)
> -{
> -	down(&w9968cf_vppmod_lock);
> -
> -	if (w9968cf_vpp) {
> -		KDBG(1, "Video post-processing module already registered")
> -		up(&w9968cf_vppmod_lock);
> -		return -EINVAL;
> -	}
> -
> -	w9968cf_vpp = vpp;
> -	w9968cf_vpp->busy = 0;
> -
> -	KDBG(2, "Video post-processing module registered")
> -	up(&w9968cf_vppmod_lock);
> -	return 0;
> -}
> -
> -
> -int w9968cf_vppmod_deregister(struct w9968cf_vpp_t* vpp)
> -{
> -	down(&w9968cf_vppmod_lock);
> -
> -	if (!w9968cf_vpp) {
> -		up(&w9968cf_vppmod_lock);
> -		return -EINVAL;
> -	}
> -
> -	if (w9968cf_vpp != vpp) {
> -		KDBG(1, "Only the owner can unregister the video "
> -		        "post-processing module")
> -		up(&w9968cf_vppmod_lock);
> -		return -EINVAL;
> -	}
> -
> -	if (w9968cf_vpp->busy) {
> -		KDBG(2, "Video post-processing module busy. Wait for it to be "
> -		        "released...")
> -		up(&w9968cf_vppmod_lock);
> -		wait_event(w9968cf_vppmod_wait, !w9968cf_vpp->busy);
> -		w9968cf_vpp = NULL;
> -		goto out;
> -	}
> -
> -	w9968cf_vpp = NULL;
> -
> -	up(&w9968cf_vppmod_lock);
> -
> -out:
> -	KDBG(2, "Video post-processing module unregistered")
> -	return 0;
> -}
> -
> -
>  static int __init w9968cf_module_init(void)
>  {
>  	int err;
> @@ -3810,6 +3687,3 @@
>  module_init(w9968cf_module_init);
>  module_exit(w9968cf_module_exit);
>  
> -
> -EXPORT_SYMBOL(w9968cf_vppmod_register);
> -EXPORT_SYMBOL(w9968cf_vppmod_deregister);
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux