• Home
  • Raw
  • Download

Lines Matching refs:sch

57 static void chsc_subchannel_irq(struct subchannel *sch)  in chsc_subchannel_irq()  argument
59 struct chsc_private *private = dev_get_drvdata(&sch->dev); in chsc_subchannel_irq()
70 sch->schid.ssid, sch->schid.sch_no); in chsc_subchannel_irq()
75 cio_update_schib(sch); in chsc_subchannel_irq()
77 put_device(&sch->dev); in chsc_subchannel_irq()
80 static int chsc_subchannel_probe(struct subchannel *sch) in chsc_subchannel_probe() argument
86 sch->schid.ssid, sch->schid.sch_no); in chsc_subchannel_probe()
87 sch->isc = CHSC_SCH_ISC; in chsc_subchannel_probe()
91 dev_set_drvdata(&sch->dev, private); in chsc_subchannel_probe()
92 ret = cio_enable_subchannel(sch, (u32)(unsigned long)sch); in chsc_subchannel_probe()
95 sch->schid.ssid, sch->schid.sch_no, ret); in chsc_subchannel_probe()
96 dev_set_drvdata(&sch->dev, NULL); in chsc_subchannel_probe()
99 if (dev_get_uevent_suppress(&sch->dev)) { in chsc_subchannel_probe()
100 dev_set_uevent_suppress(&sch->dev, 0); in chsc_subchannel_probe()
101 kobject_uevent(&sch->dev.kobj, KOBJ_ADD); in chsc_subchannel_probe()
107 static int chsc_subchannel_remove(struct subchannel *sch) in chsc_subchannel_remove() argument
111 cio_disable_subchannel(sch); in chsc_subchannel_remove()
112 private = dev_get_drvdata(&sch->dev); in chsc_subchannel_remove()
113 dev_set_drvdata(&sch->dev, NULL); in chsc_subchannel_remove()
116 put_device(&sch->dev); in chsc_subchannel_remove()
122 static void chsc_subchannel_shutdown(struct subchannel *sch) in chsc_subchannel_shutdown() argument
124 cio_disable_subchannel(sch); in chsc_subchannel_shutdown()
127 static int chsc_subchannel_prepare(struct subchannel *sch) in chsc_subchannel_prepare() argument
136 cc = stsch(sch->schid, &schib); in chsc_subchannel_prepare()
142 static int chsc_subchannel_freeze(struct subchannel *sch) in chsc_subchannel_freeze() argument
144 return cio_disable_subchannel(sch); in chsc_subchannel_freeze()
147 static int chsc_subchannel_restore(struct subchannel *sch) in chsc_subchannel_restore() argument
149 return cio_enable_subchannel(sch, (u32)(unsigned long)sch); in chsc_subchannel_restore()
212 struct subchannel *sch = to_subchannel(dev); in chsc_subchannel_match_next_free() local
214 return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw); in chsc_subchannel_match_next_free()
217 static struct subchannel *chsc_get_next_subchannel(struct subchannel *sch) in chsc_get_next_subchannel() argument
222 sch ? &sch->dev : NULL, NULL, in chsc_get_next_subchannel()
246 struct subchannel *sch = NULL; in chsc_async() local
251 while ((sch = chsc_get_next_subchannel(sch))) { in chsc_async()
252 spin_lock(sch->lock); in chsc_async()
253 private = dev_get_drvdata(&sch->dev); in chsc_async()
255 spin_unlock(sch->lock); in chsc_async()
259 chsc_area->header.sid = sch->schid; in chsc_async()
261 CHSC_LOG_HEX(2, &sch->schid, sizeof(sch->schid)); in chsc_async()
270 sch->schib.scsw.cmd.fctl |= SCSW_FCTL_START_FUNC; in chsc_async()
280 spin_unlock(sch->lock); in chsc_async()
282 sch->schid.ssid, sch->schid.sch_no, cc); in chsc_async()
285 put_device(&sch->dev); in chsc_async()