Lines Matching refs:ioc

197 	MPT_ADAPTER 		*ioc;
201 ioc = hd->ioc;
204 || (loops > 0 && ioc->active == 0)) {
206 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
209 ioc->name, ioc->sh->host_no,
211 ready, ioc->active, caller));
219 || ioc->active == 0) {
220 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
223 ioc->name, ioc->sh->host_no,
225 ioc->active, SCpnt->device->hostdata));
228 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
230 ioc->name, ioc->sh->host_no,
291 mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, int ioc_port,
292 void(*func)(MPT_ADAPTER *ioc,int channel, FCDevicePage0_t *arg))
307 int max_bus = ioc->facts.MaxBuses;
310 max_targ = (ioc->facts.MaxDevices == 0) ? 256 : ioc->facts.MaxDevices;
335 if ((rc = mpt_config(ioc, &cfg)) != 0)
342 ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz,
351 if ((rc = mpt_config(ioc, &cfg)) == 0) {
378 pci_free_consistent(ioc->pcidev, data_sz,
393 func(ioc, ioc_port, fc);
430 mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0)
448 list_for_each_entry(ri, &ioc->fc_rports, list) {
451 list_move_tail(&ri->list, &ioc->fc_rports);
460 list_add_tail(&ri->list, &ioc->fc_rports);
469 rport = fc_remote_port_add(ioc->sh, channel, &rport_ids);
493 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
496 ioc->name,
497 ioc->sh->host_no,
571 * @ioc
577 mptfc_dump_lun_info(MPT_ADAPTER *ioc, struct fc_rport *rport, struct scsi_device *sdev,
586 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
589 ioc->name,
613 MPT_ADAPTER *ioc;
622 ioc = hd->ioc;
627 ioc->name, sizeof(VirtDevice));
636 vtarget->ioc_id = ioc->id;
646 mptfc_dump_lun_info(ioc, rport, sdev, vtarget);
687 * @ioc: Pointer to MPT_ADAPTER structure
693 mptfc_display_port_link_speed(MPT_ADAPTER *ioc, int portnum, FCPortPage0_t *pp0dest)
701 old_speed = ioc->fc_link_speed[portnum];
719 ioc->name, new);
723 ioc->name, old, new);
725 ioc->fc_link_speed[portnum] = new_speed;
731 * @ioc: Pointer to MPT_ADAPTER structure
742 mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum)
769 if ((rc = mpt_config(ioc, &cfg)) != 0)
777 ppage0_alloc = (FCPortPage0_t *) pci_alloc_consistent(ioc->pcidev, data_sz, &page0_dma);
785 if ((rc = mpt_config(ioc, &cfg)) == 0) {
787 pp0dest = &ioc->fc_port_page0[portnum];
826 ioc->name);
828 mptfc_display_port_link_speed(ioc, portnum, pp0dest);
831 pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage0_alloc, page0_dma);
838 mptfc_WriteFcPortPage1(MPT_ADAPTER *ioc, int portnum)
847 if (!(ioc->fc_data.fc_port_page1[portnum].data))
862 if ((rc = mpt_config(ioc, &cfg)) != 0)
868 if (hdr.PageLength*4 != ioc->fc_data.fc_port_page1[portnum].pg_sz)
871 cfg.physAddr = ioc->fc_data.fc_port_page1[portnum].dma;
875 rc = mpt_config(ioc, &cfg);
881 mptfc_GetFcPortPage1(MPT_ADAPTER *ioc, int portnum)
905 if ((rc = mpt_config(ioc, &cfg)) != 0)
913 if (ioc->fc_data.fc_port_page1[portnum].data == NULL) {
918 page1_alloc = (FCPortPage1_t *) pci_alloc_consistent(ioc->pcidev,
925 page1_alloc = ioc->fc_data.fc_port_page1[portnum].data;
926 page1_dma = ioc->fc_data.fc_port_page1[portnum].dma;
927 data_sz = ioc->fc_data.fc_port_page1[portnum].pg_sz;
929 ioc->fc_data.fc_port_page1[portnum].data = NULL;
930 pci_free_consistent(ioc->pcidev, data_sz, (u8 *)
941 if ((rc = mpt_config(ioc, &cfg)) == 0) {
942 ioc->fc_data.fc_port_page1[portnum].data = page1_alloc;
943 ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz;
944 ioc->fc_data.fc_port_page1[portnum].dma = page1_dma;
947 ioc->fc_data.fc_port_page1[portnum].data = NULL;
948 pci_free_consistent(ioc->pcidev, data_sz, (u8 *)
956 mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc)
966 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
967 if (mptfc_GetFcPortPage1(ioc, ii) != 0)
969 pp1 = ioc->fc_data.fc_port_page1[ii].data;
979 mptfc_WriteFcPortPage1(ioc, ii);
985 mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum)
1000 pp0 = &ioc->fc_port_page0[portnum];
1001 sh = ioc->sh;
1005 ioc->prod_name,
1007 ioc->facts.FWVersion.Word);
1081 MPT_ADAPTER *ioc =
1085 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++)
1086 (void) mptfc_GetFcPortPage0(ioc, ii);
1093 MPT_ADAPTER *ioc =
1101 list_for_each_entry(ri, &ioc->fc_rports, list) {
1115 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
1117 ioc->name,
1118 ioc->sh->host_no,
1127 MPT_ADAPTER *ioc =
1136 list_for_each_entry(ri, &ioc->fc_rports, list) {
1146 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1147 (void) mptfc_GetFcPortPage0(ioc, ii);
1148 mptfc_init_host_attr(ioc, ii); /* refresh */
1149 mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev);
1153 list_for_each_entry(ri, &ioc->fc_rports, list) {
1170 dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
1172 ioc->name,
1173 ioc->sh->host_no,
1184 MPT_ADAPTER *ioc;
1196 ioc = pci_get_drvdata(pdev);
1197 ioc->DoneCtx = mptfcDoneCtx;
1198 ioc->TaskCtx = mptfcTaskCtx;
1199 ioc->InternalCtx = mptfcInternalCtx;
1203 if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) {
1206 ioc->name);
1211 if (!ioc->active) {
1213 ioc->name);
1221 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1222 if (ioc->pfacts[ii].ProtocolFlags &
1229 "Skipping ioc=%p because SCSI Initiator mode is NOT enabled!\n",
1230 ioc->name, ioc);
1239 ioc->name);
1244 spin_lock_init(&ioc->fc_rescan_work_lock);
1245 INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices);
1246 INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset);
1247 INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change);
1249 spin_lock_irqsave(&ioc->FreeQlock, flags);
1253 ioc->sh = sh;
1262 sh->max_id = ioc->pfacts->MaxDevices;
1267 sh->unique_id = ioc->id;
1278 scale = ioc->req_sz/ioc->SGE_size;
1279 if (ioc->sg_addr_size == sizeof(u64)) {
1281 (ioc->facts.MaxChainDepth-1) + scale +
1282 (ioc->req_sz - 60) / ioc->SGE_size;
1285 (ioc->facts.MaxChainDepth-1) + scale +
1286 (ioc->req_sz - 64) / ioc->SGE_size;
1291 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
1293 ioc->name, numSGE, sh->sg_tablesize));
1297 spin_unlock_irqrestore(&ioc->FreeQlock, flags);
1300 hd->ioc = ioc;
1305 ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_ATOMIC);
1306 if (!ioc->ScsiLookup) {
1310 spin_lock_init(&ioc->scsi_lookup_lock);
1312 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n",
1313 ioc->name, ioc->ScsiLookup));
1318 error = scsi_add_host (sh, &ioc->pcidev->dev);
1320 dprintk(ioc, printk(MYIOC_s_ERR_FMT
1321 "scsi_add_host failed\n", ioc->name));
1327 snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name),
1329 ioc->fc_rescan_work_q =
1330 create_singlethread_workqueue(ioc->fc_rescan_work_q_name);
1331 if (!ioc->fc_rescan_work_q)
1338 for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
1339 (void) mptfc_GetFcPortPage0(ioc, ii);
1341 mptfc_SetFcPortPage1_defaults(ioc);
1348 queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work);
1349 flush_workqueue(ioc->fc_rescan_work_q);
1372 mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
1379 if (ioc->bus_type != FC)
1382 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
1383 ioc->name, event));
1385 if (ioc->sh == NULL ||
1386 ((hd = shost_priv(ioc->sh)) == NULL))
1391 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1392 if (ioc->fc_rescan_work_q) {
1393 queue_work(ioc->fc_rescan_work_q,
1394 &ioc->fc_rescan_work);
1396 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1399 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1400 if (ioc->fc_rescan_work_q) {
1401 queue_work(ioc->fc_rescan_work_q,
1402 &ioc->fc_lsc_work);
1404 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1407 rc = mptscsih_event_process(ioc,pEvReply);
1414 mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
1419 rc = mptscsih_ioc_reset(ioc,reset_phase);
1420 if ((ioc->bus_type != FC) || (!rc))
1424 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
1425 ": IOC %s_reset routed to FC host driver!\n",ioc->name,
1430 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1431 if (ioc->fc_rescan_work_q) {
1432 queue_work(ioc->fc_rescan_work_q,
1433 &ioc->fc_setup_reset_work);
1435 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1442 mptfc_SetFcPortPage1_defaults(ioc);
1443 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1444 if (ioc->fc_rescan_work_q) {
1445 queue_work(ioc->fc_rescan_work_q,
1446 &ioc->fc_rescan_work);
1448 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1502 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
1509 if ((work_q=ioc->fc_rescan_work_q)) {
1510 spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
1511 ioc->fc_rescan_work_q = NULL;
1512 spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
1516 fc_remove_host(ioc->sh);
1518 list_for_each_entry_safe(p, n, &ioc->fc_rports, list) {
1523 for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
1524 if (ioc->fc_data.fc_port_page1[ii].data) {
1525 pci_free_consistent(ioc->pcidev,
1526 ioc->fc_data.fc_port_page1[ii].pg_sz,
1527 (u8 *) ioc->fc_data.fc_port_page1[ii].data,
1528 ioc->fc_data.fc_port_page1[ii].dma);
1529 ioc->fc_data.fc_port_page1[ii].data = NULL;