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 = (FCPortPage0_t *) 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 = (FCPortPage1_t *) 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()
930 if ((rc = mpt_config(ioc, &cfg)) == 0) { in mptfc_GetFcPortPage1()
931 ioc->fc_data.fc_port_page1[portnum].data = page1_alloc; in mptfc_GetFcPortPage1()
932 ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz; in mptfc_GetFcPortPage1()
933 ioc->fc_data.fc_port_page1[portnum].dma = page1_dma; in mptfc_GetFcPortPage1()
936 ioc->fc_data.fc_port_page1[portnum].data = NULL; in mptfc_GetFcPortPage1()
937 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) in mptfc_GetFcPortPage1()
945 mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc) in mptfc_SetFcPortPage1_defaults() argument
955 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_SetFcPortPage1_defaults()
956 if (mptfc_GetFcPortPage1(ioc, ii) != 0) in mptfc_SetFcPortPage1_defaults()
958 pp1 = ioc->fc_data.fc_port_page1[ii].data; in mptfc_SetFcPortPage1_defaults()
968 mptfc_WriteFcPortPage1(ioc, ii); in mptfc_SetFcPortPage1_defaults()
974 mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum) in mptfc_init_host_attr() argument
989 pp0 = &ioc->fc_port_page0[portnum]; in mptfc_init_host_attr()
990 sh = ioc->sh; in mptfc_init_host_attr()
994 ioc->prod_name, in mptfc_init_host_attr()
996 ioc->facts.FWVersion.Word); in mptfc_init_host_attr()
1070 MPT_ADAPTER *ioc = in mptfc_link_status_change() local
1074 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) in mptfc_link_status_change()
1075 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_link_status_change()
1082 MPT_ADAPTER *ioc = in mptfc_setup_reset() local
1090 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_setup_reset()
1104 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_setup_reset()
1106 ioc->name, in mptfc_setup_reset()
1107 ioc->sh->host_no, in mptfc_setup_reset()
1116 MPT_ADAPTER *ioc = in mptfc_rescan_devices() local
1125 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1135 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_rescan_devices()
1136 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_rescan_devices()
1137 mptfc_init_host_attr(ioc, ii); /* refresh */ in mptfc_rescan_devices()
1138 mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev); in mptfc_rescan_devices()
1142 list_for_each_entry(ri, &ioc->fc_rports, list) { in mptfc_rescan_devices()
1159 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_rescan_devices()
1161 ioc->name, in mptfc_rescan_devices()
1162 ioc->sh->host_no, in mptfc_rescan_devices()
1173 MPT_ADAPTER *ioc; in mptfc_probe() local
1185 ioc = pci_get_drvdata(pdev); in mptfc_probe()
1186 ioc->DoneCtx = mptfcDoneCtx; in mptfc_probe()
1187 ioc->TaskCtx = mptfcTaskCtx; in mptfc_probe()
1188 ioc->InternalCtx = mptfcInternalCtx; in mptfc_probe()
1192 if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) { in mptfc_probe()
1195 ioc->name); in mptfc_probe()
1200 if (!ioc->active) { in mptfc_probe()
1202 ioc->name); in mptfc_probe()
1210 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1211 if (ioc->pfacts[ii].ProtocolFlags & in mptfc_probe()
1219 ioc->name, ioc); in mptfc_probe()
1228 ioc->name); in mptfc_probe()
1233 spin_lock_init(&ioc->fc_rescan_work_lock); in mptfc_probe()
1234 INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices); in mptfc_probe()
1235 INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset); in mptfc_probe()
1236 INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change); in mptfc_probe()
1238 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptfc_probe()
1242 ioc->sh = sh; in mptfc_probe()
1251 sh->max_id = ioc->pfacts->MaxDevices; in mptfc_probe()
1256 sh->unique_id = ioc->id; in mptfc_probe()
1267 scale = ioc->req_sz/ioc->SGE_size; in mptfc_probe()
1268 if (ioc->sg_addr_size == sizeof(u64)) { in mptfc_probe()
1270 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1271 (ioc->req_sz - 60) / ioc->SGE_size; in mptfc_probe()
1274 (ioc->facts.MaxChainDepth-1) + scale + in mptfc_probe()
1275 (ioc->req_sz - 64) / ioc->SGE_size; in mptfc_probe()
1280 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_probe()
1282 ioc->name, numSGE, sh->sg_tablesize)); in mptfc_probe()
1286 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptfc_probe()
1289 hd->ioc = ioc; in mptfc_probe()
1294 ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_KERNEL); in mptfc_probe()
1295 if (!ioc->ScsiLookup) { in mptfc_probe()
1299 spin_lock_init(&ioc->scsi_lookup_lock); in mptfc_probe()
1301 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n", in mptfc_probe()
1302 ioc->name, ioc->ScsiLookup)); in mptfc_probe()
1307 error = scsi_add_host (sh, &ioc->pcidev->dev); in mptfc_probe()
1309 dprintk(ioc, printk(MYIOC_s_ERR_FMT in mptfc_probe()
1310 "scsi_add_host failed\n", ioc->name)); in mptfc_probe()
1316 snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name), in mptfc_probe()
1318 ioc->fc_rescan_work_q = in mptfc_probe()
1319 alloc_ordered_workqueue(ioc->fc_rescan_work_q_name, in mptfc_probe()
1321 if (!ioc->fc_rescan_work_q) { in mptfc_probe()
1330 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) { in mptfc_probe()
1331 (void) mptfc_GetFcPortPage0(ioc, ii); in mptfc_probe()
1333 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_probe()
1340 queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work); in mptfc_probe()
1341 flush_workqueue(ioc->fc_rescan_work_q); in mptfc_probe()
1367 mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) in mptfc_event_process() argument
1374 if (ioc->bus_type != FC) in mptfc_event_process()
1377 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n", in mptfc_event_process()
1378 ioc->name, event)); in mptfc_event_process()
1380 if (ioc->sh == NULL || in mptfc_event_process()
1381 ((hd = shost_priv(ioc->sh)) == NULL)) in mptfc_event_process()
1386 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1387 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1388 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1389 &ioc->fc_rescan_work); in mptfc_event_process()
1391 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1394 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1395 if (ioc->fc_rescan_work_q) { in mptfc_event_process()
1396 queue_work(ioc->fc_rescan_work_q, in mptfc_event_process()
1397 &ioc->fc_lsc_work); in mptfc_event_process()
1399 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_event_process()
1402 rc = mptscsih_event_process(ioc,pEvReply); in mptfc_event_process()
1409 mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) in mptfc_ioc_reset() argument
1414 rc = mptscsih_ioc_reset(ioc,reset_phase); in mptfc_ioc_reset()
1415 if ((ioc->bus_type != FC) || (!rc)) in mptfc_ioc_reset()
1419 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptfc_ioc_reset()
1420 ": IOC %s_reset routed to FC host driver!\n",ioc->name, in mptfc_ioc_reset()
1425 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1426 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1427 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1428 &ioc->fc_setup_reset_work); in mptfc_ioc_reset()
1430 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1437 mptfc_SetFcPortPage1_defaults(ioc); in mptfc_ioc_reset()
1438 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1439 if (ioc->fc_rescan_work_q) { in mptfc_ioc_reset()
1440 queue_work(ioc->fc_rescan_work_q, in mptfc_ioc_reset()
1441 &ioc->fc_rescan_work); in mptfc_ioc_reset()
1443 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_ioc_reset()
1496 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptfc_remove() local
1503 if ((work_q=ioc->fc_rescan_work_q)) { in mptfc_remove()
1504 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1505 ioc->fc_rescan_work_q = NULL; in mptfc_remove()
1506 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags); in mptfc_remove()
1510 fc_remove_host(ioc->sh); in mptfc_remove()
1512 list_for_each_entry_safe(p, n, &ioc->fc_rports, list) { in mptfc_remove()
1517 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) { in mptfc_remove()
1518 if (ioc->fc_data.fc_port_page1[ii].data) { in mptfc_remove()
1519 pci_free_consistent(ioc->pcidev, in mptfc_remove()
1520 ioc->fc_data.fc_port_page1[ii].pg_sz, in mptfc_remove()
1521 (u8 *) ioc->fc_data.fc_port_page1[ii].data, in mptfc_remove()
1522 ioc->fc_data.fc_port_page1[ii].dma); in mptfc_remove()
1523 ioc->fc_data.fc_port_page1[ii].data = NULL; in mptfc_remove()
1527 scsi_remove_host(ioc->sh); in mptfc_remove()