Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 757 → Rev 758

/shark/trunk/drivers/bttv/bttv-driver.c
78,6 → 78,7
static unsigned int v4l2 = 1;
 
static volatile unsigned int grab_task = -1;
static volatile unsigned int shark_task_activation = 0;
 
/* insmod args */
MODULE_PARM(radio,"1-" __stringify(BTTV_MAX) "i");
3185,6 → 3186,9
return 0;
}
 
/* S.Ha.R.K. External function */
extern int task_activate(int pid);
 
static void
bttv_irq_wakeup_set(struct bttv *btv, struct bttv_buffer_set *wakeup,
struct bttv_buffer_set *curr, unsigned int state)
3223,8 → 3227,16
wakeup->bottom->vb.ts = ts;
wakeup->bottom->vb.field_count = btv->field_count;
wakeup->bottom->vb.state = state;
//wake_up(&wakeup->bottom->vb.done);
}
}
 
/* S.Ha.R.K. grab task activation */
if (shark_task_activation == 0) {
shark_task_activation = 1;
task_activate(grab_task);
}
 
}
 
static void bttv_irq_timeout(unsigned long data)
3258,6 → 3270,10
list_del(&item->vb.queue);
item->vb.state = STATE_ERROR;
//wake_up(&item->vb.done);
if (shark_task_activation == 0) {
shark_task_activation = 1;
task_activate(grab_task);
}
}
while (!list_empty(&btv->vcapture)) {
item = list_entry(btv->vcapture.next, struct bttv_buffer, vb.queue);
3264,6 → 3280,10
list_del(&item->vb.queue);
item->vb.state = STATE_ERROR;
//wake_up(&item->vb.done);
if (shark_task_activation == 0) {
shark_task_activation = 1;
task_activate(grab_task);
}
}
btv->errors++;
3287,12 → 3307,16
wakeup->vb.field_count = btv->field_count;
wakeup->vb.state = STATE_DONE;
//wake_up(&wakeup->vb.done);
if (shark_task_activation == 0) {
shark_task_activation = 1;
task_activate(grab_task);
}
 
spin_unlock(&btv->s_lock);
 
}
 
extern int task_activate(int pid);
 
static void
bttv_irq_switch_fields(struct bttv *btv)
{
3328,9 → 3352,6
/* wake up finished buffers */
bttv_irq_wakeup_set(btv, &old, &new, STATE_DONE);
 
/* S.Ha.R.K. Task Activate */
task_activate(grab_task);
 
spin_unlock(&btv->s_lock);
}
 
3357,6 → 3378,8
/* get device status bits */
dstat=btread(BT848_DSTATUS);
 
shark_task_activation = 0;
 
if (irq_debug) {
printk(KERN_DEBUG "bttv%d: irq loop=%d fc=%d "
"riscs=%x, riscc=%08x, ",
/shark/trunk/drivers/bttv/bttv-risc.c
404,9 → 404,9
cmd |= BT848_RISC_IRQ;
cmd |= (irqflags & 0x0f) << 16;
cmd |= (~irqflags & 0x0f) << 20;
//mod_timer(&btv->timeout, jiffies26+BTTV_TIMEOUT);
mod_timer(&btv->timeout, jiffies26+BTTV_TIMEOUT);
} else {
//del_timer(&btv->timeout);
del_timer(&btv->timeout);
}
btv->main.cpu[RISC_SLOT_LOOP] = cpu_to_le32(cmd);