Lines Matching refs:sas_device

71 	struct _sas_device *sas_device);
552 * @device: sas_device or pcie_device object
566 struct _sas_device *sas_device;
595 sas_device = device;
596 sas_address = sas_device->sas_address;
597 device_name = sas_device->device_name;
598 enclosure_logical_id = sas_device->enclosure_logical_id;
599 slot = sas_device->slot;
720 * before returning the sas_device object.
722 * This searches for sas_device from rphy object
723 * then return sas_device object.
729 struct _sas_device *sas_device;
733 list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
734 if (sas_device->rphy != rphy)
736 sas_device_get(sas_device);
737 return sas_device;
740 sas_device = NULL;
741 list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
742 if (sas_device->rphy != rphy)
744 sas_device_get(sas_device);
745 return sas_device;
765 struct _sas_device *sas_device;
772 list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
773 if (sas_device->sas_address != sas_address)
775 if (sas_device->port != port)
777 sas_device_get(sas_device);
778 return sas_device;
781 list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
782 if (sas_device->sas_address != sas_address)
784 if (sas_device->port != port)
786 sas_device_get(sas_device);
787 return sas_device;
800 * This searches for sas_device based on sas_address & port number,
801 * then return sas_device object.
807 struct _sas_device *sas_device;
811 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
815 return sas_device;
821 struct _sas_device *sas_device;
825 list_for_each_entry(sas_device, &ioc->sas_device_list, list)
826 if (sas_device->handle == handle)
829 list_for_each_entry(sas_device, &ioc->sas_device_init_list, list)
830 if (sas_device->handle == handle)
836 sas_device_get(sas_device);
837 return sas_device;
846 * This searches for sas_device based on sas_address, then return sas_device
852 struct _sas_device *sas_device;
856 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
859 return sas_device;
865 * @sas_device: per sas device object
871 struct _sas_device *sas_device, struct scsi_device *sdev,
875 if (sas_device->enclosure_handle != 0)
879 sas_device->enclosure_logical_id,
880 sas_device->slot);
881 if (sas_device->connector_name[0] != '\0')
884 sas_device->enclosure_level,
885 sas_device->connector_name);
886 if (sas_device->is_chassis_slot_valid)
888 sas_device->chassis_slot);
890 if (sas_device->enclosure_handle != 0)
894 sas_device->enclosure_logical_id,
895 sas_device->slot);
896 if (sas_device->connector_name[0] != '\0')
899 sas_device->enclosure_level,
900 sas_device->connector_name);
901 if (sas_device->is_chassis_slot_valid)
904 sas_device->chassis_slot);
906 if (sas_device->enclosure_handle != 0)
908 (u64)sas_device->enclosure_logical_id,
909 sas_device->slot);
910 if (sas_device->connector_name[0] != '\0')
912 sas_device->enclosure_level,
913 sas_device->connector_name);
914 if (sas_device->is_chassis_slot_valid)
916 sas_device->chassis_slot);
921 * _scsih_sas_device_remove - remove sas_device from list.
923 * @sas_device: the sas_device object
926 * If sas_device is on the list, remove it and decrement its reference count.
930 struct _sas_device *sas_device)
934 if (!sas_device)
937 sas_device->handle, (u64)sas_device->sas_address);
939 _scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
946 if (!list_empty(&sas_device->list)) {
947 list_del_init(&sas_device->list);
948 sas_device_put(sas_device);
961 struct _sas_device *sas_device;
968 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
969 if (sas_device) {
970 list_del_init(&sas_device->list);
971 sas_device_put(sas_device);
974 if (sas_device) {
975 _scsih_remove_device(ioc, sas_device);
976 sas_device_put(sas_device);
993 struct _sas_device *sas_device;
1000 sas_device = __mpt3sas_get_sdev_by_addr(ioc, sas_address, port);
1001 if (sas_device) {
1002 list_del_init(&sas_device->list);
1003 sas_device_put(sas_device);
1006 if (sas_device) {
1007 _scsih_remove_device(ioc, sas_device);
1008 sas_device_put(sas_device);
1013 * _scsih_sas_device_add - insert sas_device to the list.
1015 * @sas_device: the sas_device object
1022 struct _sas_device *sas_device)
1028 __func__, sas_device->handle,
1029 (u64)sas_device->sas_address));
1031 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
1035 sas_device_get(sas_device);
1036 list_add_tail(&sas_device->list, &ioc->sas_device_list);
1040 clear_bit(sas_device->handle, ioc->pend_os_device_add);
1044 if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
1045 sas_device->sas_address_parent, sas_device->port)) {
1046 _scsih_sas_device_remove(ioc, sas_device);
1047 } else if (!sas_device->starget) {
1055 sas_device->sas_address,
1056 sas_device->sas_address_parent,
1057 sas_device->port);
1058 _scsih_sas_device_remove(ioc, sas_device);
1061 clear_bit(sas_device->handle, ioc->pend_os_device_add);
1065 * _scsih_sas_device_init_add - insert sas_device to the list.
1067 * @sas_device: the sas_device object
1074 struct _sas_device *sas_device)
1080 __func__, sas_device->handle,
1081 (u64)sas_device->sas_address));
1083 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
1087 sas_device_get(sas_device);
1088 list_add_tail(&sas_device->list, &ioc->sas_device_init_list);
1089 _scsih_determine_boot_device(ioc, sas_device, 0);
1624 * @sas_expander: the sas_device object
1796 struct _sas_device *sas_device;
1818 sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
1819 if (sas_device) {
1820 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_SATA_DEVICE)
1823 sas_device_put(sas_device);
1873 struct _sas_device *sas_device;
1931 sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
1933 if (sas_device) {
1934 sas_target_priv_data->handle = sas_device->handle;
1935 sas_target_priv_data->sas_address = sas_device->sas_address;
1936 sas_target_priv_data->port = sas_device->port;
1937 sas_target_priv_data->sas_dev = sas_device;
1938 sas_device->starget = starget;
1939 sas_device->id = starget->id;
1940 sas_device->channel = starget->channel;
1941 if (test_bit(sas_device->handle, ioc->pd_handles))
1944 if (sas_device->fast_path)
1963 struct _sas_device *sas_device;
2006 sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
2007 if (sas_device && (sas_device->starget == starget) &&
2008 (sas_device->id == starget->id) &&
2009 (sas_device->channel == starget->channel))
2010 sas_device->starget = NULL;
2012 if (sas_device) {
2017 sas_device_put(sas_device);
2019 sas_device_put(sas_device);
2044 struct _sas_device *sas_device;
2091 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
2094 if (sas_device && (sas_device->starget == NULL)) {
2096 "%s : sas_device->starget set to starget @ %d\n",
2098 sas_device->starget = starget;
2101 if (sas_device)
2102 sas_device_put(sas_device);
2121 struct _sas_device *sas_device;
2149 sas_device = __mpt3sas_get_sdev_from_target(ioc,
2151 if (sas_device && !sas_target_priv_data->num_luns)
2152 sas_device->starget = NULL;
2154 if (sas_device)
2155 sas_device_put(sas_device);
2514 struct _sas_device *sas_device;
2697 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
2700 if (!sas_device) {
2708 sas_device->volume_handle = volume_handle;
2709 sas_device->volume_wwid = volume_wwid;
2710 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_SSP_TARGET) {
2711 qdepth = (sas_device->port_type > 1) ?
2714 if (sas_device->device_info &
2725 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_STP_TARGET)
2727 else if (sas_device->device_info &
2734 ds, handle, (unsigned long long)sas_device->sas_address,
2735 sas_device->phy, (unsigned long long)sas_device->device_name);
2737 _scsih_display_enclosure_chassis_info(NULL, sas_device, sdev, NULL);
2739 sas_device_put(sas_device);
3217 struct _sas_device *sas_device = NULL;
3262 sas_device = __mpt3sas_get_sdev_from_target(ioc, priv_target);
3263 if (sas_device) {
3269 sas_device->volume_handle,
3270 (unsigned long long)sas_device->volume_wwid);
3274 sas_device->handle,
3275 (unsigned long long)sas_device->sas_address,
3276 sas_device->phy);
3278 _scsih_display_enclosure_chassis_info(NULL, sas_device,
3281 sas_device_put(sas_device);
3372 struct _sas_device *sas_device = NULL;
3401 sas_device = mpt3sas_get_sdev_from_target(ioc,
3403 if (sas_device)
3404 handle = sas_device->volume_handle;
3434 if (sas_device)
3435 sas_device_put(sas_device);
3453 struct _sas_device *sas_device = NULL;
3481 sas_device = mpt3sas_get_sdev_from_target(ioc,
3483 if (sas_device)
3484 handle = sas_device->volume_handle;
3513 if (sas_device)
3514 sas_device_put(sas_device);
3924 struct _sas_device *sas_device;
3926 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
3936 if (sas_device && sas_device->pend_sas_rphy_add)
3947 if (sas_device)
3948 sas_device_put(sas_device);
3954 * @sas_expander: the sas_device object
3965 struct _sas_device *sas_device;
3977 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
3980 if (sas_device) {
3981 set_bit(sas_device->handle,
3983 sas_device_put(sas_device);
4080 struct _sas_device *sas_device = NULL;
4111 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
4112 if (sas_device && sas_device->starget &&
4113 sas_device->starget->hostdata) {
4114 sas_target_priv_data = sas_device->starget->hostdata;
4116 sas_address = sas_device->sas_address;
4117 port = sas_device->port;
4120 if (!sas_device) {
4142 if (sas_device) {
4143 if (sas_device->enclosure_handle != 0)
4146 (u64)sas_device->enclosure_logical_id,
4147 sas_device->slot));
4148 if (sas_device->connector_name[0] != '\0')
4151 sas_device->enclosure_level,
4152 sas_device->connector_name));
4197 if (sas_device)
4198 sas_device_put(sas_device);
5333 struct _sas_device *sas_device = NULL;
5483 sas_device = mpt3sas_get_sdev_from_target(ioc, priv_target);
5484 if (sas_device) {
5486 (u64)sas_device->sas_address, sas_device->phy);
5488 _scsih_display_enclosure_chassis_info(ioc, sas_device,
5491 sas_device_put(sas_device);
5531 struct _sas_device *sas_device;
5533 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
5534 if (!sas_device)
5550 sas_device->pfa_led_on = 1;
5560 sas_device_put(sas_device);
5566 * @sas_device: sas device whose PFA LED has to turned off
5571 struct _sas_device *sas_device)
5580 mpi_request.Slot = cpu_to_le16(sas_device->slot);
5582 mpi_request.EnclosureHandle = cpu_to_le16(sas_device->enclosure_handle);
5634 struct _sas_device *sas_device;
5640 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
5641 if (!sas_device)
5644 starget = sas_device->starget;
5651 _scsih_display_enclosure_chassis_info(NULL, sas_device, NULL, starget);
5683 if (sas_device)
5684 sas_device_put(sas_device);
5951 struct _sas_device *sas_device;
6095 sas_device = mpt3sas_get_sdev_by_addr(
6097 if (sas_device)
6098 sas_device->port = mport;
7190 struct _sas_device *sas_device = NULL;
7224 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
7227 if (!sas_device)
7230 if (unlikely(sas_device->handle != handle)) {
7231 starget = sas_device->starget;
7235 sas_device->handle, handle);
7237 sas_device->handle = handle;
7240 sas_device->enclosure_level =
7242 memcpy(sas_device->connector_name,
7244 sas_device->connector_name[4] = '\0';
7246 sas_device->enclosure_level = 0;
7247 sas_device->connector_name[0] = '\0';
7250 sas_device->enclosure_handle =
7252 sas_device->is_chassis_slot_valid = 0;
7254 sas_device->enclosure_handle);
7256 sas_device->enclosure_logical_id =
7260 sas_device->is_chassis_slot_valid = 1;
7261 sas_device->chassis_slot =
7283 if (sas_device)
7284 sas_device_put(sas_device);
7289 if (sas_device)
7290 sas_device_put(sas_device);
7310 struct _sas_device *sas_device;
7353 sas_device = mpt3sas_get_sdev_by_addr(ioc,
7355 if (sas_device) {
7357 sas_device_put(sas_device);
7370 sas_device = kzalloc(sizeof(struct _sas_device),
7372 if (!sas_device) {
7378 kref_init(&sas_device->refcount);
7379 sas_device->handle = handle;
7382 &sas_device->sas_address_parent) != 0)
7385 sas_device->enclosure_handle =
7387 if (sas_device->enclosure_handle != 0)
7388 sas_device->slot =
7390 sas_device->device_info = device_info;
7391 sas_device->sas_address = sas_address;
7392 sas_device->phy = sas_device_pg0.PhyNum;
7393 sas_device->fast_path = (le16_to_cpu(sas_device_pg0.Flags) &
7395 sas_device->port = mpt3sas_get_port_by_id(ioc, port_id, 0);
7396 if (!sas_device->port) {
7404 sas_device->enclosure_level =
7406 memcpy(sas_device->connector_name,
7408 sas_device->connector_name[4] = '\0';
7410 sas_device->enclosure_level = 0;
7411 sas_device->connector_name[0] = '\0';
7414 sas_device->is_chassis_slot_valid = 0;
7416 sas_device->enclosure_logical_id =
7420 sas_device->is_chassis_slot_valid = 1;
7421 sas_device->chassis_slot =
7427 sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName);
7428 sas_device->port_type = sas_device_pg0.MaxPortConnections;
7431 handle, sas_device->sas_address, sas_device->port_type);
7434 _scsih_sas_device_init_add(ioc, sas_device);
7436 _scsih_sas_device_add(ioc, sas_device);
7439 sas_device_put(sas_device);
7446 * @sas_device: the sas_device object
7450 struct _sas_device *sas_device)
7455 (sas_device->pfa_led_on)) {
7456 _scsih_turn_off_pfa_led(ioc, sas_device);
7457 sas_device->pfa_led_on = 0;
7463 sas_device->handle, (u64)sas_device->sas_address));
7465 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
7468 if (sas_device->starget && sas_device->starget->hostdata) {
7469 sas_target_priv_data = sas_device->starget->hostdata;
7471 _scsih_ublock_io_device(ioc, sas_device->sas_address,
7472 sas_device->port);
7479 sas_device->sas_address,
7480 sas_device->sas_address_parent,
7481 sas_device->port);
7484 sas_device->handle, (u64)sas_device->sas_address);
7486 _scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
7491 sas_device->handle, (u64)sas_device->sas_address));
7492 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
7786 struct _sas_device *sas_device;
7804 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
7808 if (!sas_device || !sas_device->starget)
7811 target_priv_data = sas_device->starget->hostdata;
7828 if (sas_device)
7829 sas_device_put(sas_device);
9107 struct _sas_device *sas_device;
9114 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
9115 if (sas_device) {
9116 sas_device->volume_handle = 0;
9117 sas_device->volume_wwid = 0;
9119 if (sas_device->starget && sas_device->starget->hostdata) {
9120 starget = sas_device->starget;
9127 if (!sas_device)
9134 sas_device_put(sas_device);
9147 struct _sas_device *sas_device;
9161 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
9162 if (sas_device) {
9164 if (sas_device->starget && sas_device->starget->hostdata) {
9165 starget = sas_device->starget;
9169 sas_device->volume_handle = volume_handle;
9170 sas_device->volume_wwid = volume_wwid;
9174 if (!sas_device)
9183 sas_device_put(sas_device);
9211 struct _sas_device *sas_device;
9221 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
9222 if (sas_device) {
9224 sas_device_put(sas_device);
9495 struct _sas_device *sas_device;
9529 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
9530 if (sas_device) {
9531 sas_device_put(sas_device);
9674 struct _sas_device *sas_device;
9683 sas_device = sas_device_priv_data->sas_target->sas_dev;
9686 else if (sas_device &&
9687 sas_device->device_info & MPI2_SAS_DEVICE_INFO_SSP_TARGET)
9688 qdepth = (sas_device->port_type > 1) ?
9690 else if (sas_device &&
9691 sas_device->device_info & MPI2_SAS_DEVICE_INFO_SATA_DEVICE)
9714 struct _sas_device *sas_device = NULL;
9729 list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
9730 if (sas_device->sas_address != le64_to_cpu(
9733 if (sas_device->slot != le16_to_cpu(sas_device_pg0->Slot))
9735 if (sas_device->port != port)
9737 sas_device->responding = 1;
9738 starget = sas_device->starget;
9750 sas_device->sas_address);
9752 if (sas_device->enclosure_handle != 0)
9756 sas_device->enclosure_logical_id,
9757 sas_device->slot);
9761 sas_device->enclosure_level =
9763 memcpy(&sas_device->connector_name[0],
9766 sas_device->enclosure_level = 0;
9767 sas_device->connector_name[0] = '\0';
9770 sas_device->enclosure_handle =
9772 sas_device->is_chassis_slot_valid = 0;
9774 sas_device->enclosure_logical_id = le64_to_cpu(
9778 sas_device->is_chassis_slot_valid = 1;
9779 sas_device->chassis_slot =
9784 if (sas_device->handle == le16_to_cpu(
9788 sas_device->handle);
9789 sas_device->handle = le16_to_cpu(
10236 struct _sas_device *sas_device, *sas_device_next;
10258 list_for_each_entry_safe(sas_device, sas_device_next,
10260 list_del_init(&sas_device->list);
10261 sas_device_put(sas_device);
10264 list_for_each_entry_safe(sas_device, sas_device_next,
10266 if (!sas_device->responding)
10267 list_move_tail(&sas_device->list, &head);
10269 sas_device->responding = 0;
10276 list_for_each_entry_safe(sas_device, sas_device_next, &head, list) {
10277 _scsih_remove_device(ioc, sas_device);
10278 list_del_init(&sas_device->list);
10279 sas_device_put(sas_device);
10388 struct _sas_device *sas_device;
10464 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
10465 if (sas_device) {
10466 sas_device_put(sas_device);
10577 sas_device = mpt3sas_get_sdev_by_addr(ioc,
10580 if (sas_device) {
10581 sas_device_put(sas_device);
11039 * @sas_expander: the sas_device object
11423 struct _sas_device *sas_device;
11483 sas_device = device;
11489 if (sas_device->starget)
11492 handle = sas_device->handle;
11493 sas_address_parent = sas_device->sas_address_parent;
11494 sas_address = sas_device->sas_address;
11495 port = sas_device->port;
11496 list_move_tail(&sas_device->list, &ioc->sas_device_list);
11507 _scsih_sas_device_remove(ioc, sas_device);
11508 } else if (!sas_device->starget) {
11513 _scsih_sas_device_remove(ioc, sas_device);
11544 struct _sas_device *sas_device = NULL;
11549 sas_device = list_first_entry(&ioc->sas_device_init_list,
11551 sas_device_get(sas_device);
11555 return sas_device;
11559 struct _sas_device *sas_device)
11573 if (!list_empty(&sas_device->list)) {
11574 list_del_init(&sas_device->list);
11575 sas_device_put(sas_device);
11578 sas_device_get(sas_device);
11579 list_add_tail(&sas_device->list, &ioc->sas_device_list);
11593 struct _sas_device *sas_device;
11598 while ((sas_device = get_next_sas_device(ioc))) {
11599 if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
11600 sas_device->sas_address_parent, sas_device->port)) {
11601 _scsih_sas_device_remove(ioc, sas_device);
11602 sas_device_put(sas_device);
11604 } else if (!sas_device->starget) {
11613 sas_device->sas_address,
11614 sas_device->sas_address_parent,
11615 sas_device->port);
11616 _scsih_sas_device_remove(ioc, sas_device);
11617 sas_device_put(sas_device);
11621 sas_device_make_active(ioc, sas_device);
11622 sas_device_put(sas_device);