if( size == 0){
rt_printk("dt282x: AO underrun\n");
dt282x_ao_cancel(dev,s);
- s->async->events |= COMEDI_CB_EOA | COMEDI_CB_ERROR;
+ s->async->events |= COMEDI_CB_OVERFLOW;
comedi_event(dev,s,s->async->events);
return;
}
ret = comedi_buf_write_alloc(s->async, size);
if(!ret){
rt_printk("dt282x: AI buffer overflow\n");
- s->async->events |= COMEDI_CB_ERROR | COMEDI_CB_EOA;
+ s->async->events |= COMEDI_CB_OVERFLOW;
comedi_event(dev,s,s->async->events);
return;
}
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices+0;
+ comedi_subdevice *s_ao = dev->subdevices+1;
unsigned int supcsr, adcsr, dacsr;
sampl_t data;
int ret;
if (adcsr & DT2821_ADERR) {
comedi_error(dev, "A/D error");
dt282x_ai_cancel(dev,s);
- s->async->events |= COMEDI_CB_EOA | COMEDI_CB_ERROR;
+ s->async->events |= COMEDI_CB_ERROR;
comedi_event(dev,s,s->async->events);
return;
}
}
#endif
comedi_error(dev, "D/A error");
- dt282x_ao_cancel(dev,s);
- s->async->events |= COMEDI_CB_EOA | COMEDI_CB_ERROR;
- comedi_event(dev,s,s->async->events);
+ dt282x_ao_cancel(dev,s_ao);
+ s->async->events |= COMEDI_CB_ERROR;
+ comedi_event(dev,s_ao,s->async->events);
return;
}
if (adcsr & DT2821_ADDONE) {
}
ret = comedi_buf_put( s->async, data );
if(ret==0){
- s->async->events |= COMEDI_CB_ERROR;
+ s->async->events |= COMEDI_CB_OVERFLOW;
}
devpriv->nread--;