Lines Matching defs:shpnt

527 #define HOSTDATA(shpnt)		((struct aha152x_hostdata *) &shpnt->hostdata)
529 #define HOSTNO ((shpnt)->host_no)
531 #define CURRENT_SC (HOSTDATA(shpnt)->current_SC)
532 #define DONE_SC (HOSTDATA(shpnt)->done_SC)
533 #define ISSUE_SC (HOSTDATA(shpnt)->issue_SC)
534 #define DISCONNECTED_SC (HOSTDATA(shpnt)->disconnected_SC)
535 #define QLOCK (HOSTDATA(shpnt)->lock)
536 #define QLOCKER (HOSTDATA(shpnt)->locker)
537 #define QLOCKERL (HOSTDATA(shpnt)->lockerl)
539 #define STATE (HOSTDATA(shpnt)->state)
540 #define PREVSTATE (HOSTDATA(shpnt)->prevstate)
541 #define LASTSTATE (HOSTDATA(shpnt)->laststate)
543 #define RECONN_TARGET (HOSTDATA(shpnt)->target)
545 #define CMD_I (HOSTDATA(shpnt)->cmd_i)
547 #define MSGO(i) (HOSTDATA(shpnt)->msgo[i])
548 #define MSGO_I (HOSTDATA(shpnt)->msgo_i)
549 #define MSGOLEN (HOSTDATA(shpnt)->msgo_len)
550 #define ADDMSGO(x) (MSGOLEN<256 ? (void)(MSGO(MSGOLEN++)=x) : aha152x_error(shpnt,"MSGO overflow"))
552 #define MSGI(i) (HOSTDATA(shpnt)->msgi[i])
553 #define MSGILEN (HOSTDATA(shpnt)->msgi_len)
554 #define ADDMSGI(x) (MSGILEN<256 ? (void)(MSGI(MSGILEN++)=x) : aha152x_error(shpnt,"MSGI overflow"))
556 #define DATA_LEN (HOSTDATA(shpnt)->data_len)
558 #define SYNCRATE (HOSTDATA(shpnt)->syncrate[CURRENT_SC->device->id])
559 #define SYNCNEG (HOSTDATA(shpnt)->syncneg[CURRENT_SC->device->id])
561 #define DELAY (HOSTDATA(shpnt)->delay)
562 #define EXT_TRANS (HOSTDATA(shpnt)->ext_trans)
563 #define TC1550 (HOSTDATA(shpnt)->tc1550)
564 #define RECONNECT (HOSTDATA(shpnt)->reconnect)
565 #define PARITY (HOSTDATA(shpnt)->parity)
566 #define SYNCHRONOUS (HOSTDATA(shpnt)->synchronous)
568 #define HOSTIOPORT0 (HOSTDATA(shpnt)->io_port0)
569 #define HOSTIOPORT1 (HOSTDATA(shpnt)->io_port1)
578 static void seldi_run(struct Scsi_Host *shpnt);
579 static void seldo_run(struct Scsi_Host *shpnt);
580 static void selto_run(struct Scsi_Host *shpnt);
581 static void busfree_run(struct Scsi_Host *shpnt);
583 static void msgo_init(struct Scsi_Host *shpnt);
584 static void msgo_run(struct Scsi_Host *shpnt);
585 static void msgo_end(struct Scsi_Host *shpnt);
587 static void cmd_init(struct Scsi_Host *shpnt);
588 static void cmd_run(struct Scsi_Host *shpnt);
589 static void cmd_end(struct Scsi_Host *shpnt);
591 static void datai_init(struct Scsi_Host *shpnt);
592 static void datai_run(struct Scsi_Host *shpnt);
593 static void datai_end(struct Scsi_Host *shpnt);
595 static void datao_init(struct Scsi_Host *shpnt);
596 static void datao_run(struct Scsi_Host *shpnt);
597 static void datao_end(struct Scsi_Host *shpnt);
599 static void status_run(struct Scsi_Host *shpnt);
601 static void msgi_run(struct Scsi_Host *shpnt);
602 static void msgi_end(struct Scsi_Host *shpnt);
604 static void parerr_run(struct Scsi_Host *shpnt);
605 static void rsti_run(struct Scsi_Host *shpnt);
607 static void is_complete(struct Scsi_Host *shpnt);
638 static void reset_ports(struct Scsi_Host *shpnt);
639 static void aha152x_error(struct Scsi_Host *shpnt, char *msg);
640 static void done(struct Scsi_Host *shpnt, unsigned char status_byte,
645 static void show_queues(struct Scsi_Host *shpnt);
646 static void disp_enintr(struct Scsi_Host *shpnt);
725 struct Scsi_Host *shpnt = dev_id;
727 HOSTDATA(shpnt)->swint++;
735 struct Scsi_Host *shpnt;
737 shpnt = scsi_host_alloc(&aha152x_driver_template, sizeof(struct aha152x_hostdata));
738 if (!shpnt) {
743 memset(HOSTDATA(shpnt), 0, sizeof *HOSTDATA(shpnt));
744 INIT_LIST_HEAD(&HOSTDATA(shpnt)->host_list);
747 list_add_tail(&HOSTDATA(shpnt)->host_list, &aha152x_host_list);
749 shpnt->io_port = setup->io_port;
750 shpnt->n_io_port = IO_RANGE;
751 shpnt->irq = setup->irq;
769 shpnt->this_id = setup->scsiid;
772 shpnt->can_queue = AHA152X_MAXQUEUE;
781 reset_ports(shpnt);
794 shpnt->host_no, setup->tc1550 ? " (tc1550 mode)" : "",
796 shpnt->io_port, HOSTIOPORT0, HOSTIOPORT1,
797 shpnt->irq,
798 shpnt->this_id,
809 if (request_irq(shpnt->irq, swintr, IRQF_SHARED, "aha152x", shpnt)) {
810 printk(KERN_ERR "aha152x%d: irq %d busy.\n", shpnt->host_no, shpnt->irq);
814 HOSTDATA(shpnt)->swint = 0;
816 printk(KERN_INFO "aha152x%d: trying software interrupt, ", shpnt->host_no);
821 free_irq(shpnt->irq, shpnt);
823 if (!HOSTDATA(shpnt)->swint) {
833 "Please verify.\n", shpnt->host_no, shpnt->irq);
843 if (request_irq(shpnt->irq, intr, IRQF_SHARED, "aha152x", shpnt)) {
844 printk(KERN_ERR "aha152x%d: failed to reassign irq %d.\n", shpnt->host_no, shpnt->irq);
848 if( scsi_add_host(shpnt, NULL) ) {
849 free_irq(shpnt->irq, shpnt);
850 printk(KERN_ERR "aha152x%d: failed to add host.\n", shpnt->host_no);
854 scsi_scan_host(shpnt);
856 return shpnt;
859 list_del(&HOSTDATA(shpnt)->host_list);
860 scsi_host_put(shpnt);
865 void aha152x_release(struct Scsi_Host *shpnt)
867 if (!shpnt)
870 scsi_remove_host(shpnt);
871 if (shpnt->irq)
872 free_irq(shpnt->irq, shpnt);
875 if (shpnt->io_port)
876 release_region(shpnt->io_port, IO_RANGE);
880 if (HOSTDATA(shpnt)->pnpdev)
881 pnp_device_detach(HOSTDATA(shpnt)->pnpdev);
884 list_del(&HOSTDATA(shpnt)->host_list);
885 scsi_host_put(shpnt);
894 static int setup_expected_interrupts(struct Scsi_Host *shpnt)
917 if(!HOSTDATA(shpnt)->in_intr)
931 struct Scsi_Host *shpnt = SCpnt->device->host;
976 HOSTDATA(shpnt)->total_commands++;
980 HOSTDATA(shpnt)->commands++;
981 if (HOSTDATA(shpnt)->commands==1)
986 if(!HOSTDATA(shpnt)->in_intr)
987 setup_expected_interrupts(shpnt);
1032 struct Scsi_Host *shpnt = SCpnt->device->host;
1041 HOSTDATA(shpnt)->commands--;
1042 if (!HOSTDATA(shpnt)->commands)
1073 struct Scsi_Host *shpnt = SCpnt->device->host;
1107 HOSTDATA(shpnt)->commands--;
1108 if (!HOSTDATA(shpnt)->commands)
1129 static void free_hard_reset_SCs(struct Scsi_Host *shpnt,
1148 HOSTDATA(shpnt)->commands--;
1164 static int aha152x_bus_reset_host(struct Scsi_Host *shpnt)
1170 free_hard_reset_SCs(shpnt, &ISSUE_SC);
1171 free_hard_reset_SCs(shpnt, &DISCONNECTED_SC);
1178 setup_expected_interrupts(shpnt);
1179 if(HOSTDATA(shpnt)->commands==0)
1200 static void reset_ports(struct Scsi_Host *shpnt)
1229 setup_expected_interrupts(shpnt);
1237 int aha152x_host_reset_host(struct Scsi_Host *shpnt)
1239 aha152x_bus_reset_host(shpnt);
1240 reset_ports(shpnt);
1252 struct Scsi_Host *shpnt = sdev->host;
1300 static void done(struct Scsi_Host *shpnt, unsigned char status_byte,
1340 struct Scsi_Host *shpnt = dev_id;
1370 if( HOSTDATA(shpnt)->service==0 ) {
1371 HOSTDATA(shpnt)->service=1;
1387 static void busfree_run(struct Scsi_Host *shpnt)
1409 done(shpnt, acp->status, DID_OK);
1412 done(shpnt, acp->status, DID_ABORT);
1415 done(shpnt, acp->status, DID_RESET);
1420 HOSTDATA(shpnt)->disconnections++;
1427 done(shpnt, SAM_STAT_GOOD, DID_ERROR);
1431 HOSTDATA(shpnt)->busfree_without_old_command++;
1443 struct scsi_cmnd *cmd = HOSTDATA(shpnt)->done_SC;
1450 HOSTDATA(shpnt)->commands--;
1451 if (!HOSTDATA(shpnt)->commands)
1455 HOSTDATA(shpnt)->busfree_with_check_condition++;
1479 HOSTDATA(shpnt)->commands--;
1480 if (!HOSTDATA(shpnt)->commands)
1496 HOSTDATA(shpnt)->busfree_without_done_command++;
1516 SETPORT(SCSIID, (shpnt->this_id << OID_) | CURRENT_SC->device->id);
1521 HOSTDATA(shpnt)->busfree_without_new_command++;
1528 HOSTDATA(shpnt)->busfree_without_any_action++;
1537 static void seldo_run(struct Scsi_Host *shpnt)
1552 done(shpnt, SAM_STAT_GOOD, DID_NO_CONNECT);
1578 static void selto_run(struct Scsi_Host *shpnt)
1592 done(shpnt, SAM_STAT_GOOD, DID_ABORT);
1594 done(shpnt, SAM_STAT_GOOD, DID_BUS_BUSY);
1597 done(shpnt, SAM_STAT_GOOD, DID_NO_CONNECT);
1607 static void seldi_run(struct Scsi_Host *shpnt)
1637 selid = GETPORT(SELID) & ~(1 << shpnt->this_id);
1640 shost_printk(KERN_INFO, shpnt,
1649 shost_printk(KERN_INFO, shpnt,
1654 SETPORT(SCSIID, (shpnt->this_id << OID_) | target);
1657 SETRATE(HOSTDATA(shpnt)->syncrate[target]);
1675 static void msgi_run(struct Scsi_Host *shpnt)
1691 shost_printk(KERN_ERR, shpnt,
1700 shost_printk(KERN_ERR, shpnt,
1708 show_queues(shpnt);
1709 shost_printk(KERN_ERR, shpnt,
1776 if (!HOSTDATA(shpnt)->synchronous)
1831 HOSTDATA(shpnt)->syncrate[i]=0;
1832 HOSTDATA(shpnt)->syncneg[i]=0;
1852 static void msgi_end(struct Scsi_Host *shpnt)
1867 static void msgo_init(struct Scsi_Host *shpnt)
1886 static void msgo_run(struct Scsi_Host *shpnt)
1913 static void msgo_end(struct Scsi_Host *shpnt)
1934 static void cmd_init(struct Scsi_Host *shpnt)
1939 done(shpnt, SAM_STAT_GOOD, DID_ERROR);
1950 static void cmd_run(struct Scsi_Host *shpnt)
1960 static void cmd_end(struct Scsi_Host *shpnt)
1974 static void status_run(struct Scsi_Host *shpnt)
1987 static void datai_init(struct Scsi_Host *shpnt)
2001 static void datai_run(struct Scsi_Host *shpnt)
2109 static void datai_end(struct Scsi_Host *shpnt)
2121 static void datao_init(struct Scsi_Host *shpnt)
2135 static void datao_run(struct Scsi_Host *shpnt)
2188 static void datao_end(struct Scsi_Host *shpnt)
2224 static int update_state(struct Scsi_Host *shpnt)
2279 static void parerr_run(struct Scsi_Host *shpnt)
2282 done(shpnt, SAM_STAT_GOOD, DID_PARITY);
2289 static void rsti_run(struct Scsi_Host *shpnt)
2293 shost_printk(KERN_NOTICE, shpnt, "scsi reset in\n");
2313 done(shpnt, SAM_STAT_GOOD, DID_RESET);
2321 static void is_complete(struct Scsi_Host *shpnt)
2327 if(!shpnt)
2332 if( HOSTDATA(shpnt)->service==0 ) {
2337 HOSTDATA(shpnt)->service = 0;
2339 if(HOSTDATA(shpnt)->in_intr) {
2342 aha152x_error(shpnt, "bottom-half already running!?");
2344 HOSTDATA(shpnt)->in_intr++;
2354 dataphase=update_state(shpnt);
2361 states[PREVSTATE].end(shpnt);
2402 states[STATE].init(shpnt);
2409 states[STATE].run(shpnt);
2421 pending=setup_expected_interrupts(shpnt);
2423 HOSTDATA(shpnt)->count[STATE]++;
2425 HOSTDATA(shpnt)->count_trans[STATE]++;
2426 HOSTDATA(shpnt)->time[STATE] += jiffies-start;
2435 HOSTDATA(shpnt)->in_intr--;
2444 static void aha152x_error(struct Scsi_Host *shpnt, char *msg)
2446 shost_printk(KERN_EMERG, shpnt, "%s\n", msg);
2447 show_queues(shpnt);
2454 static void disp_enintr(struct Scsi_Host *shpnt)
2461 shost_printk(KERN_DEBUG, shpnt,
2506 static void show_queues(struct Scsi_Host *shpnt)
2527 disp_enintr(shpnt);
2565 static void get_ports(struct seq_file *m, struct Scsi_Host *shpnt)
2824 static int aha152x_set_info(struct Scsi_Host *shpnt, char *buffer, int length)
2826 if(!shpnt || !buffer || length<8 || strncmp("aha152x ", buffer, 8)!=0)
2833 HOSTDATA(shpnt)->total_commands=0;
2834 HOSTDATA(shpnt)->disconnections=0;
2835 HOSTDATA(shpnt)->busfree_without_any_action=0;
2836 HOSTDATA(shpnt)->busfree_without_old_command=0;
2837 HOSTDATA(shpnt)->busfree_without_new_command=0;
2838 HOSTDATA(shpnt)->busfree_without_done_command=0;
2839 HOSTDATA(shpnt)->busfree_with_check_condition=0;
2841 HOSTDATA(shpnt)->count[i]=0;
2842 HOSTDATA(shpnt)->count_trans[i]=0;
2843 HOSTDATA(shpnt)->time[i]=0;
2846 shost_printk(KERN_INFO, shpnt, "aha152x: stats reset.\n");
2858 static int aha152x_show_info(struct seq_file *m, struct Scsi_Host *shpnt)
2867 shpnt->io_port, shpnt->io_port + shpnt->n_io_port - 1);
2868 seq_printf(m, "interrupt 0x%02x\n", shpnt->irq);
2875 seq_printf(m, "%d commands currently queued\n", HOSTDATA(shpnt)->commands);
2880 if (HOSTDATA(shpnt)->syncrate[i] & 0x7f)
2883 (((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2),
2884 (((HOSTDATA(shpnt)->syncrate[i] & 0x70) >> 4) + 2) * 50,
2885 HOSTDATA(shpnt)->syncrate[i] & 0x0f);
2910 get_ports(m, shpnt);
2925 HOSTDATA(shpnt)->total_commands,
2926 HOSTDATA(shpnt)->disconnections,
2927 HOSTDATA(shpnt)->busfree_with_check_condition,
2928 HOSTDATA(shpnt)->busfree_without_old_command,
2929 HOSTDATA(shpnt)->busfree_without_new_command,
2930 HOSTDATA(shpnt)->busfree_without_done_command,
2931 HOSTDATA(shpnt)->busfree_without_any_action);
2935 HOSTDATA(shpnt)->count_trans[i],
2936 HOSTDATA(shpnt)->count[i],
2937 HOSTDATA(shpnt)->time[i]);
3365 struct Scsi_Host *shpnt = aha152x_probe_one(&setup[i]);
3367 if( !shpnt ) {
3371 HOSTDATA(shpnt)->pnpdev=pnpdev[i];