Lines Matching refs:ioc
197 MPT_ADAPTER *ioc; in mptfc_block_error_handler() local
201 ioc = hd->ioc; in mptfc_block_error_handler()
204 || (loops > 0 && ioc->active == 0)) { in mptfc_block_error_handler()
206 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
209 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
211 ready, ioc->active, caller)); in mptfc_block_error_handler()
219 || ioc->active == 0) { in mptfc_block_error_handler()
220 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
223 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
225 ioc->active, SCpnt->device->hostdata)); in mptfc_block_error_handler()
228 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
230 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
291 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, int ioc_port, in mptfc_GetFcDevPage0() argument
292 void(*func)(MPT_ADAPTER *ioc,int channel, FCDevicePage0_t *arg)) in mptfc_GetFcDevPage0() argument
307 int max_bus = ioc->facts.MaxBuses; in mptfc_GetFcDevPage0()
310 max_targ = (ioc->facts.MaxDevices == 0) ? 256 : ioc->facts.MaxDevices; in mptfc_GetFcDevPage0()
335 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcDevPage0()
342 ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, in mptfc_GetFcDevPage0()
351 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcDevPage0()
378 pci_free_consistent(ioc->pcidev, data_sz, in mptfc_GetFcDevPage0()
393 func(ioc, ioc_port, fc); in mptfc_GetFcDevPage0()
430 mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0) in mptfc_register_dev() argument
448 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_register_dev()
451 list_move_tail(&ri->list, &ioc->fc_rports); in mptfc_register_dev()
460 list_add_tail(&ri->list, &ioc->fc_rports); in mptfc_register_dev()
469 rport = fc_remote_port_add(ioc->sh, channel, &rport_ids); in mptfc_register_dev()
493 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_register_dev()
496 ioc->name, in mptfc_register_dev()
497 ioc->sh->host_no, in mptfc_register_dev()
576 mptfc_dump_lun_info(MPT_ADAPTER *ioc, struct fc_rport *rport, struct scsi_device *sdev, in mptfc_dump_lun_info() argument
585 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_dump_lun_info()
588 ioc->name, in mptfc_dump_lun_info()
612 MPT_ADAPTER *ioc; in mptfc_slave_alloc() local
621 ioc = hd->ioc; in mptfc_slave_alloc()
626 ioc->name, sizeof(VirtDevice)); in mptfc_slave_alloc()
635 vtarget->ioc_id = ioc->id; in mptfc_slave_alloc()
645 mptfc_dump_lun_info(ioc, rport, sdev, vtarget); in mptfc_slave_alloc()
690 mptfc_display_port_link_speed(MPT_ADAPTER *ioc, int portnum, FCPortPage0_t *pp0dest) in mptfc_display_port_link_speed() argument
698 old_speed = ioc->fc_link_speed[portnum]; in mptfc_display_port_link_speed()
716 ioc->name, new); in mptfc_display_port_link_speed()
720 ioc->name, old, new); in mptfc_display_port_link_speed()
722 ioc->fc_link_speed[portnum] = new_speed; in mptfc_display_port_link_speed()
739 mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum) in mptfc_GetFcPortPage0() argument
766 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcPortPage0()
774 ppage0_alloc = (FCPortPage0_t *) pci_alloc_consistent(ioc->pcidev, data_sz, &page0_dma); in mptfc_GetFcPortPage0()
782 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcPortPage0()
784 pp0dest = &ioc->fc_port_page0[portnum]; in mptfc_GetFcPortPage0()
823 ioc->name); in mptfc_GetFcPortPage0()
825 mptfc_display_port_link_speed(ioc, portnum, pp0dest); in mptfc_GetFcPortPage0()
828 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage0_alloc, page0_dma); in mptfc_GetFcPortPage0()
835 mptfc_WriteFcPortPage1(MPT_ADAPTER *ioc, int portnum) in mptfc_WriteFcPortPage1() argument
844 if (!(ioc->fc_data.fc_port_page1[portnum].data)) in mptfc_WriteFcPortPage1()
859 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_WriteFcPortPage1()
865 if (hdr.PageLength*4 != ioc->fc_data.fc_port_page1[portnum].pg_sz) in mptfc_WriteFcPortPage1()
868 cfg.physAddr = ioc->fc_data.fc_port_page1[portnum].dma; in mptfc_WriteFcPortPage1()
872 rc = mpt_config(ioc, &cfg); in mptfc_WriteFcPortPage1()
878 mptfc_GetFcPortPage1(MPT_ADAPTER *ioc, int portnum) in mptfc_GetFcPortPage1() argument
902 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcPortPage1()
910 if (ioc->fc_data.fc_port_page1[portnum].data == NULL) { in mptfc_GetFcPortPage1()
915 page1_alloc = (FCPortPage1_t *) pci_alloc_consistent(ioc->pcidev, in mptfc_GetFcPortPage1()
922 page1_alloc = ioc->fc_data.fc_port_page1[portnum].data; in mptfc_GetFcPortPage1()
923 page1_dma = ioc->fc_data.fc_port_page1[portnum].dma; in mptfc_GetFcPortPage1()
924 data_sz = ioc->fc_data.fc_port_page1[portnum].pg_sz; in mptfc_GetFcPortPage1()
926 ioc->fc_data.fc_port_page1[portnum].data = NULL; in mptfc_GetFcPortPage1()
927 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) in mptfc_GetFcPortPage1()
938 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcPortPage1()
939 ioc->fc_data.fc_port_page1[portnum].data = page1_alloc; in mptfc_GetFcPortPage1()
940 ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz; in mptfc_GetFcPortPage1()
941 ioc->fc_data.fc_port_page1[portnum].dma = page1_dma; in mptfc_GetFcPortPage1()
944 ioc->fc_data.fc_port_page1[portnum].data = NULL; in mptfc_GetFcPortPage1()
945 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) in mptfc_GetFcPortPage1()
953 mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc) in mptfc_SetFcPortPage1_defaults() argument
963 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_SetFcPortPage1_defaults()
964 if (mptfc_GetFcPortPage1(ioc, ii) != 0) in mptfc_SetFcPortPage1_defaults()
966 pp1 = ioc->fc_data.fc_port_page1[ii].data; in mptfc_SetFcPortPage1_defaults()
976 mptfc_WriteFcPortPage1(ioc, ii); in mptfc_SetFcPortPage1_defaults()
982 mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum) in mptfc_init_host_attr() argument
997 pp0 = &ioc->fc_port_page0[portnum]; in mptfc_init_host_attr()
998 sh = ioc->sh; in mptfc_init_host_attr()
1002 ioc->prod_name, in mptfc_init_host_attr()
1004 ioc->facts.FWVersion.Word); in mptfc_init_host_attr()
1078 MPT_ADAPTER *ioc = in mptfc_link_status_change() local
1082 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) in mptfc_link_status_change()
1083 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_link_status_change()
1090 MPT_ADAPTER *ioc = in mptfc_setup_reset() local
1098 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_setup_reset()
1112 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_setup_reset()
1114 ioc->name, in mptfc_setup_reset()
1115 ioc->sh->host_no, in mptfc_setup_reset()
1124 MPT_ADAPTER *ioc = in mptfc_rescan_devices() local
1133 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1143 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_rescan_devices()
1144 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_rescan_devices()
1145 mptfc_init_host_attr(ioc, ii); /* refresh */ in mptfc_rescan_devices()
1146 mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev); in mptfc_rescan_devices()
1150 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1167 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_rescan_devices()
1169 ioc->name, in mptfc_rescan_devices()
1170 ioc->sh->host_no, in mptfc_rescan_devices()
1181 MPT_ADAPTER *ioc; in mptfc_probe() local
1193 ioc = pci_get_drvdata(pdev); in mptfc_probe()
1194 ioc->DoneCtx = mptfcDoneCtx; in mptfc_probe()
1195 ioc->TaskCtx = mptfcTaskCtx; in mptfc_probe()
1196 ioc->InternalCtx = mptfcInternalCtx; in mptfc_probe()
1200 if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) { in mptfc_probe()
1203 ioc->name); in mptfc_probe()
1208 if (!ioc->active) { in mptfc_probe()
1210 ioc->name); in mptfc_probe()
1218 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1219 if (ioc->pfacts[ii].ProtocolFlags & in mptfc_probe()
1227 ioc->name, ioc); in mptfc_probe()
1236 ioc->name); in mptfc_probe()
1241 spin_lock_init(&ioc->fc_rescan_work_lock); in mptfc_probe()
1242 INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices); in mptfc_probe()
1243 INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset); in mptfc_probe()
1244 INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change); in mptfc_probe()
1246 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptfc_probe()
1250 ioc->sh = sh; in mptfc_probe()
1259 sh->max_id = ioc->pfacts->MaxDevices; in mptfc_probe()
1264 sh->unique_id = ioc->id; in mptfc_probe()
1275 scale = ioc->req_sz/ioc->SGE_size; in mptfc_probe()
1276 if (ioc->sg_addr_size == sizeof(u64)) { in mptfc_probe()
1278 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1279 (ioc->req_sz - 60) / ioc->SGE_size; in mptfc_probe()
1282 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1283 (ioc->req_sz - 64) / ioc->SGE_size; in mptfc_probe()
1288 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_probe()
1290 ioc->name, numSGE, sh->sg_tablesize)); in mptfc_probe()
1294 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptfc_probe()
1297 hd->ioc = ioc; in mptfc_probe()
1302 ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_ATOMIC); in mptfc_probe()
1303 if (!ioc->ScsiLookup) { in mptfc_probe()
1307 spin_lock_init(&ioc->scsi_lookup_lock); in mptfc_probe()
1309 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n", in mptfc_probe()
1310 ioc->name, ioc->ScsiLookup)); in mptfc_probe()
1315 error = scsi_add_host (sh, &ioc->pcidev->dev); in mptfc_probe()
1317 dprintk(ioc, printk(MYIOC_s_ERR_FMT in mptfc_probe()
1318 "scsi_add_host failed\n", ioc->name)); in mptfc_probe()
1324 snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name), in mptfc_probe()
1326 ioc->fc_rescan_work_q = in mptfc_probe()
1327 create_singlethread_workqueue(ioc->fc_rescan_work_q_name); in mptfc_probe()
1328 if (!ioc->fc_rescan_work_q) in mptfc_probe()
1335 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1336 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_probe()
1338 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_probe()
1345 queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work); in mptfc_probe()
1346 flush_workqueue(ioc->fc_rescan_work_q); in mptfc_probe()
1369 mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) in mptfc_event_process() argument
1376 if (ioc->bus_type != FC) in mptfc_event_process()
1379 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n", in mptfc_event_process()
1380 ioc->name, event)); in mptfc_event_process()
1382 if (ioc->sh == NULL || in mptfc_event_process()
1383 ((hd = shost_priv(ioc->sh)) == NULL)) in mptfc_event_process()
1388 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1389 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1390 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1391 &ioc->fc_rescan_work); in mptfc_event_process()
1393 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1396 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1397 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1398 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1399 &ioc->fc_lsc_work); in mptfc_event_process()
1401 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1404 rc = mptscsih_event_process(ioc,pEvReply); in mptfc_event_process()
1411 mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) in mptfc_ioc_reset() argument
1416 rc = mptscsih_ioc_reset(ioc,reset_phase); in mptfc_ioc_reset()
1417 if ((ioc->bus_type != FC) || (!rc)) in mptfc_ioc_reset()
1421 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_ioc_reset()
1422 ": IOC %s_reset routed to FC host driver!\n",ioc->name, in mptfc_ioc_reset()
1427 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1428 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1429 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1430 &ioc->fc_setup_reset_work); in mptfc_ioc_reset()
1432 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1439 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_ioc_reset()
1440 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1441 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1442 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1443 &ioc->fc_rescan_work); in mptfc_ioc_reset()
1445 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1498 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptfc_remove() local
1505 if ((work_q=ioc->fc_rescan_work_q)) { in mptfc_remove()
1506 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1507 ioc->fc_rescan_work_q = NULL; in mptfc_remove()
1508 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1512 fc_remove_host(ioc->sh); in mptfc_remove()
1514 list_for_each_entry_safe(p, n, &ioc->fc_rports, list) { in mptfc_remove()
1519 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_remove()
1520 if (ioc->fc_data.fc_port_page1[ii].data) { in mptfc_remove()
1521 pci_free_consistent(ioc->pcidev, in mptfc_remove()
1522 ioc->fc_data.fc_port_page1[ii].pg_sz, in mptfc_remove()
1523 (u8 *) ioc->fc_data.fc_port_page1[ii].data, in mptfc_remove()
1524 ioc->fc_data.fc_port_page1[ii].dma); in mptfc_remove()
1525 ioc->fc_data.fc_port_page1[ii].data = NULL; in mptfc_remove()