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