Lines Matching refs:ioc

196 	MPT_ADAPTER 		*ioc;  in mptfc_block_error_handler()  local
200 ioc = hd->ioc; in mptfc_block_error_handler()
203 || (loops > 0 && ioc->active == 0)) { in mptfc_block_error_handler()
205 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
208 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
210 ready, ioc->active, caller)); in mptfc_block_error_handler()
218 || ioc->active == 0) { in mptfc_block_error_handler()
219 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
222 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
224 ioc->active, SCpnt->device->hostdata)); in mptfc_block_error_handler()
227 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_block_error_handler()
229 ioc->name, ioc->sh->host_no, in mptfc_block_error_handler()
283 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, int ioc_port, in mptfc_GetFcDevPage0() argument
284 void(*func)(MPT_ADAPTER *ioc,int channel, FCDevicePage0_t *arg)) in mptfc_GetFcDevPage0() argument
299 int max_bus = ioc->facts.MaxBuses; in mptfc_GetFcDevPage0()
302 max_targ = (ioc->facts.MaxDevices == 0) ? 256 : ioc->facts.MaxDevices; in mptfc_GetFcDevPage0()
327 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcDevPage0()
334 ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, in mptfc_GetFcDevPage0()
343 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcDevPage0()
370 pci_free_consistent(ioc->pcidev, data_sz, in mptfc_GetFcDevPage0()
385 func(ioc, ioc_port, fc); in mptfc_GetFcDevPage0()
422 mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0) in mptfc_register_dev() argument
440 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_register_dev()
443 list_move_tail(&ri->list, &ioc->fc_rports); in mptfc_register_dev()
452 list_add_tail(&ri->list, &ioc->fc_rports); in mptfc_register_dev()
461 rport = fc_remote_port_add(ioc->sh, channel, &rport_ids); in mptfc_register_dev()
485 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_register_dev()
488 ioc->name, in mptfc_register_dev()
489 ioc->sh->host_no, in mptfc_register_dev()
568 mptfc_dump_lun_info(MPT_ADAPTER *ioc, struct fc_rport *rport, struct scsi_device *sdev, in mptfc_dump_lun_info() argument
577 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_dump_lun_info()
580 ioc->name, in mptfc_dump_lun_info()
604 MPT_ADAPTER *ioc; in mptfc_slave_alloc() local
613 ioc = hd->ioc; in mptfc_slave_alloc()
618 ioc->name, sizeof(VirtDevice)); in mptfc_slave_alloc()
627 vtarget->ioc_id = ioc->id; in mptfc_slave_alloc()
637 mptfc_dump_lun_info(ioc, rport, sdev, vtarget); in mptfc_slave_alloc()
682 mptfc_display_port_link_speed(MPT_ADAPTER *ioc, int portnum, FCPortPage0_t *pp0dest) in mptfc_display_port_link_speed() argument
690 old_speed = ioc->fc_link_speed[portnum]; in mptfc_display_port_link_speed()
708 ioc->name, new); in mptfc_display_port_link_speed()
712 ioc->name, old, new); in mptfc_display_port_link_speed()
714 ioc->fc_link_speed[portnum] = new_speed; in mptfc_display_port_link_speed()
731 mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum) in mptfc_GetFcPortPage0() argument
758 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcPortPage0()
766 ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page0_dma); in mptfc_GetFcPortPage0()
774 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcPortPage0()
776 pp0dest = &ioc->fc_port_page0[portnum]; in mptfc_GetFcPortPage0()
815 ioc->name); in mptfc_GetFcPortPage0()
817 mptfc_display_port_link_speed(ioc, portnum, pp0dest); in mptfc_GetFcPortPage0()
820 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage0_alloc, page0_dma); in mptfc_GetFcPortPage0()
827 mptfc_WriteFcPortPage1(MPT_ADAPTER *ioc, int portnum) in mptfc_WriteFcPortPage1() argument
836 if (!(ioc->fc_data.fc_port_page1[portnum].data)) in mptfc_WriteFcPortPage1()
851 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_WriteFcPortPage1()
857 if (hdr.PageLength*4 != ioc->fc_data.fc_port_page1[portnum].pg_sz) in mptfc_WriteFcPortPage1()
860 cfg.physAddr = ioc->fc_data.fc_port_page1[portnum].dma; in mptfc_WriteFcPortPage1()
864 rc = mpt_config(ioc, &cfg); in mptfc_WriteFcPortPage1()
870 mptfc_GetFcPortPage1(MPT_ADAPTER *ioc, int portnum) in mptfc_GetFcPortPage1() argument
894 if ((rc = mpt_config(ioc, &cfg)) != 0) in mptfc_GetFcPortPage1()
902 if (ioc->fc_data.fc_port_page1[portnum].data == NULL) { in mptfc_GetFcPortPage1()
907 page1_alloc = pci_alloc_consistent(ioc->pcidev, in mptfc_GetFcPortPage1()
914 page1_alloc = ioc->fc_data.fc_port_page1[portnum].data; in mptfc_GetFcPortPage1()
915 page1_dma = ioc->fc_data.fc_port_page1[portnum].dma; in mptfc_GetFcPortPage1()
916 data_sz = ioc->fc_data.fc_port_page1[portnum].pg_sz; in mptfc_GetFcPortPage1()
918 ioc->fc_data.fc_port_page1[portnum].data = NULL; in mptfc_GetFcPortPage1()
919 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) in mptfc_GetFcPortPage1()
928 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcPortPage1()
929 ioc->fc_data.fc_port_page1[portnum].data = page1_alloc; in mptfc_GetFcPortPage1()
930 ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz; in mptfc_GetFcPortPage1()
931 ioc->fc_data.fc_port_page1[portnum].dma = page1_dma; in mptfc_GetFcPortPage1()
934 ioc->fc_data.fc_port_page1[portnum].data = NULL; in mptfc_GetFcPortPage1()
935 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) in mptfc_GetFcPortPage1()
943 mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc) in mptfc_SetFcPortPage1_defaults() argument
953 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_SetFcPortPage1_defaults()
954 if (mptfc_GetFcPortPage1(ioc, ii) != 0) in mptfc_SetFcPortPage1_defaults()
956 pp1 = ioc->fc_data.fc_port_page1[ii].data; in mptfc_SetFcPortPage1_defaults()
966 mptfc_WriteFcPortPage1(ioc, ii); in mptfc_SetFcPortPage1_defaults()
972 mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum) in mptfc_init_host_attr() argument
987 pp0 = &ioc->fc_port_page0[portnum]; in mptfc_init_host_attr()
988 sh = ioc->sh; in mptfc_init_host_attr()
992 ioc->prod_name, in mptfc_init_host_attr()
994 ioc->facts.FWVersion.Word); in mptfc_init_host_attr()
1068 MPT_ADAPTER *ioc = in mptfc_link_status_change() local
1072 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) in mptfc_link_status_change()
1073 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_link_status_change()
1080 MPT_ADAPTER *ioc = in mptfc_setup_reset() local
1088 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_setup_reset()
1102 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_setup_reset()
1104 ioc->name, in mptfc_setup_reset()
1105 ioc->sh->host_no, in mptfc_setup_reset()
1114 MPT_ADAPTER *ioc = in mptfc_rescan_devices() local
1123 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1133 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_rescan_devices()
1134 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_rescan_devices()
1135 mptfc_init_host_attr(ioc, ii); /* refresh */ in mptfc_rescan_devices()
1136 mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev); in mptfc_rescan_devices()
1140 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1157 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_rescan_devices()
1159 ioc->name, in mptfc_rescan_devices()
1160 ioc->sh->host_no, in mptfc_rescan_devices()
1171 MPT_ADAPTER *ioc; in mptfc_probe() local
1183 ioc = pci_get_drvdata(pdev); in mptfc_probe()
1184 ioc->DoneCtx = mptfcDoneCtx; in mptfc_probe()
1185 ioc->TaskCtx = mptfcTaskCtx; in mptfc_probe()
1186 ioc->InternalCtx = mptfcInternalCtx; in mptfc_probe()
1190 if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) { in mptfc_probe()
1193 ioc->name); in mptfc_probe()
1198 if (!ioc->active) { in mptfc_probe()
1200 ioc->name); in mptfc_probe()
1208 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1209 if (ioc->pfacts[ii].ProtocolFlags & in mptfc_probe()
1217 ioc->name, ioc); in mptfc_probe()
1226 ioc->name); in mptfc_probe()
1231 spin_lock_init(&ioc->fc_rescan_work_lock); in mptfc_probe()
1232 INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices); in mptfc_probe()
1233 INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset); in mptfc_probe()
1234 INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change); in mptfc_probe()
1236 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptfc_probe()
1240 ioc->sh = sh; in mptfc_probe()
1249 sh->max_id = ioc->pfacts->MaxDevices; in mptfc_probe()
1254 sh->unique_id = ioc->id; in mptfc_probe()
1265 scale = ioc->req_sz/ioc->SGE_size; in mptfc_probe()
1266 if (ioc->sg_addr_size == sizeof(u64)) { in mptfc_probe()
1268 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1269 (ioc->req_sz - 60) / ioc->SGE_size; in mptfc_probe()
1272 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1273 (ioc->req_sz - 64) / ioc->SGE_size; in mptfc_probe()
1278 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_probe()
1280 ioc->name, numSGE, sh->sg_tablesize)); in mptfc_probe()
1284 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptfc_probe()
1287 hd->ioc = ioc; in mptfc_probe()
1292 ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_KERNEL); in mptfc_probe()
1293 if (!ioc->ScsiLookup) { in mptfc_probe()
1297 spin_lock_init(&ioc->scsi_lookup_lock); in mptfc_probe()
1299 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n", in mptfc_probe()
1300 ioc->name, ioc->ScsiLookup)); in mptfc_probe()
1305 error = scsi_add_host (sh, &ioc->pcidev->dev); in mptfc_probe()
1307 dprintk(ioc, printk(MYIOC_s_ERR_FMT in mptfc_probe()
1308 "scsi_add_host failed\n", ioc->name)); in mptfc_probe()
1314 snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name), in mptfc_probe()
1316 ioc->fc_rescan_work_q = in mptfc_probe()
1317 alloc_ordered_workqueue(ioc->fc_rescan_work_q_name, in mptfc_probe()
1319 if (!ioc->fc_rescan_work_q) { in mptfc_probe()
1328 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1329 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_probe()
1331 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_probe()
1338 queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work); in mptfc_probe()
1339 flush_workqueue(ioc->fc_rescan_work_q); in mptfc_probe()
1365 mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) in mptfc_event_process() argument
1372 if (ioc->bus_type != FC) in mptfc_event_process()
1375 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n", in mptfc_event_process()
1376 ioc->name, event)); in mptfc_event_process()
1378 if (ioc->sh == NULL || in mptfc_event_process()
1379 ((hd = shost_priv(ioc->sh)) == NULL)) in mptfc_event_process()
1384 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1385 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1386 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1387 &ioc->fc_rescan_work); in mptfc_event_process()
1389 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1392 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1393 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1394 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1395 &ioc->fc_lsc_work); in mptfc_event_process()
1397 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1400 rc = mptscsih_event_process(ioc,pEvReply); in mptfc_event_process()
1407 mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) in mptfc_ioc_reset() argument
1412 rc = mptscsih_ioc_reset(ioc,reset_phase); in mptfc_ioc_reset()
1413 if ((ioc->bus_type != FC) || (!rc)) in mptfc_ioc_reset()
1417 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_ioc_reset()
1418 ": IOC %s_reset routed to FC host driver!\n",ioc->name, in mptfc_ioc_reset()
1423 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1424 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1425 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1426 &ioc->fc_setup_reset_work); in mptfc_ioc_reset()
1428 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1435 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_ioc_reset()
1436 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1437 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1438 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1439 &ioc->fc_rescan_work); in mptfc_ioc_reset()
1441 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1494 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptfc_remove() local
1501 if ((work_q=ioc->fc_rescan_work_q)) { in mptfc_remove()
1502 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1503 ioc->fc_rescan_work_q = NULL; in mptfc_remove()
1504 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1508 fc_remove_host(ioc->sh); in mptfc_remove()
1510 list_for_each_entry_safe(p, n, &ioc->fc_rports, list) { in mptfc_remove()
1515 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_remove()
1516 if (ioc->fc_data.fc_port_page1[ii].data) { in mptfc_remove()
1517 pci_free_consistent(ioc->pcidev, in mptfc_remove()
1518 ioc->fc_data.fc_port_page1[ii].pg_sz, in mptfc_remove()
1519 (u8 *) ioc->fc_data.fc_port_page1[ii].data, in mptfc_remove()
1520 ioc->fc_data.fc_port_page1[ii].dma); in mptfc_remove()
1521 ioc->fc_data.fc_port_page1[ii].data = NULL; in mptfc_remove()
1525 scsi_remove_host(ioc->sh); in mptfc_remove()