Lines Matching refs:cdev
38 int ccw_device_set_options_mask(struct ccw_device *cdev, unsigned long flags) in ccw_device_set_options_mask() argument
46 cdev->private->options.fast = (flags & CCWDEV_EARLY_NOTIFICATION) != 0; in ccw_device_set_options_mask()
47 cdev->private->options.repall = (flags & CCWDEV_REPORT_ALL) != 0; in ccw_device_set_options_mask()
48 cdev->private->options.pgroup = (flags & CCWDEV_DO_PATHGROUP) != 0; in ccw_device_set_options_mask()
49 cdev->private->options.force = (flags & CCWDEV_ALLOW_FORCE) != 0; in ccw_device_set_options_mask()
50 cdev->private->options.mpath = (flags & CCWDEV_DO_MULTIPATH) != 0; in ccw_device_set_options_mask()
63 int ccw_device_set_options(struct ccw_device *cdev, unsigned long flags) in ccw_device_set_options() argument
71 cdev->private->options.repall) || in ccw_device_set_options()
73 cdev->private->options.fast)) in ccw_device_set_options()
75 cdev->private->options.fast |= (flags & CCWDEV_EARLY_NOTIFICATION) != 0; in ccw_device_set_options()
76 cdev->private->options.repall |= (flags & CCWDEV_REPORT_ALL) != 0; in ccw_device_set_options()
77 cdev->private->options.pgroup |= (flags & CCWDEV_DO_PATHGROUP) != 0; in ccw_device_set_options()
78 cdev->private->options.force |= (flags & CCWDEV_ALLOW_FORCE) != 0; in ccw_device_set_options()
79 cdev->private->options.mpath |= (flags & CCWDEV_DO_MULTIPATH) != 0; in ccw_device_set_options()
90 void ccw_device_clear_options(struct ccw_device *cdev, unsigned long flags) in ccw_device_clear_options() argument
92 cdev->private->options.fast &= (flags & CCWDEV_EARLY_NOTIFICATION) == 0; in ccw_device_clear_options()
93 cdev->private->options.repall &= (flags & CCWDEV_REPORT_ALL) == 0; in ccw_device_clear_options()
94 cdev->private->options.pgroup &= (flags & CCWDEV_DO_PATHGROUP) == 0; in ccw_device_clear_options()
95 cdev->private->options.force &= (flags & CCWDEV_ALLOW_FORCE) == 0; in ccw_device_clear_options()
96 cdev->private->options.mpath &= (flags & CCWDEV_DO_MULTIPATH) == 0; in ccw_device_clear_options()
105 int ccw_device_is_pathgroup(struct ccw_device *cdev) in ccw_device_is_pathgroup() argument
107 return cdev->private->flags.pgroup; in ccw_device_is_pathgroup()
117 int ccw_device_is_multipath(struct ccw_device *cdev) in ccw_device_is_multipath() argument
119 return cdev->private->flags.mpath; in ccw_device_is_multipath()
138 int ccw_device_clear(struct ccw_device *cdev, unsigned long intparm) in ccw_device_clear() argument
143 if (!cdev || !cdev->dev.parent) in ccw_device_clear()
145 sch = to_subchannel(cdev->dev.parent); in ccw_device_clear()
148 if (cdev->private->state == DEV_STATE_NOT_OPER) in ccw_device_clear()
150 if (cdev->private->state != DEV_STATE_ONLINE && in ccw_device_clear()
151 cdev->private->state != DEV_STATE_W4SENSE) in ccw_device_clear()
156 cdev->private->intparm = intparm; in ccw_device_clear()
184 int ccw_device_start_key(struct ccw_device *cdev, struct ccw1 *cpa, in ccw_device_start_key() argument
191 if (!cdev || !cdev->dev.parent) in ccw_device_start_key()
193 sch = to_subchannel(cdev->dev.parent); in ccw_device_start_key()
196 if (cdev->private->state == DEV_STATE_NOT_OPER) in ccw_device_start_key()
198 if (cdev->private->state == DEV_STATE_VERIFY) { in ccw_device_start_key()
200 if (!cdev->private->flags.fake_irb) { in ccw_device_start_key()
201 cdev->private->flags.fake_irb = FAKE_CMD_IRB; in ccw_device_start_key()
202 cdev->private->intparm = intparm; in ccw_device_start_key()
208 if (cdev->private->state != DEV_STATE_ONLINE || in ccw_device_start_key()
211 cdev->private->flags.doverify) in ccw_device_start_key()
225 cdev->private->intparm = intparm; in ccw_device_start_key()
229 dev_fsm_event(cdev, DEV_EVENT_VERIFY); in ccw_device_start_key()
264 int ccw_device_start_timeout_key(struct ccw_device *cdev, struct ccw1 *cpa, in ccw_device_start_timeout_key() argument
270 if (!cdev) in ccw_device_start_timeout_key()
272 ccw_device_set_timeout(cdev, expires); in ccw_device_start_timeout_key()
273 ret = ccw_device_start_key(cdev, cpa, intparm, lpm, key, flags); in ccw_device_start_timeout_key()
275 ccw_device_set_timeout(cdev, 0); in ccw_device_start_timeout_key()
302 int ccw_device_start(struct ccw_device *cdev, struct ccw1 *cpa, in ccw_device_start() argument
305 return ccw_device_start_key(cdev, cpa, intparm, lpm, in ccw_device_start()
337 int ccw_device_start_timeout(struct ccw_device *cdev, struct ccw1 *cpa, in ccw_device_start_timeout() argument
341 return ccw_device_start_timeout_key(cdev, cpa, intparm, lpm, in ccw_device_start_timeout()
363 int ccw_device_halt(struct ccw_device *cdev, unsigned long intparm) in ccw_device_halt() argument
368 if (!cdev || !cdev->dev.parent) in ccw_device_halt()
370 sch = to_subchannel(cdev->dev.parent); in ccw_device_halt()
373 if (cdev->private->state == DEV_STATE_NOT_OPER) in ccw_device_halt()
375 if (cdev->private->state != DEV_STATE_ONLINE && in ccw_device_halt()
376 cdev->private->state != DEV_STATE_W4SENSE) in ccw_device_halt()
381 cdev->private->intparm = intparm; in ccw_device_halt()
398 int ccw_device_resume(struct ccw_device *cdev) in ccw_device_resume() argument
402 if (!cdev || !cdev->dev.parent) in ccw_device_resume()
404 sch = to_subchannel(cdev->dev.parent); in ccw_device_resume()
407 if (cdev->private->state == DEV_STATE_NOT_OPER) in ccw_device_resume()
409 if (cdev->private->state != DEV_STATE_ONLINE || in ccw_device_resume()
419 ccw_device_call_handler(struct ccw_device *cdev) in ccw_device_call_handler() argument
432 stctl = scsw_stctl(&cdev->private->irb.scsw); in ccw_device_call_handler()
437 !cdev->private->options.repall && in ccw_device_call_handler()
439 !(cdev->private->options.fast && in ccw_device_call_handler()
445 ccw_device_set_timeout(cdev, 0); in ccw_device_call_handler()
449 if (cdev->handler) in ccw_device_call_handler()
450 cdev->handler(cdev, cdev->private->intparm, in ccw_device_call_handler()
451 &cdev->private->irb); in ccw_device_call_handler()
456 memset(&cdev->private->irb, 0, sizeof(struct irb)); in ccw_device_call_handler()
475 struct ciw *ccw_device_get_ciw(struct ccw_device *cdev, __u32 ct) in ccw_device_get_ciw() argument
479 if (cdev->private->flags.esid == 0) in ccw_device_get_ciw()
482 if (cdev->private->senseid.ciw[ciw_cnt].ct == ct) in ccw_device_get_ciw()
483 return cdev->private->senseid.ciw + ciw_cnt; in ccw_device_get_ciw()
494 __u8 ccw_device_get_path_mask(struct ccw_device *cdev) in ccw_device_get_path_mask() argument
498 if (!cdev->dev.parent) in ccw_device_get_path_mask()
501 sch = to_subchannel(cdev->dev.parent); in ccw_device_get_path_mask()
510 void ccw_device_stlck_done(struct ccw_device *cdev, void *data, int rc) in ccw_device_stlck_done() argument
521 int ccw_device_stlck(struct ccw_device *cdev) in ccw_device_stlck() argument
523 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_stlck()
529 if (cdev->drv) { in ccw_device_stlck()
530 if (!cdev->private->options.force) in ccw_device_stlck()
543 cdev->private->state = DEV_STATE_STEAL_LOCK, in ccw_device_stlck()
544 ccw_device_stlck_start(cdev, &data, &buffer[0], &buffer[32]); in ccw_device_stlck()
550 ccw_request_cancel(cdev); in ccw_device_stlck()
558 cdev->private->state = DEV_STATE_BOXED; in ccw_device_stlck()
574 struct channel_path_desc *ccw_device_get_chp_desc(struct ccw_device *cdev, in ccw_device_get_chp_desc() argument
580 sch = to_subchannel(cdev->dev.parent); in ccw_device_get_chp_desc()
591 void ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id) in ccw_device_get_id() argument
593 *dev_id = cdev->private->dev_id; in ccw_device_get_id()
608 int ccw_device_tm_start_key(struct ccw_device *cdev, struct tcw *tcw, in ccw_device_tm_start_key() argument
614 sch = to_subchannel(cdev->dev.parent); in ccw_device_tm_start_key()
617 if (cdev->private->state == DEV_STATE_VERIFY) { in ccw_device_tm_start_key()
619 if (!cdev->private->flags.fake_irb) { in ccw_device_tm_start_key()
620 cdev->private->flags.fake_irb = FAKE_TM_IRB; in ccw_device_tm_start_key()
621 cdev->private->intparm = intparm; in ccw_device_tm_start_key()
627 if (cdev->private->state != DEV_STATE_ONLINE) in ccw_device_tm_start_key()
637 cdev->private->intparm = intparm; in ccw_device_tm_start_key()
654 int ccw_device_tm_start_timeout_key(struct ccw_device *cdev, struct tcw *tcw, in ccw_device_tm_start_timeout_key() argument
660 ccw_device_set_timeout(cdev, expires); in ccw_device_tm_start_timeout_key()
661 ret = ccw_device_tm_start_key(cdev, tcw, intparm, lpm, key); in ccw_device_tm_start_timeout_key()
663 ccw_device_set_timeout(cdev, 0); in ccw_device_tm_start_timeout_key()
678 int ccw_device_tm_start(struct ccw_device *cdev, struct tcw *tcw, in ccw_device_tm_start() argument
681 return ccw_device_tm_start_key(cdev, tcw, intparm, lpm, in ccw_device_tm_start()
697 int ccw_device_tm_start_timeout(struct ccw_device *cdev, struct tcw *tcw, in ccw_device_tm_start_timeout() argument
700 return ccw_device_tm_start_timeout_key(cdev, tcw, intparm, lpm, in ccw_device_tm_start_timeout()
713 int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask) in ccw_device_get_mdc() argument
715 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_mdc()
758 int ccw_device_tm_intrg(struct ccw_device *cdev) in ccw_device_tm_intrg() argument
760 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_tm_intrg()
764 if (cdev->private->state != DEV_STATE_ONLINE) in ccw_device_tm_intrg()
778 void ccw_device_get_schid(struct ccw_device *cdev, struct subchannel_id *schid) in ccw_device_get_schid() argument
780 struct subchannel *sch = to_subchannel(cdev->dev.parent); in ccw_device_get_schid()