Lines Matching defs:sch

53 static void chsc_subchannel_irq(struct subchannel *sch)
55 struct chsc_private *private = dev_get_drvdata(&sch->dev);
65 CHSC_MSG(0, "Interrupt on sch 0.%x.%04x with no request\n",
66 sch->schid.ssid, sch->schid.sch_no);
71 cio_update_schib(sch);
73 put_device(&sch->dev);
76 static int chsc_subchannel_probe(struct subchannel *sch)
82 sch->schid.ssid, sch->schid.sch_no);
83 sch->isc = CHSC_SCH_ISC;
87 dev_set_drvdata(&sch->dev, private);
88 ret = cio_enable_subchannel(sch, (u32)(unsigned long)sch);
91 sch->schid.ssid, sch->schid.sch_no, ret);
92 dev_set_drvdata(&sch->dev, NULL);
95 if (dev_get_uevent_suppress(&sch->dev)) {
96 dev_set_uevent_suppress(&sch->dev, 0);
97 kobject_uevent(&sch->dev.kobj, KOBJ_ADD);
103 static int chsc_subchannel_remove(struct subchannel *sch)
107 cio_disable_subchannel(sch);
108 private = dev_get_drvdata(&sch->dev);
109 dev_set_drvdata(&sch->dev, NULL);
112 put_device(&sch->dev);
118 static void chsc_subchannel_shutdown(struct subchannel *sch)
120 cio_disable_subchannel(sch);
123 static int chsc_subchannel_prepare(struct subchannel *sch)
132 cc = stsch(sch->schid, &schib);
138 static int chsc_subchannel_freeze(struct subchannel *sch)
140 return cio_disable_subchannel(sch);
143 static int chsc_subchannel_restore(struct subchannel *sch)
145 return cio_enable_subchannel(sch, (u32)(unsigned long)sch);
208 struct subchannel *sch = to_subchannel(dev);
210 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw);
213 static struct subchannel *chsc_get_next_subchannel(struct subchannel *sch)
218 sch ? &sch->dev : NULL, NULL,
242 struct subchannel *sch = NULL;
247 while ((sch = chsc_get_next_subchannel(sch))) {
248 spin_lock(sch->lock);
249 private = dev_get_drvdata(&sch->dev);
251 spin_unlock(sch->lock);
255 chsc_area->header.sid = sch->schid;
257 CHSC_LOG_HEX(2, &sch->schid, sizeof(sch->schid));
266 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC;
276 spin_unlock(sch->lock);
278 sch->schid.ssid, sch->schid.sch_no, cc);
281 put_device(&sch->dev);