7 #include <linux/module.h>
9 #include <linux/errno.h>
10 #include <linux/slab.h>
11 #include <linux/list.h>
12 #include <linux/device.h>
18 #include <asm/chpid.h>
70 ((flags & CCWDEV_EARLY_NOTIFICATION) &&
71 cdev->
private->options.repall) ||
72 ((flags & CCWDEV_REPORT_ALL) &&
107 return cdev->
private->flags.pgroup;
119 return cdev->
private->flags.mpath;
143 if (!cdev || !cdev->
dev.parent)
146 if (!sch->
schib.pmcw.ena)
191 if (!cdev || !cdev->
dev.parent)
194 if (!sch->
schib.pmcw.ena)
200 if (!cdev->
private->flags.fake_irb) {
266 unsigned long flags,
int expires)
339 unsigned long flags,
int expires)
368 if (!cdev || !cdev->
dev.parent)
371 if (!sch->
schib.pmcw.ena)
402 if (!cdev || !cdev->
dev.parent)
405 if (!sch->
schib.pmcw.ena)
432 stctl = scsw_stctl(&cdev->
private->irb.scsw);
436 if (!ending_status &&
437 !cdev->
private->options.repall &&
439 !(cdev->
private->options.fast &&
479 if (cdev->
private->flags.esid == 0)
481 for (ciw_cnt = 0; ciw_cnt <
MAX_CIWS; ciw_cnt++)
482 if (cdev->
private->senseid.ciw[ciw_cnt].ct == ct)
483 return cdev->
private->senseid.ciw + ciw_cnt;
498 if (!cdev->
dev.parent)
530 if (!cdev->
private->options.force)
536 init_completion(&data.
done);
538 spin_lock_irq(sch->
lock);
545 spin_unlock_irq(sch->lock);
549 spin_lock_irq(sch->lock);
551 spin_unlock_irq(sch->lock);
556 spin_lock_irq(sch->lock);
560 spin_unlock_irq(sch->lock);
573 chpid.
id = sch->schib.pmcw.chpid[chp_no];
584 *dev_id = cdev->
private->dev_id;
606 if (!sch->
schib.pmcw.ena)
610 if (!cdev->
private->flags.fake_irb) {
718 for (i = 0; i < 8; i++) {
719 if (!(mask & (0x80 >> i)))
721 chpid.
id = sch->
schib.pmcw.chpid[
i];
729 mdc = mdc ?
min(mdc, (
int)desc.
mdc) : desc.
mdc;
747 if (!sch->
schib.pmcw.ena)
751 if (!scsw_is_tm(&sch->
schib.scsw) ||
763 return cdev->
private->schid.sch_no;