Lines Matching refs:cdev
37 static void ccw_timeout_log(struct ccw_device *cdev) in ccw_timeout_log() argument
45 sch = to_subchannel(cdev->dev.parent); in ccw_timeout_log()
56 dev_name(&cdev->dev)); in ccw_timeout_log()
73 cdev->private->dma_area->iccws) in ccw_timeout_log()
84 cdev->private->state); in ccw_timeout_log()
91 &cdev->private->flags, sizeof(cdev->private->flags), 0); in ccw_timeout_log()
101 struct ccw_device *cdev = priv->cdev; in ccw_device_timeout() local
103 spin_lock_irq(cdev->ccwlock); in ccw_device_timeout()
105 ccw_timeout_log(cdev); in ccw_device_timeout()
106 dev_fsm_event(cdev, DEV_EVENT_TIMEOUT); in ccw_device_timeout()
107 spin_unlock_irq(cdev->ccwlock); in ccw_device_timeout()
114 ccw_device_set_timeout(struct ccw_device *cdev, int expires) in ccw_device_set_timeout() argument
117 del_timer(&cdev->private->timer); in ccw_device_set_timeout()
119 mod_timer(&cdev->private->timer, jiffies + expires); in ccw_device_set_timeout()
123 ccw_device_cancel_halt_clear(struct ccw_device *cdev) in ccw_device_cancel_halt_clear() argument
128 sch = to_subchannel(cdev->dev.parent); in ccw_device_cancel_halt_clear()
129 ret = cio_cancel_halt_clear(sch, &cdev->private->iretry); in ccw_device_cancel_halt_clear()
133 cdev->private->dev_id.ssid, in ccw_device_cancel_halt_clear()
134 cdev->private->dev_id.devno); in ccw_device_cancel_halt_clear()
139 void ccw_device_update_sense_data(struct ccw_device *cdev) in ccw_device_update_sense_data() argument
141 memset(&cdev->id, 0, sizeof(cdev->id)); in ccw_device_update_sense_data()
142 cdev->id.cu_type = cdev->private->dma_area->senseid.cu_type; in ccw_device_update_sense_data()
143 cdev->id.cu_model = cdev->private->dma_area->senseid.cu_model; in ccw_device_update_sense_data()
144 cdev->id.dev_type = cdev->private->dma_area->senseid.dev_type; in ccw_device_update_sense_data()
145 cdev->id.dev_model = cdev->private->dma_area->senseid.dev_model; in ccw_device_update_sense_data()
148 int ccw_device_test_sense_data(struct ccw_device *cdev) in ccw_device_test_sense_data() argument
150 return cdev->id.cu_type == in ccw_device_test_sense_data()
151 cdev->private->dma_area->senseid.cu_type && in ccw_device_test_sense_data()
152 cdev->id.cu_model == in ccw_device_test_sense_data()
153 cdev->private->dma_area->senseid.cu_model && in ccw_device_test_sense_data()
154 cdev->id.dev_type == in ccw_device_test_sense_data()
155 cdev->private->dma_area->senseid.dev_type && in ccw_device_test_sense_data()
156 cdev->id.dev_model == in ccw_device_test_sense_data()
157 cdev->private->dma_area->senseid.dev_model; in ccw_device_test_sense_data()
188 ccw_device_recog_done(struct ccw_device *cdev, int state) in ccw_device_recog_done() argument
193 sch = to_subchannel(cdev->dev.parent); in ccw_device_recog_done()
209 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID) in ccw_device_recog_done()
214 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID && in ccw_device_recog_done()
216 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
217 cdev->private->state = DEV_STATE_DISCONNECTED; in ccw_device_recog_done()
218 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
225 if (!cdev->online) { in ccw_device_recog_done()
226 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
229 cdev->private->state = DEV_STATE_OFFLINE; in ccw_device_recog_done()
230 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
231 if (ccw_device_test_sense_data(cdev)) { in ccw_device_recog_done()
232 cdev->private->flags.donotify = 1; in ccw_device_recog_done()
233 ccw_device_online(cdev); in ccw_device_recog_done()
234 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
236 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
237 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_recog_done()
241 if (cdev->id.cu_type != 0) { /* device was recognized before */ in ccw_device_recog_done()
242 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
243 cdev->private->state = DEV_STATE_BOXED; in ccw_device_recog_done()
244 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
249 cdev->private->state = state; in ccw_device_recog_done()
250 io_subchannel_recog_done(cdev); in ccw_device_recog_done()
251 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
258 ccw_device_sense_id_done(struct ccw_device *cdev, int err) in ccw_device_sense_id_done() argument
262 ccw_device_recog_done(cdev, DEV_STATE_OFFLINE); in ccw_device_sense_id_done()
265 ccw_device_recog_done(cdev, DEV_STATE_BOXED); in ccw_device_sense_id_done()
268 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_sense_id_done()
284 int ccw_device_notify(struct ccw_device *cdev, int event) in ccw_device_notify() argument
288 if (!cdev->drv) in ccw_device_notify()
290 if (!cdev->online) in ccw_device_notify()
293 cdev->private->dev_id.ssid, cdev->private->dev_id.devno, in ccw_device_notify()
295 if (!cdev->drv->notify) { in ccw_device_notify()
299 if (cdev->drv->notify(cdev, event)) in ccw_device_notify()
307 static void ccw_device_oper_notify(struct ccw_device *cdev) in ccw_device_oper_notify() argument
309 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_oper_notify()
311 if (ccw_device_notify(cdev, CIO_OPER) == NOTIFY_OK) { in ccw_device_oper_notify()
313 ccw_device_sched_todo(cdev, CDEV_TODO_ENABLE_CMF); in ccw_device_oper_notify()
315 cdev->private->path_new_mask = sch->vpm; in ccw_device_oper_notify()
319 ccw_device_set_notoper(cdev); in ccw_device_oper_notify()
320 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_oper_notify()
327 ccw_device_done(struct ccw_device *cdev, int state) in ccw_device_done() argument
331 sch = to_subchannel(cdev->dev.parent); in ccw_device_done()
333 ccw_device_set_timeout(cdev, 0); in ccw_device_done()
339 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_done()
341 cdev->private->state = state; in ccw_device_done()
346 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
347 if (cdev->online && in ccw_device_done()
348 ccw_device_notify(cdev, CIO_BOXED) != NOTIFY_OK) in ccw_device_done()
349 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
350 cdev->private->flags.donotify = 0; in ccw_device_done()
354 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
355 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_done()
356 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
358 ccw_device_set_disconnected(cdev); in ccw_device_done()
359 cdev->private->flags.donotify = 0; in ccw_device_done()
363 "%04x\n", cdev->private->dev_id.devno, in ccw_device_done()
365 if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK) { in ccw_device_done()
366 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_done()
367 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
369 ccw_device_set_disconnected(cdev); in ccw_device_done()
370 cdev->private->flags.donotify = 0; in ccw_device_done()
376 if (cdev->private->flags.donotify) { in ccw_device_done()
377 cdev->private->flags.donotify = 0; in ccw_device_done()
378 ccw_device_oper_notify(cdev); in ccw_device_done()
380 wake_up(&cdev->private->wait_q); in ccw_device_done()
386 void ccw_device_recognition(struct ccw_device *cdev) in ccw_device_recognition() argument
388 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_recognition()
398 cdev->private->flags.recog_done = 0; in ccw_device_recognition()
399 cdev->private->state = DEV_STATE_SENSE_ID; in ccw_device_recognition()
401 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_recognition()
404 ccw_device_sense_id_start(cdev); in ccw_device_recognition()
410 static void ccw_device_request_event(struct ccw_device *cdev, enum dev_event e) in ccw_device_request_event() argument
414 ccw_request_notoper(cdev); in ccw_device_request_event()
417 ccw_request_handler(cdev); in ccw_device_request_event()
420 ccw_request_timeout(cdev); in ccw_device_request_event()
427 static void ccw_device_report_path_events(struct ccw_device *cdev) in ccw_device_report_path_events() argument
429 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_report_path_events()
435 if (mask & cdev->private->path_gone_mask & ~(sch->vpm)) in ccw_device_report_path_events()
437 if (mask & cdev->private->path_new_mask & sch->vpm) in ccw_device_report_path_events()
439 if (mask & cdev->private->pgid_reset_mask & sch->vpm) in ccw_device_report_path_events()
442 if (cdev->online && cdev->drv->path_event) in ccw_device_report_path_events()
443 cdev->drv->path_event(cdev, path_event); in ccw_device_report_path_events()
446 static void ccw_device_reset_path_events(struct ccw_device *cdev) in ccw_device_reset_path_events() argument
448 cdev->private->path_gone_mask = 0; in ccw_device_reset_path_events()
449 cdev->private->path_new_mask = 0; in ccw_device_reset_path_events()
450 cdev->private->pgid_reset_mask = 0; in ccw_device_reset_path_events()
472 static void ccw_device_handle_broken_paths(struct ccw_device *cdev) in ccw_device_handle_broken_paths() argument
474 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_handle_broken_paths()
477 if (broken_paths && (cdev->private->path_broken_mask != broken_paths)) in ccw_device_handle_broken_paths()
480 cdev->private->path_broken_mask = broken_paths; in ccw_device_handle_broken_paths()
483 void ccw_device_verify_done(struct ccw_device *cdev, int err) in ccw_device_verify_done() argument
487 sch = to_subchannel(cdev->dev.parent); in ccw_device_verify_done()
496 if (cdev->private->flags.doverify) { in ccw_device_verify_done()
497 ccw_device_verify_start(cdev); in ccw_device_verify_done()
503 ccw_device_done(cdev, DEV_STATE_ONLINE); in ccw_device_verify_done()
505 if (cdev->private->flags.fake_irb) { in ccw_device_verify_done()
506 create_fake_irb(&cdev->private->dma_area->irb, in ccw_device_verify_done()
507 cdev->private->flags.fake_irb); in ccw_device_verify_done()
508 cdev->private->flags.fake_irb = 0; in ccw_device_verify_done()
509 if (cdev->handler) in ccw_device_verify_done()
510 cdev->handler(cdev, cdev->private->intparm, in ccw_device_verify_done()
511 &cdev->private->dma_area->irb); in ccw_device_verify_done()
512 memset(&cdev->private->dma_area->irb, 0, in ccw_device_verify_done()
515 ccw_device_report_path_events(cdev); in ccw_device_verify_done()
516 ccw_device_handle_broken_paths(cdev); in ccw_device_verify_done()
521 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
522 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_verify_done()
526 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
527 ccw_device_done(cdev, DEV_STATE_DISCONNECTED); in ccw_device_verify_done()
531 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
532 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_verify_done()
535 ccw_device_reset_path_events(cdev); in ccw_device_verify_done()
542 ccw_device_online(struct ccw_device *cdev) in ccw_device_online() argument
547 if ((cdev->private->state != DEV_STATE_OFFLINE) && in ccw_device_online()
548 (cdev->private->state != DEV_STATE_BOXED)) in ccw_device_online()
550 sch = to_subchannel(cdev->dev.parent); in ccw_device_online()
555 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online()
559 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online()
560 ccw_device_verify_start(cdev); in ccw_device_online()
565 ccw_device_disband_done(struct ccw_device *cdev, int err) in ccw_device_disband_done() argument
569 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_disband_done()
572 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_disband_done()
575 cdev->private->flags.donotify = 0; in ccw_device_disband_done()
576 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_disband_done()
585 ccw_device_offline(struct ccw_device *cdev) in ccw_device_offline() argument
590 if (cdev->private->state == DEV_STATE_DISCONNECTED || in ccw_device_offline()
591 cdev->private->state == DEV_STATE_NOT_OPER) { in ccw_device_offline()
592 cdev->private->flags.donotify = 0; in ccw_device_offline()
593 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_offline()
596 if (cdev->private->state == DEV_STATE_BOXED) { in ccw_device_offline()
597 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_offline()
600 if (ccw_device_is_orphan(cdev)) { in ccw_device_offline()
601 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
604 sch = to_subchannel(cdev->dev.parent); in ccw_device_offline()
609 if (cdev->private->state != DEV_STATE_ONLINE) in ccw_device_offline()
612 if (!cdev->private->flags.pgroup) { in ccw_device_offline()
614 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
618 cdev->private->state = DEV_STATE_DISBAND_PGID; in ccw_device_offline()
619 ccw_device_disband_start(cdev); in ccw_device_offline()
626 static void ccw_device_generic_notoper(struct ccw_device *cdev, in ccw_device_generic_notoper() argument
629 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_generic_notoper()
630 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_generic_notoper()
632 ccw_device_set_disconnected(cdev); in ccw_device_generic_notoper()
638 static void ccw_device_offline_verify(struct ccw_device *cdev, in ccw_device_offline_verify() argument
641 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_offline_verify()
650 ccw_device_online_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_verify() argument
654 if (cdev->private->state == DEV_STATE_W4SENSE) { in ccw_device_online_verify()
655 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
658 sch = to_subchannel(cdev->dev.parent); in ccw_device_online_verify()
664 ccw_device_verify_done(cdev, -ENODEV); in ccw_device_online_verify()
670 (scsw_stctl(&cdev->private->dma_area->irb.scsw) & in ccw_device_online_verify()
677 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
681 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online_verify()
682 ccw_device_verify_start(cdev); in ccw_device_online_verify()
688 static void ccw_device_boxed_verify(struct ccw_device *cdev, in ccw_device_boxed_verify() argument
691 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_boxed_verify()
693 if (cdev->online) { in ccw_device_boxed_verify()
695 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_boxed_verify()
697 ccw_device_online_verify(cdev, dev_event); in ccw_device_boxed_verify()
705 static int ccw_device_call_handler(struct ccw_device *cdev) in ccw_device_call_handler() argument
718 stctl = scsw_stctl(&cdev->private->dma_area->irb.scsw); in ccw_device_call_handler()
723 !cdev->private->options.repall && in ccw_device_call_handler()
725 !(cdev->private->options.fast && in ccw_device_call_handler()
730 ccw_device_set_timeout(cdev, 0); in ccw_device_call_handler()
732 if (cdev->handler) in ccw_device_call_handler()
733 cdev->handler(cdev, cdev->private->intparm, in ccw_device_call_handler()
734 &cdev->private->dma_area->irb); in ccw_device_call_handler()
736 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_call_handler()
744 ccw_device_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_irq() argument
756 if (ccw_device_do_sense(cdev, irb) != 0) in ccw_device_irq()
758 memcpy(&cdev->private->dma_area->irb, irb, in ccw_device_irq()
760 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
761 cdev->private->intparm = 0; in ccw_device_irq()
765 if (cdev->handler) in ccw_device_irq()
766 cdev->handler (cdev, 0, irb); in ccw_device_irq()
767 if (cdev->private->flags.doverify) in ccw_device_irq()
768 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
772 ccw_device_accumulate_irb(cdev, irb); in ccw_device_irq()
773 if (is_cmd && cdev->private->flags.dosense) { in ccw_device_irq()
774 if (ccw_device_do_sense(cdev, irb) == 0) { in ccw_device_irq()
775 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
780 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_irq()
782 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
789 ccw_device_online_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_timeout() argument
793 ccw_device_set_timeout(cdev, 0); in ccw_device_online_timeout()
794 cdev->private->iretry = 255; in ccw_device_online_timeout()
795 cdev->private->async_kill_io_rc = -ETIMEDOUT; in ccw_device_online_timeout()
796 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_online_timeout()
798 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_online_timeout()
799 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_online_timeout()
803 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online_timeout()
804 else if (cdev->handler) in ccw_device_online_timeout()
805 cdev->handler(cdev, cdev->private->intparm, in ccw_device_online_timeout()
813 ccw_device_w4sense(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_w4sense() argument
823 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
827 cdev->private->dev_id.ssid, in ccw_device_w4sense()
828 cdev->private->dev_id.devno); in ccw_device_w4sense()
829 if (cdev->handler) in ccw_device_w4sense()
830 cdev->handler (cdev, 0, irb); in ccw_device_w4sense()
841 cdev->private->flags.dosense = 0; in ccw_device_w4sense()
842 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_w4sense()
843 ccw_device_accumulate_irb(cdev, irb); in ccw_device_w4sense()
847 ccw_device_accumulate_basic_sense(cdev, irb); in ccw_device_w4sense()
848 if (cdev->private->flags.dosense) { in ccw_device_w4sense()
850 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
854 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_w4sense()
856 wake_up(&cdev->private->wait_q); in ccw_device_w4sense()
858 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_w4sense()
860 ccw_device_online_verify(cdev, 0); in ccw_device_w4sense()
864 ccw_device_killing_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_irq() argument
866 ccw_device_set_timeout(cdev, 0); in ccw_device_killing_irq()
868 ccw_device_online_verify(cdev, 0); in ccw_device_killing_irq()
870 if (cdev->handler) in ccw_device_killing_irq()
871 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_irq()
872 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_irq()
876 ccw_device_killing_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_timeout() argument
880 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_killing_timeout()
882 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_killing_timeout()
886 ccw_device_online_verify(cdev, 0); in ccw_device_killing_timeout()
887 if (cdev->handler) in ccw_device_killing_timeout()
888 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_timeout()
889 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_timeout()
892 void ccw_device_kill_io(struct ccw_device *cdev) in ccw_device_kill_io() argument
896 ccw_device_set_timeout(cdev, 0); in ccw_device_kill_io()
897 cdev->private->iretry = 255; in ccw_device_kill_io()
898 cdev->private->async_kill_io_rc = -EIO; in ccw_device_kill_io()
899 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_kill_io()
901 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_kill_io()
902 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_kill_io()
906 ccw_device_online_verify(cdev, 0); in ccw_device_kill_io()
907 if (cdev->handler) in ccw_device_kill_io()
908 cdev->handler(cdev, cdev->private->intparm, in ccw_device_kill_io()
913 ccw_device_delay_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_delay_verify() argument
916 cdev->private->flags.doverify = 1; in ccw_device_delay_verify()
920 ccw_device_start_id(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_start_id() argument
924 sch = to_subchannel(cdev->dev.parent); in ccw_device_start_id()
928 cdev->private->state = DEV_STATE_DISCONNECTED_SENSE_ID; in ccw_device_start_id()
929 ccw_device_sense_id_start(cdev); in ccw_device_start_id()
932 void ccw_device_trigger_reprobe(struct ccw_device *cdev) in ccw_device_trigger_reprobe() argument
936 if (cdev->private->state != DEV_STATE_DISCONNECTED) in ccw_device_trigger_reprobe()
939 sch = to_subchannel(cdev->dev.parent); in ccw_device_trigger_reprobe()
958 if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) in ccw_device_trigger_reprobe()
961 ccw_device_start_id(cdev, 0); in ccw_device_trigger_reprobe()
964 static void ccw_device_disabled_irq(struct ccw_device *cdev, in ccw_device_disabled_irq() argument
969 sch = to_subchannel(cdev->dev.parent); in ccw_device_disabled_irq()
978 ccw_device_change_cmfstate(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_change_cmfstate() argument
980 retry_set_schib(cdev); in ccw_device_change_cmfstate()
981 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_change_cmfstate()
982 dev_fsm_event(cdev, dev_event); in ccw_device_change_cmfstate()
985 static void ccw_device_update_cmfblock(struct ccw_device *cdev, in ccw_device_update_cmfblock() argument
988 cmf_retry_copy_block(cdev); in ccw_device_update_cmfblock()
989 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_update_cmfblock()
990 dev_fsm_event(cdev, dev_event); in ccw_device_update_cmfblock()
994 ccw_device_quiesce_done(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_done() argument
996 ccw_device_set_timeout(cdev, 0); in ccw_device_quiesce_done()
997 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_done()
998 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_done()
1002 ccw_device_quiesce_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_timeout() argument
1006 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_quiesce_timeout()
1008 ccw_device_set_timeout(cdev, HZ/10); in ccw_device_quiesce_timeout()
1010 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_timeout()
1011 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_timeout()
1020 ccw_device_nop(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_nop() argument