Lines Matching refs:starget
402 static int mptspi_target_alloc(struct scsi_target *starget) in mptspi_target_alloc() argument
404 struct Scsi_Host *shost = dev_to_shost(&starget->dev); in mptspi_target_alloc()
419 vtarget->id = (u8)starget->id; in mptspi_target_alloc()
420 vtarget->channel = (u8)starget->channel; in mptspi_target_alloc()
421 vtarget->starget = starget; in mptspi_target_alloc()
422 starget->hostdata = vtarget; in mptspi_target_alloc()
424 if (starget->channel == 1) { in mptspi_target_alloc()
425 if (mptscsih_is_phys_disk(ioc, 0, starget->id) == 0) in mptspi_target_alloc()
432 starget->id); in mptspi_target_alloc()
435 if (starget->channel == 0 && in mptspi_target_alloc()
436 mptspi_is_raid(hd, starget->id)) { in mptspi_target_alloc()
439 "RAID Volume @ channel=%d id=%d\n", ioc->name, starget->channel, in mptspi_target_alloc()
440 starget->id)); in mptspi_target_alloc()
444 ioc->spi_data.nvram[starget->id] != MPT_HOST_NVRAM_INVALID) { in mptspi_target_alloc()
445 u32 nvram = ioc->spi_data.nvram[starget->id]; in mptspi_target_alloc()
446 spi_min_period(starget) = (nvram & MPT_NVRAM_SYNC_MASK) >> MPT_NVRAM_SYNC_SHIFT; in mptspi_target_alloc()
447 spi_max_width(starget) = nvram & MPT_NVRAM_WIDE_DISABLE ? 0 : 1; in mptspi_target_alloc()
449 spi_min_period(starget) = ioc->spi_data.minSyncFactor; in mptspi_target_alloc()
450 spi_max_width(starget) = ioc->spi_data.maxBusWidth; in mptspi_target_alloc()
452 spi_max_offset(starget) = ioc->spi_data.maxSyncOffset; in mptspi_target_alloc()
454 spi_offset(starget) = 0; in mptspi_target_alloc()
455 spi_period(starget) = 0xFF; in mptspi_target_alloc()
456 mptspi_write_width(starget, 0); in mptspi_target_alloc()
462 mptspi_target_destroy(struct scsi_target *starget) in mptspi_target_destroy() argument
464 kfree(starget->hostdata); in mptspi_target_destroy()
465 starget->hostdata = NULL; in mptspi_target_destroy()
476 mptspi_print_write_nego(struct _MPT_SCSI_HOST *hd, struct scsi_target *starget, u32 ii) in mptspi_print_write_nego() argument
480 hd->ioc->name, starget->id, ii, in mptspi_print_write_nego()
501 mptspi_print_read_nego(struct _MPT_SCSI_HOST *hd, struct scsi_target *starget, u32 ii) in mptspi_print_read_nego() argument
505 hd->ioc->name, starget->id, ii, in mptspi_print_read_nego()
518 static int mptspi_read_spi_device_pg0(struct scsi_target *starget, in mptspi_read_spi_device_pg0() argument
521 struct Scsi_Host *shost = dev_to_shost(&starget->dev); in mptspi_read_spi_device_pg0()
532 if (starget->channel == 0 && in mptspi_read_spi_device_pg0()
533 mptspi_is_raid(hd, starget->id)) in mptspi_read_spi_device_pg0()
545 starget_printk(KERN_ERR, starget, MYIOC_s_FMT in mptspi_read_spi_device_pg0()
563 cfg.pageAddr = starget->id; in mptspi_read_spi_device_pg0()
567 starget_printk(KERN_ERR, starget, MYIOC_s_FMT "mpt_config failed\n", ioc->name); in mptspi_read_spi_device_pg0()
573 mptspi_print_read_nego(hd, starget, le32_to_cpu(spi_dev_pg0->NegotiatedParameters)); in mptspi_read_spi_device_pg0()
580 static u32 mptspi_getRP(struct scsi_target *starget) in mptspi_getRP() argument
584 nego |= spi_iu(starget) ? MPI_SCSIDEVPAGE1_RP_IU : 0; in mptspi_getRP()
585 nego |= spi_dt(starget) ? MPI_SCSIDEVPAGE1_RP_DT : 0; in mptspi_getRP()
586 nego |= spi_qas(starget) ? MPI_SCSIDEVPAGE1_RP_QAS : 0; in mptspi_getRP()
587 nego |= spi_hold_mcs(starget) ? MPI_SCSIDEVPAGE1_RP_HOLD_MCS : 0; in mptspi_getRP()
588 nego |= spi_wr_flow(starget) ? MPI_SCSIDEVPAGE1_RP_WR_FLOW : 0; in mptspi_getRP()
589 nego |= spi_rd_strm(starget) ? MPI_SCSIDEVPAGE1_RP_RD_STRM : 0; in mptspi_getRP()
590 nego |= spi_rti(starget) ? MPI_SCSIDEVPAGE1_RP_RTI : 0; in mptspi_getRP()
591 nego |= spi_pcomp_en(starget) ? MPI_SCSIDEVPAGE1_RP_PCOMP_EN : 0; in mptspi_getRP()
593 …nego |= (spi_period(starget) << MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD) & MPI_SCSIDEVPAGE1_RP_… in mptspi_getRP()
594 …nego |= (spi_offset(starget) << MPI_SCSIDEVPAGE1_RP_SHIFT_MAX_SYNC_OFFSET) & MPI_SCSIDEVPAGE1_RP_M… in mptspi_getRP()
595 nego |= spi_width(starget) ? MPI_SCSIDEVPAGE1_RP_WIDE : 0; in mptspi_getRP()
600 static void mptspi_read_parameters(struct scsi_target *starget) in mptspi_read_parameters() argument
605 mptspi_read_spi_device_pg0(starget, &spi_dev_pg0); in mptspi_read_parameters()
609 spi_iu(starget) = (nego & MPI_SCSIDEVPAGE0_NP_IU) ? 1 : 0; in mptspi_read_parameters()
610 spi_dt(starget) = (nego & MPI_SCSIDEVPAGE0_NP_DT) ? 1 : 0; in mptspi_read_parameters()
611 spi_qas(starget) = (nego & MPI_SCSIDEVPAGE0_NP_QAS) ? 1 : 0; in mptspi_read_parameters()
612 spi_wr_flow(starget) = (nego & MPI_SCSIDEVPAGE0_NP_WR_FLOW) ? 1 : 0; in mptspi_read_parameters()
613 spi_rd_strm(starget) = (nego & MPI_SCSIDEVPAGE0_NP_RD_STRM) ? 1 : 0; in mptspi_read_parameters()
614 spi_rti(starget) = (nego & MPI_SCSIDEVPAGE0_NP_RTI) ? 1 : 0; in mptspi_read_parameters()
615 spi_pcomp_en(starget) = (nego & MPI_SCSIDEVPAGE0_NP_PCOMP_EN) ? 1 : 0; in mptspi_read_parameters()
616 spi_hold_mcs(starget) = (nego & MPI_SCSIDEVPAGE0_NP_HOLD_MCS) ? 1 : 0; in mptspi_read_parameters()
617 …spi_period(starget) = (nego & MPI_SCSIDEVPAGE0_NP_NEG_SYNC_PERIOD_MASK) >> MPI_SCSIDEVPAGE0_NP_SHI… in mptspi_read_parameters()
618 …spi_offset(starget) = (nego & MPI_SCSIDEVPAGE0_NP_NEG_SYNC_OFFSET_MASK) >> MPI_SCSIDEVPAGE0_NP_SHI… in mptspi_read_parameters()
619 spi_width(starget) = (nego & MPI_SCSIDEVPAGE0_NP_WIDE) ? 1 : 0; in mptspi_read_parameters()
726 struct scsi_target *starget; in mptspi_slave_alloc() local
743 starget = scsi_target(sdev); in mptspi_slave_alloc()
744 vtarget = starget->hostdata; in mptspi_slave_alloc()
809 struct scsi_target *starget = scsi_target(sdev); in mptspi_slave_destroy() local
810 VirtTarget *vtarget = starget->hostdata; in mptspi_slave_destroy()
822 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_slave_destroy()
855 static int mptspi_write_spi_device_pg1(struct scsi_target *starget, in mptspi_write_spi_device_pg1() argument
858 struct Scsi_Host *shost = dev_to_shost(&starget->dev); in mptspi_write_spi_device_pg1()
873 if (starget->channel == 0 && in mptspi_write_spi_device_pg1()
874 mptspi_is_raid(hd, starget->id)) in mptspi_write_spi_device_pg1()
881 starget_printk(KERN_ERR, starget, MYIOC_s_FMT in mptspi_write_spi_device_pg1()
899 cfg.pageAddr = starget->id; in mptspi_write_spi_device_pg1()
914 sdev = scsi_device_lookup_by_target(starget, i); in mptspi_write_spi_device_pg1()
926 mptspi_print_write_nego(hd, starget, le32_to_cpu(pg1->RequestedParameters)); in mptspi_write_spi_device_pg1()
929 starget_printk(KERN_ERR, starget, MYIOC_s_FMT in mptspi_write_spi_device_pg1()
940 static void mptspi_write_offset(struct scsi_target *starget, int offset) in mptspi_write_offset() argument
951 if (spi_offset(starget) == -1) in mptspi_write_offset()
952 mptspi_read_parameters(starget); in mptspi_write_offset()
954 spi_offset(starget) = offset; in mptspi_write_offset()
956 nego = mptspi_getRP(starget); in mptspi_write_offset()
962 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_write_offset()
965 static void mptspi_write_period(struct scsi_target *starget, int period) in mptspi_write_period() argument
976 if (spi_period(starget) == -1) in mptspi_write_period()
977 mptspi_read_parameters(starget); in mptspi_write_period()
980 spi_iu(starget) = 1; in mptspi_write_period()
981 spi_dt(starget) = 1; in mptspi_write_period()
983 spi_dt(starget) = 1; in mptspi_write_period()
986 spi_period(starget) = period; in mptspi_write_period()
988 nego = mptspi_getRP(starget); in mptspi_write_period()
994 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_write_period()
997 static void mptspi_write_dt(struct scsi_target *starget, int dt) in mptspi_write_dt() argument
1002 if (spi_period(starget) == -1) in mptspi_write_dt()
1003 mptspi_read_parameters(starget); in mptspi_write_dt()
1005 if (!dt && spi_period(starget) < 10) in mptspi_write_dt()
1006 spi_period(starget) = 10; in mptspi_write_dt()
1008 spi_dt(starget) = dt; in mptspi_write_dt()
1010 nego = mptspi_getRP(starget); in mptspi_write_dt()
1017 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_write_dt()
1020 static void mptspi_write_iu(struct scsi_target *starget, int iu) in mptspi_write_iu() argument
1025 if (spi_period(starget) == -1) in mptspi_write_iu()
1026 mptspi_read_parameters(starget); in mptspi_write_iu()
1028 if (!iu && spi_period(starget) < 9) in mptspi_write_iu()
1029 spi_period(starget) = 9; in mptspi_write_iu()
1031 spi_iu(starget) = iu; in mptspi_write_iu()
1033 nego = mptspi_getRP(starget); in mptspi_write_iu()
1039 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_write_iu()
1043 static void mptspi_write_##parm(struct scsi_target *starget, int parm)\
1048 spi_##parm(starget) = parm; \
1050 nego = mptspi_getRP(starget); \
1056 mptspi_write_spi_device_pg1(starget, &pg1); \
1065 static void mptspi_write_qas(struct scsi_target *starget, int qas) in MPTSPI_SIMPLE_TRANSPORT_PARM()
1068 struct Scsi_Host *shost = dev_to_shost(&starget->dev); in MPTSPI_SIMPLE_TRANSPORT_PARM()
1070 VirtTarget *vtarget = starget->hostdata; in MPTSPI_SIMPLE_TRANSPORT_PARM()
1075 spi_qas(starget) = 0; in MPTSPI_SIMPLE_TRANSPORT_PARM()
1077 spi_qas(starget) = qas; in MPTSPI_SIMPLE_TRANSPORT_PARM()
1079 nego = mptspi_getRP(starget); in MPTSPI_SIMPLE_TRANSPORT_PARM()
1085 mptspi_write_spi_device_pg1(starget, &pg1); in MPTSPI_SIMPLE_TRANSPORT_PARM()
1088 static void mptspi_write_width(struct scsi_target *starget, int width) in mptspi_write_width() argument
1094 spi_dt(starget) = 0; in mptspi_write_width()
1095 if (spi_period(starget) < 10) in mptspi_write_width()
1096 spi_period(starget) = 10; in mptspi_write_width()
1099 spi_width(starget) = width; in mptspi_write_width()
1101 nego = mptspi_getRP(starget); in mptspi_write_width()
1107 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_write_width()
1135 struct scsi_target *starget = scsi_target(sdev); in mpt_work_wrapper() local
1136 VirtTarget *vtarget = starget->hostdata; in mpt_work_wrapper()
1147 starget_printk(KERN_INFO, vtarget->starget, MYIOC_s_FMT in mpt_work_wrapper()
1197 mptspi_deny_binding(struct scsi_target *starget) in mptspi_deny_binding() argument
1200 (struct _MPT_SCSI_HOST *)dev_to_shost(starget->dev.parent)->hostdata; in mptspi_deny_binding()
1201 return ((mptspi_is_raid(hd, starget->id)) && in mptspi_deny_binding()
1202 starget->channel == 0) ? 1 : 0; in mptspi_deny_binding()
1268 struct scsi_target *starget; in mptspi_dv_renegotiate_work() local
1279 starget = scsi_target(sdev); in mptspi_dv_renegotiate_work()
1280 nego = mptspi_getRP(starget); in mptspi_dv_renegotiate_work()
1284 mptspi_write_spi_device_pg1(starget, &pg1); in mptspi_dv_renegotiate_work()