Lines Matching defs:ioc

196 	MPT_ADAPTER 		*ioc;
200 ioc = hd->ioc;
203 || (loops > 0 && ioc->active == 0)) {
205 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
208 ioc->name, ioc->sh->host_no,
210 ready, ioc->active, caller));
218 || ioc->active == 0) {
219 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
222 ioc->name, ioc->sh->host_no,
224 ioc->active, SCpnt->device->hostdata));
227 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
229 ioc->name, ioc->sh->host_no,
283 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, int ioc_port,
284 void(*func)(MPT_ADAPTER *ioc,int channel, FCDevicePage0_t *arg))
299 int max_bus = ioc->facts.MaxBuses;
302 max_targ = (ioc->facts.MaxDevices == 0) ? 256 : ioc->facts.MaxDevices;
327 if ((rc = mpt_config(ioc, &cfg)) != 0)
334 ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
343 if ((rc = mpt_config(ioc, &cfg)) == 0) {
370 dma_free_coherent(&ioc->pcidev->dev, data_sz,
385 func(ioc, ioc_port, fc);
422 mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0)
440 list_for_each_entry(ri, &ioc->fc_rports, list) {
443 list_move_tail(&ri->list, &ioc->fc_rports);
452 list_add_tail(&ri->list, &ioc->fc_rports);
461 rport = fc_remote_port_add(ioc->sh, channel, &rport_ids);
485 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
488 ioc->name,
489 ioc->sh->host_no,
562 * @ioc
568 mptfc_dump_lun_info(MPT_ADAPTER *ioc, struct fc_rport *rport, struct scsi_device *sdev,
577 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
580 ioc->name,
604 MPT_ADAPTER *ioc;
613 ioc = hd->ioc;
618 ioc->name, sizeof(VirtDevice));
627 vtarget->ioc_id = ioc->id;
637 mptfc_dump_lun_info(ioc, rport, sdev, vtarget);
676 * @ioc: Pointer to MPT_ADAPTER structure
682 mptfc_display_port_link_speed(MPT_ADAPTER *ioc, int portnum, FCPortPage0_t *pp0dest)
690 old_speed = ioc->fc_link_speed[portnum];
708 ioc->name, new);
712 ioc->name, old, new);
714 ioc->fc_link_speed[portnum] = new_speed;
720 * @ioc: Pointer to MPT_ADAPTER structure
731 mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum)
758 if ((rc = mpt_config(ioc, &cfg)) != 0)
766 ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
775 if ((rc = mpt_config(ioc, &cfg)) == 0) {
777 pp0dest = &ioc->fc_port_page0[portnum];
816 ioc->name);
818 mptfc_display_port_link_speed(ioc, portnum, pp0dest);
821 dma_free_coherent(&ioc->pcidev->dev, data_sz, ppage0_alloc,
829 mptfc_WriteFcPortPage1(MPT_ADAPTER *ioc, int portnum)
838 if (!(ioc->fc_data.fc_port_page1[portnum].data))
853 if ((rc = mpt_config(ioc, &cfg)) != 0)
859 if (hdr.PageLength*4 != ioc->fc_data.fc_port_page1[portnum].pg_sz)
862 cfg.physAddr = ioc->fc_data.fc_port_page1[portnum].dma;
866 rc = mpt_config(ioc, &cfg);
872 mptfc_GetFcPortPage1(MPT_ADAPTER *ioc, int portnum)
896 if ((rc = mpt_config(ioc, &cfg)) != 0)
904 if (ioc->fc_data.fc_port_page1[portnum].data == NULL) {
909 page1_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
915 page1_alloc = ioc->fc_data.fc_port_page1[portnum].data;
916 page1_dma = ioc->fc_data.fc_port_page1[portnum].dma;
917 data_sz = ioc->fc_data.fc_port_page1[portnum].pg_sz;
919 ioc->fc_data.fc_port_page1[portnum].data = NULL;
920 dma_free_coherent(&ioc->pcidev->dev, data_sz,
929 if ((rc = mpt_config(ioc, &cfg)) == 0) {
930 ioc->fc_data.fc_port_page1[portnum].data = page1_alloc;
931 ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz;
932 ioc->fc_data.fc_port_page1[portnum].dma = page1_dma;
935 ioc->fc_data.fc_port_page1[portnum].data = NULL;
936 dma_free_coherent(&ioc->pcidev->dev, data_sz, page1_alloc,
944 mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc)
954 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
955 if (mptfc_GetFcPortPage1(ioc, ii) != 0)
957 pp1 = ioc->fc_data.fc_port_page1[ii].data;
967 mptfc_WriteFcPortPage1(ioc, ii);
973 mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum)
988 pp0 = &ioc->fc_port_page0[portnum];
989 sh = ioc->sh;
993 ioc->prod_name,
995 ioc->facts.FWVersion.Word);
1069 MPT_ADAPTER *ioc =
1073 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++)
1074 (void) mptfc_GetFcPortPage0(ioc, ii);
1081 MPT_ADAPTER *ioc =
1089 list_for_each_entry(ri, &ioc->fc_rports, list) {
1103 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
1105 ioc->name,
1106 ioc->sh->host_no,
1115 MPT_ADAPTER *ioc =
1124 list_for_each_entry(ri, &ioc->fc_rports, list) {
1134 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1135 (void) mptfc_GetFcPortPage0(ioc, ii);
1136 mptfc_init_host_attr(ioc, ii); /* refresh */
1137 mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev);
1141 list_for_each_entry(ri, &ioc->fc_rports, list) {
1158 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
1160 ioc->name,
1161 ioc->sh->host_no,
1172 MPT_ADAPTER *ioc;
1184 ioc = pci_get_drvdata(pdev);
1185 ioc->DoneCtx = mptfcDoneCtx;
1186 ioc->TaskCtx = mptfcTaskCtx;
1187 ioc->InternalCtx = mptfcInternalCtx;
1191 if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) {
1194 ioc->name);
1199 if (!ioc->active) {
1201 ioc->name);
1209 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1210 if (ioc->pfacts[ii].ProtocolFlags &
1217 "Skipping ioc=%p because SCSI Initiator mode is NOT enabled!\n",
1218 ioc->name, ioc);
1227 ioc->name);
1232 spin_lock_init(&ioc->fc_rescan_work_lock);
1233 INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices);
1234 INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset);
1235 INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change);
1237 spin_lock_irqsave(&ioc->FreeQlock, flags);
1241 ioc->sh = sh;
1250 sh->max_id = ioc->pfacts->MaxDevices;
1255 sh->unique_id = ioc->id;
1266 scale = ioc->req_sz/ioc->SGE_size;
1267 if (ioc->sg_addr_size == sizeof(u64)) {
1269 (ioc->facts.MaxChainDepth-1) + scale +
1270 (ioc->req_sz - 60) / ioc->SGE_size;
1273 (ioc->facts.MaxChainDepth-1) + scale +
1274 (ioc->req_sz - 64) / ioc->SGE_size;
1279 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
1281 ioc->name, numSGE, sh->sg_tablesize));
1285 spin_unlock_irqrestore(&ioc->FreeQlock, flags);
1288 hd->ioc = ioc;
1293 ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_KERNEL);
1294 if (!ioc->ScsiLookup) {
1298 spin_lock_init(&ioc->scsi_lookup_lock);
1300 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n",
1301 ioc->name, ioc->ScsiLookup));
1306 error = scsi_add_host (sh, &ioc->pcidev->dev);
1308 dprintk(ioc, printk(MYIOC_s_ERR_FMT
1309 "scsi_add_host failed\n", ioc->name));
1315 snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name),
1317 ioc->fc_rescan_work_q =
1318 alloc_ordered_workqueue(ioc->fc_rescan_work_q_name,
1320 if (!ioc->fc_rescan_work_q) {
1329 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1330 (void) mptfc_GetFcPortPage0(ioc, ii);
1332 mptfc_SetFcPortPage1_defaults(ioc);
1339 queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work);
1340 flush_workqueue(ioc->fc_rescan_work_q);
1366 mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
1373 if (ioc->bus_type != FC)
1376 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
1377 ioc->name, event));
1379 if (ioc->sh == NULL ||
1380 ((hd = shost_priv(ioc->sh)) == NULL))
1385 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1386 if (ioc->fc_rescan_work_q) {
1387 queue_work(ioc->fc_rescan_work_q,
1388 &ioc->fc_rescan_work);
1390 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1393 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1394 if (ioc->fc_rescan_work_q) {
1395 queue_work(ioc->fc_rescan_work_q,
1396 &ioc->fc_lsc_work);
1398 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1401 rc = mptscsih_event_process(ioc,pEvReply);
1408 mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
1413 rc = mptscsih_ioc_reset(ioc,reset_phase);
1414 if ((ioc->bus_type != FC) || (!rc))
1418 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
1419 ": IOC %s_reset routed to FC host driver!\n",ioc->name,
1424 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1425 if (ioc->fc_rescan_work_q) {
1426 queue_work(ioc->fc_rescan_work_q,
1427 &ioc->fc_setup_reset_work);
1429 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1436 mptfc_SetFcPortPage1_defaults(ioc);
1437 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1438 if (ioc->fc_rescan_work_q) {
1439 queue_work(ioc->fc_rescan_work_q,
1440 &ioc->fc_rescan_work);
1442 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1495 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1502 if ((work_q=ioc->fc_rescan_work_q)) {
1503 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1504 ioc->fc_rescan_work_q = NULL;
1505 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1509 fc_remove_host(ioc->sh);
1511 list_for_each_entry_safe(p, n, &ioc->fc_rports, list) {
1516 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
1517 if (ioc->fc_data.fc_port_page1[ii].data) {
1518 dma_free_coherent(&ioc->pcidev->dev,
1519 ioc->fc_data.fc_port_page1[ii].pg_sz,
1520 ioc->fc_data.fc_port_page1[ii].data,
1521 ioc->fc_data.fc_port_page1[ii].dma);
1522 ioc->fc_data.fc_port_page1[ii].data = NULL;
1526 scsi_remove_host(ioc->sh);