Lines Matching refs:sas_device
71 struct _sas_device *sas_device);
456 * @device: sas_device or pcie_device object
470 struct _sas_device *sas_device;
499 sas_device = device;
500 sas_address = sas_device->sas_address;
501 device_name = sas_device->device_name;
502 enclosure_logical_id = sas_device->enclosure_logical_id;
503 slot = sas_device->slot;
621 struct _sas_device *sas_device;
625 list_for_each_entry(sas_device, &ioc->sas_device_list, list)
626 if (sas_device->sas_address == sas_address)
629 list_for_each_entry(sas_device, &ioc->sas_device_init_list, list)
630 if (sas_device->sas_address == sas_address)
636 sas_device_get(sas_device);
637 return sas_device;
646 * This searches for sas_device based on sas_address, then return sas_device
653 struct _sas_device *sas_device;
657 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
661 return sas_device;
667 struct _sas_device *sas_device;
671 list_for_each_entry(sas_device, &ioc->sas_device_list, list)
672 if (sas_device->handle == handle)
675 list_for_each_entry(sas_device, &ioc->sas_device_init_list, list)
676 if (sas_device->handle == handle)
682 sas_device_get(sas_device);
683 return sas_device;
692 * This searches for sas_device based on sas_address, then return sas_device
698 struct _sas_device *sas_device;
702 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
705 return sas_device;
711 * @sas_device: per sas device object
717 struct _sas_device *sas_device, struct scsi_device *sdev,
721 if (sas_device->enclosure_handle != 0)
725 sas_device->enclosure_logical_id,
726 sas_device->slot);
727 if (sas_device->connector_name[0] != '\0')
730 sas_device->enclosure_level,
731 sas_device->connector_name);
732 if (sas_device->is_chassis_slot_valid)
734 sas_device->chassis_slot);
736 if (sas_device->enclosure_handle != 0)
740 sas_device->enclosure_logical_id,
741 sas_device->slot);
742 if (sas_device->connector_name[0] != '\0')
745 sas_device->enclosure_level,
746 sas_device->connector_name);
747 if (sas_device->is_chassis_slot_valid)
750 sas_device->chassis_slot);
752 if (sas_device->enclosure_handle != 0)
754 (u64)sas_device->enclosure_logical_id,
755 sas_device->slot);
756 if (sas_device->connector_name[0] != '\0')
758 sas_device->enclosure_level,
759 sas_device->connector_name);
760 if (sas_device->is_chassis_slot_valid)
762 sas_device->chassis_slot);
767 * _scsih_sas_device_remove - remove sas_device from list.
769 * @sas_device: the sas_device object
772 * If sas_device is on the list, remove it and decrement its reference count.
776 struct _sas_device *sas_device)
780 if (!sas_device)
783 sas_device->handle, (u64)sas_device->sas_address);
785 _scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
792 if (!list_empty(&sas_device->list)) {
793 list_del_init(&sas_device->list);
794 sas_device_put(sas_device);
807 struct _sas_device *sas_device;
814 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
815 if (sas_device) {
816 list_del_init(&sas_device->list);
817 sas_device_put(sas_device);
820 if (sas_device) {
821 _scsih_remove_device(ioc, sas_device);
822 sas_device_put(sas_device);
835 struct _sas_device *sas_device;
842 sas_device = __mpt3sas_get_sdev_by_addr(ioc, sas_address);
843 if (sas_device) {
844 list_del_init(&sas_device->list);
845 sas_device_put(sas_device);
848 if (sas_device) {
849 _scsih_remove_device(ioc, sas_device);
850 sas_device_put(sas_device);
855 * _scsih_sas_device_add - insert sas_device to the list.
857 * @sas_device: the sas_device object
864 struct _sas_device *sas_device)
870 __func__, sas_device->handle,
871 (u64)sas_device->sas_address));
873 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
877 sas_device_get(sas_device);
878 list_add_tail(&sas_device->list, &ioc->sas_device_list);
882 clear_bit(sas_device->handle, ioc->pend_os_device_add);
886 if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
887 sas_device->sas_address_parent)) {
888 _scsih_sas_device_remove(ioc, sas_device);
889 } else if (!sas_device->starget) {
897 sas_device->sas_address,
898 sas_device->sas_address_parent);
899 _scsih_sas_device_remove(ioc, sas_device);
902 clear_bit(sas_device->handle, ioc->pend_os_device_add);
906 * _scsih_sas_device_init_add - insert sas_device to the list.
908 * @sas_device: the sas_device object
915 struct _sas_device *sas_device)
921 __func__, sas_device->handle,
922 (u64)sas_device->sas_address));
924 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
928 sas_device_get(sas_device);
929 list_add_tail(&sas_device->list, &ioc->sas_device_init_list);
930 _scsih_determine_boot_device(ioc, sas_device, 0);
1460 * @sas_expander: the sas_device object
1630 struct _sas_device *sas_device;
1652 sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
1653 if (sas_device) {
1654 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_SATA_DEVICE)
1657 sas_device_put(sas_device);
1707 struct _sas_device *sas_device;
1764 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
1767 if (sas_device) {
1768 sas_target_priv_data->handle = sas_device->handle;
1769 sas_target_priv_data->sas_address = sas_device->sas_address;
1770 sas_target_priv_data->sas_dev = sas_device;
1771 sas_device->starget = starget;
1772 sas_device->id = starget->id;
1773 sas_device->channel = starget->channel;
1774 if (test_bit(sas_device->handle, ioc->pd_handles))
1777 if (sas_device->fast_path)
1796 struct _sas_device *sas_device;
1839 sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
1840 if (sas_device && (sas_device->starget == starget) &&
1841 (sas_device->id == starget->id) &&
1842 (sas_device->channel == starget->channel))
1843 sas_device->starget = NULL;
1845 if (sas_device) {
1850 sas_device_put(sas_device);
1852 sas_device_put(sas_device);
1877 struct _sas_device *sas_device;
1924 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
1926 if (sas_device && (sas_device->starget == NULL)) {
1928 "%s : sas_device->starget set to starget @ %d\n",
1930 sas_device->starget = starget;
1933 if (sas_device)
1934 sas_device_put(sas_device);
1953 struct _sas_device *sas_device;
1981 sas_device = __mpt3sas_get_sdev_from_target(ioc,
1983 if (sas_device && !sas_target_priv_data->num_luns)
1984 sas_device->starget = NULL;
1986 if (sas_device)
1987 sas_device_put(sas_device);
2346 struct _sas_device *sas_device;
2529 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
2531 if (!sas_device) {
2539 sas_device->volume_handle = volume_handle;
2540 sas_device->volume_wwid = volume_wwid;
2541 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_SSP_TARGET) {
2544 if (sas_device->device_info &
2555 if (sas_device->device_info & MPI2_SAS_DEVICE_INFO_STP_TARGET)
2557 else if (sas_device->device_info &
2564 ds, handle, (unsigned long long)sas_device->sas_address,
2565 sas_device->phy, (unsigned long long)sas_device->device_name);
2567 _scsih_display_enclosure_chassis_info(NULL, sas_device, sdev, NULL);
2569 sas_device_put(sas_device);
3047 struct _sas_device *sas_device = NULL;
3092 sas_device = __mpt3sas_get_sdev_from_target(ioc, priv_target);
3093 if (sas_device) {
3099 sas_device->volume_handle,
3100 (unsigned long long)sas_device->volume_wwid);
3104 sas_device->handle,
3105 (unsigned long long)sas_device->sas_address,
3106 sas_device->phy);
3108 _scsih_display_enclosure_chassis_info(NULL, sas_device,
3111 sas_device_put(sas_device);
3202 struct _sas_device *sas_device = NULL;
3231 sas_device = mpt3sas_get_sdev_from_target(ioc,
3233 if (sas_device)
3234 handle = sas_device->volume_handle;
3264 if (sas_device)
3265 sas_device_put(sas_device);
3283 struct _sas_device *sas_device = NULL;
3311 sas_device = mpt3sas_get_sdev_from_target(ioc,
3313 if (sas_device)
3314 handle = sas_device->volume_handle;
3343 if (sas_device)
3344 sas_device_put(sas_device);
3729 struct _sas_device *sas_device;
3731 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
3741 if (sas_device && sas_device->pend_sas_rphy_add)
3752 if (sas_device)
3753 sas_device_put(sas_device);
3759 * @sas_expander: the sas_device object
3770 struct _sas_device *sas_device;
3782 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
3784 if (sas_device) {
3785 set_bit(sas_device->handle,
3787 sas_device_put(sas_device);
3883 struct _sas_device *sas_device = NULL;
3913 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
3914 if (sas_device && sas_device->starget &&
3915 sas_device->starget->hostdata) {
3916 sas_target_priv_data = sas_device->starget->hostdata;
3918 sas_address = sas_device->sas_address;
3921 if (!sas_device) {
3943 if (sas_device) {
3944 if (sas_device->enclosure_handle != 0)
3947 (u64)sas_device->enclosure_logical_id,
3948 sas_device->slot));
3949 if (sas_device->connector_name[0] != '\0')
3952 sas_device->enclosure_level,
3953 sas_device->connector_name));
3998 if (sas_device)
3999 sas_device_put(sas_device);
5137 struct _sas_device *sas_device = NULL;
5287 sas_device = mpt3sas_get_sdev_from_target(ioc, priv_target);
5288 if (sas_device) {
5290 (u64)sas_device->sas_address, sas_device->phy);
5292 _scsih_display_enclosure_chassis_info(ioc, sas_device,
5295 sas_device_put(sas_device);
5335 struct _sas_device *sas_device;
5337 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
5338 if (!sas_device)
5354 sas_device->pfa_led_on = 1;
5364 sas_device_put(sas_device);
5370 * @sas_device: sas device whose PFA LED has to turned off
5375 struct _sas_device *sas_device)
5384 mpi_request.Slot = cpu_to_le16(sas_device->slot);
5386 mpi_request.EnclosureHandle = cpu_to_le16(sas_device->enclosure_handle);
5438 struct _sas_device *sas_device;
5444 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
5445 if (!sas_device)
5448 starget = sas_device->starget;
5455 _scsih_display_enclosure_chassis_info(NULL, sas_device, NULL, starget);
5487 if (sas_device)
5488 sas_device_put(sas_device);
6237 struct _sas_device *sas_device;
6267 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
6270 if (!sas_device)
6273 if (unlikely(sas_device->handle != handle)) {
6274 starget = sas_device->starget;
6278 sas_device->handle, handle);
6280 sas_device->handle = handle;
6283 sas_device->enclosure_level =
6285 memcpy(sas_device->connector_name,
6287 sas_device->connector_name[4] = '\0';
6289 sas_device->enclosure_level = 0;
6290 sas_device->connector_name[0] = '\0';
6293 sas_device->enclosure_handle =
6295 sas_device->is_chassis_slot_valid = 0;
6297 sas_device->enclosure_handle);
6299 sas_device->enclosure_logical_id =
6303 sas_device->is_chassis_slot_valid = 1;
6304 sas_device->chassis_slot =
6326 if (sas_device)
6327 sas_device_put(sas_device);
6332 if (sas_device)
6333 sas_device_put(sas_device);
6353 struct _sas_device *sas_device;
6394 sas_device = mpt3sas_get_sdev_by_addr(ioc,
6396 if (sas_device) {
6398 sas_device_put(sas_device);
6411 sas_device = kzalloc(sizeof(struct _sas_device),
6413 if (!sas_device) {
6419 kref_init(&sas_device->refcount);
6420 sas_device->handle = handle;
6423 &sas_device->sas_address_parent) != 0)
6426 sas_device->enclosure_handle =
6428 if (sas_device->enclosure_handle != 0)
6429 sas_device->slot =
6431 sas_device->device_info = device_info;
6432 sas_device->sas_address = sas_address;
6433 sas_device->phy = sas_device_pg0.PhyNum;
6434 sas_device->fast_path = (le16_to_cpu(sas_device_pg0.Flags) &
6439 sas_device->enclosure_level =
6441 memcpy(sas_device->connector_name,
6443 sas_device->connector_name[4] = '\0';
6445 sas_device->enclosure_level = 0;
6446 sas_device->connector_name[0] = '\0';
6449 sas_device->is_chassis_slot_valid = 0;
6451 sas_device->enclosure_logical_id =
6455 sas_device->is_chassis_slot_valid = 1;
6456 sas_device->chassis_slot =
6462 sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName);
6465 _scsih_sas_device_init_add(ioc, sas_device);
6467 _scsih_sas_device_add(ioc, sas_device);
6469 sas_device_put(sas_device);
6476 * @sas_device: the sas_device object
6480 struct _sas_device *sas_device)
6485 (sas_device->pfa_led_on)) {
6486 _scsih_turn_off_pfa_led(ioc, sas_device);
6487 sas_device->pfa_led_on = 0;
6493 sas_device->handle, (u64)sas_device->sas_address));
6495 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
6498 if (sas_device->starget && sas_device->starget->hostdata) {
6499 sas_target_priv_data = sas_device->starget->hostdata;
6501 _scsih_ublock_io_device(ioc, sas_device->sas_address);
6508 sas_device->sas_address,
6509 sas_device->sas_address_parent);
6512 sas_device->handle, (u64)sas_device->sas_address);
6514 _scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
6519 sas_device->handle, (u64)sas_device->sas_address));
6520 dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
6811 struct _sas_device *sas_device;
6829 sas_device = __mpt3sas_get_sdev_by_addr(ioc,
6832 if (!sas_device || !sas_device->starget)
6835 target_priv_data = sas_device->starget->hostdata;
6852 if (sas_device)
6853 sas_device_put(sas_device);
8131 struct _sas_device *sas_device;
8138 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
8139 if (sas_device) {
8140 sas_device->volume_handle = 0;
8141 sas_device->volume_wwid = 0;
8143 if (sas_device->starget && sas_device->starget->hostdata) {
8144 starget = sas_device->starget;
8151 if (!sas_device)
8158 sas_device_put(sas_device);
8171 struct _sas_device *sas_device;
8185 sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
8186 if (sas_device) {
8188 if (sas_device->starget && sas_device->starget->hostdata) {
8189 starget = sas_device->starget;
8193 sas_device->volume_handle = volume_handle;
8194 sas_device->volume_wwid = volume_wwid;
8198 if (!sas_device)
8207 sas_device_put(sas_device);
8235 struct _sas_device *sas_device;
8245 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
8246 if (sas_device) {
8248 sas_device_put(sas_device);
8517 struct _sas_device *sas_device;
8551 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
8552 if (sas_device) {
8553 sas_device_put(sas_device);
8698 struct _sas_device *sas_device = NULL;
8711 list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
8712 if ((sas_device->sas_address == le64_to_cpu(
8713 sas_device_pg0->SASAddress)) && (sas_device->slot ==
8715 sas_device->responding = 1;
8716 starget = sas_device->starget;
8728 sas_device->sas_address);
8730 if (sas_device->enclosure_handle != 0)
8735 sas_device->enclosure_logical_id,
8736 sas_device->slot);
8740 sas_device->enclosure_level =
8742 memcpy(&sas_device->connector_name[0],
8745 sas_device->enclosure_level = 0;
8746 sas_device->connector_name[0] = '\0';
8749 sas_device->enclosure_handle =
8751 sas_device->is_chassis_slot_valid = 0;
8753 sas_device->enclosure_logical_id = le64_to_cpu(
8757 sas_device->is_chassis_slot_valid = 1;
8758 sas_device->chassis_slot =
8763 if (sas_device->handle == le16_to_cpu(
8767 sas_device->handle);
8768 sas_device->handle = le16_to_cpu(
9208 struct _sas_device *sas_device, *sas_device_next;
9225 list_for_each_entry_safe(sas_device, sas_device_next,
9227 if (!sas_device->responding)
9228 list_move_tail(&sas_device->list, &head);
9230 sas_device->responding = 0;
9237 list_for_each_entry_safe(sas_device, sas_device_next, &head, list) {
9238 _scsih_remove_device(ioc, sas_device);
9239 list_del_init(&sas_device->list);
9240 sas_device_put(sas_device);
9338 struct _sas_device *sas_device;
9402 sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
9403 if (sas_device) {
9404 sas_device_put(sas_device);
9512 sas_device = mpt3sas_get_sdev_by_addr(ioc,
9514 if (sas_device) {
9515 sas_device_put(sas_device);
9937 * @sas_expander: the sas_device object
10295 struct _sas_device *sas_device;
10341 sas_device = device;
10342 handle = sas_device->handle;
10343 sas_address_parent = sas_device->sas_address_parent;
10344 sas_address = sas_device->sas_address;
10345 list_move_tail(&sas_device->list, &ioc->sas_device_list);
10352 _scsih_sas_device_remove(ioc, sas_device);
10353 } else if (!sas_device->starget) {
10358 _scsih_sas_device_remove(ioc, sas_device);
10389 struct _sas_device *sas_device = NULL;
10394 sas_device = list_first_entry(&ioc->sas_device_init_list,
10396 sas_device_get(sas_device);
10400 return sas_device;
10404 struct _sas_device *sas_device)
10418 if (!list_empty(&sas_device->list)) {
10419 list_del_init(&sas_device->list);
10420 sas_device_put(sas_device);
10423 sas_device_get(sas_device);
10424 list_add_tail(&sas_device->list, &ioc->sas_device_list);
10438 struct _sas_device *sas_device;
10443 while ((sas_device = get_next_sas_device(ioc))) {
10444 if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
10445 sas_device->sas_address_parent)) {
10446 _scsih_sas_device_remove(ioc, sas_device);
10447 sas_device_put(sas_device);
10449 } else if (!sas_device->starget) {
10458 sas_device->sas_address,
10459 sas_device->sas_address_parent);
10460 _scsih_sas_device_remove(ioc, sas_device);
10461 sas_device_put(sas_device);
10465 sas_device_make_active(ioc, sas_device);
10466 sas_device_put(sas_device);