diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2011-05-08 21:36:46 -0700 | 
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 04:04:47 -0700 | 
| commit | 63a3a15fb00ef49e50e98ff675094afcd92f113a (patch) | |
| tree | b84098b902b15decadce1f314eb51ce5ac98de5c | |
| parent | cc9203bf381a465cd115762b9cf7c9a313c874bc (diff) | |
isci: uplevel register hardware data structures and unsolicited frame handling
Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| -rw-r--r-- | drivers/scsi/isci/Makefile | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_phy.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_port.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_port.h | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_port_registers.h | 66 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_request.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scic_sds_stp_request.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/core/scu_viit_data.h | 178 | ||||
| -rw-r--r-- | drivers/scsi/isci/host.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/isci/host.h | 4 | ||||
| -rw-r--r-- | drivers/scsi/isci/registers.h (renamed from drivers/scsi/isci/core/scu_registers.h) | 110 | ||||
| -rw-r--r-- | drivers/scsi/isci/scu_completion_codes.h (renamed from drivers/scsi/isci/core/scu_completion_codes.h) | 0 | ||||
| -rw-r--r-- | drivers/scsi/isci/scu_event_codes.h (renamed from drivers/scsi/isci/core/scu_event_codes.h) | 0 | ||||
| -rw-r--r-- | drivers/scsi/isci/scu_task_context.h (renamed from drivers/scsi/isci/core/scu_task_context.h) | 0 | ||||
| -rw-r--r-- | drivers/scsi/isci/scu_unsolicited_frame.h (renamed from drivers/scsi/isci/core/scu_unsolicited_frame.h) | 0 | ||||
| -rw-r--r-- | drivers/scsi/isci/unsolicited_frame_control.c (renamed from drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.c) | 4 | ||||
| -rw-r--r-- | drivers/scsi/isci/unsolicited_frame_control.h (renamed from drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.h) | 0 | 
17 files changed, 121 insertions, 257 deletions
| diff --git a/drivers/scsi/isci/Makefile b/drivers/scsi/isci/Makefile index 45f8f68caf4a..0153b0fe13b8 100644 --- a/drivers/scsi/isci/Makefile +++ b/drivers/scsi/isci/Makefile @@ -5,6 +5,7 @@ isci-objs := init.o phy.o request.o sata.o \  	     host.o task.o probe_roms.o \  	     remote_node_context.o \  	     remote_node_table.o \ +	     unsolicited_frame_control.o \  	     core/scic_sds_request.o \  	     core/scic_sds_stp_request.o \  	     core/scic_sds_port.o \ @@ -12,6 +13,5 @@ isci-objs := init.o phy.o request.o sata.o \  	     core/scic_sds_phy.o \  	     core/scic_sds_ssp_request.o \  	     core/scic_sds_smp_request.o \ -	     core/scic_sds_unsolicited_frame_control.o \  	     core/sci_base_state_machine.o \  	     core/sci_util.o diff --git a/drivers/scsi/isci/core/scic_sds_phy.h b/drivers/scsi/isci/core/scic_sds_phy.h index c40c09b0c726..472718d2f444 100644 --- a/drivers/scsi/isci/core/scic_sds_phy.h +++ b/drivers/scsi/isci/core/scic_sds_phy.h @@ -58,7 +58,7 @@  #include "sas.h"  #include "scic_phy.h" -#include "scu_registers.h" +#include "registers.h"  #include "sci_base_state_machine.h"  #include <scsi/libsas.h> diff --git a/drivers/scsi/isci/core/scic_sds_port.c b/drivers/scsi/isci/core/scic_sds_port.c index 652d823d5fa3..652917eeead4 100644 --- a/drivers/scsi/isci/core/scic_sds_port.c +++ b/drivers/scsi/isci/core/scic_sds_port.c @@ -61,7 +61,7 @@  #include "remote_device.h"  #include "remote_node_context.h"  #include "scic_sds_request.h" -#include "scu_registers.h" +#include "registers.h"  #include "timers.h"  #define SCIC_SDS_PORT_MIN_TIMER_COUNT  (SCI_MAX_PORTS) diff --git a/drivers/scsi/isci/core/scic_sds_port.h b/drivers/scsi/isci/core/scic_sds_port.h index bd612d576093..4b28c5acd758 100644 --- a/drivers/scsi/isci/core/scic_sds_port.h +++ b/drivers/scsi/isci/core/scic_sds_port.h @@ -59,7 +59,7 @@  #include <linux/kernel.h>  #include "isci.h"  #include "sas.h" -#include "scu_registers.h" +#include "registers.h"  #include "sci_base_state_machine.h"  struct scic_sds_controller; diff --git a/drivers/scsi/isci/core/scic_sds_port_registers.h b/drivers/scsi/isci/core/scic_sds_port_registers.h deleted file mode 100644 index 01e24e52990c..000000000000 --- a/drivers/scsi/isci/core/scic_sds_port_registers.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * This file is provided under a dual BSD/GPLv2 license.  When using or - * redistributing this file, you may do so under either license. - * - * GPL LICENSE SUMMARY - * - * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - * The full GNU General Public License is included in this distribution - * in the file called LICENSE.GPL. - * - * BSD LICENSE - * - * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - *   * Redistributions of source code must retain the above copyright - *     notice, this list of conditions and the following disclaimer. - *   * Redistributions in binary form must reproduce the above copyright - *     notice, this list of conditions and the following disclaimer in - *     the documentation and/or other materials provided with the - *     distribution. - *   * Neither the name of Intel Corporation nor the names of its - *     contributors may be used to endorse or promote products derived - *     from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SCIC_SDS_PORT_REGISTERS_H_ -#define _SCIC_SDS_PORT_REGISTERS_H_ - -/** - * This file contains a set of macros that assist in reading the SCU hardware - *    registers. - * - * - */ - -#endif /* _SCIC_SDS_PORT_REGISTERS_H_ */ diff --git a/drivers/scsi/isci/core/scic_sds_request.c b/drivers/scsi/isci/core/scic_sds_request.c index 1405aa703c3a..cd279601de01 100644 --- a/drivers/scsi/isci/core/scic_sds_request.c +++ b/drivers/scsi/isci/core/scic_sds_request.c @@ -55,13 +55,13 @@  #include <scsi/sas.h>  #include "scic_io_request.h" -#include "scu_registers.h" +#include "registers.h"  #include "scic_sds_port.h"  #include "remote_device.h"  #include "scic_sds_request.h"  #include "scic_sds_smp_request.h"  #include "scic_sds_stp_request.h" -#include "scic_sds_unsolicited_frame_control.h" +#include "unsolicited_frame_control.h"  #include "sci_util.h"  #include "scu_completion_codes.h"  #include "scu_task_context.h" diff --git a/drivers/scsi/isci/core/scic_sds_stp_request.c b/drivers/scsi/isci/core/scic_sds_stp_request.c index 2f5095130cad..9a787e25b48b 100644 --- a/drivers/scsi/isci/core/scic_sds_stp_request.c +++ b/drivers/scsi/isci/core/scic_sds_stp_request.c @@ -62,7 +62,7 @@  #include "scic_sds_request.h"  #include "scic_sds_stp_pio_request.h"  #include "scic_sds_stp_request.h" -#include "scic_sds_unsolicited_frame_control.h" +#include "unsolicited_frame_control.h"  #include "sci_util.h"  #include "scu_completion_codes.h"  #include "scu_event_codes.h" diff --git a/drivers/scsi/isci/core/scu_viit_data.h b/drivers/scsi/isci/core/scu_viit_data.h deleted file mode 100644 index c959d9158225..000000000000 --- a/drivers/scsi/isci/core/scu_viit_data.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * This file is provided under a dual BSD/GPLv2 license.  When using or - * redistributing this file, you may do so under either license. - * - * GPL LICENSE SUMMARY - * - * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - * The full GNU General Public License is included in this distribution - * in the file called LICENSE.GPL. - * - * BSD LICENSE - * - * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - *   * Redistributions of source code must retain the above copyright - *     notice, this list of conditions and the following disclaimer. - *   * Redistributions in binary form must reproduce the above copyright - *     notice, this list of conditions and the following disclaimer in - *     the documentation and/or other materials provided with the - *     distribution. - *   * Neither the name of Intel Corporation nor the names of its - *     contributors may be used to endorse or promote products derived - *     from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SCU_VIIT_DATA_HEADER_ -#define _SCU_VIIT_DATA_HEADER_ - -/** - * This file contains the constants and structures for the SCU hardware VIIT - *    table entries. - * - * - */ - - -#define SCU_VIIT_ENTRY_ID_MASK         (0xC0000000) -#define SCU_VIIT_ENTRY_ID_SHIFT        (30) - -#define SCU_VIIT_ENTRY_FUNCTION_MASK   (0x0FF00000) -#define SCU_VIIT_ENTRY_FUNCTION_SHIFT  (20) - -#define SCU_VIIT_ENTRY_IPPTMODE_MASK   (0x0001F800) -#define SCU_VIIT_ENTRY_IPPTMODE_SHIFT  (12) - -#define SCU_VIIT_ENTRY_LPVIE_MASK      (0x00000F00) -#define SCU_VIIT_ENTRY_LPVIE_SHIFT     (8) - -#define SCU_VIIT_ENTRY_STATUS_MASK     (0x000000FF) -#define SCU_VIIT_ENTRY_STATUS_SHIFT    (0) - -#define SCU_VIIT_ENTRY_ID_INVALID   (0 << SCU_VIIT_ENTRY_ID_SHIFT) -#define SCU_VIIT_ENTRY_ID_VIIT      (1 << SCU_VIIT_ENTRY_ID_SHIFT) -#define SCU_VIIT_ENTRY_ID_IIT       (2 << SCU_VIIT_ENTRY_ID_SHIFT) -#define SCU_VIIT_ENTRY_ID_VIRT_EXP  (3 << SCU_VIIT_ENTRY_ID_SHIFT) - -#define SCU_VIIT_IPPT_SSP_INITIATOR (0x01 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) -#define SCU_VIIT_IPPT_SMP_INITIATOR (0x02 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) -#define SCU_VIIT_IPPT_STP_INITIATOR (0x04 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) -#define SCU_VIIT_IPPT_INITIATOR	    \ -	(\ -		SCU_VIIT_IPPT_SSP_INITIATOR  \ -		| SCU_VIIT_IPPT_SMP_INITIATOR  \ -		| SCU_VIIT_IPPT_STP_INITIATOR  \ -	) - -#define SCU_VIIT_STATUS_RNC_VALID      (0x01 << SCU_VIIT_ENTRY_STATUS_SHIFT) -#define SCU_VIIT_STATUS_ADDRESS_VALID  (0x02 << SCU_VIIT_ENTRY_STATUS_SHIFT) -#define SCU_VIIT_STATUS_RNI_VALID      (0x04 << SCU_VIIT_ENTRY_STATUS_SHIFT) -#define SCU_VIIT_STATUS_ALL_VALID      \ -	(\ -		SCU_VIIT_STATUS_RNC_VALID	\ -		| SCU_VIIT_STATUS_ADDRESS_VALID	  \ -		| SCU_VIIT_STATUS_RNI_VALID	  \ -	) - -#define SCU_VIIT_IPPT_SMP_TARGET    (0x10 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) - -/** - * struct scu_viit_entry - This is the SCU Virtual Initiator Table Entry - * - * - */ -struct scu_viit_entry { -	/** -	 * This must be encoded as to the type of initiator that is being constructed -	 * for this port. -	 */ -	u32 status; - -	/** -	 * Virtual initiator high SAS Address -	 */ -	u32 initiator_sas_address_hi; - -	/** -	 * Virtual initiator low SAS Address -	 */ -	u32 initiator_sas_address_lo; - -	/** -	 * This must be 0 -	 */ -	u32 reserved; - -}; - - -/* IIT Status Defines */ -#define SCU_IIT_ENTRY_ID_MASK                (0xC0000000) -#define SCU_IIT_ENTRY_ID_SHIFT               (30) - -#define SCU_IIT_ENTRY_STATUS_UPDATE_MASK     (0x20000000) -#define SCU_IIT_ENTRY_STATUS_UPDATE_SHIFT    (29) - -#define SCU_IIT_ENTRY_LPI_MASK               (0x00000F00) -#define SCU_IIT_ENTRY_LPI_SHIFT              (8) - -#define SCU_IIT_ENTRY_STATUS_MASK            (0x000000FF) -#define SCU_IIT_ENTRY_STATUS_SHIFT           (0) - -/* IIT Remote Initiator Defines */ -#define SCU_IIT_ENTRY_REMOTE_TAG_MASK  (0x0000FFFF) -#define SCU_IIT_ENTRY_REMOTE_TAG_SHIFT (0) - -#define SCU_IIT_ENTRY_REMOTE_RNC_MASK  (0x0FFF0000) -#define SCU_IIT_ENTRY_REMOTE_RNC_SHIFT (16) - -#define SCU_IIT_ENTRY_ID_INVALID   (0 << SCU_IIT_ENTRY_ID_SHIFT) -#define SCU_IIT_ENTRY_ID_VIIT      (1 << SCU_IIT_ENTRY_ID_SHIFT) -#define SCU_IIT_ENTRY_ID_IIT       (2 << SCU_IIT_ENTRY_ID_SHIFT) -#define SCU_IIT_ENTRY_ID_VIRT_EXP  (3 << SCU_IIT_ENTRY_ID_SHIFT) - -/** - * struct scu_iit_entry - This will be implemented later when we support - *    virtual functions - * - * - */ -struct scu_iit_entry { -	u32 status; -	u32 remote_initiator_sas_address_hi; -	u32 remote_initiator_sas_address_lo; -	u32 remote_initiator; - -}; - -#endif /* _SCU_VIIT_DATA_HEADER_ */ diff --git a/drivers/scsi/isci/host.c b/drivers/scsi/isci/host.c index 43a5d7a8b291..71a0466d1c8e 100644 --- a/drivers/scsi/isci/host.c +++ b/drivers/scsi/isci/host.c @@ -66,7 +66,7 @@  #include "sci_util.h"  #include "scu_completion_codes.h"  #include "scu_event_codes.h" -#include "scu_registers.h" +#include "registers.h"  #include "scu_remote_node_context.h"  #include "scu_task_context.h"  #include "scu_unsolicited_frame.h" diff --git a/drivers/scsi/isci/host.h b/drivers/scsi/isci/host.h index 1f542c47fb3a..64edac8ccce1 100644 --- a/drivers/scsi/isci/host.h +++ b/drivers/scsi/isci/host.h @@ -61,9 +61,9 @@  #include "pool.h"  #include "sci_base_state_machine.h"  #include "remote_node_table.h" -#include "scu_registers.h" +#include "registers.h"  #include "scu_unsolicited_frame.h" -#include "scic_sds_unsolicited_frame_control.h" +#include "unsolicited_frame_control.h"  #include "scic_sds_port_configuration_agent.h"  struct scic_sds_request; diff --git a/drivers/scsi/isci/core/scu_registers.h b/drivers/scsi/isci/registers.h index 12f2bacc9c09..9b266c7428e8 100644 --- a/drivers/scsi/isci/core/scu_registers.h +++ b/drivers/scsi/isci/registers.h @@ -63,8 +63,116 @@   *   */ -#include "scu_viit_data.h" +#define SCU_VIIT_ENTRY_ID_MASK         (0xC0000000) +#define SCU_VIIT_ENTRY_ID_SHIFT        (30) +#define SCU_VIIT_ENTRY_FUNCTION_MASK   (0x0FF00000) +#define SCU_VIIT_ENTRY_FUNCTION_SHIFT  (20) + +#define SCU_VIIT_ENTRY_IPPTMODE_MASK   (0x0001F800) +#define SCU_VIIT_ENTRY_IPPTMODE_SHIFT  (12) + +#define SCU_VIIT_ENTRY_LPVIE_MASK      (0x00000F00) +#define SCU_VIIT_ENTRY_LPVIE_SHIFT     (8) + +#define SCU_VIIT_ENTRY_STATUS_MASK     (0x000000FF) +#define SCU_VIIT_ENTRY_STATUS_SHIFT    (0) + +#define SCU_VIIT_ENTRY_ID_INVALID   (0 << SCU_VIIT_ENTRY_ID_SHIFT) +#define SCU_VIIT_ENTRY_ID_VIIT      (1 << SCU_VIIT_ENTRY_ID_SHIFT) +#define SCU_VIIT_ENTRY_ID_IIT       (2 << SCU_VIIT_ENTRY_ID_SHIFT) +#define SCU_VIIT_ENTRY_ID_VIRT_EXP  (3 << SCU_VIIT_ENTRY_ID_SHIFT) + +#define SCU_VIIT_IPPT_SSP_INITIATOR (0x01 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) +#define SCU_VIIT_IPPT_SMP_INITIATOR (0x02 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) +#define SCU_VIIT_IPPT_STP_INITIATOR (0x04 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) +#define SCU_VIIT_IPPT_INITIATOR	    \ +	(\ +		SCU_VIIT_IPPT_SSP_INITIATOR  \ +		| SCU_VIIT_IPPT_SMP_INITIATOR  \ +		| SCU_VIIT_IPPT_STP_INITIATOR  \ +	) + +#define SCU_VIIT_STATUS_RNC_VALID      (0x01 << SCU_VIIT_ENTRY_STATUS_SHIFT) +#define SCU_VIIT_STATUS_ADDRESS_VALID  (0x02 << SCU_VIIT_ENTRY_STATUS_SHIFT) +#define SCU_VIIT_STATUS_RNI_VALID      (0x04 << SCU_VIIT_ENTRY_STATUS_SHIFT) +#define SCU_VIIT_STATUS_ALL_VALID      \ +	(\ +		SCU_VIIT_STATUS_RNC_VALID	\ +		| SCU_VIIT_STATUS_ADDRESS_VALID	  \ +		| SCU_VIIT_STATUS_RNI_VALID	  \ +	) + +#define SCU_VIIT_IPPT_SMP_TARGET    (0x10 << SCU_VIIT_ENTRY_IPPTMODE_SHIFT) + +/** + * struct scu_viit_entry - This is the SCU Virtual Initiator Table Entry + * + * + */ +struct scu_viit_entry { +	/** +	 * This must be encoded as to the type of initiator that is being constructed +	 * for this port. +	 */ +	u32 status; + +	/** +	 * Virtual initiator high SAS Address +	 */ +	u32 initiator_sas_address_hi; + +	/** +	 * Virtual initiator low SAS Address +	 */ +	u32 initiator_sas_address_lo; + +	/** +	 * This must be 0 +	 */ +	u32 reserved; + +}; + + +/* IIT Status Defines */ +#define SCU_IIT_ENTRY_ID_MASK                (0xC0000000) +#define SCU_IIT_ENTRY_ID_SHIFT               (30) + +#define SCU_IIT_ENTRY_STATUS_UPDATE_MASK     (0x20000000) +#define SCU_IIT_ENTRY_STATUS_UPDATE_SHIFT    (29) + +#define SCU_IIT_ENTRY_LPI_MASK               (0x00000F00) +#define SCU_IIT_ENTRY_LPI_SHIFT              (8) + +#define SCU_IIT_ENTRY_STATUS_MASK            (0x000000FF) +#define SCU_IIT_ENTRY_STATUS_SHIFT           (0) + +/* IIT Remote Initiator Defines */ +#define SCU_IIT_ENTRY_REMOTE_TAG_MASK  (0x0000FFFF) +#define SCU_IIT_ENTRY_REMOTE_TAG_SHIFT (0) + +#define SCU_IIT_ENTRY_REMOTE_RNC_MASK  (0x0FFF0000) +#define SCU_IIT_ENTRY_REMOTE_RNC_SHIFT (16) + +#define SCU_IIT_ENTRY_ID_INVALID   (0 << SCU_IIT_ENTRY_ID_SHIFT) +#define SCU_IIT_ENTRY_ID_VIIT      (1 << SCU_IIT_ENTRY_ID_SHIFT) +#define SCU_IIT_ENTRY_ID_IIT       (2 << SCU_IIT_ENTRY_ID_SHIFT) +#define SCU_IIT_ENTRY_ID_VIRT_EXP  (3 << SCU_IIT_ENTRY_ID_SHIFT) + +/** + * struct scu_iit_entry - This will be implemented later when we support + *    virtual functions + * + * + */ +struct scu_iit_entry { +	u32 status; +	u32 remote_initiator_sas_address_hi; +	u32 remote_initiator_sas_address_lo; +	u32 remote_initiator; + +};  /* Generate a value for an SCU register */  #define SCU_GEN_VALUE(name, value) \ diff --git a/drivers/scsi/isci/core/scu_completion_codes.h b/drivers/scsi/isci/scu_completion_codes.h index c8b329c695f9..c8b329c695f9 100644 --- a/drivers/scsi/isci/core/scu_completion_codes.h +++ b/drivers/scsi/isci/scu_completion_codes.h diff --git a/drivers/scsi/isci/core/scu_event_codes.h b/drivers/scsi/isci/scu_event_codes.h index 36a945ad5722..36a945ad5722 100644 --- a/drivers/scsi/isci/core/scu_event_codes.h +++ b/drivers/scsi/isci/scu_event_codes.h diff --git a/drivers/scsi/isci/core/scu_task_context.h b/drivers/scsi/isci/scu_task_context.h index 7df87d923285..7df87d923285 100644 --- a/drivers/scsi/isci/core/scu_task_context.h +++ b/drivers/scsi/isci/scu_task_context.h diff --git a/drivers/scsi/isci/core/scu_unsolicited_frame.h b/drivers/scsi/isci/scu_unsolicited_frame.h index 187c4f03f596..187c4f03f596 100644 --- a/drivers/scsi/isci/core/scu_unsolicited_frame.h +++ b/drivers/scsi/isci/scu_unsolicited_frame.h diff --git a/drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.c b/drivers/scsi/isci/unsolicited_frame_control.c index d0e03731377e..8d68dcc52bc1 100644 --- a/drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.c +++ b/drivers/scsi/isci/unsolicited_frame_control.c @@ -54,8 +54,8 @@   */  #include "host.h" -#include "scic_sds_unsolicited_frame_control.h" -#include "scu_registers.h" +#include "unsolicited_frame_control.h" +#include "registers.h"  #include "sci_util.h"  /** diff --git a/drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.h b/drivers/scsi/isci/unsolicited_frame_control.h index 0d8ca8c4770f..0d8ca8c4770f 100644 --- a/drivers/scsi/isci/core/scic_sds_unsolicited_frame_control.h +++ b/drivers/scsi/isci/unsolicited_frame_control.h | 
