/* * busy wait for the next interrupt on the console */ void wait_cons_dev(void) { if (!console_subchannel_in_use) return; while (1) { cio_tsch(&console_subchannel); if (console_subchannel.schib.scsw.cmd.actl == 0) break; udelay_simple(100); } }
static int __clear_io_subchannel_easy(struct subchannel_id schid) { int retry; if (csch(schid)) return -ENODEV; for (retry=0;retry<20;retry++) { struct tpi_info ti; if (tpi(&ti)) { tsch(ti.schid, this_cpu_ptr(&cio_irb)); if (schid_equal(&ti.schid, &schid)) return 0; } udelay_simple(100); } return -EBUSY; }
static void __clear_chsc_subchannel_easy(void) { /* It seems we can only wait for a bit here :/ */ udelay_simple(100); }