• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/s390/cio/

Lines Matching refs:cdev

28 int ccw_device_set_options_mask(struct ccw_device *cdev, unsigned long flags)
36 cdev->private->options.fast = (flags & CCWDEV_EARLY_NOTIFICATION) != 0;
37 cdev->private->options.repall = (flags & CCWDEV_REPORT_ALL) != 0;
38 cdev->private->options.pgroup = (flags & CCWDEV_DO_PATHGROUP) != 0;
39 cdev->private->options.force = (flags & CCWDEV_ALLOW_FORCE) != 0;
43 int ccw_device_set_options(struct ccw_device *cdev, unsigned long flags)
51 cdev->private->options.repall) ||
53 cdev->private->options.fast))
55 cdev->private->options.fast |= (flags & CCWDEV_EARLY_NOTIFICATION) != 0;
56 cdev->private->options.repall |= (flags & CCWDEV_REPORT_ALL) != 0;
57 cdev->private->options.pgroup |= (flags & CCWDEV_DO_PATHGROUP) != 0;
58 cdev->private->options.force |= (flags & CCWDEV_ALLOW_FORCE) != 0;
62 void ccw_device_clear_options(struct ccw_device *cdev, unsigned long flags)
64 cdev->private->options.fast &= (flags & CCWDEV_EARLY_NOTIFICATION) == 0;
65 cdev->private->options.repall &= (flags & CCWDEV_REPORT_ALL) == 0;
66 cdev->private->options.pgroup &= (flags & CCWDEV_DO_PATHGROUP) == 0;
67 cdev->private->options.force &= (flags & CCWDEV_ALLOW_FORCE) == 0;
71 ccw_device_clear(struct ccw_device *cdev, unsigned long intparm)
76 if (!cdev)
78 if (cdev->private->state == DEV_STATE_NOT_OPER)
80 if (cdev->private->state != DEV_STATE_ONLINE &&
81 cdev->private->state != DEV_STATE_W4SENSE)
83 sch = to_subchannel(cdev->dev.parent);
88 cdev->private->intparm = intparm;
93 ccw_device_start_key(struct ccw_device *cdev, struct ccw1 *cpa,
100 if (!cdev)
102 sch = to_subchannel(cdev->dev.parent);
105 if (cdev->private->state == DEV_STATE_NOT_OPER)
107 if (cdev->private->state == DEV_STATE_VERIFY ||
108 cdev->private->state == DEV_STATE_CLEAR_VERIFY) {
110 if (!cdev->private->flags.fake_irb) {
111 cdev->private->flags.fake_irb = 1;
112 cdev->private->intparm = intparm;
118 if (cdev->private->state != DEV_STATE_ONLINE ||
121 cdev->private->flags.doverify)
134 cdev->private->intparm = intparm;
140 ccw_device_start_timeout_key(struct ccw_device *cdev, struct ccw1 *cpa,
146 if (!cdev)
148 ccw_device_set_timeout(cdev, expires);
149 ret = ccw_device_start_key(cdev, cpa, intparm, lpm, key, flags);
151 ccw_device_set_timeout(cdev, 0);
156 ccw_device_start(struct ccw_device *cdev, struct ccw1 *cpa,
159 return ccw_device_start_key(cdev, cpa, intparm, lpm,
164 ccw_device_start_timeout(struct ccw_device *cdev, struct ccw1 *cpa,
168 return ccw_device_start_timeout_key(cdev, cpa, intparm, lpm,
175 ccw_device_halt(struct ccw_device *cdev, unsigned long intparm)
180 if (!cdev)
182 if (cdev->private->state == DEV_STATE_NOT_OPER)
184 if (cdev->private->state != DEV_STATE_ONLINE &&
185 cdev->private->state != DEV_STATE_W4SENSE)
187 sch = to_subchannel(cdev->dev.parent);
192 cdev->private->intparm = intparm;
197 ccw_device_resume(struct ccw_device *cdev)
201 if (!cdev)
203 sch = to_subchannel(cdev->dev.parent);
206 if (cdev->private->state == DEV_STATE_NOT_OPER)
208 if (cdev->private->state != DEV_STATE_ONLINE ||
218 ccw_device_call_handler(struct ccw_device *cdev)
224 sch = to_subchannel(cdev->dev.parent);
234 stctl = cdev->private->irb.scsw.stctl;
239 !cdev->private->options.repall &&
241 !(cdev->private->options.fast &&
247 ccw_device_set_timeout(cdev, 0);
251 if (cdev->handler)
252 cdev->handler(cdev, cdev->private->intparm,
253 &cdev->private->irb);
258 memset(&cdev->private->irb, 0, sizeof(struct irb));
267 ccw_device_get_ciw(struct ccw_device *cdev, __u32 ct)
271 if (cdev->private->flags.esid == 0)
274 if (cdev->private->senseid.ciw[ciw_cnt].ct == ct)
275 return cdev->private->senseid.ciw + ciw_cnt;
280 ccw_device_get_path_mask(struct ccw_device *cdev)
284 sch = to_subchannel(cdev->dev.parent);
292 ccw_device_wake_up(struct ccw_device *cdev, unsigned long ip, struct irb *irb)
300 cdev->private->intparm = -EIO;
303 cdev->private->intparm = -EAGAIN;
314 if (cdev->private->flags.doverify ||
315 cdev->private->state == DEV_STATE_VERIFY)
316 cdev->private->intparm = -EAGAIN;
320 cdev->private->intparm = -EAGAIN;
324 cdev->private->intparm = -EAGAIN;
326 cdev->private->intparm = -EIO;
329 cdev->private->intparm = 0;
330 wake_up(&cdev->private->wait_q);
334 __ccw_device_retry_loop(struct ccw_device *cdev, struct ccw1 *ccw, long magic, __u8 lpm)
339 sch = to_subchannel(cdev->dev.parent);
341 ccw_device_set_timeout(cdev, 60 * HZ);
344 ccw_device_set_timeout(cdev, 0);
356 cdev->private->intparm = magic;
358 wait_event(cdev->private->wait_q,
359 (cdev->private->intparm == -EIO) ||
360 (cdev->private->intparm == -EAGAIN) ||
361 (cdev->private->intparm == 0));
364 if (cdev->private->intparm == -EIO) {
369 if (cdev->private->intparm == 0)
383 * @param cdev target ccw device
392 read_dev_chars (struct ccw_device *cdev, void **buffer, int length)
399 if (!cdev)
403 sch = to_subchannel(cdev->dev.parent);
422 handler = cdev->handler;
424 cdev->handler = ccw_device_wake_up;
425 if (cdev->private->state != DEV_STATE_ONLINE)
429 cdev->private->flags.doverify)
433 ret = __ccw_device_retry_loop(cdev, rdc_ccw, 0x00D9C4C3, 0);
436 cdev->handler = handler;
449 read_conf_data_lpm (struct ccw_device *cdev, void **buffer, int *length, __u8 lpm)
458 if (!cdev)
462 sch = to_subchannel(cdev->dev.parent);
470 ciw = ccw_device_get_ciw(cdev, CIW_TYPE_RCD);
496 handler = cdev->handler;
498 cdev->handler = ccw_device_wake_up;
499 if (cdev->private->state != DEV_STATE_ONLINE)
503 cdev->private->flags.doverify)
507 ret = __ccw_device_retry_loop(cdev, rcd_ccw, 0x00D9C3C4, lpm);
510 cdev->handler = handler;
533 read_conf_data (struct ccw_device *cdev, void **buffer, int *length)
535 return read_conf_data_lpm (cdev, buffer, length, 0);
542 ccw_device_stlck(struct ccw_device *cdev)
549 if (!cdev)
552 if (cdev->drv && !cdev->private->options.force)
555 sch = to_subchannel(cdev->dev.parent);
558 CIO_TRACE_EVENT(2, cdev->dev.bus_id);
576 cdev->private->iccws[0].cmd_code = CCW_CMD_STLCK;
577 cdev->private->iccws[0].cda = (__u32) __pa(buf);
578 cdev->private->iccws[0].count = 32;
579 cdev->private->iccws[0].flags = CCW_FLAG_CC;
580 cdev->private->iccws[1].cmd_code = CCW_CMD_RELEASE;
581 cdev->private->iccws[1].cda = (__u32) __pa(buf2);
582 cdev->private->iccws[1].count = 32;
583 cdev->private->iccws[1].flags = 0;
584 ret = cio_start(sch, cdev->private->iccws, 0);
589 cdev->private->irb.scsw.actl |= SCSW_ACTL_START_PEND;
591 wait_event(cdev->private->wait_q, cdev->private->irb.scsw.actl == 0);
594 if ((cdev->private->irb.scsw.dstat !=
596 (cdev->private->irb.scsw.cstat != 0))
599 memset(&cdev->private->irb, 0, sizeof(struct irb));
608 ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_no)
613 sch = to_subchannel(cdev->dev.parent);
621 * @cdev: device to obtain the id for
624 void ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id)
626 *dev_id = cdev->private->dev_id;
632 _ccw_device_get_subchannel_number(struct ccw_device *cdev)
634 return cdev->private->schid.sch_no;
638 _ccw_device_get_device_number(struct ccw_device *cdev)
640 return cdev->private->dev_id.devno;