Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 773 → Rev 774

/shark/trunk/drivers/cm7326/saa7146_core.c
74,11 → 74,11
int start;
 
/* wait for registers to be programmed */
start = jiffies;
start = jiffies26;
while (1) {
if (saa7146_read(dev, MC2) & 2)
break;
if (jiffies-start > HZ/20) {
if (jiffies26-start > HZ/20) {
DEB_S(("timed out while waiting for registers getting programmed\n"));
return -ETIMEDOUT;
}
85,12 → 85,12
}
 
/* wait for transfer to complete */
start = jiffies;
start = jiffies26;
while (1) {
if (!(saa7146_read(dev, PSR) & SPCI_DEBI_S))
break;
saa7146_read(dev, MC2);
if (jiffies-start > HZ/4) {
if (jiffies26-start > HZ/4) {
DEB_S(("timed out while waiting for transfer completion\n"));
return -ETIMEDOUT;
}
116,7 → 116,7
if (NULL == sglist)
return NULL;
memset(sglist,0,sizeof(struct scatterlist)*nr_pages);
for (i = 0; i < nr_pages; i++, virt += PAGE_SIZE) {
/* for (i = 0; i < nr_pages; i++, virt += PAGE_SIZE) {
pg = vmalloc_to_page(virt);
if (NULL == pg)
goto err;
124,7 → 124,7
BUG();
sglist[i].page = pg;
sglist[i].length = PAGE_SIZE;
}
}*/
return sglist;
err:
159,7 → 159,7
return NULL;
}
slen = pci_map_sg(pci,pt->slist,pages,PCI_DMA_FROMDEVICE);
//slen = pci_map_sg(pci,pt->slist,pages,PCI_DMA_FROMDEVICE);
if (0 != saa7146_pgtable_build_single(pci, pt, pt->slist, slen)) {
return NULL;
}
433,14 → 433,14
 
pci_set_drvdata(pci,dev);
 
init_MUTEX(&dev->lock);
//init_MUTEX(&dev->lock);
dev->int_slock = SPIN_LOCK_UNLOCKED;
dev->slock = SPIN_LOCK_UNLOCKED;
 
init_MUTEX(&dev->i2c_lock);
//init_MUTEX(&dev->i2c_lock);
 
dev->module = THIS_MODULE;
init_waitqueue_head(&dev->i2c_wq);
//init_waitqueue_head(&dev->i2c_wq);
 
/* set some sane pci arbitrition values */
saa7146_write(dev, PCI_BT_V1, 0x1c00101f);
523,7 → 523,7
 
if( 0 == initialized ) {
INIT_LIST_HEAD(&saa7146_devices);
init_MUTEX(&saa7146_devices_lock);
//init_MUTEX(&saa7146_devices_lock);
initialized = 1;
}
 
544,17 → 544,17
return 0;
}
 
static int __init saa7146_init_module(void)
int __init saa7146_init_module(void)
{
if( 0 == initialized ) {
INIT_LIST_HEAD(&saa7146_devices);
init_MUTEX(&saa7146_devices_lock);
//init_MUTEX(&saa7146_devices_lock);
initialized = 1;
}
return 0;
}
 
static void __exit saa7146_cleanup_module(void)
void __exit saa7146_cleanup_module(void)
{
}
 
/shark/trunk/drivers/cm7326/saa7146_video.c
843,7 → 843,7
DEB_EE(("VIDIOC_QUERYCAP\n"));
strcpy(cap->driver, "saa7146 v4l2");
strlcpy(cap->card, dev->ext->name, sizeof(cap->card));
strncpy(cap->card, dev->ext->name, sizeof(cap->card));
sprintf26(cap->bus_info,"PCI:%s",dev->pci->slot_name);
cap->version = SAA7146_VERSION_CODE;
cap->capabilities =
926,7 → 926,7
}
memset(f,0,sizeof(*f));
f->index = index;
strlcpy(f->description,formats[index].name,sizeof(f->description));
strncpy(f->description,formats[index].name,sizeof(f->description));
f->pixelformat = formats[index].pixelformat;
break;
}
1025,7 → 1025,7
return -EINVAL;
if( e->index < dev->ext_vv_data->num_stds ) {
DEB_EE(("VIDIOC_ENUMSTD: index:%d\n",e->index));
v4l2_video_std_construct(e, dev->ext_vv_data->stds[e->index].id, dev->ext_vv_data->stds[e->index].name);
//v4l2_video_std_construct(e, dev->ext_vv_data->stds[e->index].id, dev->ext_vv_data->stds[e->index].name);
return 0;
}
return -EINVAL;
1209,8 → 1209,7
return 0;
}
default:
return v4l_compat_translate_ioctl(inode,file,cmd,arg,
saa7146_video_do_ioctl);
return 0;//v4l_compat_translate_ioctl(inode,file,cmd,arg,saa7146_video_do_ioctl);
}
return 0;
}
1227,7 → 1226,7
buf->vb.state = STATE_ACTIVE;
saa7146_set_capture(dev,buf,next);
mod_timer(&vv->video_q.timeout, jiffies+BUFFER_TIMEOUT);
mod_timer(&vv->video_q.timeout, jiffies26+BUFFER_TIMEOUT);
return 0;
}
 
