Lines Matching refs:base
141 #define InterruptTheCard(base) outw(0, (base) + 0xc) argument
142 #define ClearInterrupt(base) inw((base) + 0x0a) argument
189 unsigned long base; member
223 static inline int WaitTillCardIsFree(unsigned long base) in WaitTillCardIsFree() argument
228 while (!(inw(base + 0xe) & 0x1) && count++ < 100) in WaitTillCardIsFree()
234 return !(inw(base + 0xe) & 0x1); in WaitTillCardIsFree()
239 unsigned long base = card->base; in lock_card() local
245 if (inw(base + 0xe) & 0x1) in lock_card()
252 pr_warning("Failed to lock Card (0x%lx)\n", card->base); in lock_card()
270 unsigned long base = card->base; in raise_dtr() local
273 if (WaitTillCardIsFree(base)) in raise_dtr()
276 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in raise_dtr()
277 outw(0x0504, base); in raise_dtr()
278 InterruptTheCard(base); in raise_dtr()
286 unsigned long base = card->base; in drop_dtr() local
289 if (WaitTillCardIsFree(base)) in drop_dtr()
292 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in drop_dtr()
293 outw(0x0404, base); in drop_dtr()
294 InterruptTheCard(base); in drop_dtr()
302 unsigned long base = card->base; in raise_rts() local
305 if (WaitTillCardIsFree(base)) in raise_rts()
308 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in raise_rts()
309 outw(0x0a04, base); in raise_rts()
310 InterruptTheCard(base); in raise_rts()
318 unsigned long base = card->base; in drop_rts() local
321 if (WaitTillCardIsFree(base)) in drop_rts()
324 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in drop_rts()
325 outw(0x0804, base); in drop_rts()
326 InterruptTheCard(base); in drop_rts()
336 unsigned long base = card->base; in isicom_dtr_rts() local
343 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in isicom_dtr_rts()
344 outw(0x0f04, base); in isicom_dtr_rts()
345 InterruptTheCard(base); in isicom_dtr_rts()
348 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in isicom_dtr_rts()
349 outw(0x0C04, base); in isicom_dtr_rts()
350 InterruptTheCard(base); in isicom_dtr_rts()
360 unsigned long base = card->base; in drop_dtr_rts() local
363 if (WaitTillCardIsFree(base)) in drop_dtr_rts()
366 outw(0x8000 | (channel << card->shift_count) | 0x02, base); in drop_dtr_rts()
367 outw(0x0c04, base); in drop_dtr_rts()
368 InterruptTheCard(base); in drop_dtr_rts()
403 unsigned long flags, base; in isicom_tx() local
424 base = isi_card[card].base; in isicom_tx()
428 if (inw(base + 0xe) & 0x1) in isicom_tx()
449 if (!(inw(base + 0x02) & (1 << port->channel))) in isicom_tx()
455 base); in isicom_tx()
471 outw(wrd, base); in isicom_tx()
473 outw(wrd, base); in isicom_tx()
480 outsw(base, port->port.xmit_buf+port->xmit_tail, word_count); in isicom_tx()
495 InterruptTheCard(base); in isicom_tx()
520 unsigned long base; in isicom_interrupt() local
528 base = card->base; in isicom_interrupt()
531 if (!(inw(base + 0x0e) & 0x02)) in isicom_interrupt()
540 outw(0x8000, base+0x04); in isicom_interrupt()
541 ClearInterrupt(base); in isicom_interrupt()
543 inw(base); /* get the dummy word out */ in isicom_interrupt()
544 header = inw(base); in isicom_interrupt()
550 __func__, base, channel+1); in isicom_interrupt()
551 outw(0x0000, base+0x04); /* enable interrupts */ in isicom_interrupt()
557 outw(0x0000, base+0x04); /* enable interrupts */ in isicom_interrupt()
566 inw(base); in isicom_interrupt()
570 inw(base); in isicom_interrupt()
571 outw(0x0000, base+0x04); /* enable interrupts */ in isicom_interrupt()
577 header = inw(base); in isicom_interrupt()
658 insw(base, rp, word_count); in isicom_interrupt()
661 tty_insert_flip_char(&port->port, inw(base) & 0xff, in isicom_interrupt()
667 __func__, base, channel + 1); in isicom_interrupt()
670 inw(base); in isicom_interrupt()
676 outw(0x0000, base+0x04); /* enable interrupts */ in isicom_interrupt()
688 unsigned long base = card->base; in isicom_config_port() local
732 if (WaitTillCardIsFree(base) == 0) { in isicom_config_port()
733 outw(0x8000 | (channel << shift_count) | 0x03, base); in isicom_config_port()
734 outw(linuxb_to_isib[baud] << 8 | 0x03, base); in isicom_config_port()
758 outw(channel_setup, base); in isicom_config_port()
759 InterruptTheCard(base); in isicom_config_port()
778 if (WaitTillCardIsFree(base) == 0) { in isicom_config_port()
779 outw(0x8000 | (channel << shift_count) | 0x04, base); in isicom_config_port()
780 outw(flow_ctrl << 8 | 0x05, base); in isicom_config_port()
781 outw((STOP_CHAR(tty)) << 8 | (START_CHAR(tty)), base); in isicom_config_port()
782 InterruptTheCard(base); in isicom_config_port()
788 outw(card->port_status, base + 0x02); in isicom_config_port()
826 if (WaitTillCardIsFree(card->base) == 0) { in isicom_activate()
828 card->base); in isicom_activate()
829 outw(((ISICOM_KILLTX | ISICOM_KILLRX) << 8) | 0x06, card->base); in isicom_activate()
830 InterruptTheCard(card->base); in isicom_activate()
891 __func__, card->base, card->count); in isicom_shutdown_port()
925 outw(card->port_status, card->base + 0x02); in isicom_shutdown()
1048 unsigned long base = card->base; in isicom_send_break() local
1056 outw(0x8000 | ((port->channel) << (card->shift_count)) | 0x3, base); in isicom_send_break()
1057 outw((length & 0xff) << 8 | 0x00, base); in isicom_send_break()
1058 outw((length & 0xff00), base); in isicom_send_break()
1059 InterruptTheCard(base); in isicom_send_break()
1155 out_info.port = port->card->base; in isicom_get_serial_info()
1225 outw(card->port_status, card->base + 0x02); in isicom_throttle()
1239 outw(card->port_status, card->base + 0x02); in isicom_unthrottle()
1314 unsigned long base = board->base; in reset_card() local
1319 base); in reset_card()
1321 inw(base + 0x8); in reset_card()
1325 outw(0, base + 0x8); /* Reset */ in reset_card()
1329 sig = inw(base + 0x4) & 0xff; in reset_card()
1334 "bad I/O Port Address 0x%lx).\n", card + 1, base); in reset_card()
1342 portcount = inw(base + 0x2); in reset_card()
1343 if (!(inw(base + 0xe) & 0x1) || (portcount != 0 && portcount != 4 && in reset_card()
1376 unsigned long base = board->base; in load_firmware() local
1420 if (WaitTillCardIsFree(base)) in load_firmware()
1423 outw(0xf0, base); /* start upload sequence */ in load_firmware()
1424 outw(0x00, base); in load_firmware()
1425 outw(frame->addr, base); /* lsb of address */ in load_firmware()
1428 outw(word_count, base); in load_firmware()
1429 InterruptTheCard(base); in load_firmware()
1433 if (WaitTillCardIsFree(base)) in load_firmware()
1436 status = inw(base + 0x4); in load_firmware()
1445 outsw(base, frame->data, word_count); in load_firmware()
1447 InterruptTheCard(base); in load_firmware()
1451 if (WaitTillCardIsFree(base)) in load_firmware()
1454 status = inw(base + 0x4); in load_firmware()
1468 if (WaitTillCardIsFree(base)) in load_firmware()
1471 outw(0xf1, base); /* start download sequence */ in load_firmware()
1472 outw(0x00, base); in load_firmware()
1473 outw(frame->addr, base); /* lsb of address */ in load_firmware()
1476 outw(word_count + 1, base); in load_firmware()
1477 InterruptTheCard(base); in load_firmware()
1481 if (WaitTillCardIsFree(base)) in load_firmware()
1484 status = inw(base + 0x4); in load_firmware()
1500 inw(base); in load_firmware()
1501 insw(base, data, word_count); in load_firmware()
1502 InterruptTheCard(base); in load_firmware()
1515 if (WaitTillCardIsFree(base)) in load_firmware()
1518 status = inw(base + 0x4); in load_firmware()
1527 if (WaitTillCardIsFree(base)) in load_firmware()
1530 outw(0xf2, base); in load_firmware()
1531 outw(0x800, base); in load_firmware()
1532 outw(0x0, base); in load_firmware()
1533 outw(0x0, base); in load_firmware()
1534 InterruptTheCard(base); in load_firmware()
1535 outw(0x0, base + 0x4); /* for ISI4608 cards */ in load_firmware()
1571 if (isi_card[index].base == 0) { in isicom_probe()
1582 board->base = pci_resource_start(pdev, 3); in isicom_probe()
1591 "will be disabled.\n", board->base, board->base + 15, in isicom_probe()
1630 board->base = 0; in isicom_probe()
1650 board->base = 0; in isicom_remove()
1671 isi_card[idx].base = 0; in isicom_init()