Lines Matching refs:cdev
39 static void ccw_timeout_log(struct ccw_device *cdev) in ccw_timeout_log() argument
47 sch = to_subchannel(cdev->dev.parent); in ccw_timeout_log()
58 dev_name(&cdev->dev)); in ccw_timeout_log()
75 cdev->private->dma_area->iccws) in ccw_timeout_log()
86 cdev->private->state); in ccw_timeout_log()
93 &cdev->private->flags, sizeof(cdev->private->flags), 0); in ccw_timeout_log()
103 struct ccw_device *cdev = priv->cdev; in ccw_device_timeout() local
105 spin_lock_irq(cdev->ccwlock); in ccw_device_timeout()
107 ccw_timeout_log(cdev); in ccw_device_timeout()
108 dev_fsm_event(cdev, DEV_EVENT_TIMEOUT); in ccw_device_timeout()
109 spin_unlock_irq(cdev->ccwlock); in ccw_device_timeout()
116 ccw_device_set_timeout(struct ccw_device *cdev, int expires) in ccw_device_set_timeout() argument
119 timer_delete(&cdev->private->timer); in ccw_device_set_timeout()
121 mod_timer(&cdev->private->timer, jiffies + expires); in ccw_device_set_timeout()
125 ccw_device_cancel_halt_clear(struct ccw_device *cdev) in ccw_device_cancel_halt_clear() argument
130 sch = to_subchannel(cdev->dev.parent); in ccw_device_cancel_halt_clear()
131 ret = cio_cancel_halt_clear(sch, &cdev->private->iretry); in ccw_device_cancel_halt_clear()
135 cdev->private->dev_id.ssid, in ccw_device_cancel_halt_clear()
136 cdev->private->dev_id.devno); in ccw_device_cancel_halt_clear()
141 void ccw_device_update_sense_data(struct ccw_device *cdev) in ccw_device_update_sense_data() argument
143 memset(&cdev->id, 0, sizeof(cdev->id)); in ccw_device_update_sense_data()
144 cdev->id.cu_type = cdev->private->dma_area->senseid.cu_type; in ccw_device_update_sense_data()
145 cdev->id.cu_model = cdev->private->dma_area->senseid.cu_model; in ccw_device_update_sense_data()
146 cdev->id.dev_type = cdev->private->dma_area->senseid.dev_type; in ccw_device_update_sense_data()
147 cdev->id.dev_model = cdev->private->dma_area->senseid.dev_model; in ccw_device_update_sense_data()
150 int ccw_device_test_sense_data(struct ccw_device *cdev) in ccw_device_test_sense_data() argument
152 return cdev->id.cu_type == in ccw_device_test_sense_data()
153 cdev->private->dma_area->senseid.cu_type && in ccw_device_test_sense_data()
154 cdev->id.cu_model == in ccw_device_test_sense_data()
155 cdev->private->dma_area->senseid.cu_model && in ccw_device_test_sense_data()
156 cdev->id.dev_type == in ccw_device_test_sense_data()
157 cdev->private->dma_area->senseid.dev_type && in ccw_device_test_sense_data()
158 cdev->id.dev_model == in ccw_device_test_sense_data()
159 cdev->private->dma_area->senseid.dev_model; in ccw_device_test_sense_data()
190 ccw_device_recog_done(struct ccw_device *cdev, int state) in ccw_device_recog_done() argument
195 sch = to_subchannel(cdev->dev.parent); in ccw_device_recog_done()
211 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID) in ccw_device_recog_done()
216 if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID && in ccw_device_recog_done()
218 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
219 cdev->private->state = DEV_STATE_DISCONNECTED; in ccw_device_recog_done()
220 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
227 if (!cdev->online) { in ccw_device_recog_done()
228 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
231 cdev->private->state = DEV_STATE_OFFLINE; in ccw_device_recog_done()
232 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
233 if (ccw_device_test_sense_data(cdev)) { in ccw_device_recog_done()
234 cdev->private->flags.donotify = 1; in ccw_device_recog_done()
235 ccw_device_online(cdev); in ccw_device_recog_done()
236 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
238 ccw_device_update_sense_data(cdev); in ccw_device_recog_done()
239 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_recog_done()
243 if (cdev->id.cu_type != 0) { /* device was recognized before */ in ccw_device_recog_done()
244 cdev->private->flags.recog_done = 1; in ccw_device_recog_done()
245 cdev->private->state = DEV_STATE_BOXED; in ccw_device_recog_done()
246 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
251 cdev->private->state = state; in ccw_device_recog_done()
252 io_subchannel_recog_done(cdev); in ccw_device_recog_done()
253 wake_up(&cdev->private->wait_q); in ccw_device_recog_done()
260 ccw_device_sense_id_done(struct ccw_device *cdev, int err) in ccw_device_sense_id_done() argument
264 ccw_device_recog_done(cdev, DEV_STATE_OFFLINE); in ccw_device_sense_id_done()
267 ccw_device_recog_done(cdev, DEV_STATE_BOXED); in ccw_device_sense_id_done()
270 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_sense_id_done()
286 int ccw_device_notify(struct ccw_device *cdev, int event) in ccw_device_notify() argument
290 if (!cdev->drv) in ccw_device_notify()
292 if (!cdev->online) in ccw_device_notify()
295 cdev->private->dev_id.ssid, cdev->private->dev_id.devno, in ccw_device_notify()
297 if (!cdev->drv->notify) { in ccw_device_notify()
301 if (cdev->drv->notify(cdev, event)) in ccw_device_notify()
309 static void ccw_device_oper_notify(struct ccw_device *cdev) in ccw_device_oper_notify() argument
311 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_oper_notify()
313 if (ccw_device_notify(cdev, CIO_OPER) == NOTIFY_OK) { in ccw_device_oper_notify()
315 ccw_device_sched_todo(cdev, CDEV_TODO_ENABLE_CMF); in ccw_device_oper_notify()
317 cdev->private->path_new_mask = sch->vpm; in ccw_device_oper_notify()
321 ccw_device_set_notoper(cdev); in ccw_device_oper_notify()
322 ccw_device_sched_todo(cdev, CDEV_TODO_REBIND); in ccw_device_oper_notify()
329 ccw_device_done(struct ccw_device *cdev, int state) in ccw_device_done() argument
333 sch = to_subchannel(cdev->dev.parent); in ccw_device_done()
335 ccw_device_set_timeout(cdev, 0); in ccw_device_done()
341 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_done()
343 cdev->private->state = state; in ccw_device_done()
348 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
349 if (cdev->online && in ccw_device_done()
350 ccw_device_notify(cdev, CIO_BOXED) != NOTIFY_OK) in ccw_device_done()
351 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
352 cdev->private->flags.donotify = 0; in ccw_device_done()
356 cdev->private->dev_id.devno, sch->schid.sch_no); in ccw_device_done()
357 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_done()
358 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
360 ccw_device_set_disconnected(cdev); in ccw_device_done()
361 cdev->private->flags.donotify = 0; in ccw_device_done()
365 "%04x\n", cdev->private->dev_id.devno, in ccw_device_done()
367 if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK) { in ccw_device_done()
368 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_done()
369 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_done()
371 ccw_device_set_disconnected(cdev); in ccw_device_done()
372 cdev->private->flags.donotify = 0; in ccw_device_done()
378 if (cdev->private->flags.donotify) { in ccw_device_done()
379 cdev->private->flags.donotify = 0; in ccw_device_done()
380 ccw_device_oper_notify(cdev); in ccw_device_done()
382 wake_up(&cdev->private->wait_q); in ccw_device_done()
388 void ccw_device_recognition(struct ccw_device *cdev) in ccw_device_recognition() argument
390 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_recognition()
400 cdev->private->flags.recog_done = 0; in ccw_device_recognition()
401 cdev->private->state = DEV_STATE_SENSE_ID; in ccw_device_recognition()
403 ccw_device_recog_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_recognition()
406 ccw_device_sense_id_start(cdev); in ccw_device_recognition()
412 static void ccw_device_request_event(struct ccw_device *cdev, enum dev_event e) in ccw_device_request_event() argument
416 ccw_request_notoper(cdev); in ccw_device_request_event()
419 ccw_request_handler(cdev); in ccw_device_request_event()
422 ccw_request_timeout(cdev); in ccw_device_request_event()
429 static void ccw_device_report_path_events(struct ccw_device *cdev) in ccw_device_report_path_events() argument
431 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_report_path_events()
437 if (mask & cdev->private->path_gone_mask & ~(sch->vpm)) in ccw_device_report_path_events()
439 if (mask & cdev->private->path_new_mask & sch->vpm) in ccw_device_report_path_events()
441 if (mask & cdev->private->pgid_reset_mask & sch->vpm) in ccw_device_report_path_events()
444 if (cdev->online && cdev->drv->path_event) in ccw_device_report_path_events()
445 cdev->drv->path_event(cdev, path_event); in ccw_device_report_path_events()
448 static void ccw_device_reset_path_events(struct ccw_device *cdev) in ccw_device_reset_path_events() argument
450 cdev->private->path_gone_mask = 0; in ccw_device_reset_path_events()
451 cdev->private->path_new_mask = 0; in ccw_device_reset_path_events()
452 cdev->private->pgid_reset_mask = 0; in ccw_device_reset_path_events()
474 static void ccw_device_handle_broken_paths(struct ccw_device *cdev) in ccw_device_handle_broken_paths() argument
476 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_handle_broken_paths()
479 if (broken_paths && (cdev->private->path_broken_mask != broken_paths)) in ccw_device_handle_broken_paths()
482 cdev->private->path_broken_mask = broken_paths; in ccw_device_handle_broken_paths()
485 void ccw_device_verify_done(struct ccw_device *cdev, int err) in ccw_device_verify_done() argument
489 sch = to_subchannel(cdev->dev.parent); in ccw_device_verify_done()
498 if (cdev->private->flags.doverify) { in ccw_device_verify_done()
499 ccw_device_verify_start(cdev); in ccw_device_verify_done()
505 ccw_device_done(cdev, DEV_STATE_ONLINE); in ccw_device_verify_done()
507 if (cdev->private->flags.fake_irb) { in ccw_device_verify_done()
509 cdev->private->dev_id.ssid, in ccw_device_verify_done()
510 cdev->private->dev_id.devno, in ccw_device_verify_done()
511 cdev->private->intparm, in ccw_device_verify_done()
512 cdev->private->flags.fake_irb); in ccw_device_verify_done()
513 create_fake_irb(&cdev->private->dma_area->irb, in ccw_device_verify_done()
514 cdev->private->flags.fake_irb); in ccw_device_verify_done()
515 cdev->private->flags.fake_irb = 0; in ccw_device_verify_done()
516 if (cdev->handler) in ccw_device_verify_done()
517 cdev->handler(cdev, cdev->private->intparm, in ccw_device_verify_done()
518 &cdev->private->dma_area->irb); in ccw_device_verify_done()
519 memset(&cdev->private->dma_area->irb, 0, in ccw_device_verify_done()
522 ccw_device_report_path_events(cdev); in ccw_device_verify_done()
523 ccw_device_handle_broken_paths(cdev); in ccw_device_verify_done()
528 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
529 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_verify_done()
533 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
534 ccw_device_done(cdev, DEV_STATE_DISCONNECTED); in ccw_device_verify_done()
538 cdev->private->flags.donotify = 0; in ccw_device_verify_done()
539 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_verify_done()
542 ccw_device_reset_path_events(cdev); in ccw_device_verify_done()
549 ccw_device_online(struct ccw_device *cdev) in ccw_device_online() argument
554 if ((cdev->private->state != DEV_STATE_OFFLINE) && in ccw_device_online()
555 (cdev->private->state != DEV_STATE_BOXED)) in ccw_device_online()
557 sch = to_subchannel(cdev->dev.parent); in ccw_device_online()
562 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online()
566 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online()
567 ccw_device_verify_start(cdev); in ccw_device_online()
572 ccw_device_disband_done(struct ccw_device *cdev, int err) in ccw_device_disband_done() argument
576 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_disband_done()
579 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_disband_done()
582 cdev->private->flags.donotify = 0; in ccw_device_disband_done()
583 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_disband_done()
592 ccw_device_offline(struct ccw_device *cdev) in ccw_device_offline() argument
597 if (cdev->private->state == DEV_STATE_DISCONNECTED || in ccw_device_offline()
598 cdev->private->state == DEV_STATE_NOT_OPER) { in ccw_device_offline()
599 cdev->private->flags.donotify = 0; in ccw_device_offline()
600 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_offline()
603 if (cdev->private->state == DEV_STATE_BOXED) { in ccw_device_offline()
604 ccw_device_done(cdev, DEV_STATE_BOXED); in ccw_device_offline()
607 if (ccw_device_is_orphan(cdev)) { in ccw_device_offline()
608 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
611 sch = to_subchannel(cdev->dev.parent); in ccw_device_offline()
616 if (cdev->private->state != DEV_STATE_ONLINE) in ccw_device_offline()
619 if (!cdev->private->flags.pgroup) { in ccw_device_offline()
621 ccw_device_done(cdev, DEV_STATE_OFFLINE); in ccw_device_offline()
625 cdev->private->state = DEV_STATE_DISBAND_PGID; in ccw_device_offline()
626 ccw_device_disband_start(cdev); in ccw_device_offline()
633 static void ccw_device_generic_notoper(struct ccw_device *cdev, in ccw_device_generic_notoper() argument
636 if (ccw_device_notify(cdev, CIO_GONE) != NOTIFY_OK) in ccw_device_generic_notoper()
637 ccw_device_sched_todo(cdev, CDEV_TODO_UNREG); in ccw_device_generic_notoper()
639 ccw_device_set_disconnected(cdev); in ccw_device_generic_notoper()
645 static void ccw_device_offline_verify(struct ccw_device *cdev, in ccw_device_offline_verify() argument
648 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_offline_verify()
657 ccw_device_online_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_verify() argument
661 if (cdev->private->state == DEV_STATE_W4SENSE) { in ccw_device_online_verify()
662 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
665 sch = to_subchannel(cdev->dev.parent); in ccw_device_online_verify()
671 ccw_device_verify_done(cdev, -ENODEV); in ccw_device_online_verify()
677 (scsw_stctl(&cdev->private->dma_area->irb.scsw) & in ccw_device_online_verify()
684 cdev->private->flags.doverify = 1; in ccw_device_online_verify()
688 cdev->private->state = DEV_STATE_VERIFY; in ccw_device_online_verify()
689 ccw_device_verify_start(cdev); in ccw_device_online_verify()
695 static void ccw_device_boxed_verify(struct ccw_device *cdev, in ccw_device_boxed_verify() argument
698 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_boxed_verify()
700 if (cdev->online) { in ccw_device_boxed_verify()
702 ccw_device_done(cdev, DEV_STATE_NOT_OPER); in ccw_device_boxed_verify()
704 ccw_device_online_verify(cdev, dev_event); in ccw_device_boxed_verify()
712 static int ccw_device_call_handler(struct ccw_device *cdev) in ccw_device_call_handler() argument
725 stctl = scsw_stctl(&cdev->private->dma_area->irb.scsw); in ccw_device_call_handler()
730 !cdev->private->options.repall && in ccw_device_call_handler()
732 !(cdev->private->options.fast && in ccw_device_call_handler()
737 ccw_device_set_timeout(cdev, 0); in ccw_device_call_handler()
739 if (cdev->handler) in ccw_device_call_handler()
740 cdev->handler(cdev, cdev->private->intparm, in ccw_device_call_handler()
741 &cdev->private->dma_area->irb); in ccw_device_call_handler()
743 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_call_handler()
751 ccw_device_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_irq() argument
763 if (ccw_device_do_sense(cdev, irb) != 0) in ccw_device_irq()
765 memcpy(&cdev->private->dma_area->irb, irb, in ccw_device_irq()
767 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
768 cdev->private->intparm = 0; in ccw_device_irq()
772 if (cdev->handler) in ccw_device_irq()
773 cdev->handler (cdev, 0, irb); in ccw_device_irq()
774 if (cdev->private->flags.doverify) in ccw_device_irq()
775 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
779 ccw_device_accumulate_irb(cdev, irb); in ccw_device_irq()
780 if (is_cmd && cdev->private->flags.dosense) { in ccw_device_irq()
781 if (ccw_device_do_sense(cdev, irb) == 0) { in ccw_device_irq()
782 cdev->private->state = DEV_STATE_W4SENSE; in ccw_device_irq()
787 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_irq()
789 ccw_device_online_verify(cdev, 0); in ccw_device_irq()
796 ccw_device_online_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_online_timeout() argument
800 ccw_device_set_timeout(cdev, 0); in ccw_device_online_timeout()
801 cdev->private->iretry = 255; in ccw_device_online_timeout()
802 cdev->private->async_kill_io_rc = -ETIMEDOUT; in ccw_device_online_timeout()
803 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_online_timeout()
805 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_online_timeout()
806 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_online_timeout()
810 dev_fsm_event(cdev, DEV_EVENT_NOTOPER); in ccw_device_online_timeout()
811 else if (cdev->handler) in ccw_device_online_timeout()
812 cdev->handler(cdev, cdev->private->intparm, in ccw_device_online_timeout()
820 ccw_device_w4sense(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_w4sense() argument
830 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
834 cdev->private->dev_id.ssid, in ccw_device_w4sense()
835 cdev->private->dev_id.devno); in ccw_device_w4sense()
836 if (cdev->handler) in ccw_device_w4sense()
837 cdev->handler (cdev, 0, irb); in ccw_device_w4sense()
848 cdev->private->flags.dosense = 0; in ccw_device_w4sense()
849 memset(&cdev->private->dma_area->irb, 0, sizeof(struct irb)); in ccw_device_w4sense()
850 ccw_device_accumulate_irb(cdev, irb); in ccw_device_w4sense()
854 ccw_device_accumulate_basic_sense(cdev, irb); in ccw_device_w4sense()
855 if (cdev->private->flags.dosense) { in ccw_device_w4sense()
857 ccw_device_do_sense(cdev, irb); in ccw_device_w4sense()
861 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_w4sense()
863 wake_up(&cdev->private->wait_q); in ccw_device_w4sense()
865 if (ccw_device_call_handler(cdev) && cdev->private->flags.doverify) in ccw_device_w4sense()
867 ccw_device_online_verify(cdev, 0); in ccw_device_w4sense()
871 ccw_device_killing_irq(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_irq() argument
873 ccw_device_set_timeout(cdev, 0); in ccw_device_killing_irq()
875 ccw_device_online_verify(cdev, 0); in ccw_device_killing_irq()
877 if (cdev->handler) in ccw_device_killing_irq()
878 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_irq()
879 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_irq()
883 ccw_device_killing_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_killing_timeout() argument
887 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_killing_timeout()
889 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_killing_timeout()
893 ccw_device_online_verify(cdev, 0); in ccw_device_killing_timeout()
894 if (cdev->handler) in ccw_device_killing_timeout()
895 cdev->handler(cdev, cdev->private->intparm, in ccw_device_killing_timeout()
896 ERR_PTR(cdev->private->async_kill_io_rc)); in ccw_device_killing_timeout()
899 void ccw_device_kill_io(struct ccw_device *cdev) in ccw_device_kill_io() argument
903 ccw_device_set_timeout(cdev, 0); in ccw_device_kill_io()
904 cdev->private->iretry = 255; in ccw_device_kill_io()
905 cdev->private->async_kill_io_rc = -EIO; in ccw_device_kill_io()
906 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_kill_io()
908 ccw_device_set_timeout(cdev, 3*HZ); in ccw_device_kill_io()
909 cdev->private->state = DEV_STATE_TIMEOUT_KILL; in ccw_device_kill_io()
913 ccw_device_online_verify(cdev, 0); in ccw_device_kill_io()
914 if (cdev->handler) in ccw_device_kill_io()
915 cdev->handler(cdev, cdev->private->intparm, in ccw_device_kill_io()
920 ccw_device_delay_verify(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_delay_verify() argument
923 cdev->private->flags.doverify = 1; in ccw_device_delay_verify()
927 ccw_device_start_id(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_start_id() argument
931 sch = to_subchannel(cdev->dev.parent); in ccw_device_start_id()
935 cdev->private->state = DEV_STATE_DISCONNECTED_SENSE_ID; in ccw_device_start_id()
936 ccw_device_sense_id_start(cdev); in ccw_device_start_id()
939 void ccw_device_trigger_reprobe(struct ccw_device *cdev) in ccw_device_trigger_reprobe() argument
943 if (cdev->private->state != DEV_STATE_DISCONNECTED) in ccw_device_trigger_reprobe()
946 sch = to_subchannel(cdev->dev.parent); in ccw_device_trigger_reprobe()
965 if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) in ccw_device_trigger_reprobe()
968 ccw_device_start_id(cdev, 0); in ccw_device_trigger_reprobe()
971 static void ccw_device_disabled_irq(struct ccw_device *cdev, in ccw_device_disabled_irq() argument
976 sch = to_subchannel(cdev->dev.parent); in ccw_device_disabled_irq()
985 ccw_device_change_cmfstate(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_change_cmfstate() argument
987 retry_set_schib(cdev); in ccw_device_change_cmfstate()
988 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_change_cmfstate()
989 dev_fsm_event(cdev, dev_event); in ccw_device_change_cmfstate()
992 static void ccw_device_update_cmfblock(struct ccw_device *cdev, in ccw_device_update_cmfblock() argument
995 cmf_retry_copy_block(cdev); in ccw_device_update_cmfblock()
996 cdev->private->state = DEV_STATE_ONLINE; in ccw_device_update_cmfblock()
997 dev_fsm_event(cdev, dev_event); in ccw_device_update_cmfblock()
1001 ccw_device_quiesce_done(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_done() argument
1003 ccw_device_set_timeout(cdev, 0); in ccw_device_quiesce_done()
1004 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_done()
1005 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_done()
1009 ccw_device_quiesce_timeout(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_quiesce_timeout() argument
1013 ret = ccw_device_cancel_halt_clear(cdev); in ccw_device_quiesce_timeout()
1015 ccw_device_set_timeout(cdev, HZ/10); in ccw_device_quiesce_timeout()
1017 cdev->private->state = DEV_STATE_NOT_OPER; in ccw_device_quiesce_timeout()
1018 wake_up(&cdev->private->wait_q); in ccw_device_quiesce_timeout()
1027 ccw_device_nop(struct ccw_device *cdev, enum dev_event dev_event) in ccw_device_nop() argument