Lines Matching refs: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_err(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);
210 struct subchannel *sch = to_subchannel(dev);
212 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw);
215 static struct subchannel *chsc_get_next_subchannel(struct subchannel *sch)
220 sch ? &sch->dev : NULL, NULL,
244 struct subchannel *sch = NULL;
249 while ((sch = chsc_get_next_subchannel(sch))) {
250 spin_lock(sch->lock);
251 private = dev_get_drvdata(&sch->dev);
253 spin_unlock(sch->lock);
257 chsc_area->header.sid = sch->schid;
259 CHSC_LOG_HEX(2, &sch->schid, sizeof(sch->schid));
268 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC;
278 spin_unlock(sch->lock);
280 sch->schid.ssid, sch->schid.sch_no, cc);
283 put_device(&sch->dev);