1401,7 → 1400,7
V4L2_FIELD_INTERLACED,
sizeof(struct saa7146_buf));
 
init_MUTEX(&fh->video_q.lock);
//init_MUTEX(&fh->video_q.lock);
 
return 0;
}
/shark/trunk/drivers/cm7326/saa7146_fops.c
74,8 → 74,8
BUG();
 
videobuf_waiton(&buf->vb,0,0);
videobuf_dma_pci_unmap(dev->pci, &buf->vb.dma);
videobuf_dma_free(&buf->vb.dma);
//videobuf_dma_pci_unmap(dev->pci, &buf->vb.dma);
//videobuf_dma_free(&buf->vb.dma);
buf->vb.state = STATE_NEEDS_INIT;
}
 
283,7 → 283,7
 
if( fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
DEB_S(("initializing vbi...\n"));
result = saa7146_vbi_uops.open(dev,file);
result = 0;//saa7146_vbi_uops.open(dev,file);
} else {
DEB_S(("initializing video...\n"));
result = saa7146_video_uops.open(dev,file);
319,7 → 319,7
// return -ERESTARTSYS;
 
if( fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) {
saa7146_vbi_uops.release(dev,file);
//saa7146_vbi_uops.release(dev,file);
} else {
saa7146_video_uops.release(dev,file);
}
411,7 → 411,7
}
case V4L2_BUF_TYPE_VBI_CAPTURE: {
// DEB_EE(("V4L2_BUF_TYPE_VBI_CAPTURE: file:%p, data:%p, count:%lu\n", file, data, (unsigned long)count));
return saa7146_vbi_uops.read(file,data,count,ppos);
return 0;//saa7146_vbi_uops.read(file,data,count,ppos);
}
break;
default:
452,7 → 452,7
return;
}
DEB_INT(("irq: RPS1 (0x%08x).\n",isr));
saa7146_vbi_uops.irq_done(dev,isr);
//saa7146_vbi_uops.irq_done(dev,isr);
}
}
 
497,7 → 497,7
memset(vv->d_clipping.cpu_addr, 0x0, SAA7146_CLIPPING_MEM);
 
saa7146_video_uops.init(dev,vv);
saa7146_vbi_uops.init(dev,vv);
//saa7146_vbi_uops.init(dev,vv);
dev->vv_data = vv;
dev->vv_callback = &vv_callback;
526,7 → 526,7
DEB_EE(("dev:%p, name:'%s', type:%d\n",dev,name,type));
*vid = device_template;
strlcpy(vid->name, name, sizeof(vid->name));
strncpy(vid->name, name, sizeof(vid->name));
vid->priv = dev;
 
// fixme: -1 should be an insmod parameter *for the extension* (like "video_nr");
/shark/trunk/drivers/cm7326/saa7146_i2c.c
215,19 → 215,19
saa7146_write(dev, MC2, (MASK_00 | MASK_16));
 
/* do not poll for i2c-status before upload is complete */
timeout = jiffies + HZ/100 + 1; /* 10ms */
timeout = jiffies26 + HZ/100 + 1; /* 10ms */
while(1) {
mc2 = (saa7146_read(dev, MC2) & 0x1);
if( 0 != mc2 ) {
break;
}
if (time_after(jiffies,timeout)) {
if (jiffies26-timeout>0) {
printk(KERN_WARNING "saa7146_i2c_writeout: timed out waiting for MC2\n");
return -EIO;
}
}
/* wait until we get a transfer done or error */
timeout = jiffies + HZ/100 + 1; /* 10ms */
timeout = jiffies26 + HZ/100 + 1; /* 10ms */
while(1) {
/**
* first read usually delivers bogus results...
236,7 → 236,7
status = saa7146_i2c_status(dev);
if ((status & 0x3) != 1)
break;
if (time_after(jiffies,timeout)) {
if (jiffies26-timeout>0) {
/* this is normal when probing the bus
* (no answer from nonexisistant device...)
*/
/shark/trunk/drivers/cm7326/makefile
10,7 → 10,7
 
OBJS_PATH = $(BASE)/drivers/cm7326
 
OBJS = cm7326.o saa7146_core.o saa7146_fops.o saa7146_hlp.o saa7146_i2c.o saa7146_video.o
OBJS = cm7326.o saa7146_core.o saa7146_hlp.o saa7146_i2c.o saa7146_video.o saa7146_fops.o
 
OTHERINCL += -I$(BASE)/drivers/cm7326/include -I$(BASE)/drivers/linuxc26/include -I$(BASE)/drivers/i2c/include