Skip to content

Commit

Permalink
V4L/DVB (5750): Remove obsoleted support for PROC_FS on vicam.c
Browse files Browse the repository at this point in the history
Procfs support on V4L were converted to sysfs support by a pre-2.6 patch:

	http://www.ussg.iu.edu/hypermail/linux/kernel/0307.1/2356.html

There's no sense on keeping the dead code inside vicam.c. Also,it won't
work anyway, as part of proc_fs support were previously inside
videodev.c.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Mauro Carvalho Chehab committed Jul 18, 2007
1 parent 890be2b commit 018ec54
Showing 1 changed file with 0 additions and 181 deletions.
181 changes: 0 additions & 181 deletions drivers/media/video/usbvideo/vicam.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
#include <linux/usb.h>
#include <linux/vmalloc.h>
#include <linux/slab.h>
#include <linux/proc_fs.h>
#include <linux/mutex.h>
#include "usbvideo.h"

Expand Down Expand Up @@ -417,11 +416,6 @@ struct vicam_camera {
u8 open_count;
u8 bulkEndpoint;
int needsDummyRead;

#if defined(CONFIG_VIDEO_PROC_FS)
struct proc_dir_entry *proc_dir;
#endif

};

static int vicam_probe( struct usb_interface *intf, const struct usb_device_id *id);
Expand Down Expand Up @@ -1065,175 +1059,6 @@ vicam_mmap(struct file *file, struct vm_area_struct *vma)
return 0;
}

#if defined(CONFIG_VIDEO_PROC_FS)

static struct proc_dir_entry *vicam_proc_root = NULL;

static int vicam_read_helper(char *page, char **start, off_t off,
int count, int *eof, int value)
{
char *out = page;
int len;

out += sprintf(out, "%d",value);

len = out - page;
len -= off;
if (len < count) {
*eof = 1;
if (len <= 0)
return 0;
} else
len = count;

*start = page + off;
return len;
}

static int vicam_read_proc_shutter(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
return vicam_read_helper(page,start,off,count,eof,
((struct vicam_camera *)data)->shutter_speed);
}

static int vicam_read_proc_gain(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
return vicam_read_helper(page,start,off,count,eof,
((struct vicam_camera *)data)->gain);
}

static int
vicam_write_proc_shutter(struct file *file, const char *buffer,
unsigned long count, void *data)
{
u16 stmp;
char kbuf[8];
struct vicam_camera *cam = (struct vicam_camera *) data;

if (count > 6)
return -EINVAL;

if (copy_from_user(kbuf, buffer, count))
return -EFAULT;

stmp = (u16) simple_strtoul(kbuf, NULL, 10);
if (stmp < 4 || stmp > 32000)
return -EINVAL;

cam->shutter_speed = stmp;

return count;
}

static int
vicam_write_proc_gain(struct file *file, const char *buffer,
unsigned long count, void *data)
{
u16 gtmp;
char kbuf[8];

struct vicam_camera *cam = (struct vicam_camera *) data;

if (count > 4)
return -EINVAL;

if (copy_from_user(kbuf, buffer, count))
return -EFAULT;

gtmp = (u16) simple_strtoul(kbuf, NULL, 10);
if (gtmp > 255)
return -EINVAL;
cam->gain = gtmp;

return count;
}

static void
vicam_create_proc_root(void)
{
vicam_proc_root = proc_mkdir("video/vicam", NULL);

if (vicam_proc_root)
vicam_proc_root->owner = THIS_MODULE;
else
printk(KERN_ERR
"could not create /proc entry for vicam!");
}

static void
vicam_destroy_proc_root(void)
{
if (vicam_proc_root)
remove_proc_entry("video/vicam", 0);
}

static void
vicam_create_proc_entry(struct vicam_camera *cam)
{
char name[64];
struct proc_dir_entry *ent;

DBG(KERN_INFO "vicam: creating proc entry\n");

if (!vicam_proc_root || !cam) {
printk(KERN_INFO
"vicam: could not create proc entry, %s pointer is null.\n",
(!cam ? "camera" : "root"));
return;
}

sprintf(name, "video%d", cam->vdev.minor);

cam->proc_dir = proc_mkdir(name, vicam_proc_root);

if ( !cam->proc_dir )
return; // FIXME: We should probably return an error here

ent = create_proc_entry("shutter", S_IFREG | S_IRUGO | S_IWUSR,
cam->proc_dir);
if (ent) {
ent->data = cam;
ent->read_proc = vicam_read_proc_shutter;
ent->write_proc = vicam_write_proc_shutter;
ent->size = 64;
}

ent = create_proc_entry("gain", S_IFREG | S_IRUGO | S_IWUSR,
cam->proc_dir);
if (ent) {
ent->data = cam;
ent->read_proc = vicam_read_proc_gain;
ent->write_proc = vicam_write_proc_gain;
ent->size = 64;
}
}

static void
vicam_destroy_proc_entry(void *ptr)
{
struct vicam_camera *cam = (struct vicam_camera *) ptr;
char name[16];

if ( !cam->proc_dir )
return;

sprintf(name, "video%d", cam->vdev.minor);
remove_proc_entry("shutter", cam->proc_dir);
remove_proc_entry("gain", cam->proc_dir);
remove_proc_entry(name,vicam_proc_root);
cam->proc_dir = NULL;

}

#else
static inline void vicam_create_proc_root(void) { }
static inline void vicam_destroy_proc_root(void) { }
static inline void vicam_create_proc_entry(struct vicam_camera *cam) { }
static inline void vicam_destroy_proc_entry(void *ptr) { }
#endif

static const struct file_operations vicam_fops = {
.owner = THIS_MODULE,
.open = vicam_open,
Expand Down Expand Up @@ -1330,8 +1155,6 @@ vicam_probe( struct usb_interface *intf, const struct usb_device_id *id)
return -EIO;
}

vicam_create_proc_entry(cam);

printk(KERN_INFO "ViCam webcam driver now controlling video device %d\n",cam->vdev.minor);

usb_set_intfdata (intf, cam);
Expand Down Expand Up @@ -1363,8 +1186,6 @@ vicam_disconnect(struct usb_interface *intf)

cam->udev = NULL;

vicam_destroy_proc_entry(cam);

/* the only thing left to do is synchronize with
* our close/release function on who should release
* the camera memory. if there are any users using the
Expand All @@ -1390,7 +1211,6 @@ usb_vicam_init(void)
{
int retval;
DBG(KERN_INFO "ViCam-based WebCam driver startup\n");
vicam_create_proc_root();
retval = usb_register(&vicam_driver);
if (retval)
printk(KERN_WARNING "usb_register failed!\n");
Expand All @@ -1404,7 +1224,6 @@ usb_vicam_exit(void)
"ViCam-based WebCam driver shutdown\n");

usb_deregister(&vicam_driver);
vicam_destroy_proc_root();
}

module_init(usb_vicam_init);
Expand Down

0 comments on commit 018ec54

Please sign in to comment.