Lines Matching defs:udfs

210 static int send_dux_commands(struct usbduxfastsub_s *udfs, int cmd_type)
214 udfs->dux_commands[0] = cmd_type;
218 udfs->comedidev->minor);
220 printk(" %02x", udfs->dux_commands[tmp]);
224 tmp = usb_bulk_msg(udfs->usbdev,
225 usb_sndbulkpipe(udfs->usbdev, CHANNELLISTEP),
226 udfs->dux_commands, SIZEOFDUXBUFFER, &nsent, 10000);
229 "the usb-device, err=%d\n", udfs->comedidev->minor, tmp);
237 static int usbduxfastsub_unlink_InURBs(struct usbduxfastsub_s *udfs)
242 if (udfs && udfs->urbIn) {
243 udfs->ai_cmd_running = 0;
245 usb_kill_urb(udfs->urbIn);
259 static int usbduxfast_ai_stop(struct usbduxfastsub_s *udfs, int do_unlink)
263 if (!udfs) {
264 printk(KERN_ERR "comedi?: usbduxfast_ai_stop: udfs=NULL!\n");
271 udfs->ai_cmd_running = 0;
275 ret = usbduxfastsub_unlink_InURBs(udfs);
287 struct usbduxfastsub_s *udfs;
294 udfs = dev->private;
295 if (!udfs) {
296 printk(KERN_ERR "comedi: usbduxfast_ai_cancel: udfs=NULL\n");
299 down(&udfs->sem);
300 if (!udfs->probed) {
301 up(&udfs->sem);
305 ret = usbduxfast_ai_stop(udfs, 1);
306 up(&udfs->sem);
318 struct usbduxfastsub_s *udfs;
337 udfs = this_comedidev->private;
338 if (!udfs) {
344 if (unlikely(!udfs->ai_cmd_running)) {
353 if (unlikely(!udfs->attached)) {
376 comedi_event(udfs->comedidev, s);
378 usbduxfast_ai_stop(udfs, 0);
384 udfs->comedidev->minor, urb->status);
387 comedi_event(udfs->comedidev, s);
388 usbduxfast_ai_stop(udfs, 0);
393 if (!udfs->ignore) {
394 if (!udfs->ai_continous) {
397 if (unlikely(udfs->ai_sample_count < n)) {
404 udfs->ai_sample_count
406 usbduxfast_ai_stop(udfs, 0);
409 comedi_event(udfs->comedidev, s);
412 udfs->ai_sample_count -= n;
419 usbduxfast_ai_stop(udfs, 0);
424 comedi_event(udfs->comedidev, s);
428 udfs->ignore--;
435 urb->dev = udfs->usbdev;
440 udfs->comedidev->minor, err);
443 comedi_event(udfs->comedidev, s);
444 usbduxfast_ai_stop(udfs, 0);
448 static int usbduxfastsub_start(struct usbduxfastsub_s *udfs)
456 ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), USBDUXFASTSUB_FIRMWARE,
472 static int usbduxfastsub_stop(struct usbduxfastsub_s *udfs)
480 ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), USBDUXFASTSUB_FIRMWARE,
495 static int usbduxfastsub_upload(struct usbduxfastsub_s *udfs,
507 ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), USBDUXFASTSUB_FIRMWARE,
528 static int usbduxfastsub_submit_InURBs(struct usbduxfastsub_s *udfs)
532 if (!udfs)
535 usb_fill_bulk_urb(udfs->urbIn, udfs->usbdev,
536 usb_rcvbulkpipe(udfs->usbdev, BULKINEP),
537 udfs->transfer_buffer,
538 SIZEINBUF, usbduxfastsub_ai_Irq, udfs->comedidev);
542 "0x%p,0x%p\n", udfs->comedidev->minor, udfs->urbIn->context,
543 udfs->urbIn->dev);
545 ret = usb_submit_urb(udfs->urbIn, GFP_ATOMIC);
561 struct usbduxfastsub_s *udfs = dev->private;
563 if (!udfs->probed)
702 struct usbduxfastsub_s *udfs = dev->private;
704 if (!udfs)
707 down(&udfs->sem);
708 if (!udfs->probed) {
709 up(&udfs->sem);
719 up(&udfs->sem);
722 if (!udfs->ai_cmd_running) {
723 udfs->ai_cmd_running = 1;
724 ret = usbduxfastsub_submit_InURBs(udfs);
728 udfs->ai_cmd_running = 0;
729 up(&udfs->sem);
737 up(&udfs->sem);
756 struct usbduxfastsub_s *udfs;
763 udfs = dev->private;
764 if (!udfs)
767 down(&udfs->sem);
768 if (!udfs->probed) {
769 up(&udfs->sem);
772 if (udfs->ai_cmd_running) {
775 up(&udfs->sem);
785 udfs->ignore = PACKETS_TO_IGNORE;
795 up(&udfs->sem);
803 up(&udfs->sem);
817 up(&udfs->sem);
827 up(&udfs->sem);
833 up(&udfs->sem);
840 up(&udfs->sem);
867 udfs->dux_commands[LENBASE + 0] = 0x01;
869 udfs->dux_commands[OPBASE + 0] = 0x01;
870 udfs->dux_commands[OUTBASE + 0] = 0xFF & rngmask;
872 udfs->dux_commands[LOGBASE + 0] = 0x00;
874 udfs->dux_commands[LENBASE + 0] = 1;
875 udfs->dux_commands[OPBASE + 0] = 0;
876 udfs->dux_commands[OUTBASE + 0] = 0xFF & rngmask;
877 udfs->dux_commands[LOGBASE + 0] = 0;
890 udfs->dux_commands[LENBASE + 1] = 0x89;
892 udfs->dux_commands[OPBASE + 1] = 0x03;
893 udfs->dux_commands[OUTBASE + 1] =
896 udfs->dux_commands[LOGBASE + 1] = 0xFF;
902 udfs->dux_commands[LENBASE + 1] = steps - 1;
904 udfs->dux_commands[OPBASE + 1] = 0x02;
905 udfs->dux_commands[OUTBASE + 1] =
908 udfs->dux_commands[LOGBASE + 1] = 0;
910 udfs->dux_commands[LENBASE + 2] = 0x09;
912 udfs->dux_commands[OPBASE + 2] = 0x01;
913 udfs->dux_commands[OUTBASE + 2] =
916 udfs->dux_commands[LOGBASE + 2] = 0xFF;
928 udfs->dux_commands[LENBASE + 1] = steps / 2;
929 udfs->dux_commands[OPBASE + 1] = 0;
930 udfs->dux_commands[OUTBASE + 1] = 0xFF & rngmask;
931 udfs->dux_commands[LOGBASE + 1] = 0;
934 udfs->dux_commands[LENBASE + 2] = steps - steps / 2;
935 udfs->dux_commands[OPBASE + 2] = 0;
936 udfs->dux_commands[OUTBASE + 2] = 0xFF & rngmask;
937 udfs->dux_commands[LOGBASE + 2] = 0;
942 udfs->dux_commands[LENBASE + 3] = 0x09;
944 udfs->dux_commands[OPBASE + 3] = 0x03;
945 udfs->dux_commands[OUTBASE + 3] = 0xFF & rngmask;
947 udfs->dux_commands[LOGBASE + 3] = 0xFF;
962 udfs->dux_commands[LENBASE + 0] = 1;
964 udfs->dux_commands[OPBASE + 0] = 0x02;
965 udfs->dux_commands[OUTBASE + 0] = 0xFF & rngmask;
966 udfs->dux_commands[LOGBASE + 0] = 0;
977 udfs->dux_commands[LENBASE + 1] = steps_tmp / 2;
978 udfs->dux_commands[OPBASE + 1] = 0;
980 udfs->dux_commands[OUTBASE + 1] = 0xFE & rngmask;
981 udfs->dux_commands[LOGBASE + 1] = 0;
984 udfs->dux_commands[LENBASE + 2] = steps_tmp - steps_tmp / 2;
985 udfs->dux_commands[OPBASE + 2] = 0;
986 udfs->dux_commands[OUTBASE + 2] = 0xFF & rngmask;
987 udfs->dux_commands[LOGBASE + 2] = 0;
989 udfs->dux_commands[LENBASE + 3] = 1;
991 udfs->dux_commands[OPBASE + 3] = 0x02;
992 udfs->dux_commands[OUTBASE + 3] = 0xFF & rngmask;
993 udfs->dux_commands[LOGBASE + 3] = 0;
1007 udfs->dux_commands[LENBASE + 4] = steps_tmp / 2;
1008 udfs->dux_commands[OPBASE + 4] = 0;
1010 udfs->dux_commands[OUTBASE + 4] = (0xFF - 0x02) & rngmask;
1011 udfs->dux_commands[LOGBASE + 4] = 0;
1014 udfs->dux_commands[LENBASE + 5] = steps_tmp - steps_tmp / 2;
1015 udfs->dux_commands[OPBASE + 5] = 0;
1016 udfs->dux_commands[OUTBASE + 5] = 0xFF & rngmask;
1017 udfs->dux_commands[LOGBASE + 5] = 0;
1019 udfs->dux_commands[LENBASE + 6] = 1;
1020 udfs->dux_commands[OPBASE + 6] = 0;
1021 udfs->dux_commands[OUTBASE + 6] = 0xFF & rngmask;
1022 udfs->dux_commands[LOGBASE + 6] = 0;
1038 udfs->dux_commands[LENBASE + j * 2] = steps / 2;
1040 udfs->dux_commands[OPBASE + j * 2] = 0x02;
1042 udfs->dux_commands[OUTBASE + j * 2] = 0xFF & rngmask;
1043 udfs->dux_commands[LOGBASE + j * 2] = 0;
1051 udfs->dux_commands[LENBASE + j * 2 + 1] =
1054 udfs->dux_commands[OPBASE + j * 2 + 1] = 0;
1056 udfs->dux_commands[OUTBASE + j * 2 + 1] =
1058 udfs->dux_commands[LOGBASE + j * 2 + 1] = 0;
1065 udfs->dux_commands[LENBASE + 4] = steps_tmp / 2;
1067 udfs->dux_commands[OPBASE + 4] = 0x02;
1068 udfs->dux_commands[OUTBASE + 4] = 0xFF & rngmask;
1069 udfs->dux_commands[LOGBASE + 4] = 0;
1077 udfs->dux_commands[LENBASE + 5] = steps_tmp - steps_tmp / 2;
1079 udfs->dux_commands[OPBASE + 5] = 0;
1081 udfs->dux_commands[OUTBASE + 5] = (0xFF - 0x02) & rngmask;
1082 udfs->dux_commands[LOGBASE + 5] = 0;
1084 udfs->dux_commands[LENBASE + 6] = 1;
1085 udfs->dux_commands[OPBASE + 6] = 0;
1086 udfs->dux_commands[OUTBASE + 6] = 0xFF & rngmask;
1087 udfs->dux_commands[LOGBASE + 6] = 0;
1101 udfs->dux_commands[LENBASE + 0] = 0x01;
1103 udfs->dux_commands[OPBASE + 0] = 0x01;
1105 udfs->dux_commands[OUTBASE + 0] =
1108 udfs->dux_commands[LOGBASE + 0] = 0x00;
1115 udfs->dux_commands[LENBASE + 0] = 255;
1116 udfs->dux_commands[OPBASE + 0] = 0;
1118 udfs->dux_commands[OUTBASE + 0] =
1120 udfs->dux_commands[LOGBASE + 0] = 0;
1124 udfs->dux_commands[LENBASE + 1] = 1;
1126 udfs->dux_commands[OPBASE + 1] = 0x02;
1127 udfs->dux_commands[OUTBASE + 1] = 0xFF & rngmask;
1128 udfs->dux_commands[LOGBASE + 1] = 0;
1134 udfs->dux_commands[LENBASE + 2] = steps / 2;
1135 udfs->dux_commands[OPBASE + 2] = 0;
1136 udfs->dux_commands[OUTBASE + 2] = 0xFE & rngmask;
1137 udfs->dux_commands[LOGBASE + 2] = 0;
1140 udfs->dux_commands[LENBASE + 3] = steps - steps / 2;
1141 udfs->dux_commands[OPBASE + 3] = 0;
1142 udfs->dux_commands[OUTBASE + 3] = 0xFF & rngmask;
1143 udfs->dux_commands[LOGBASE + 3] = 0;
1146 udfs->dux_commands[LENBASE + 4] = 0x09;
1148 udfs->dux_commands[OPBASE + 4] = 0x01;
1149 udfs->dux_commands[OUTBASE + 4] = 0xFF & rngmask;
1151 udfs->dux_commands[LOGBASE + 4] = 0xFF;
1158 up(&udfs->sem);
1167 result = send_dux_commands(udfs, SENDADCOMMANDS);
1171 up(&udfs->sem);
1175 udfs->ai_sample_count = cmd->stop_arg * cmd->scan_end_arg;
1176 if (udfs->ai_sample_count < 1) {
1180 up(&udfs->sem);
1183 udfs->ai_continous = 0;
1186 udfs->ai_continous = 1;
1187 udfs->ai_sample_count = 0;
1192 udfs->ai_cmd_running = 1;
1193 ret = usbduxfastsub_submit_InURBs(udfs);
1195 udfs->ai_cmd_running = 0;
1197 up(&udfs->sem);
1209 up(&udfs->sem);
1224 struct usbduxfastsub_s *udfs;
1226 udfs = dev->private;
1227 if (!udfs) {
1236 down(&udfs->sem);
1237 if (!udfs->probed) {
1238 up(&udfs->sem);
1241 if (udfs->ai_cmd_running) {
1244 up(&udfs->sem);
1258 udfs->dux_commands[LENBASE + 0] = 1;
1260 udfs->dux_commands[OPBASE + 0] = 0x02;
1261 udfs->dux_commands[OUTBASE + 0] = 0xFF & rngmask;
1262 udfs->dux_commands[LOGBASE + 0] = 0;
1265 udfs->dux_commands[LENBASE + 1] = 12;
1266 udfs->dux_commands[OPBASE + 1] = 0;
1267 udfs->dux_commands[OUTBASE + 1] = 0xFE & rngmask;
1268 udfs->dux_commands[LOGBASE + 1] = 0;
1270 udfs->dux_commands[LENBASE + 2] = 1;
1271 udfs->dux_commands[OPBASE + 2] = 0;
1272 udfs->dux_commands[OUTBASE + 2] = 0xFE & rngmask;
1273 udfs->dux_commands[LOGBASE + 2] = 0;
1275 udfs->dux_commands[LENBASE + 3] = 1;
1276 udfs->dux_commands[OPBASE + 3] = 0;
1277 udfs->dux_commands[OUTBASE + 3] = 0xFE & rngmask;
1278 udfs->dux_commands[LOGBASE + 3] = 0;
1280 udfs->dux_commands[LENBASE + 4] = 1;
1281 udfs->dux_commands[OPBASE + 4] = 0;
1282 udfs->dux_commands[OUTBASE + 4] = 0xFE & rngmask;
1283 udfs->dux_commands[LOGBASE + 4] = 0;
1286 udfs->dux_commands[LENBASE + 5] = 12;
1287 udfs->dux_commands[OPBASE + 5] = 0;
1288 udfs->dux_commands[OUTBASE + 5] = 0xFF & rngmask;
1289 udfs->dux_commands[LOGBASE + 5] = 0;
1291 udfs->dux_commands[LENBASE + 6] = 1;
1292 udfs->dux_commands[OPBASE + 6] = 0;
1293 udfs->dux_commands[OUTBASE + 6] = 0xFF & rngmask;
1294 udfs->dux_commands[LOGBASE + 0] = 0;
1301 err = send_dux_commands(udfs, SENDADCOMMANDS);
1305 up(&udfs->sem);
1310 "0x%p,0x%p\n", udfs->comedidev->minor, udfs->urbIn->context,
1311 udfs->urbIn->dev);
1314 err = usb_bulk_msg(udfs->usbdev,
1315 usb_rcvbulkpipe(udfs->usbdev, BULKINEP),
1316 udfs->transfer_buffer, SIZEINBUF,
1321 up(&udfs->sem);
1327 err = usb_bulk_msg(udfs->usbdev,
1328 usb_rcvbulkpipe(udfs->usbdev, BULKINEP),
1329 udfs->transfer_buffer, SIZEINBUF,
1334 up(&udfs->sem);
1341 up(&udfs->sem);
1345 data[i] = ((uint16_t *) (udfs->transfer_buffer))[j];
1349 up(&udfs->sem);
1404 static void tidy_up(struct usbduxfastsub_s *udfs)
1410 if (!udfs)
1414 if (udfs->interface)
1415 usb_set_intfdata(udfs->interface, NULL);
1417 udfs->probed = 0;
1419 if (udfs->urbIn) {
1421 usb_kill_urb(udfs->urbIn);
1423 kfree(udfs->transfer_buffer);
1424 udfs->transfer_buffer = NULL;
1426 usb_free_urb(udfs->urbIn);
1427 udfs->urbIn = NULL;
1430 kfree(udfs->insnBuffer);
1431 udfs->insnBuffer = NULL;
1433 kfree(udfs->dux_commands);
1434 udfs->dux_commands = NULL;
1436 udfs->ai_cmd_running = 0;
1595 struct usbduxfastsub_s *udfs = usb_get_intfdata(intf);
1598 if (!udfs) {
1603 if (udfs->usbdev != udev) {
1612 down(&udfs->sem);
1613 tidy_up(udfs);
1614 up(&udfs->sem);
1726 struct usbduxfastsub_s *udfs;
1738 udfs = dev->private;
1739 if (!udfs) {
1745 down(&udfs->sem);
1752 udfs->attached = 0;
1753 udfs->comedidev = NULL;
1759 up(&udfs->sem);