Lines Matching defs:instance

144 static void speedtch_set_swbuff(struct speedtch_instance_data *instance, int state)
146 struct usbatm_data *usbatm = instance->usbatm;
160 static void speedtch_test_sequence(struct speedtch_instance_data *instance)
162 struct usbatm_data *usbatm = instance->usbatm;
164 unsigned char *buf = instance->scratch_buffer;
204 buf[0] = instance->params.ModemMode;
216 instance->params.ModemOption,
222 buf[0] = instance->params.BMaxDSL & 0xff;
223 buf[1] = instance->params.BMaxDSL >> 8;
230 static int speedtch_upload_firmware(struct speedtch_instance_data *instance,
235 struct usbatm_data *usbatm = instance->usbatm;
327 if ((ret = usb_set_interface(usb_dev, INTERFACE_DATA, instance->params.altsetting)) < 0) {
328 usb_err(usbatm, "%s: setting interface to %d failed (%d)!\n", __func__, instance->params.altsetting, ret);
334 speedtch_set_swbuff(instance, 1);
337 speedtch_test_sequence(instance);
382 struct speedtch_instance_data *instance = usbatm->driver_data;
393 if ((ret = speedtch_upload_firmware(instance, fw1, fw2)) < 0)
407 static int speedtch_read_status(struct speedtch_instance_data *instance)
409 struct usbatm_data *usbatm = instance->usbatm;
411 unsigned char *buf = instance->scratch_buffer;
459 static int speedtch_start_synchro(struct speedtch_instance_data *instance)
461 struct usbatm_data *usbatm = instance->usbatm;
463 unsigned char *buf = instance->scratch_buffer;
485 struct speedtch_instance_data *instance =
488 struct usbatm_data *usbatm = instance->usbatm;
490 unsigned char *buf = instance->scratch_buffer;
498 ret = speedtch_read_status(instance);
501 instance->poll_delay = min(2 * instance->poll_delay, MAX_POLL_DELAY);
505 instance->poll_delay = max(instance->poll_delay / 2, MIN_POLL_DELAY);
509 if ((status != instance->last_status) || !status) {
515 if (instance->last_status)
518 ret = speedtch_start_synchro(instance);
556 instance->last_status = status;
562 struct speedtch_instance_data *instance = from_timer(instance, t,
565 schedule_work(&instance->status_check_work);
568 if (instance->poll_delay < MAX_POLL_DELAY)
569 mod_timer(&instance->status_check_timer, jiffies + msecs_to_jiffies(instance->poll_delay));
571 atm_warn(instance->usbatm, "Too many failures - disabling line status polling\n");
576 struct speedtch_instance_data *instance = from_timer(instance, t,
578 struct urb *int_urb = instance->int_urb;
581 atm_dbg(instance->usbatm, "%s entered\n", __func__);
586 schedule_work(&instance->status_check_work);
588 atm_dbg(instance->usbatm, "%s: usb_submit_urb failed with result %d\n", __func__, ret);
589 mod_timer(&instance->resubmit_timer, jiffies + msecs_to_jiffies(RESUBMIT_DELAY));
596 struct speedtch_instance_data *instance = int_urb->context;
597 struct usbatm_data *usbatm = instance->usbatm;
614 if ((count == 6) && !memcmp(up_int, instance->int_data, 6)) {
615 del_timer(&instance->status_check_timer);
617 } else if ((count == 6) && !memcmp(down_int, instance->int_data, 6)) {
624 printk(" %02x", instance->int_data[i]);
629 int_urb = instance->int_urb;
632 schedule_work(&instance->status_check_work);
642 int_urb = instance->int_urb;
644 mod_timer(&instance->resubmit_timer, jiffies + msecs_to_jiffies(RESUBMIT_DELAY));
650 struct speedtch_instance_data *instance = usbatm->driver_data;
665 ret = speedtch_start_synchro(instance);
668 if (instance->int_urb) {
669 ret = usb_submit_urb(instance->int_urb, GFP_KERNEL);
673 usb_free_urb(instance->int_urb);
674 instance->int_urb = NULL;
679 mod_timer(&instance->status_check_timer, jiffies + msecs_to_jiffies(1000));
686 struct speedtch_instance_data *instance = usbatm->driver_data;
687 struct urb *int_urb = instance->int_urb;
691 del_timer_sync(&instance->status_check_timer);
697 instance->int_urb = NULL; /* signal shutdown */
700 del_timer_sync(&instance->resubmit_timer);
703 * can run or be running, but instance->int_urb == NULL means that
707 del_timer_sync(&instance->resubmit_timer);
710 flush_work(&instance->status_check_work);
767 struct speedtch_instance_data *instance;
804 instance = kzalloc(sizeof(*instance), GFP_KERNEL);
806 if (!instance) {
811 instance->usbatm = usbatm;
814 instance->params.altsetting = altsetting;
815 instance->params.BMaxDSL = BMaxDSL;
816 instance->params.ModemMode = ModemMode;
817 memcpy(instance->params.ModemOption, DEFAULT_MODEM_OPTION, MODEM_OPTION_LENGTH);
818 memcpy(instance->params.ModemOption, ModemOption, num_ModemOption);
821 if (instance->params.altsetting)
822 if ((ret = usb_set_interface(usb_dev, INTERFACE_DATA, instance->params.altsetting)) < 0) {
823 usb_err(usbatm, "%s: setting interface to %2d failed (%d)!\n", __func__, instance->params.altsetting, ret);
824 instance->params.altsetting = 0; /* fall back to default */
827 if (!instance->params.altsetting && use_isoc)
853 if (!use_isoc && !instance->params.altsetting)
859 if (!instance->params.altsetting)
860 instance->params.altsetting = use_isoc ? DEFAULT_ISOC_ALTSETTING : DEFAULT_BULK_ALTSETTING;
864 INIT_WORK(&instance->status_check_work, speedtch_check_status);
865 timer_setup(&instance->status_check_timer, speedtch_status_poll, 0);
866 instance->last_status = 0xff;
867 instance->poll_delay = MIN_POLL_DELAY;
869 timer_setup(&instance->resubmit_timer, speedtch_resubmit_int, 0);
871 instance->int_urb = usb_alloc_urb(0, GFP_KERNEL);
873 if (instance->int_urb)
874 usb_fill_int_urb(instance->int_urb, usb_dev,
876 instance->int_data, sizeof(instance->int_data),
877 speedtch_handle_int, instance, 16);
884 instance->scratch_buffer + OFFSET_7, SIZE_7, 500);
896 usbatm->driver_data = instance;
901 usb_free_urb(instance->int_urb);
902 kfree(instance);
911 struct speedtch_instance_data *instance = usbatm->driver_data;
916 usb_free_urb(instance->int_urb);
917 kfree(instance);