Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 192635
b: refs/heads/master
c: 7c3f53e
h: refs/heads/master
i:
  192633: a280c5a
  192631: d6b5a2b
v: v3
  • Loading branch information
Michel Ludwig authored and Mauro Carvalho Chehab committed May 18, 2010
1 parent ca2d7f2 commit 305b6df
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8c9d26fd55ac7378ad0e2afd2bd122fa060bdaee
refs/heads/master: 7c3f53ec491b64b3c3fa339e4e77e49782b0be9f
6 changes: 4 additions & 2 deletions trunk/drivers/staging/tm6000/tm6000-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,14 +359,16 @@ static void tm6000_usb_disconnect(struct usb_interface *interface)

mutex_lock(&dev->lock);

tm6000_i2c_unregister(dev);

tm6000_v4l2_unregister(dev);

tm6000_i2c_unregister(dev);

// wake_up_interruptible_all(&dev->open);

dev->state |= DEV_DISCONNECTED;

usb_put_dev(dev->udev);

mutex_unlock(&dev->lock);
kfree(dev);
}
Expand Down
31 changes: 22 additions & 9 deletions trunk/drivers/staging/tm6000/tm6000-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
Copyright (C) 2006-2007 Mauro Carvalho Chehab <mchehab@infradead.org>
Copyright (C) 2007 Michel Ludwig <michel.ludwig@gmail.com>
- Fixed module load/unload
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 version 2
Expand Down Expand Up @@ -1153,7 +1156,7 @@ static int vidioc_s_input (struct file *file, void *priv, unsigned int i)

if (!rc) {
dev->input=i;
rc=vidioc_s_std (file, priv, &dev->vfd.current_norm);
rc=vidioc_s_std (file, priv, &dev->vfd->current_norm);
}

return (rc);
Expand Down Expand Up @@ -1317,12 +1320,15 @@ static int tm6000_open(struct inode *inode, struct file *file)
enum v4l2_buf_type type = 0;
int i,rc;

printk(KERN_INFO "tm6000: open called (minor=%d)\n",minor);


dprintk(dev, V4L2_DEBUG_OPEN, "tm6000: open called "
"(minor=%d)\n",minor);

list_for_each(list,&tm6000_corelist) {
h = list_entry(list, struct tm6000_core, tm6000_corelist);
if (h->vfd.minor == minor) {
if (h->vfd->minor == minor) {
dev = h;
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
}
Expand Down Expand Up @@ -1433,13 +1439,13 @@ static int tm6000_release(struct inode *inode, struct file *file)
struct tm6000_dmaqueue *vidq = &dev->vidq;
int minor = iminor(inode);

dprintk(dev, V4L2_DEBUG_OPEN, "tm6000: close called (minor=%d, users=%d)\n",minor,dev->users);

tm6000_stop_thread(vidq);
videobuf_mmap_free(&fh->vb_vidq);

kfree (fh);

dprintk(dev, V4L2_DEBUG_OPEN, "tm6000: close called (minor=%d, users=%d)\n",minor,dev->users);

return 0;
}

Expand Down Expand Up @@ -1505,7 +1511,14 @@ static struct video_device tm6000_template = {

int tm6000_v4l2_register(struct tm6000_core *dev)
{
int ret;
int ret = -1;
struct video_device *vfd;

vfd = video_device_alloc();
if(!vfd) {
return -ENOMEM;
}
dev->vfd = vfd;

list_add_tail(&dev->tm6000_corelist,&tm6000_corelist);

Expand All @@ -1517,10 +1530,10 @@ int tm6000_v4l2_register(struct tm6000_core *dev)
dev->vidq.timeout.data = (unsigned long)dev;
init_timer(&dev->vidq.timeout);

memcpy (&dev->vfd, &tm6000_template, sizeof(dev->vfd));
dev->vfd.debug=tm6000_debug;
memcpy (dev->vfd, &tm6000_template, sizeof(*(dev->vfd)));
dev->vfd->debug=tm6000_debug;

ret = video_register_device(&dev->vfd, VFL_TYPE_GRABBER, video_nr);
ret = video_register_device(dev->vfd, VFL_TYPE_GRABBER, video_nr);
printk(KERN_INFO "Trident TVMaster TM5600/TM6000 USB2 board (Load status: %d)\n", ret);
return ret;
}
Expand All @@ -1530,7 +1543,7 @@ int tm6000_v4l2_unregister(struct tm6000_core *dev)
struct tm6000_core *h;
struct list_head *pos, *tmp;

video_unregister_device(&dev->vfd);
video_unregister_device(dev->vfd);

list_for_each_safe(pos, tmp, &tm6000_corelist) {
h = list_entry(pos, struct tm6000_core, tm6000_corelist);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/tm6000/tm6000.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ struct tm6000_core {

/* various device info */
unsigned int resources;
struct video_device vfd;
struct video_device *vfd;
struct tm6000_dmaqueue vidq;

int input;
Expand Down

0 comments on commit 305b6df

Please sign in to comment.