V4L/DVB (6755): Avoid troubles when using multiple devices

mv_count is a counter used to move the vertical bars. Before this patch, it
where a static var. This works fine for just one device. However, when using
multiple devices, every device would increment it.

This patch moves it to its correct place: struct vivi_dev. So, now, each device
has its own data.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Mauro Carvalho Chehab 2007-12-10 04:43:38 -03:00
parent 55712ff7e0
commit 025341d4f0
1 changed files with 4 additions and 4 deletions

View File

@ -178,6 +178,8 @@ struct vivi_dev {
/* Several counters */ /* Several counters */
int h,m,s,us,jiffies; int h,m,s,us,jiffies;
char timestr[13]; char timestr[13];
int mv_count; /* Controls bars movement */
}; };
struct vivi_fh { struct vivi_fh {
@ -327,14 +329,12 @@ static void vivi_fillbuff(struct vivi_dev *dev,struct vivi_buffer *buf)
struct timeval ts; struct timeval ts;
char *tmpbuf = kmalloc(wmax*2,GFP_KERNEL); char *tmpbuf = kmalloc(wmax*2,GFP_KERNEL);
void *vbuf=videobuf_to_vmalloc (&buf->vb); void *vbuf=videobuf_to_vmalloc (&buf->vb);
/* FIXME: move to dev struct */
static int mv_count=0;
if (!tmpbuf) if (!tmpbuf)
return; return;
for (h=0;h<hmax;h++) { for (h=0;h<hmax;h++) {
gen_line(tmpbuf,0,wmax,hmax,h,mv_count, gen_line(tmpbuf, 0, wmax, hmax, h, dev->mv_count,
dev->timestr); dev->timestr);
/* FIXME: replacing to __copy_to_user */ /* FIXME: replacing to __copy_to_user */
if (copy_to_user(vbuf+pos,tmpbuf,wmax*2)!=0) if (copy_to_user(vbuf+pos,tmpbuf,wmax*2)!=0)
@ -342,7 +342,7 @@ static void vivi_fillbuff(struct vivi_dev *dev,struct vivi_buffer *buf)
pos += wmax*2; pos += wmax*2;
} }
mv_count++; dev->mv_count++;
kfree(tmpbuf); kfree(tmpbuf);