L4_PORT
outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_DIGITAL + (port >> 2), L4_PORT);
if (inb(L4_PORT) & L4_BUSY)
outb(L4_CMD_GETCAL, L4_PORT);
if (inb(L4_PORT) != L4_SELECT_DIGITAL + (port >> 2))
outb(port & 3, L4_PORT);
cal[i] = inb(L4_PORT);
out: outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_DIGITAL + (port >> 2), L4_PORT);
if (inb(L4_PORT) & L4_BUSY)
outb(L4_CMD_SETCAL, L4_PORT);
if (inb(L4_PORT) != L4_SELECT_DIGITAL + (port >> 2))
outb(port & 3, L4_PORT);
outb(cal[i], L4_PORT);
out: outb(L4_SELECT_ANALOG, L4_PORT);
gameport_set_phys(port, "isa%04x/gameport%d", L4_PORT, idx);
port->io = L4_PORT;
outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_DIGITAL + card_no, L4_PORT);
if (inb(L4_PORT) & L4_BUSY)
outb(L4_CMD_ID, L4_PORT);
if (inb(L4_PORT) != L4_SELECT_DIGITAL + card_no)
if (inb(L4_PORT) != L4_ID)
rev = inb(L4_PORT);
card_no ? "secondary" : "primary", rev >> 4, rev, L4_PORT);
if (!request_region(L4_PORT, 1, "lightning"))
outb(L4_SELECT_ANALOG, L4_PORT);
release_region(L4_PORT, 1);
outb(L4_SELECT_ANALOG, L4_PORT);
release_region(L4_PORT, 1);
while ((inb(L4_PORT) & L4_BUSY) && t > 0) t--;
outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_DIGITAL + (l4->port >> 2), L4_PORT);
if (inb(L4_PORT) & L4_BUSY) goto fail;
outb(l4->port & 3, L4_PORT);
status = inb(L4_PORT);
axes[i] = inb(L4_PORT);
*buttons = inb(L4_PORT) & 0x0f;
fail: outb(L4_SELECT_ANALOG, L4_PORT);
outb(L4_SELECT_ANALOG, L4_PORT);