Lines Matching refs:hostdata
530 static void NCR5380_set_timer(struct NCR5380_hostdata *hostdata, unsigned long timeout) in NCR5380_set_timer() argument
532 hostdata->time_expires = jiffies + timeout; in NCR5380_set_timer()
533 schedule_delayed_work(&hostdata->coroutine, timeout); in NCR5380_set_timer()
570 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_probe_irq() local
593 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_probe_irq()
594 NCR5380_write(OUTPUT_DATA_REG, hostdata->id_mask); in NCR5380_probe_irq()
621 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_info() local
623 return hostdata->info; in NCR5380_info()
628 struct NCR5380_hostdata *hostdata = shost_priv(instance); in prepare_info() local
630 snprintf(hostdata->info, sizeof(hostdata->info), in prepare_info()
644 hostdata->flags & FLAG_NCR53C400 ? "NCR53C400 " : "", in prepare_info()
645 hostdata->flags & FLAG_DTC3181E ? "DTC3181E " : "", in prepare_info()
646 hostdata->flags & FLAG_NO_PSEUDO_DMA ? "NO_PSEUDO_DMA " : "", in prepare_info()
711 struct NCR5380_hostdata *hostdata = shost_priv(instance); in NCR5380_write_info() local
713 hostdata->spin_max_r = 0; in NCR5380_write_info()
714 hostdata->spin_max_w = 0; in NCR5380_write_info()
729 struct NCR5380_hostdata *hostdata; in NCR5380_show_info() local
732 hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_show_info()
736 hostdata->spin_max_w, hostdata->spin_max_r); in NCR5380_show_info()
739 if (!hostdata->connected) in NCR5380_show_info()
742 lprint_Scsi_Cmnd((struct scsi_cmnd *) hostdata->connected, m); in NCR5380_show_info()
744 …for (ptr = (struct scsi_cmnd *) hostdata->issue_queue; ptr; ptr = (struct scsi_cmnd *) ptr->host_s… in NCR5380_show_info()
748 …for (ptr = (struct scsi_cmnd *) hostdata->disconnected_queue; ptr; ptr = (struct scsi_cmnd *) ptr-… in NCR5380_show_info()
797 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_init() local
813 hostdata->aborted = 0; in NCR5380_init()
814 hostdata->id_mask = 1 << instance->this_id; in NCR5380_init()
815 for (i = hostdata->id_mask; i <= 0x80; i <<= 1) in NCR5380_init()
816 if (i > hostdata->id_mask) in NCR5380_init()
817 hostdata->id_higher_mask |= i; in NCR5380_init()
819 hostdata->busy[i] = 0; in NCR5380_init()
821 hostdata->dmalen = 0; in NCR5380_init()
823 hostdata->targets_present = 0; in NCR5380_init()
824 hostdata->connected = NULL; in NCR5380_init()
825 hostdata->issue_queue = NULL; in NCR5380_init()
826 hostdata->disconnected_queue = NULL; in NCR5380_init()
828 INIT_DELAYED_WORK(&hostdata->coroutine, NCR5380_main); in NCR5380_init()
832 hostdata->flags = FLAG_HAS_LAST_BYTE_SENT | flags; in NCR5380_init()
834 hostdata->flags = FLAG_CHECK_LAST_BYTE_SENT | flags; in NCR5380_init()
836 hostdata->host = instance; in NCR5380_init()
837 hostdata->time_expires = 0; in NCR5380_init()
847 if (hostdata->flags & FLAG_NCR53C400) { in NCR5380_init()
896 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_exit() local
898 cancel_delayed_work_sync(&hostdata->coroutine); in NCR5380_exit()
916 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_queue_command_lck() local
946 if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { in NCR5380_queue_command_lck()
947 LIST(cmd, hostdata->issue_queue); in NCR5380_queue_command_lck()
948 cmd->host_scribble = (unsigned char *) hostdata->issue_queue; in NCR5380_queue_command_lck()
949 hostdata->issue_queue = cmd; in NCR5380_queue_command_lck()
951 …for (tmp = (struct scsi_cmnd *) hostdata->issue_queue; tmp->host_scribble; tmp = (struct scsi_cmnd… in NCR5380_queue_command_lck()
959 schedule_delayed_work(&hostdata->coroutine, 0); in NCR5380_queue_command_lck()
979 struct NCR5380_hostdata *hostdata = in DEF_SCSI_QCMD() local
981 struct Scsi_Host *instance = hostdata->host; in DEF_SCSI_QCMD()
989 if (!hostdata->connected && !hostdata->selecting) { in DEF_SCSI_QCMD()
995 …for (tmp = (struct scsi_cmnd *) hostdata->issue_queue, prev = NULL; tmp; prev = tmp, tmp = (struct… in DEF_SCSI_QCMD()
998 …, "MAIN tmp=%p target=%d busy=%d lun=%llu\n", tmp, tmp->device->id, hostdata->busy[tmp->device… in DEF_SCSI_QCMD()
1000 if (!(hostdata->busy[tmp->device->id] & in DEF_SCSI_QCMD()
1006 REMOVE(-1, hostdata->issue_queue, tmp, tmp->host_scribble); in DEF_SCSI_QCMD()
1007 hostdata->issue_queue = (struct scsi_cmnd *) tmp->host_scribble; in DEF_SCSI_QCMD()
1029 hostdata->selecting = NULL; in DEF_SCSI_QCMD()
1042 LIST(tmp, hostdata->issue_queue); in DEF_SCSI_QCMD()
1043 tmp->host_scribble = (unsigned char *) hostdata->issue_queue; in DEF_SCSI_QCMD()
1044 hostdata->issue_queue = tmp; in DEF_SCSI_QCMD()
1053 if (hostdata->selecting) { in DEF_SCSI_QCMD()
1054 tmp = (struct scsi_cmnd *) hostdata->selecting; in DEF_SCSI_QCMD()
1064 LIST(tmp, hostdata->issue_queue); in DEF_SCSI_QCMD()
1065 tmp->host_scribble = (unsigned char *) hostdata->issue_queue; in DEF_SCSI_QCMD()
1066 hostdata->issue_queue = tmp; in DEF_SCSI_QCMD()
1067 NCR5380_set_timer(hostdata, USLEEP_WAITLONG); in DEF_SCSI_QCMD()
1070 if (hostdata->connected in DEF_SCSI_QCMD()
1072 && !hostdata->dmalen in DEF_SCSI_QCMD()
1074 && (!hostdata->time_expires || time_before_eq(hostdata->time_expires, jiffies)) in DEF_SCSI_QCMD()
1105 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_intr() local
1144 if (!hostdata->connected) in NCR5380_intr()
1147 transferred = (hostdata->dmalen - NCR5380_dma_residual(instance)); in NCR5380_intr()
1148 hostdata->connected->SCp.this_residual -= transferred; in NCR5380_intr()
1149 hostdata->connected->SCp.ptr += transferred; in NCR5380_intr()
1150 hostdata->dmalen = 0; in NCR5380_intr()
1155 NCR5380_poll_politely(hostdata, BUS_AND_STATUS_REG, BASR_ACK, 0, 2*HZ); in NCR5380_intr()
1168 schedule_delayed_work(&hostdata->coroutine, 0); in NCR5380_intr()
1209 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_select() local
1218 if (hostdata->selecting) in NCR5380_select()
1221 hostdata->restart_select = 0; in NCR5380_select()
1237 NCR5380_write(OUTPUT_DATA_REG, hostdata->id_mask); in NCR5380_select()
1249 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1265 …_REG) & ICR_ARBITRATION_LOST) || (NCR5380_read(CURRENT_SCSI_DATA_REG) & hostdata->id_higher_mask) … in NCR5380_select()
1272 if (!(hostdata->flags & FLAG_DTC3181E) && in NCR5380_select()
1297 NCR5380_write(OUTPUT_DATA_REG, (hostdata->id_mask | (1 << scmd_id(cmd)))); in NCR5380_select()
1357 hostdata->select_time = 0; /* we count the clock ticks at which we polled */ in NCR5380_select()
1358 hostdata->selecting = cmd; in NCR5380_select()
1366 if (!value && (hostdata->select_time < HZ/4)) { in NCR5380_select()
1368 hostdata->select_time++; /* after 25 ticks the device has failed */ in NCR5380_select()
1369 NCR5380_set_timer(hostdata, 1); in NCR5380_select()
1374 hostdata->selecting = NULL;/* clear this pointer, because we passed the in NCR5380_select()
1380 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1395 if (hostdata->targets_present & (1 << scmd_id(cmd))) { in NCR5380_select()
1397 if (hostdata->restart_select) in NCR5380_select()
1400 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1405 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1407 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1410 hostdata->targets_present |= (1 << scmd_id(cmd)); in NCR5380_select()
1435 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); in NCR5380_select()
1451 hostdata->connected = cmd; in NCR5380_select()
1452 hostdata->busy[cmd->device->id] |= (1 << (cmd->device->lun & 0xFF)); in NCR5380_select()
1498 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_transfer_pio() local
1535 NCR5380_set_timer(hostdata, USLEEP_SLEEP); in NCR5380_transfer_pio()
1733 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; in NCR5380_transfer_dma() local
1748 …hostdata->dma_len = (p & SR_IO) ? NCR5380_dma_read_setup(instance, d, c) : NCR5380_dma_write_setup… in NCR5380_transfer_dma()
1768 if (hostdata->flags & FLAG_NCR53C400) in NCR5380_transfer_dma()
1893 if (hostdata->flags & FLAG_NCR53C400) { in NCR5380_transfer_dma()
1919 if (!(hostdata->flags & FLAG_NCR53C400)) { in NCR5380_transfer_dma()
1938 if (!(hostdata->flags & FLAG_HAS_LAST_BYTE_SENT)) { in NCR5380_transfer_dma()
1945 if (hostdata->flags & FLAG_CHECK_LAST_BYTE_SENT) { in NCR5380_transfer_dma()
1946 hostdata->flags &= ~FLAG_CHECK_LAST_BYTE_SENT; in NCR5380_transfer_dma()
1948 hostdata->flags |= FLAG_HAS_LAST_BYTE_SENT; in NCR5380_transfer_dma()
1963 if ((!(p & SR_IO)) && (hostdata->flags & FLAG_NCR53C400)) { in NCR5380_transfer_dma()
2004 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *)instance->hostdata; local
2013 struct scsi_cmnd *cmd = (struct scsi_cmnd *) hostdata->connected;
2079 …if (!cmd->device->borken && !(hostdata->flags & FLAG_NO_PSEUDO_DMA) && (transfersize = NCR5380_dma…
2088 …if (!cmd->device->borken && transfersize && !(hostdata->flags & FLAG_NO_PSEUDO_DMA) && cmd->SCp.th…
2156 cmd = hostdata->connected;
2164 hostdata->connected = NULL;
2166 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF));
2190 hostdata->ses.cmd_len) {
2191 scsi_eh_restore_cmnd(cmd, &hostdata->ses);
2192 hostdata->ses.cmd_len = 0 ;
2196 scsi_eh_prep_cmnd(cmd, &hostdata->ses, NULL, 0, ~0);
2200 LIST(cmd, hostdata->issue_queue);
2202 hostdata->issue_queue;
2203 hostdata->issue_queue = (struct scsi_cmnd *) cmd;
2209 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
2216 while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected)
2222 switch (hostdata->last_message) {
2227 hostdata->busy[cmd->device->id] |= (1 << (cmd->device->lun & 0xFF));
2236 LIST(cmd, hostdata->disconnected_queue);
2238 hostdata->disconnected_queue;
2239 hostdata->connected = NULL;
2240 hostdata->disconnected_queue = cmd;
2249 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
2252 while ((NCR5380_read(STATUS_REG) & SR_BSY) && !hostdata->connected)
2346 hostdata->last_message = msgout;
2349 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF));
2350 hostdata->connected = NULL;
2353 NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
2368 NCR5380_set_timer(hostdata, USLEEP_SLEEP);
2369 …SLEEP, "scsi%d : issued command, sleeping until %lu\n", instance->host_no, hostdata->time_expires);
2388 NCR5380_set_timer(hostdata, USLEEP_SLEEP);
2389 …SLEEP, "scsi%d : poll timed out, sleeping until %lu\n", instance->host_no, hostdata->time_expires);
2410 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) local
2411 instance->hostdata;
2427 hostdata->restart_select = 1;
2429 target_mask = NCR5380_read(CURRENT_SCSI_DATA_REG) & ~(hostdata->id_mask);
2483 …for (tmp = (struct scsi_cmnd *) hostdata->disconnected_queue, prev = NULL; tmp; prev = tmp, tmp = …
2490 REMOVE(-1, hostdata->disconnected_queue, tmp, tmp->host_scribble);
2491 hostdata->disconnected_queue = (struct scsi_cmnd *) tmp->host_scribble;
2509 hostdata->connected = tmp;
2529 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; local
2555 if (!(hostdata->connected->SCp.phase & SR_CD)) {
2557 hostdata->connected->SCp.this_residual -= transferred;
2558 hostdata->connected->SCp.ptr += transferred;
2586 struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; local
2605 if (hostdata->connected == cmd) {
2607 hostdata->aborted = 1;
2635 …for (prev = (struct scsi_cmnd **) &(hostdata->issue_queue), tmp = (struct scsi_cmnd *) hostdata->i…
2662 if (hostdata->connected) {
2691 …for (tmp = (struct scsi_cmnd *) hostdata->disconnected_queue; tmp; tmp = (struct scsi_cmnd *) tmp-…
2701 …for (prev = (struct scsi_cmnd **) &(hostdata->disconnected_queue), tmp = (struct scsi_cmnd *) host…