Lines Matching refs:cdev

38 static void ccw_timeout_log(struct ccw_device *cdev)  in ccw_timeout_log()  argument
46 sch = to_subchannel(cdev->dev.parent); in ccw_timeout_log()
57 dev_name(&cdev->dev)); in ccw_timeout_log()
74 cdev->private->dma_area->iccws) in ccw_timeout_log()
85 cdev->private->state); in ccw_timeout_log()
92 &cdev->private->flags, sizeof(cdev->private->flags), 0); in ccw_timeout_log()
102 struct ccw_device *cdev = priv->cdev; in ccw_device_timeout() local
104 spin_lock_irq(cdev->ccwlock); in ccw_device_timeout()
106 ccw_timeout_log(cdev); in ccw_device_timeout()
107 dev_fsm_event(cdev, DEV_EVENT_TIMEOUT); in ccw_device_timeout()
108 spin_unlock_irq(cdev->ccwlock); in ccw_device_timeout()
115 ccw_device_set_timeout(struct ccw_device *cdev, int expires) in ccw_device_set_timeout() argument
118 del_timer(&cdev->private->timer); in ccw_device_set_timeout()
120 mod_timer(&cdev->private->timer, jiffies + expires); in ccw_device_set_timeout()
124 ccw_device_cancel_halt_clear(struct ccw_device *cdev) in ccw_device_cancel_halt_clear() argument
129 sch = to_subchannel(cdev->dev.parent); in ccw_device_cancel_halt_clear()
130 ret = cio_cancel_halt_clear(sch, &cdev->private->iretry); in ccw_device_cancel_halt_clear()
134 cdev->private->dev_id.ssid, in ccw_device_cancel_halt_clear()
135 cdev->private->dev_id.devno); in ccw_device_cancel_halt_clear()
140 void ccw_device_update_sense_data(struct ccw_device *cdev) in ccw_device_update_sense_data() argument
142 memset(&cdev->id, 0, sizeof(cdev->id)); in ccw_device_update_sense_data()
143 cdev->id.cu_type = cdev->private->dma_area->senseid.cu_type; in ccw_device_update_sense_data()
144 cdev->id.cu_model = cdev->private->dma_area->senseid.cu_model; in ccw_device_update_sense_data()
145 cdev->id.dev_type = cdev->private->dma_area->senseid.dev_type; in ccw_device_update_sense_data()
146 cdev->id.dev_model = cdev->private->dma_area->senseid.dev_model; in ccw_device_update_sense_data()
149 int ccw_device_test_sense_data(struct ccw_device *cdev) in ccw_device_test_sense_data() argument
151 return cdev->id.cu_type == in ccw_device_test_sense_data()
152 cdev->private->dma_area->senseid.cu_type && in ccw_device_test_sense_data()
153 cdev->id.cu_model == in ccw_device_test_sense_data()
154 cdev->private->dma_area->senseid.cu_model && in ccw_device_test_sense_data()
155 cdev->id.dev_type == in ccw_device_test_sense_data()
156 cdev->private->dma_area->senseid.dev_type && in ccw_device_test_sense_data()
157 cdev->id.dev_model == in ccw_device_test_sense_data()
158 cdev->private->dma_area->senseid.dev_model; in ccw_device_test_sense_data()
189 ccw_device_recog_done(struct ccw_device *cdev, int state) in ccw_device_recog_done() argument
194 sch = to_subchannel(cdev->dev.parent); in ccw_device_recog_done()
210 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID) in ccw_device_recog_done()
215 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID && in ccw_device_recog_done()
217 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
218 cdev->private->state = DEV_STATE_DISCONNECTED; in ccw_device_recog_done()
219 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
226 if (!cdev->online) { in ccw_device_recog_done()
227 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
230 cdev->private->state = DEV_STATE_OFFLINE; in ccw_device_recog_done()
231 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
232 if (ccw_device_test_sense_data(cdev)) { in ccw_device_recog_done()
233 cdev->private->flags.donotify = 1; in ccw_device_recog_done()
234 ccw_device_online(cdev); in ccw_device_recog_done()
235 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
237 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
238 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_recog_done()
242 if (cdev->id.cu_type != 0) { /* device was recognized before */ in ccw_device_recog_done()
243 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
244 cdev->private->state = DEV_STATE_BOXED; in ccw_device_recog_done()
245 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
250 cdev->private->state = state; in ccw_device_recog_done()
251 io_subchannel_recog_done(cdev); in ccw_device_recog_done()
252 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
259 ccw_device_sense_id_done(struct ccw_device *cdev, int err) in ccw_device_sense_id_done() argument
263 ccw_device_recog_done(cdev, DEV_STATE_OFFLINE); in ccw_device_sense_id_done()
266 ccw_device_recog_done(cdev, DEV_STATE_BOXED); in ccw_device_sense_id_done()
269 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_sense_id_done()
285 int ccw_device_notify(struct ccw_device *cdev, int event) in ccw_device_notify() argument
289 if (!cdev->drv) in ccw_device_notify()
291 if (!cdev->online) in ccw_device_notify()
294 cdev->private->dev_id.ssid, cdev->private->dev_id.devno, in ccw_device_notify()
296 if (!cdev->drv->notify) { in ccw_device_notify()
300 if (cdev->drv->notify(cdev, event)) in ccw_device_notify()
308 static void ccw_device_oper_notify(struct ccw_device *cdev) in ccw_device_oper_notify() argument
310 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_oper_notify()
312 if (ccw_device_notify(cdev, CIO_OPER) == NOTIFY_OK) { in ccw_device_oper_notify()
314 ccw_device_sched_todo(cdev, CDEV_TODO_ENABLE_CMF); in ccw_device_oper_notify()
316 cdev->private->path_new_mask = sch->vpm; in ccw_device_oper_notify()
320 ccw_device_set_notoper(cdev); in ccw_device_oper_notify()
321 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_oper_notify()
328 ccw_device_done(struct ccw_device *cdev, int state) in ccw_device_done() argument
332 sch = to_subchannel(cdev->dev.parent); in ccw_device_done()
334 ccw_device_set_timeout(cdev, 0); in ccw_device_done()
340 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_done()
342 cdev->private->state = state; in ccw_device_done()
347 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
348 if (cdev->online && in ccw_device_done()
349 ccw_device_notify(cdev, CIO_BOXED) != NOTIFY_OK) in ccw_device_done()
350 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
351 cdev->private->flags.donotify = 0; in ccw_device_done()
355 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
356 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_done()
357 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
359 ccw_device_set_disconnected(cdev); in ccw_device_done()
360 cdev->private->flags.donotify = 0; in ccw_device_done()
364 "%04x\n", cdev->private->dev_id.devno, in ccw_device_done()
366 if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK) { in ccw_device_done()
367 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_done()
368 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
370 ccw_device_set_disconnected(cdev); in ccw_device_done()
371 cdev->private->flags.donotify = 0; in ccw_device_done()
377 if (cdev->private->flags.donotify) { in ccw_device_done()
378 cdev->private->flags.donotify = 0; in ccw_device_done()
379 ccw_device_oper_notify(cdev); in ccw_device_done()
381 wake_up(&cdev->private->wait_q); in ccw_device_done()
387 void ccw_device_recognition(struct ccw_device *cdev) in ccw_device_recognition() argument
389 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_recognition()
399 cdev->private->flags.recog_done = 0; in ccw_device_recognition()
400 cdev->private->state = DEV_STATE_SENSE_ID; in ccw_device_recognition()
402 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_recognition()
405 ccw_device_sense_id_start(cdev); in ccw_device_recognition()
411 static void ccw_device_request_event(struct ccw_device *cdev, enum dev_event e) in ccw_device_request_event() argument
415 ccw_request_notoper(cdev); in ccw_device_request_event()
418 ccw_request_handler(cdev); in ccw_device_request_event()
421 ccw_request_timeout(cdev); in ccw_device_request_event()
428 static void ccw_device_report_path_events(struct ccw_device *cdev) in ccw_device_report_path_events() argument
430 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_report_path_events()
436 if (mask & cdev->private->path_gone_mask & ~(sch->vpm)) in ccw_device_report_path_events()
438 if (mask & cdev->private->path_new_mask & sch->vpm) in ccw_device_report_path_events()
440 if (mask & cdev->private->pgid_reset_mask & sch->vpm) in ccw_device_report_path_events()
443 if (cdev->online && cdev->drv->path_event) in ccw_device_report_path_events()
444 cdev->drv->path_event(cdev, path_event); in ccw_device_report_path_events()
447 static void ccw_device_reset_path_events(struct ccw_device *cdev) in ccw_device_reset_path_events() argument
449 cdev->private->path_gone_mask = 0; in ccw_device_reset_path_events()
450 cdev->private->path_new_mask = 0; in ccw_device_reset_path_events()
451 cdev->private->pgid_reset_mask = 0; in ccw_device_reset_path_events()
473 static void ccw_device_handle_broken_paths(struct ccw_device *cdev) in ccw_device_handle_broken_paths() argument
475 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_handle_broken_paths()
478 if (broken_paths && (cdev->private->path_broken_mask != broken_paths)) in ccw_device_handle_broken_paths()
481 cdev->private->path_broken_mask = broken_paths; in ccw_device_handle_broken_paths()
484 void ccw_device_verify_done(struct ccw_device *cdev, int err) in ccw_device_verify_done() argument
488 sch = to_subchannel(cdev->dev.parent); in ccw_device_verify_done()
497 if (cdev->private->flags.doverify) { in ccw_device_verify_done()
498 ccw_device_verify_start(cdev); in ccw_device_verify_done()
504 ccw_device_done(cdev, DEV_STATE_ONLINE); in ccw_device_verify_done()
506 if (cdev->private->flags.fake_irb) { in ccw_device_verify_done()
507 create_fake_irb(&cdev->private->dma_area->irb, in ccw_device_verify_done()
508 cdev->private->flags.fake_irb); in ccw_device_verify_done()
509 cdev->private->flags.fake_irb = 0; in ccw_device_verify_done()
510 if (cdev->handler) in ccw_device_verify_done()
511 cdev->handler(cdev, cdev->private->intparm, in ccw_device_verify_done()
512 &cdev->private->dma_area->irb); in ccw_device_verify_done()
513 memset(&cdev->private->dma_area->irb, 0, in ccw_device_verify_done()
516 ccw_device_report_path_events(cdev); in ccw_device_verify_done()
517 ccw_device_handle_broken_paths(cdev); in ccw_device_verify_done()
522 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
523 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_verify_done()
527 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
528 ccw_device_done(cdev, DEV_STATE_DISCONNECTED); in ccw_device_verify_done()
532 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
533 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_verify_done()
536 ccw_device_reset_path_events(cdev); in ccw_device_verify_done()
543 ccw_device_online(struct ccw_device *cdev) in ccw_device_online() argument
548 if ((cdev->private->state != DEV_STATE_OFFLINE) && in ccw_device_online()
549 (cdev->private->state != DEV_STATE_BOXED)) in ccw_device_online()
551 sch = to_subchannel(cdev->dev.parent); in ccw_device_online()
556 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online()
560 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online()
561 ccw_device_verify_start(cdev); in ccw_device_online()
566 ccw_device_disband_done(struct ccw_device *cdev, int err) in ccw_device_disband_done() argument
570 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_disband_done()
573 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_disband_done()
576 cdev->private->flags.donotify = 0; in ccw_device_disband_done()
577 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_disband_done()
586 ccw_device_offline(struct ccw_device *cdev) in ccw_device_offline() argument
591 if (cdev->private->state == DEV_STATE_DISCONNECTED || in ccw_device_offline()
592 cdev->private->state == DEV_STATE_NOT_OPER) { in ccw_device_offline()
593 cdev->private->flags.donotify = 0; in ccw_device_offline()
594 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_offline()
597 if (cdev->private->state == DEV_STATE_BOXED) { in ccw_device_offline()
598 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_offline()
601 if (ccw_device_is_orphan(cdev)) { in ccw_device_offline()
602 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
605 sch = to_subchannel(cdev->dev.parent); in ccw_device_offline()
610 if (cdev->private->state != DEV_STATE_ONLINE) in ccw_device_offline()
613 if (!cdev->private->flags.pgroup) { in ccw_device_offline()
615 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
619 cdev->private->state = DEV_STATE_DISBAND_PGID; in ccw_device_offline()
620 ccw_device_disband_start(cdev); in ccw_device_offline()
627 static void ccw_device_generic_notoper(struct ccw_device *cdev, in ccw_device_generic_notoper() argument
630 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_generic_notoper()
631 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_generic_notoper()
633 ccw_device_set_disconnected(cdev); in ccw_device_generic_notoper()
639 static void ccw_device_offline_verify(struct ccw_device *cdev, in ccw_device_offline_verify() argument
642 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_offline_verify()
651 ccw_device_online_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_verify() argument
655 if (cdev->private->state == DEV_STATE_W4SENSE) { in ccw_device_online_verify()
656 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
659 sch = to_subchannel(cdev->dev.parent); in ccw_device_online_verify()
665 ccw_device_verify_done(cdev, -ENODEV); in ccw_device_online_verify()
671 (scsw_stctl(&cdev->private->dma_area->irb.scsw) & in ccw_device_online_verify()
678 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
682 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online_verify()
683 ccw_device_verify_start(cdev); in ccw_device_online_verify()
689 static void ccw_device_boxed_verify(struct ccw_device *cdev, in ccw_device_boxed_verify() argument
692 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_boxed_verify()
694 if (cdev->online) { in ccw_device_boxed_verify()
696 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_boxed_verify()
698 ccw_device_online_verify(cdev, dev_event); in ccw_device_boxed_verify()
706 static int ccw_device_call_handler(struct ccw_device *cdev) in ccw_device_call_handler() argument
719 stctl = scsw_stctl(&cdev->private->dma_area->irb.scsw); in ccw_device_call_handler()
724 !cdev->private->options.repall && in ccw_device_call_handler()
726 !(cdev->private->options.fast && in ccw_device_call_handler()
731 ccw_device_set_timeout(cdev, 0); in ccw_device_call_handler()
733 if (cdev->handler) in ccw_device_call_handler()
734 cdev->handler(cdev, cdev->private->intparm, in ccw_device_call_handler()
735 &cdev->private->dma_area->irb); in ccw_device_call_handler()
737 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_call_handler()
745 ccw_device_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_irq() argument
757 if (ccw_device_do_sense(cdev, irb) != 0) in ccw_device_irq()
759 memcpy(&cdev->private->dma_area->irb, irb, in ccw_device_irq()
761 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
762 cdev->private->intparm = 0; in ccw_device_irq()
766 if (cdev->handler) in ccw_device_irq()
767 cdev->handler (cdev, 0, irb); in ccw_device_irq()
768 if (cdev->private->flags.doverify) in ccw_device_irq()
769 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
773 ccw_device_accumulate_irb(cdev, irb); in ccw_device_irq()
774 if (is_cmd && cdev->private->flags.dosense) { in ccw_device_irq()
775 if (ccw_device_do_sense(cdev, irb) == 0) { in ccw_device_irq()
776 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
781 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_irq()
783 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
790 ccw_device_online_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_timeout() argument
794 ccw_device_set_timeout(cdev, 0); in ccw_device_online_timeout()
795 cdev->private->iretry = 255; in ccw_device_online_timeout()
796 cdev->private->async_kill_io_rc = -ETIMEDOUT; in ccw_device_online_timeout()
797 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_online_timeout()
799 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_online_timeout()
800 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_online_timeout()
804 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online_timeout()
805 else if (cdev->handler) in ccw_device_online_timeout()
806 cdev->handler(cdev, cdev->private->intparm, in ccw_device_online_timeout()
814 ccw_device_w4sense(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_w4sense() argument
824 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
828 cdev->private->dev_id.ssid, in ccw_device_w4sense()
829 cdev->private->dev_id.devno); in ccw_device_w4sense()
830 if (cdev->handler) in ccw_device_w4sense()
831 cdev->handler (cdev, 0, irb); in ccw_device_w4sense()
842 cdev->private->flags.dosense = 0; in ccw_device_w4sense()
843 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_w4sense()
844 ccw_device_accumulate_irb(cdev, irb); in ccw_device_w4sense()
848 ccw_device_accumulate_basic_sense(cdev, irb); in ccw_device_w4sense()
849 if (cdev->private->flags.dosense) { in ccw_device_w4sense()
851 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
855 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_w4sense()
857 wake_up(&cdev->private->wait_q); in ccw_device_w4sense()
859 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_w4sense()
861 ccw_device_online_verify(cdev, 0); in ccw_device_w4sense()
865 ccw_device_killing_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_irq() argument
867 ccw_device_set_timeout(cdev, 0); in ccw_device_killing_irq()
869 ccw_device_online_verify(cdev, 0); in ccw_device_killing_irq()
871 if (cdev->handler) in ccw_device_killing_irq()
872 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_irq()
873 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_irq()
877 ccw_device_killing_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_timeout() argument
881 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_killing_timeout()
883 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_killing_timeout()
887 ccw_device_online_verify(cdev, 0); in ccw_device_killing_timeout()
888 if (cdev->handler) in ccw_device_killing_timeout()
889 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_timeout()
890 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_timeout()
893 void ccw_device_kill_io(struct ccw_device *cdev) in ccw_device_kill_io() argument
897 ccw_device_set_timeout(cdev, 0); in ccw_device_kill_io()
898 cdev->private->iretry = 255; in ccw_device_kill_io()
899 cdev->private->async_kill_io_rc = -EIO; in ccw_device_kill_io()
900 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_kill_io()
902 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_kill_io()
903 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_kill_io()
907 ccw_device_online_verify(cdev, 0); in ccw_device_kill_io()
908 if (cdev->handler) in ccw_device_kill_io()
909 cdev->handler(cdev, cdev->private->intparm, in ccw_device_kill_io()
914 ccw_device_delay_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_delay_verify() argument
917 cdev->private->flags.doverify = 1; in ccw_device_delay_verify()
921 ccw_device_start_id(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_start_id() argument
925 sch = to_subchannel(cdev->dev.parent); in ccw_device_start_id()
929 cdev->private->state = DEV_STATE_DISCONNECTED_SENSE_ID; in ccw_device_start_id()
930 ccw_device_sense_id_start(cdev); in ccw_device_start_id()
933 void ccw_device_trigger_reprobe(struct ccw_device *cdev) in ccw_device_trigger_reprobe() argument
937 if (cdev->private->state != DEV_STATE_DISCONNECTED) in ccw_device_trigger_reprobe()
940 sch = to_subchannel(cdev->dev.parent); in ccw_device_trigger_reprobe()
959 if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) in ccw_device_trigger_reprobe()
962 ccw_device_start_id(cdev, 0); in ccw_device_trigger_reprobe()
965 static void ccw_device_disabled_irq(struct ccw_device *cdev, in ccw_device_disabled_irq() argument
970 sch = to_subchannel(cdev->dev.parent); in ccw_device_disabled_irq()
979 ccw_device_change_cmfstate(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_change_cmfstate() argument
981 retry_set_schib(cdev); in ccw_device_change_cmfstate()
982 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_change_cmfstate()
983 dev_fsm_event(cdev, dev_event); in ccw_device_change_cmfstate()
986 static void ccw_device_update_cmfblock(struct ccw_device *cdev, in ccw_device_update_cmfblock() argument
989 cmf_retry_copy_block(cdev); in ccw_device_update_cmfblock()
990 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_update_cmfblock()
991 dev_fsm_event(cdev, dev_event); in ccw_device_update_cmfblock()
995 ccw_device_quiesce_done(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_done() argument
997 ccw_device_set_timeout(cdev, 0); in ccw_device_quiesce_done()
998 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_done()
999 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_done()
1003 ccw_device_quiesce_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_timeout() argument
1007 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_quiesce_timeout()
1009 ccw_device_set_timeout(cdev, HZ/10); in ccw_device_quiesce_timeout()
1011 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_timeout()
1012 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_timeout()
1021 ccw_device_nop(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_nop() argument