Lines Matching defs:starget

397 static int mptspi_target_alloc(struct scsi_target *starget)
399 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
414 vtarget->id = (u8)starget->id;
415 vtarget->channel = (u8)starget->channel;
416 vtarget->starget = starget;
417 starget->hostdata = vtarget;
419 if (starget->channel == 1) {
420 if (mptscsih_is_phys_disk(ioc, 0, starget->id) == 0)
427 starget->id);
430 if (starget->channel == 0 &&
431 mptspi_is_raid(hd, starget->id)) {
434 "RAID Volume @ channel=%d id=%d\n", ioc->name, starget->channel,
435 starget->id));
439 ioc->spi_data.nvram[starget->id] != MPT_HOST_NVRAM_INVALID) {
440 u32 nvram = ioc->spi_data.nvram[starget->id];
441 spi_min_period(starget) = (nvram & MPT_NVRAM_SYNC_MASK) >> MPT_NVRAM_SYNC_SHIFT;
442 spi_max_width(starget) = nvram & MPT_NVRAM_WIDE_DISABLE ? 0 : 1;
444 spi_min_period(starget) = ioc->spi_data.minSyncFactor;
445 spi_max_width(starget) = ioc->spi_data.maxBusWidth;
447 spi_max_offset(starget) = ioc->spi_data.maxSyncOffset;
449 spi_offset(starget) = 0;
450 spi_period(starget) = 0xFF;
451 mptspi_write_width(starget, 0);
457 mptspi_target_destroy(struct scsi_target *starget)
459 kfree(starget->hostdata);
460 starget->hostdata = NULL;
466 * @starget: SCSI target
471 mptspi_print_write_nego(struct _MPT_SCSI_HOST *hd, struct scsi_target *starget, u32 ii)
475 hd->ioc->name, starget->id, ii,
491 * @starget: SCSI target
496 mptspi_print_read_nego(struct _MPT_SCSI_HOST *hd, struct scsi_target *starget, u32 ii)
500 hd->ioc->name, starget->id, ii,
513 static int mptspi_read_spi_device_pg0(struct scsi_target *starget,
516 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
527 if (starget->channel == 0 &&
528 mptspi_is_raid(hd, starget->id))
540 starget_printk(KERN_ERR, starget, MYIOC_s_FMT
558 cfg.pageAddr = starget->id;
562 starget_printk(KERN_ERR, starget, MYIOC_s_FMT "mpt_config failed\n", ioc->name);
568 mptspi_print_read_nego(hd, starget, le32_to_cpu(spi_dev_pg0->NegotiatedParameters));
575 static u32 mptspi_getRP(struct scsi_target *starget)
579 nego |= spi_iu(starget) ? MPI_SCSIDEVPAGE1_RP_IU : 0;
580 nego |= spi_dt(starget) ? MPI_SCSIDEVPAGE1_RP_DT : 0;
581 nego |= spi_qas(starget) ? MPI_SCSIDEVPAGE1_RP_QAS : 0;
582 nego |= spi_hold_mcs(starget) ? MPI_SCSIDEVPAGE1_RP_HOLD_MCS : 0;
583 nego |= spi_wr_flow(starget) ? MPI_SCSIDEVPAGE1_RP_WR_FLOW : 0;
584 nego |= spi_rd_strm(starget) ? MPI_SCSIDEVPAGE1_RP_RD_STRM : 0;
585 nego |= spi_rti(starget) ? MPI_SCSIDEVPAGE1_RP_RTI : 0;
586 nego |= spi_pcomp_en(starget) ? MPI_SCSIDEVPAGE1_RP_PCOMP_EN : 0;
588 nego |= (spi_period(starget) << MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD) & MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK;
589 nego |= (spi_offset(starget) << MPI_SCSIDEVPAGE1_RP_SHIFT_MAX_SYNC_OFFSET) & MPI_SCSIDEVPAGE1_RP_MAX_SYNC_OFFSET_MASK;
590 nego |= spi_width(starget) ? MPI_SCSIDEVPAGE1_RP_WIDE : 0;
595 static void mptspi_read_parameters(struct scsi_target *starget)
600 mptspi_read_spi_device_pg0(starget, &spi_dev_pg0);
604 spi_iu(starget) = (nego & MPI_SCSIDEVPAGE0_NP_IU) ? 1 : 0;
605 spi_dt(starget) = (nego & MPI_SCSIDEVPAGE0_NP_DT) ? 1 : 0;
606 spi_qas(starget) = (nego & MPI_SCSIDEVPAGE0_NP_QAS) ? 1 : 0;
607 spi_wr_flow(starget) = (nego & MPI_SCSIDEVPAGE0_NP_WR_FLOW) ? 1 : 0;
608 spi_rd_strm(starget) = (nego & MPI_SCSIDEVPAGE0_NP_RD_STRM) ? 1 : 0;
609 spi_rti(starget) = (nego & MPI_SCSIDEVPAGE0_NP_RTI) ? 1 : 0;
610 spi_pcomp_en(starget) = (nego & MPI_SCSIDEVPAGE0_NP_PCOMP_EN) ? 1 : 0;
611 spi_hold_mcs(starget) = (nego & MPI_SCSIDEVPAGE0_NP_HOLD_MCS) ? 1 : 0;
612 spi_period(starget) = (nego & MPI_SCSIDEVPAGE0_NP_NEG_SYNC_PERIOD_MASK) >> MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_PERIOD;
613 spi_offset(starget) = (nego & MPI_SCSIDEVPAGE0_NP_NEG_SYNC_OFFSET_MASK) >> MPI_SCSIDEVPAGE0_NP_SHIFT_SYNC_OFFSET;
614 spi_width(starget) = (nego & MPI_SCSIDEVPAGE0_NP_WIDE) ? 1 : 0;
721 struct scsi_target *starget;
738 starget = scsi_target(sdev);
739 vtarget = starget->hostdata;
804 struct scsi_target *starget = scsi_target(sdev);
805 VirtTarget *vtarget = starget->hostdata;
817 mptspi_write_spi_device_pg1(starget, &pg1);
849 static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
852 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
867 if (starget->channel == 0 &&
868 mptspi_is_raid(hd, starget->id))
875 starget_printk(KERN_ERR, starget, MYIOC_s_FMT
893 cfg.pageAddr = starget->id;
908 sdev = scsi_device_lookup_by_target(starget, i);
920 mptspi_print_write_nego(hd, starget, le32_to_cpu(pg1->RequestedParameters));
923 starget_printk(KERN_ERR, starget, MYIOC_s_FMT
934 static void mptspi_write_offset(struct scsi_target *starget, int offset)
945 if (spi_offset(starget) == -1)
946 mptspi_read_parameters(starget);
948 spi_offset(starget) = offset;
950 nego = mptspi_getRP(starget);
956 mptspi_write_spi_device_pg1(starget, &pg1);
959 static void mptspi_write_period(struct scsi_target *starget, int period)
970 if (spi_period(starget) == -1)
971 mptspi_read_parameters(starget);
974 spi_iu(starget) = 1;
975 spi_dt(starget) = 1;
977 spi_dt(starget) = 1;
980 spi_period(starget) = period;
982 nego = mptspi_getRP(starget);
988 mptspi_write_spi_device_pg1(starget, &pg1);
991 static void mptspi_write_dt(struct scsi_target *starget, int dt)
996 if (spi_period(starget) == -1)
997 mptspi_read_parameters(starget);
999 if (!dt && spi_period(starget) < 10)
1000 spi_period(starget) = 10;
1002 spi_dt(starget) = dt;
1004 nego = mptspi_getRP(starget);
1011 mptspi_write_spi_device_pg1(starget, &pg1);
1014 static void mptspi_write_iu(struct scsi_target *starget, int iu)
1019 if (spi_period(starget) == -1)
1020 mptspi_read_parameters(starget);
1022 if (!iu && spi_period(starget) < 9)
1023 spi_period(starget) = 9;
1025 spi_iu(starget) = iu;
1027 nego = mptspi_getRP(starget);
1033 mptspi_write_spi_device_pg1(starget, &pg1);
1037 static void mptspi_write_##parm(struct scsi_target *starget, int parm)\
1042 spi_##parm(starget) = parm; \
1044 nego = mptspi_getRP(starget); \
1050 mptspi_write_spi_device_pg1(starget, &pg1); \
1059 static void mptspi_write_qas(struct scsi_target *starget, int qas)
1062 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
1064 VirtTarget *vtarget = starget->hostdata;
1069 spi_qas(starget) = 0;
1071 spi_qas(starget) = qas;
1073 nego = mptspi_getRP(starget);
1079 mptspi_write_spi_device_pg1(starget, &pg1);
1082 static void mptspi_write_width(struct scsi_target *starget, int width)
1088 spi_dt(starget) = 0;
1089 if (spi_period(starget) < 10)
1090 spi_period(starget) = 10;
1093 spi_width(starget) = width;
1095 nego = mptspi_getRP(starget);
1101 mptspi_write_spi_device_pg1(starget, &pg1);
1129 struct scsi_target *starget = scsi_target(sdev);
1130 VirtTarget *vtarget = starget->hostdata;
1137 * starget->id is the actual target address */
1141 starget_printk(KERN_INFO, vtarget->starget, MYIOC_s_FMT
1191 mptspi_deny_binding(struct scsi_target *starget)
1194 (struct _MPT_SCSI_HOST *)dev_to_shost(starget->dev.parent)->hostdata;
1195 return ((mptspi_is_raid(hd, starget->id)) &&
1196 starget->channel == 0) ? 1 : 0;
1262 struct scsi_target *starget;
1273 starget = scsi_target(sdev);
1274 nego = mptspi_getRP(starget);
1278 mptspi_write_spi_device_pg1(starget, &pg1);