Lines Matching refs:c

43 static void send_s870(struct atp_unit *dev,unsigned char c);
44 static void is885(struct atp_unit *dev, unsigned int wkport,unsigned char c);
51 unsigned char i, j, c, target_id, lun,cmdp; in atp870u_intr_handle() local
63 for (c = 0; c < 2; c++) { in atp870u_intr_handle()
64 tmport = dev->ioport[c] + 0x1f; in atp870u_intr_handle()
70 dev->in_int[c] = 0; in atp870u_intr_handle()
77 dev->in_int[c] = 1; in atp870u_intr_handle()
78 cmdp = inb(dev->ioport[c] + 0x10); in atp870u_intr_handle()
79 workport = dev->ioport[c]; in atp870u_intr_handle()
80 if (dev->working[c] != 0) { in atp870u_intr_handle()
86 tmpcip = dev->pciport[c]; in atp870u_intr_handle()
100 tmpcip = dev->pciport[c]; in atp870u_intr_handle()
127 if (dev->last_cmd[c] == 0xff) { in atp870u_intr_handle()
128 dev->last_cmd[c] = target_id; in atp870u_intr_handle()
130 dev->last_cmd[c] |= 0x40; in atp870u_intr_handle()
133 dev->r1f[c][target_id] |= j; in atp870u_intr_handle()
138 if ((dev->last_cmd[c] & 0xf0) != 0x40) { in atp870u_intr_handle()
139 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
147 if (dev->id[c][target_id].last_len != adrcnt) in atp870u_intr_handle()
149 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
151 dev->id[c][target_id].tran_len = k; in atp870u_intr_handle()
152 dev->id[c][target_id].last_len = adrcnt; in atp870u_intr_handle()
155 … = %d dev->id[c][target_id].tran_len = %d\n",tmport,dev->id[c][target_id].last_len,dev->id[c][targ… in atp870u_intr_handle()
162 if (dev->wide_id[c] != 0) { in atp870u_intr_handle()
173 if (((dev->quhd[c] != dev->quend[c]) || (dev->last_cmd[c] != 0xff)) && in atp870u_intr_handle()
174 (dev->in_snd[c] == 0)) { in atp870u_intr_handle()
178 send_s870(dev,c); in atp870u_intr_handle()
184 dev->in_int[c] = 0; in atp870u_intr_handle()
192 dev->last_cmd[c] |= 0x40; in atp870u_intr_handle()
193 dev->in_int[c] = 0; in atp870u_intr_handle()
198 if ((dev->last_cmd[c] & 0xf0) != 0x40) { in atp870u_intr_handle()
199 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
206 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
208 dev->id[c][target_id].tran_len = k; in atp870u_intr_handle()
209 dev->id[c][target_id].last_len = adrcnt; in atp870u_intr_handle()
214 dev->in_int[c] = 0; in atp870u_intr_handle()
237 if ((dev->last_cmd[c] & 0xf0) != 0x40) { in atp870u_intr_handle()
238 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
249 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
251 dev->id[c][target_id].tran_len = k; in atp870u_intr_handle()
252 dev->id[c][target_id].last_len = adrcnt; in atp870u_intr_handle()
255 dev->in_int[c] = 0; in atp870u_intr_handle()
262 dev->id[c][target_id].dirct = 0x00; in atp870u_intr_handle()
269 dev->in_int[c] = 0; in atp870u_intr_handle()
273 if (dev->last_cmd[c] != 0xff) { in atp870u_intr_handle()
274 dev->last_cmd[c] |= 0x40; in atp870u_intr_handle()
299 workreq = dev->id[c][target_id].curr_req; in atp870u_intr_handle()
310 outb(dev->id[c][target_id].devsp, tmport++); in atp870u_intr_handle()
311 adrcnt = dev->id[c][target_id].tran_len; in atp870u_intr_handle()
312 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
326 j |= dev->id[c][target_id].dirct; in atp870u_intr_handle()
332 tmpcip = dev->pciport[c] + 1; in atp870u_intr_handle()
362 if ((id & dev->wide_id[c]) != 0) { in atp870u_intr_handle()
369 if (dev->id[c][target_id].last_len == 0) { in atp870u_intr_handle()
372 dev->in_int[c] = 0; in atp870u_intr_handle()
381 prd = dev->id[c][target_id].prd_pos; in atp870u_intr_handle()
394 dev->id[c][target_id].prd_pos = prd; in atp870u_intr_handle()
397 dev->id[c][target_id].prdaddr += 0x08; in atp870u_intr_handle()
400 dev->id[c][target_id].prd_pos = prd; in atp870u_intr_handle()
404 tmpcip = dev->pciport[c] + 0x04; in atp870u_intr_handle()
405 outl(dev->id[c][target_id].prdaddr, tmpcip); in atp870u_intr_handle()
407 printk("dev->id[%d][%d].prdaddr 0x%8x\n", c, target_id, dev->id[c][target_id].prdaddr); in atp870u_intr_handle()
421 if (dev->id[c][target_id].dirct != 0) { in atp870u_intr_handle()
424 dev->in_int[c] = 0; in atp870u_intr_handle()
432 dev->in_int[c] = 0; in atp870u_intr_handle()
443 workreq = dev->id[c][target_id].curr_req; in atp870u_intr_handle()
446 if ((dev->last_cmd[c] & 0xf0) != 0x40) in atp870u_intr_handle()
448 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
455 if ((dev->last_cmd[c] & 0xf0) != 0x40) { in atp870u_intr_handle()
456 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
461 if (((dev->r1f[c][target_id] & 0x10) != 0)&&(dev->dev_id==ATP885_DEVID)) { in atp870u_intr_handle()
484 dev->id[c][target_id].curr_req = NULL; in atp870u_intr_handle()
485 dev->working[c]--; in atp870u_intr_handle()
490 if (dev->wide_id[c] != 0) { in atp870u_intr_handle()
501 if (((dev->last_cmd[c] != 0xff) || (dev->quhd[c] != dev->quend[c])) && in atp870u_intr_handle()
502 (dev->in_snd[c] == 0)) { in atp870u_intr_handle()
506 send_s870(dev,c); in atp870u_intr_handle()
509 dev->in_int[c] = 0; in atp870u_intr_handle()
512 if ((dev->last_cmd[c] & 0xf0) != 0x40) { in atp870u_intr_handle()
513 dev->last_cmd[c] = 0xff; in atp870u_intr_handle()
521 outl(dev->id[c][target_id].prdaddr, tmpcip); in atp870u_intr_handle()
530 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
534 dev->id[c][target_id].dirct = 0x00; in atp870u_intr_handle()
537 dev->id[c][target_id].dirct = 0x00; in atp870u_intr_handle()
542 dev->in_int[c] = 0; in atp870u_intr_handle()
547 outl(dev->id[c][target_id].prdaddr, tmpcip); in atp870u_intr_handle()
556 k = dev->id[c][target_id].last_len; in atp870u_intr_handle()
564 dev->id[c][target_id].dirct = 0x20; in atp870u_intr_handle()
568 dev->in_int[c] = 0; in atp870u_intr_handle()
577 dev->id[c][target_id].dirct = 0x00; in atp870u_intr_handle()
584 dev->in_int[c] = 0; in atp870u_intr_handle()
590 dev->in_int[c] = 0; in atp870u_intr_handle()
610 unsigned char c; in atp870u_queuecommand_lck() local
615 c = scmd_channel(req_p); in atp870u_queuecommand_lck()
639 if ((m & dev->active_id[c]) == 0) { in atp870u_queuecommand_lck()
659 dev->quend[c]++; in atp870u_queuecommand_lck()
660 if (dev->quend[c] >= qcnt) { in atp870u_queuecommand_lck()
661 dev->quend[c] = 0; in atp870u_queuecommand_lck()
667 if (dev->quhd[c] == dev->quend[c]) { in atp870u_queuecommand_lck()
668 if (dev->quend[c] == 0) { in atp870u_queuecommand_lck()
669 dev->quend[c] = qcnt; in atp870u_queuecommand_lck()
674 dev->quend[c]--; in atp870u_queuecommand_lck()
679 dev->quereq[c][dev->quend[c]] = req_p; in atp870u_queuecommand_lck()
680 tmport = dev->ioport[c] + 0x1c; in atp870u_queuecommand_lck()
682 …>in_int[%d] = %d dev->in_snd[%d] = %d\n",dev->ioport[c],inb(tmport),c,dev->in_int[c],c,dev->in_snd… in atp870u_queuecommand_lck()
684 if ((inb(tmport) == 0) && (dev->in_int[c] == 0) && (dev->in_snd[c] == 0)) { in atp870u_queuecommand_lck()
688 send_s870(dev,c); in atp870u_queuecommand_lck()
707 static void send_s870(struct atp_unit *dev,unsigned char c) in DEF_SCSI_QCMD()
719 if (dev->in_snd[c] != 0) { in DEF_SCSI_QCMD()
728 dev->in_snd[c] = 1; in DEF_SCSI_QCMD()
729 if ((dev->last_cmd[c] != 0xff) && ((dev->last_cmd[c] & 0x40) != 0)) { in DEF_SCSI_QCMD()
730 dev->last_cmd[c] &= 0x0f; in DEF_SCSI_QCMD()
731 workreq = dev->id[c][dev->last_cmd[c]].curr_req; in DEF_SCSI_QCMD()
735 dev->last_cmd[c] = 0xff; in DEF_SCSI_QCMD()
736 if (dev->quhd[c] == dev->quend[c]) { in DEF_SCSI_QCMD()
737 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
741 if ((dev->last_cmd[c] != 0xff) && (dev->working[c] != 0)) { in DEF_SCSI_QCMD()
742 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
745 dev->working[c]++; in DEF_SCSI_QCMD()
746 j = dev->quhd[c]; in DEF_SCSI_QCMD()
747 dev->quhd[c]++; in DEF_SCSI_QCMD()
748 if (dev->quhd[c] >= qcnt) { in DEF_SCSI_QCMD()
749 dev->quhd[c] = 0; in DEF_SCSI_QCMD()
751 workreq = dev->quereq[c][dev->quhd[c]]; in DEF_SCSI_QCMD()
752 if (dev->id[c][scmd_id(workreq)].curr_req == NULL) { in DEF_SCSI_QCMD()
753 dev->id[c][scmd_id(workreq)].curr_req = workreq; in DEF_SCSI_QCMD()
754 dev->last_cmd[c] = scmd_id(workreq); in DEF_SCSI_QCMD()
757 dev->quhd[c] = j; in DEF_SCSI_QCMD()
758 dev->working[c]--; in DEF_SCSI_QCMD()
759 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
762 workport = dev->ioport[c]; in DEF_SCSI_QCMD()
775 dev->last_cmd[c] |= 0x40; in DEF_SCSI_QCMD()
776 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
792 dev->r1f[c][scmd_id(workreq)] = 0; in DEF_SCSI_QCMD()
812 if ((w & dev->wide_id[c]) != 0) { in DEF_SCSI_QCMD()
843 outb(dev->id[c][target_id].devsp, tmport++); in DEF_SCSI_QCMD()
845 printk("dev->id[%d][%d].devsp = %2x\n",c,target_id,dev->id[c][target_id].devsp); in DEF_SCSI_QCMD()
856 dev->id[c][j].last_len = l; in DEF_SCSI_QCMD()
857 dev->id[c][j].tran_len = 0; in DEF_SCSI_QCMD()
859 printk("dev->id[%2d][%2d].last_len = %d\n",c,j,dev->id[c][j].last_len); in DEF_SCSI_QCMD()
878 dev->id[c][target_id].dirct = 0; in DEF_SCSI_QCMD()
887 dev->last_cmd[c] |= 0x40; in DEF_SCSI_QCMD()
889 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
892 tmpcip = dev->pciport[c]; in DEF_SCSI_QCMD()
893 prd = dev->id[c][target_id].prd_table; in DEF_SCSI_QCMD()
894 dev->id[c][target_id].prd_pos = prd; in DEF_SCSI_QCMD()
931 …printk("send_s870: prdaddr_2 0x%8x tmpcip %x target_id %d\n", dev->id[c][target_id].prdaddr,tmpcip… in DEF_SCSI_QCMD()
933 dev->id[c][target_id].prdaddr = dev->id[c][target_id].prd_bus; in DEF_SCSI_QCMD()
934 outl(dev->id[c][target_id].prdaddr, tmpcip); in DEF_SCSI_QCMD()
968 dev->id[c][target_id].dirct = 0x20; in DEF_SCSI_QCMD()
977 dev->last_cmd[c] |= 0x40; in DEF_SCSI_QCMD()
979 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
990 dev->last_cmd[c] |= 0x40; in DEF_SCSI_QCMD()
992 dev->in_snd[c] = 0; in DEF_SCSI_QCMD()
2528 int c,k; in atp870u_init_tables() local
2529 for(c=0;c < 2;c++) { in atp870u_init_tables()
2531 …atp_dev->id[c][k].prd_table = pci_alloc_consistent(atp_dev->pdev, 1024, &(atp_dev->id[c][k].prd_bu… in atp870u_init_tables()
2532 if (!atp_dev->id[c][k].prd_table) { in atp870u_init_tables()
2537 atp_dev->id[c][k].prdaddr = atp_dev->id[c][k].prd_bus; in atp870u_init_tables()
2538 atp_dev->id[c][k].devsp=0x20; in atp870u_init_tables()
2539 atp_dev->id[c][k].devtype = 0x7f; in atp870u_init_tables()
2540 atp_dev->id[c][k].curr_req = NULL; in atp870u_init_tables()
2543 atp_dev->active_id[c] = 0; in atp870u_init_tables()
2544 atp_dev->wide_id[c] = 0; in atp870u_init_tables()
2545 atp_dev->host_id[c] = 0x07; in atp870u_init_tables()
2546 atp_dev->quhd[c] = 0; in atp870u_init_tables()
2547 atp_dev->quend[c] = 0; in atp870u_init_tables()
2548 atp_dev->last_cmd[c] = 0xff; in atp870u_init_tables()
2549 atp_dev->in_snd[c] = 0; in atp870u_init_tables()
2550 atp_dev->in_int[c] = 0; in atp870u_init_tables()
2553 atp_dev->quereq[c][k] = NULL; in atp870u_init_tables()
2556 atp_dev->id[c][k].curr_req = NULL; in atp870u_init_tables()
2557 atp_dev->sp[c][k] = 0x04; in atp870u_init_tables()
2566 unsigned char k, m, c; in atp870u_probe() local
2778 c=inb(base_io + 0x29); in atp870u_probe()
2779 outb((c | 0x04),base_io + 0x29); in atp870u_probe()
2807 c=inb(base_io + 0x29); in atp870u_probe()
2808 outb((c & 0xfb),base_io + 0x29); in atp870u_probe()
2809 for (c=0;c < 2;c++) { in atp870u_probe()
2810 p->ultra_map[c]=0; in atp870u_probe()
2811 p->async[c] = 0; in atp870u_probe()
2815 if (p->sp[c][k] > 1) { in atp870u_probe()
2816 p->ultra_map[c] |= n; in atp870u_probe()
2818 if (p->sp[c][k] == 0) { in atp870u_probe()
2819 p->async[c] |= n; in atp870u_probe()
2823 p->async[c] = ~(p->async[c]); in atp870u_probe()
2825 if (p->global_map[c] == 0) { in atp870u_probe()
2826 k=setupdata[c][1]; in atp870u_probe()
2828 p->global_map[c] |= 0x20; in atp870u_probe()
2830 p->global_map[c] |= k; in atp870u_probe()
2831 if ((setupdata[c][2] & 0x04) != 0) in atp870u_probe()
2832 p->global_map[c] |= 0x08; in atp870u_probe()
2833 p->host_id[c] = setupdata[c][0] & 0x07; in atp870u_probe()
3056 unsigned char j, k, c; in atp870u_abort() local
3064 c = scmd_channel(SCpnt); in atp870u_abort()
3065 printk(" atp870u: abort Channel = %x \n", c); in atp870u_abort()
3066 printk("working=%x last_cmd=%x ", dev->working[c], dev->last_cmd[c]); in atp870u_abort()
3067 printk(" quhdu=%x quendu=%x ", dev->quhd[c], dev->quend[c]); in atp870u_abort()
3068 tmport = dev->ioport[c]; in atp870u_abort()
3075 printk(" r1f=%2x in_snd=%2x ", inb(tmport), dev->in_snd[c]); in atp870u_abort()
3076 tmport= dev->pciport[c]; in atp870u_abort()
3081 if (dev->id[c][j].curr_req != NULL) { in atp870u_abort()
3082 workrequ = dev->id[c][j].curr_req; in atp870u_abort()
3087 printk(" last_lenu= %x ",(unsigned int)dev->id[c][j].last_len); in atp870u_abort()
3217 static void is885(struct atp_unit *dev, unsigned int wkport,unsigned char c) in is885() argument
3237 if ((m & dev->active_id[c]) != 0) { in is885()
3240 if (i == dev->host_id[c]) { in is885()
3241 printk(KERN_INFO " ID: %2d Host Adapter\n", dev->host_id[c]); in is885()
3258 outb(dev->id[c][i].devsp, tmport++); in is885()
3280 dev->active_id[c] |= m; in is885()
3311 outb(dev->id[c][i].devsp, tmport++); in is885()
3366 dev->id[c][i].devtype = mbuf[0]; in is885()
3372 if ((i < 8) && ((dev->global_map[c] & 0x20) == 0)) { in is885()
3378 if (dev->sp[c][i] != 0x04) { // force u2 in is885()
3394 outb(dev->id[c][i].devsp, tmport++); in is885()
3523 dev->wide_id[c] |= m; in is885()
3524 dev->id[c][i].devsp = 0xce; in is885()
3526 printk("dev->id[%2d][%2d].devsp = %2x\n",c,i,dev->id[c][i].devsp); in is885()
3543 outb(dev->id[c][i].devsp, tmport++); in is885()
3675 dev->wide_id[c] |= m; in is885()
3677 if ((dev->id[c][i].devtype == 0x00) || (dev->id[c][i].devtype == 0x07) || in is885()
3678 ((dev->id[c][i].devtype == 0x05) && ((n & 0x10) != 0))) { in is885()
3681 if ((dev->async[c] & m) != 0) { in is885()
3687 if (dev->sp[c][i] == 0x02) { in is885()
3691 if (dev->sp[c][i] >= 0x03) { in is885()
3698 if ((m & dev->wide_id[c]) != 0) { in is885()
3712 outb(dev->id[c][i].devsp, tmport++); in is885()
3739 if ((m & dev->wide_id[c]) != 0) { in is885()
3740 if ((m & dev->ultra_map[c]) != 0) { in is885()
3746 if ((m & dev->ultra_map[c]) != 0) { in is885()
3863 dev->id[c][i].devsp = mbuf[4]; in is885()
3886 dev->id[c][i].devsp = (dev->id[c][i].devsp & 0x0f) | j; in is885()
3888 printk("dev->id[%2d][%2d].devsp = %2x\n",c,i,dev->id[c][i].devsp); in is885()