Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2f30080 authored by Dave Jiang's avatar Dave Jiang Committed by Dan Williams
Browse files

isci: Convert SATA fis data structures to Linux native



Converting of sata_fis_reg_d2h to dev_to_host_fis
Converting of sata_fis_reg_h2d to host_to_dev_fis

Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent c6d42257
Loading
Loading
Loading
Loading
+0 −56
Original line number Diff line number Diff line
@@ -101,62 +101,6 @@ struct sata_fis_header {
	u32 error:8;
};


/**
 * struct sata_fis_reg_h2d - This is the definition for a SATA Host to Device
 *    Register FIS.
 *
 *
 */
struct sata_fis_reg_h2d {
	u32 fis_type:8; /* word 0 */
	u32 pm_port:4;
	u32 reserved0:3;
	u32 command_flag:1;
	u32 command:8;
	u32 features:8;
	u32 lba_low:8; /* word 1 */
	u32 lba_mid:8;
	u32 lba_high:8;
	u32 device:8;
	u32 lba_low_exp:8; /* word 2 */
	u32 lba_mid_exp:8;
	u32 lba_high_exp:8;
	u32 features_exp:8;
	u32 sector_count:8; /* word 3 */
	u32 sector_count_exp:8;
	u32 reserved1:8;
	u32 control:8;
	u32 reserved2;          /* word 4 */
};

/**
 * struct sata_fis_reg_d2h - SATA Device To Host FIS
 *
 *
 */
struct sata_fis_reg_d2h {
	u32 fis_type:8;   /* word 0 */
	u32 pm_port:4;
	u32 reserved0:2;
	u32 irq:1;
	u32 reserved1:1;
	u32 status:8;
	u32 error:8;
	u8 lba_low;          /* word 1 */
	u8 lba_mid;
	u8 lba_high;
	u8 device;
	u8 lba_low_exp;      /* word 2 */
	u8 lba_mid_exp;
	u8 lba_high_exp;
	u8 reserved;
	u8 sector_count;     /* word 3 */
	u8 sector_count_exp;
	u16 reserved2;
	u32 reserved3;
};

/**
 *
 *
+3 −3
Original line number Diff line number Diff line
@@ -64,11 +64,11 @@
 */


#include <scsi/sas.h>
#include <scsi/libsas.h>
#include "sci_status.h"

#include "intel_sata.h"
#include "intel_sas.h"
#include <scsi/libsas.h>

struct scic_sds_phy;
struct scic_sds_port;
@@ -141,7 +141,7 @@ struct scic_sata_phy_properties {
	 * This field delineates the signature FIS received from the
	 * attached target.
	 */
	struct sata_fis_reg_d2h signature_fis;
	struct dev_to_host_fis signature_fis;

	/**
	 * This field specifies to the user if a port selector is connected
+5 −10
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@
 */

#include <linux/device.h>
#include <scsi/sas.h>
#include "scic_controller.h"
#include "scic_phy.h"
#include "scic_port.h"
@@ -1754,17 +1755,11 @@ void scic_sds_controller_copy_sata_response(
	void *frame_header,
	void *frame_buffer)
{
	memcpy(
		response_buffer,
		frame_header,
		sizeof(u32)
		);
	memcpy(response_buffer, frame_header, sizeof(u32));

	memcpy(
		(char *)((char *)response_buffer + sizeof(u32)),
	memcpy(response_buffer + sizeof(u32),
	       frame_buffer,
		sizeof(struct sata_fis_reg_d2h) - sizeof(u32)
		);
	       sizeof(struct dev_to_host_fis) - sizeof(u32));
}

/**
+4 −5
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include <scsi/sas.h>
#include "intel_ata.h"
#include "intel_sata.h"
#include "sci_base_state.h"
@@ -620,11 +621,9 @@ enum sci_status scic_sata_phy_get_properties(
	struct scic_sata_phy_properties *properties)
{
	if (sci_phy->protocol == SCIC_SDS_PHY_PROTOCOL_SATA) {
		memcpy(
			&properties->signature_fis,
		memcpy(&properties->signature_fis,
		       &sci_phy->phy_type.sata.signature_fis_buffer,
			sizeof(struct sata_fis_reg_d2h)
			);
		       sizeof(struct dev_to_host_fis));

		/* / @todo add support for port selectors. */
		properties->is_port_selector_present = false;
+1 −1
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ struct scic_sds_phy {
		} sas;

		struct {
			struct sata_fis_reg_d2h signature_fis_buffer;
			struct dev_to_host_fis signature_fis_buffer;

		} sata;

Loading