summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/core
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-04-25 14:29:29 -0700
committerDan Williams <dan.j.williams@intel.com>2011-07-03 04:00:38 -0700
commit00d680ef84570bc7aea023772d27e85b0052004c (patch)
tree9fe3aacd53e3e353e0fe7bfbebfdd458bc9025f5 /drivers/scsi/isci/core
parenta1a113b0a1ea437daf099b44f8a39e93a02a3f47 (diff)
downloadtalos-obmc-linux-00d680ef84570bc7aea023772d27e85b0052004c.tar.gz
talos-obmc-linux-00d680ef84570bc7aea023772d27e85b0052004c.zip
isci: kill smp_discover_response
An lldd need never look at the contents of an smp_discover_response frame. Kill the remaining locations where isci is looking at it: 1/ covering for expanders that do not set the stp_attached bit (already handled by sas_ex_discover_end_dev) 2/ an overkill method to notifiy the rest of the driver about remote_device sas addresses Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/core')
-rw-r--r--drivers/scsi/isci/core/intel_sas.h197
-rw-r--r--drivers/scsi/isci/core/scic_sds_smp_request.c20
2 files changed, 0 insertions, 217 deletions
diff --git a/drivers/scsi/isci/core/intel_sas.h b/drivers/scsi/isci/core/intel_sas.h
index d9c9f33a7af5..b57f39c2cfc2 100644
--- a/drivers/scsi/isci/core/intel_sas.h
+++ b/drivers/scsi/isci/core/intel_sas.h
@@ -628,202 +628,6 @@ struct smp_response_report_manufacturer_information {
};
-#define SMP_RESPONSE_DISCOVER_FORMAT_1_1_SIZE 52
-#define SMP_RESPONSE_DISCOVER_FORMAT_2_SIZE 116
-
-/**
- * struct smp_discover_response_protocols - This structure depicts the discover
- * response where the supported protocols by the remote phy are specified.
- *
- * For specific information on each of these individual fields please reference
- * the SAS specification Link layer section on address frames.
- */
-struct smp_discover_response_protocols {
- union {
- struct {
- u16 attached_sata_host:1;
- u16 attached_smp_initiator:1;
- u16 attached_stp_initiator:1;
- u16 attached_ssp_initiator:1;
- u16 reserved3:4;
- u16 attached_sata_device:1;
- u16 attached_smp_target:1;
- u16 attached_stp_target:1;
- u16 attached_ssp_target:1;
- u16 reserved4:3;
- u16 attached_sata_port_selector:1;
- } bits;
-
- u16 all;
- } u;
-
-};
-
-/**
- * struct SMP_RESPONSE_DISCOVER_FORMAT - This structure defines the SMP phy
- * discover response format. It handles both SAS1.1 and SAS 2 definitions.
- * The unions indicate locations where the SAS specification versions differ
- * from one another.
- *
- *
- */
-struct smp_response_discover {
-
- union {
- struct {
- u8 reserved[2];
- } sas1_1;
-
- struct {
- u16 expander_change_count;
- } sas2;
-
- } u1;
-
- u8 reserved1[3];
- u8 phy_identifier;
- u8 reserved2[2];
-
- union {
- struct {
- u16 reserved1:4;
- u16 attached_device_type:3;
- u16 reserved2:1;
- u16 negotiated_physical_link_rate:4;
- u16 reserved3:4;
- } sas1_1;
-
- struct {
- u16 attached_reason:4;
- u16 attached_device_type:3;
- u16 reserved2:1;
- u16 negotiated_logical_link_rate:4;
- u16 reserved3:4;
- } sas2;
-
- } u2;
-
- struct smp_discover_response_protocols protocols;
- struct sci_sas_address sas_address;
- struct sci_sas_address attached_sas_address;
-
- u8 attached_phy_identifier;
-
- union {
- struct {
- u8 reserved;
- } sas1_1;
-
- struct {
- u8 attached_break_reply_capable:1;
- u8 attached_requested_inside_zpsds:1;
- u8 attached_inside_zpsds_persistent:1;
- u8 reserved1:5;
- } sas2;
-
- } u3;
-
- u8 reserved_for_identify[6];
-
- u32 hardware_min_physical_link_rate:4;
- u32 programmed_min_physical_link_rate:4;
- u32 hardware_max_physical_link_rate:4;
- u32 programmed_max_physical_link_rate:4;
- u32 phy_change_count:8;
- u32 partial_pathway_timeout_value:4;
- u32 reserved5:3;
- u32 virtual_phy:1;
-
- u32 routing_attribute:4;
- u32 reserved6:4;
- u32 connector_type:7;
- u32 reserved7:1;
- u32 connector_element_index:8;
- u32 connector_physical_link:8;
-
- u16 reserved8;
- u16 vendor_specific;
-
- union {
- struct {
- /**
- * In the SAS 1.1 specification this structure ends after 52 bytes.
- * As a result, the contents of this field should never have a
- * real value. It is undefined.
- */
- u8 undefined[SMP_RESPONSE_DISCOVER_FORMAT_2_SIZE
- - SMP_RESPONSE_DISCOVER_FORMAT_1_1_SIZE];
- } sas1_1;
-
- struct {
- struct sci_sas_address attached_device_name;
-
- u32 zoning_enabled:1;
- u32 inside_zpsds:1;
- u32 zone_group_persistent:1;
- u32 reserved1:1;
- u32 requested_inside_zpsds:1;
- u32 inside_zpsds_persistent:1;
- u32 requested_inside_zpsds_changed_by_expander:1;
- u32 reserved2:1;
- u32 reserved_for_zoning_fields:16;
- u32 zone_group:8;
-
- u8 self_configuration_status;
- u8 self_configuration_levels_completed;
- u16 reserved_for_self_config_fields;
-
- struct sci_sas_address self_configuration_sas_address;
-
- u32 programmed_phy_capabilities;
- u32 current_phy_capabilities;
- u32 attached_phy_capabilities;
-
- u32 reserved3;
-
- u32 reserved4:16;
- u32 negotiated_physical_link_rate:4;
- u32 reason:4;
- u32 hardware_muxing_supported:1;
- u32 negotiated_ssc:1;
- u32 reserved5:6;
-
- u32 default_zoning_enabled:1;
- u32 reserved6:1;
- u32 default_zone_group_persistent:1;
- u32 reserved7:1;
- u32 default_requested_inside_zpsds:1;
- u32 default_inside_zpsds_persistent:1;
- u32 reserved8:2;
- u32 reserved9:16;
- u32 default_zone_group:8;
-
- u32 saved_zoning_enabled:1;
- u32 reserved10:1;
- u32 saved_zone_group_persistent:1;
- u32 reserved11:1;
- u32 saved_requested_inside_zpsds:1;
- u32 saved_inside_zpsds_persistent:1;
- u32 reserved12:18;
- u32 saved_zone_group:8;
-
- u32 reserved14:2;
- u32 shadow_zone_group_persistent:1;
- u32 reserved15:1;
- u32 shadow_requested_inside_zpsds:1;
- u32 shadow_inside_zpsds_persistent:1;
- u32 reserved16:18;
- u32 shadow_zone_group:8;
-
- u8 device_slot_number;
- u8 device_slot_group_number;
- u8 device_slot_group_output_connector[6];
- } sas2;
-
- } u4;
-
-};
-
/**
* struct smp_response_report_phy_sata - This structure depicts the contents of
* the SAS SMP REPORT PHY SATA frame. For specific information on each of
@@ -857,7 +661,6 @@ struct smp_response_vendor_specific {
union smp_response_body {
struct smp_response_report_general report_general;
struct smp_response_report_manufacturer_information report_manufacturer_information;
- struct smp_response_discover discover;
struct smp_response_report_phy_sata report_phy_sata;
struct smp_response_vendor_specific vendor_specific_response;
};
diff --git a/drivers/scsi/isci/core/scic_sds_smp_request.c b/drivers/scsi/isci/core/scic_sds_smp_request.c
index 1790f25758d1..d4009e57acaf 100644
--- a/drivers/scsi/isci/core/scic_sds_smp_request.c
+++ b/drivers/scsi/isci/core/scic_sds_smp_request.c
@@ -339,26 +339,6 @@ static enum sci_status scic_sds_smp_request_await_response_frame_handler(
smp_response_buffer,
sizeof(union smp_response_body) / sizeof(u32)
);
- if (rsp_hdr->function == SMP_FUNCTION_DISCOVER) {
- struct smp_response *smp_resp;
-
- smp_resp = (struct smp_response *)user_smp_buffer;
-
- /*
- * Some expanders only report an attached SATA device, and
- * not an STP target. Since the core depends on the STP
- * target attribute to correctly build I/O, set the bit now
- * if necessary. */
- if (smp_resp->response.discover.protocols.u.bits.attached_sata_device
- && !smp_resp->response.discover.protocols.u.bits.attached_stp_target) {
- smp_resp->response.discover.protocols.u.bits.attached_stp_target = 1;
-
- dev_dbg(scic_to_dev(sci_req->owning_controller),
- "%s: scic_sds_smp_request_await_response_frame_handler(0x%p) Found SATA dev, setting STP bit.\n",
- __func__, sci_req);
- }
- }
-
/*
* Don't need to copy to user space. User instead will refer to
* core request's response buffer. */
OpenPOWER on IntegriCloud