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

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

isci: Convert ATA defines to Linux native defines



* Removing all intel_sata and intel_ata defines
* Removing the usage of SAT_PROTOCOL_*. We can get everything from sas_task
* Moved SATA FIS types to local sas.h. These defines will have to go
  into include/scsi/sas.h eventually.
* Added offsets for SATA FIS header in order to grab the values

Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent f2f30080
Loading
Loading
Loading
Loading
+0 −554
Original line number Diff line number Diff line
/*
 * 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.
 */

/**
 * This file defines all of the ATA related constants, enumerations, and types.
 *     Please note that this file does not necessarily contain an exhaustive
 *    list of all constants, commands, sub-commands, etc.
 *
 *
 */

#ifndef _ATA_H_
#define _ATA_H_

#include <linux/types.h>

/**
 *
 *
 * ATA_COMMAND_CODES These constants depict the various ATA command codes
 * defined in the ATA/ATAPI specification.
 */
#define ATA_IDENTIFY_DEVICE         0xEC
#define ATA_CHECK_POWER_MODE        0xE5
#define ATA_STANDBY                 0xE2
#define ATA_STANDBY_IMMED           0xE0
#define ATA_IDLE_IMMED              0xE1
#define ATA_IDLE                    0xE3
#define ATA_FLUSH_CACHE             0xE7
#define ATA_FLUSH_CACHE_EXT         0xEA
#define ATA_READ_DMA_EXT            0x25
#define ATA_READ_DMA                0xC8
#define ATA_READ_SECTORS_EXT        0x24
#define ATA_READ_SECTORS            0x20
#define ATA_WRITE_DMA_EXT           0x35
#define ATA_WRITE_DMA               0xCA
#define ATA_WRITE_SECTORS_EXT       0x34
#define ATA_WRITE_SECTORS           0x30
#define ATA_WRITE_UNCORRECTABLE     0x45
#define ATA_READ_VERIFY_SECTORS     0x40
#define ATA_READ_VERIFY_SECTORS_EXT 0x42
#define ATA_READ_BUFFER             0xE4
#define ATA_WRITE_BUFFER            0xE8
#define ATA_EXECUTE_DEVICE_DIAG     0x90
#define ATA_SET_FEATURES            0xEF
#define ATA_SMART                   0xB0
#define ATA_PACKET_IDENTIFY         0xA1
#define ATA_PACKET                  0xA0
#define ATA_READ_FPDMA              0x60
#define ATA_WRITE_FPDMA             0x61
#define ATA_READ_LOG_EXT            0x2F
#define ATA_NOP                     0x00
#define ATA_DEVICE_RESET            0x08
#define ATA_MEDIA_EJECT             0xED

/**
 *
 *
 * ATA_SMART_SUB_COMMAND_CODES These constants define the ATA SMART command
 * sub-codes that can be executed.
 */
#define ATA_SMART_SUB_CMD_ENABLE        0xD8
#define ATA_SMART_SUB_CMD_DISABLE       0xD9
#define ATA_SMART_SUB_CMD_RETURN_STATUS 0xDA
#define ATA_SMART_SUB_CMD_READ_LOG      0xD5

/**
 *
 *
 * ATA_SET_FEATURES_SUB_COMMAND_CODES These constants define the ATA SET
 * FEATURES command sub-codes that can be executed.
 */
#define ATA_SET_FEATURES_SUB_CMD_ENABLE_CACHE       0x02
#define ATA_SET_FEATURES_SUB_CMD_DISABLE_CACHE      0x82
#define ATA_SET_FEATURES_SUB_CMD_DISABLE_READ_AHEAD 0x55
#define ATA_SET_FEATURES_SUB_CMD_ENABLE_READ_AHEAD  0xAA
#define ATA_SET_FEATURES_SUB_CMD_SET_TRANSFER_MODE  0x3

/**
 *
 *
 * ATA_READ_LOG_EXT_PAGE_CODES This is a list of log page codes available for
 * use.
 */
#define ATA_LOG_PAGE_NCQ_ERROR                  0x10
#define ATA_LOG_PAGE_SMART_SELF_TEST            0x06
#define ATA_LOG_PAGE_EXTENDED_SMART_SELF_TEST   0x07

/**
 *
 *
 * ATA_LOG_PAGE_NCQ_ERROR_CONSTANTS These constants define standard values for
 * use when requesting the NCQ error log page.
 */
#define ATA_LOG_PAGE_NCQ_ERROR_SECTOR        0
#define ATA_LOG_PAGE_NCQ_ERROR_SECTOR_COUNT  1

/**
 *
 *
 * ATA_STATUS_REGISTER_BITS The following are status register bit definitions
 * per ATA/ATAPI-7.
 */
#define ATA_STATUS_REG_BSY_BIT          0x80
#define ATA_STATUS_REG_DEVICE_FAULT_BIT 0x20
#define ATA_STATUS_REG_ERROR_BIT        0x01

/**
 *
 *
 * ATA_ERROR_REGISTER_BITS The following are error register bit definitions per
 * ATA/ATAPI-7.
 */
#define ATA_ERROR_REG_NO_MEDIA_BIT              0x02
#define ATA_ERROR_REG_ABORT_BIT                 0x04
#define ATA_ERROR_REG_MEDIA_CHANGE_REQUEST_BIT  0x08
#define ATA_ERROR_REG_ID_NOT_FOUND_BIT          0x10
#define ATA_ERROR_REG_MEDIA_CHANGE_BIT          0x20
#define ATA_ERROR_REG_UNCORRECTABLE_BIT         0x40
#define ATA_ERROR_REG_WRITE_PROTECTED_BIT       0x40
#define ATA_ERROR_REG_ICRC_BIT                  0x80

/**
 *
 *
 * ATA_CONTROL_REGISTER_BITS The following are control register bit definitions
 * per ATA/ATAPI-7
 */
#define ATA_CONTROL_REG_INTERRUPT_ENABLE_BIT 0x02
#define ATA_CONTROL_REG_SOFT_RESET_BIT       0x04
#define ATA_CONTROL_REG_HIGH_ORDER_BYTE_BIT  0x80

/**
 *
 *
 * ATA_DEVICE_HEAD_REGISTER_BITS The following are device/head register bit
 * definitions per ATA/ATAPI-7.
 */
#define ATA_DEV_HEAD_REG_LBA_MODE_ENABLE  0x40
#define ATA_DEV_HEAD_REG_FUA_ENABLE       0x80

/**
 *
 *
 * ATA_IDENTIFY_DEVICE_FIELD_LENGTHS The following constants define the number
 * of bytes contained in various fields found in the IDENTIFY DEVICE data
 * structure.
 */
#define ATA_IDENTIFY_SERIAL_NUMBER_LEN        20
#define ATA_IDENTIFY_MODEL_NUMBER_LEN         40
#define ATA_IDENTIFY_FW_REVISION_LEN          8
#define ATA_IDENTIFY_48_LBA_LEN               8
#define ATA_IDENTIFY_MEDIA_SERIAL_NUMBER_LEN  30
#define ATA_IDENTIFY_WWN_LEN                  8

/**
 *
 *
 * ATA_IDENTIFY_DEVICE_FIELD_MASKS The following constants define bit masks
 * utilized to determine if a feature is supported/enabled or if a bit is
 * simply set inside of the IDENTIFY DEVICE data structre.
 */
#define ATA_IDENTIFY_REMOVABLE_MEDIA_ENABLE              0x0080
#define ATA_IDENTIFY_CAPABILITIES1_NORMAL_DMA_ENABLE     0x0100
#define ATA_IDENTIFY_CAPABILITIES1_STANDBY_ENABLE        0x2000
#define ATA_IDENTIFY_COMMAND_SET_SUPPORTED0_SMART_ENABLE 0x0001
#define ATA_IDENTIFY_COMMAND_SET_SUPPORTED1_48BIT_ENABLE 0x0400
#define ATA_IDENTIFY_COMMAND_SET_WWN_SUPPORT_ENABLE      0x0100
#define ATA_IDENTIFY_COMMAND_SET_ENABLED0_SMART_ENABLE   0x0001
#define ATA_IDENTIFY_SATA_CAPABILITIES_NCQ_ENABLE        0x0100
#define ATA_IDENTIFY_NCQ_QUEUE_DEPTH_ENABLE              0x001F
#define ATA_IDENTIFY_SECTOR_LARGER_THEN_512_ENABLE       0x0100
#define ATA_IDENTIFY_LOGICAL_SECTOR_PER_PHYSICAL_SECTOR_MASK   0x000F
#define ATA_IDENTIFY_LOGICAL_SECTOR_PER_PHYSICAL_SECTOR_ENABLE 0x2000
#define ATA_IDENTIFY_WRITE_UNCORRECTABLE_SUPPORT         0x0004
#define ATA_IDENTIFY_COMMAND_SET_SMART_SELF_TEST_SUPPORTED     0x0002

/**
 *
 *
 * ATAPI_IDENTIFY_DEVICE_FIELD_MASKS These constants define the various bit
 * definitions for the fields in the PACKET IDENTIFY DEVICE data structure.
 */
#define ATAPI_IDENTIFY_16BYTE_CMD_PCKT_ENABLE       0x01

/**
 *
 *
 * ATA_PACKET_FEATURE_BITS These constants define the various bit definitions
 * for the ATA PACKET feature register.
 */
#define ATA_PACKET_FEATURE_DMA     0x01
#define ATA_PACKET_FEATURE_OVL     0x02
#define ATA_PACKET_FEATURE_DMADIR  0x04

/**
 *
 *
 * ATA_Device_Power_Mode_Values These constants define the power mode values
 * returned by ATA_Check_Power_Mode
 */
#define ATA_STANDBY_POWER_MODE    0x00
#define ATA_IDLE_POWER_MODE       0x80
#define ATA_ACTIVE_POWER_MODE     0xFF

/**
 *
 *
 * ATA_WRITE_UNCORRECTIABLE feature field values These constants define the
 * Write Uncorrectable feature values used with the SATI translation.
 */
#define ATA_WRITE_UNCORRECTABLE_PSUEDO    0x55
#define ATA_WRITE_UNCORRECTABLE_FLAGGED   0xAA



/**
 * struct ATA_IDENTIFY_DEVICE - This structure depicts the ATA IDENTIFY DEVICE
 *    data format.
 *
 *
 */
struct ata_identify_device_data {
	u16 general_config_bits;                                                /* word  00 */
	u16 obsolete0;                                                          /* word  01 (num cylinders) */
	u16 vendor_specific_config_bits;                                        /* word  02 */
	u16 obsolete1;                                                          /* word  03 (num heads) */
	u16 retired1[2];                                                        /* words 04-05 */
	u16 obsolete2;                                                          /* word  06 (sectors / track) */
	u16 reserved_for_compact_flash1[2];                                     /* words 07-08 */
	u16 retired0;                                                           /* word  09 */
	u8 serial_number[ATA_IDENTIFY_SERIAL_NUMBER_LEN];                       /* word 10-19 */
	u16 retired2[2];                                                        /* words 20-21 */
	u16 obsolete4;                                                          /* word  22 */
	u8 firmware_revision[ATA_IDENTIFY_FW_REVISION_LEN];                     /* words 23-26 */
	u8 model_number[ATA_IDENTIFY_MODEL_NUMBER_LEN];                         /* words 27-46 */
	u16 max_sectors_per_multiple;                                           /* word  47 */
	u16 reserved0;                                                          /* word  48 */
	u16 capabilities1;                                                      /* word  49 */
	u16 capabilities2;                                                      /* word  50 */
	u16 obsolete5[2];                                                       /* words 51-52 */
	u16 validity_bits;                                                      /* word  53 */
	u16 obsolete6[5];                                                       /*
										 * words 54-58 Used to be:
										 * current cylinders,
										 * current heads,
										 * current sectors/Track,
										 * current capacity */
	u16 current_max_sectors_per_multiple;                                   /* word  59 */
	u8 total_num_sectors[4];                                                /* words 60-61 */
	u16 obsolete7;                                                          /* word  62 */
	u16 multi_word_dma_mode;                                                /* word  63 */
	u16 pio_modes_supported;                                                /* word  64 */
	u16 min_multiword_dma_transfer_cycle;                                   /* word  65 */
	u16 rec_min_multiword_dma_transfer_cycle;                               /* word  66 */
	u16 min_pio_transfer_no_flow_ctrl;                                      /* word  67 */
	u16 min_pio_transfer_with_flow_ctrl;                                    /* word  68 */
	u16 reserved1[2];                                                       /* words 69-70 */
	u16 reserved2[4];                                                       /* words 71-74 */
	u16 queue_depth;                                                        /* word  75 */
	u16 serial_ata_capabilities;                                            /* word  76 */
	u16 serial_ata_reserved;                                                /* word  77 */
	u16 serial_ata_features_supported;                                      /* word  78 */
	u16 serial_ata_features_enabled;                                        /* word  79 */
	u16 major_version_number;                                               /* word  80 */
	u16 minor_version_number;                                               /* word  81 */
	u16 command_set_supported0;                                             /* word  82 */
	u16 command_set_supported1;                                             /* word  83 */
	u16 command_set_supported_extention;                                    /* word  84 */
	u16 command_set_enabled0;                                               /* word  85 */
	u16 command_set_enabled1;                                               /* word  86 */
	u16 command_set_default;                                                /* word  87 */
	u16 ultra_dma_mode;                                                     /* word  88 */
	u16 security_erase_completion_time;                                     /* word  89 */
	u16 enhanced_security_erase_time;                                       /* word  90 */
	u16 current_power_mgmt_value;                                           /* word  91 */
	u16 master_password_revision;                                           /* word  92 */
	u16 hardware_reset_result;                                              /* word  93 */
	u16 current_acoustic_management_value;                                  /* word  94 */
	u16 stream_min_request_size;                                            /* word  95 */
	u16 stream_transfer_time;                                               /* word  96 */
	u16 stream_access_latency;                                              /* word  97 */
	u16 stream_performance_granularity[2];                                  /* words 98-99 */
	u8 max_48bit_lba[ATA_IDENTIFY_48_LBA_LEN];                              /* words 100-103 */
	u16 streaming_transfer_time;                                            /* word  104 */
	u16 reserved3;                                                          /* word  105 */
	u16 physical_logical_sector_info;                                       /* word  106 */
	u16 acoustic_test_interseek_delay;                                      /* word  107 */
	u8 world_wide_name[ATA_IDENTIFY_WWN_LEN];                               /* words 108-111 */
	u8 reserved_for_wwn_extention[ATA_IDENTIFY_WWN_LEN];                    /* words 112-115 */
	u16 reserved4;                                                          /* word  116 */
	u8 words_per_logical_sector[4];                                         /* words 117-118 */
	u16 command_set_supported2;                                             /* word  119 */
	u16 reserved5[7];                                                       /* words 120-126 */
	u16 removable_media_status;                                             /* word  127 */
	u16 security_status;                                                    /* word  128 */
	u16 vendor_specific1[31];                                               /* words 129-159 */
	u16 cfa_power_mode1;                                                    /* word  160 */
	u16 reserved_for_compact_flash2[7];                                     /* words 161-167 */
	u16 device_nominal_form_factor;                                         /* word 168 */
	u16 reserved_for_compact_flash3[7];                                     /* words 169-175 */
	u16 current_media_serial_number[ATA_IDENTIFY_MEDIA_SERIAL_NUMBER_LEN];  /* words 176-205 */
	u16 reserved6[3];                                                       /* words 206-208 */
	u16 logical_sector_alignment;                                           /* words 209 */
	u16 reserved7[7];                                                       /* words 210-216 */
	u16 nominal_media_rotation_rate;                                        /* word 217 */
	u16 reserved8[37];                                                      /* words 218-254 */
	u16 integrity_word;                                                     /* word  255 */

};

#define ATA_IDENTIFY_DEVICE_GET_OFFSET(field_name) \
	((unsigned long)&(((struct ata_identify_device_data *)0)->field_name))
#define ATA_IDENTIFY_DEVICE_WCE_ENABLE  0x20
#define ATA_IDENTIFY_DEVICE_RA_ENABLE   0x40

/**
 * struct ATAPI_IDENTIFY_PACKET_DATA - The following structure depicts the
 *    ATA-ATAPI 7 version of the IDENTIFY PACKET DEVICE data structure.
 *
 *
 */
struct atapi_identify_packet_device {
	u16 generalConfigBits;                                  /* word  00 */
	u16 reserved0;                                          /* word  01 (num cylinders) */
	u16 uniqueConfigBits;                                   /* word  02 */
	u16 reserved1[7];                                       /* words 03 - 09 */
	u8 serialNumber[ATA_IDENTIFY_SERIAL_NUMBER_LEN];        /* word 10-19 */
	u16 reserved2[3];                                       /* words 20-22 */
	u8 firmwareRevision[ATA_IDENTIFY_FW_REVISION_LEN];      /* words 23-26 */
	u8 modelNumber[ATA_IDENTIFY_MODEL_NUMBER_LEN];          /* words 27-46 */
	u16 reserved4[2];                                       /* words 47-48 */
	u16 capabilities1;                                      /* word  49 */
	u16 capabilities2;                                      /* word  50 */
	u16 obsolete0[2];                                       /* words 51-52 */
	u16 validityBits;                                       /* word  53 */
	u16 reserved[8];                                        /* words 54-61 */

	u16 DMADIRBitRequired;                                  /* word  62, page2 */
	u16 multiWordDmaMode;                                   /* word  63 */
	u16 pioModesSupported;                                  /* word  64 */
	u16 minMultiwordDmaTransferCycle;                       /* word  65 */
	u16 recMinMultiwordDmaTransferCycle;                    /* word  66 */
	u16 minPioTransferNoFlowCtrl;                           /* word  67 */
	u16 minPioTransferWithFlowCtrl;                         /* word  68 */
	u16 reserved6[2];                                       /* words 69-70 */
	u16 nsFromPACKETReceiptToBusRelease;                    /* word  71 */
	u16 nsFromSERVICEReceiptToBSYreset;                     /* wore  72 */
	u16 reserved7[2];                                       /* words 73-74 */
	u16 queueDepth;                                         /* word  75 */
	u16 serialAtaCapabilities;                              /* word  76 */
	u16 serialAtaReserved;                                  /* word  77 */
	u16 serialAtaFeaturesSupported;                         /* word  78 */
	u16 serialAtaFeaturesEnabled;                           /* word  79 */

	u16 majorVersionNumber;                                 /* word  80, page3 */
	u16 minorVersionNumber;                                 /* word  81 */
	u16 commandSetSupported0;                               /* word  82 */
	u16 commandSetSupported1;                               /* word  83 */

	u16 commandSetSupportedExtention;                       /* word  84, page4 */
	u16 commandSetEnabled0;                                 /* word  85 */
	u16 commandSetEnabled1;                                 /* word  86 */
	u16 commandSetDefault;                                  /* word  87 */

	u16 ultraDmaMode;                                       /* word  88, page5 */
	u16 reserved8[4];                                       /* words 89 - 92 */

	u16 hardwareResetResult;                                /* word  93, page6 */
	u16 currentAcousticManagementValue;                     /* word  94 */
	u16 reserved9[30];                                      /* words 95-124 */
	u16 ATAPIByteCount0Behavior;                            /* word  125 */
	u16 obsolete1;                                          /* word  126 */
	u16 removableMediaStatus;                               /* word  127, */

	u16 securityStatus;                                     /* word  128, page7 */
	u16 vendorSpecific1[31];                                /* words 129-159 */
	u16 reservedForCompactFlash[16];                        /* words 160-175 */
	u16 reserved10[79];                                     /* words 176-254 */
	u16 integrityWord;                                      /* word  255 */
};

/**
 * struct ata_extended_smart_self_test_log - The following structure depicts
 *    the ATA-8 version of the Extended SMART self test log page descriptor
 *    entry.
 *
 *
 */
union ata_descriptor_entry {
	struct DESCRIPTOR_ENTRY {
		u8 lba_field;
		u8 status_byte;
		u8 time_stamp_low;
		u8 time_stamp_high;
		u8 checkpoint_byte;
		u8 failing_lba_low;
		u8 failing_lba_mid;
		u8 failing_lba_high;
		u8 failing_lba_low_ext;
		u8 failing_lba_mid_ext;
		u8 failing_lba_high_ext;

		u8 vendor_specific1;
		u8 vendor_specific2;
		u8 vendor_specific3;
		u8 vendor_specific4;
		u8 vendor_specific5;
		u8 vendor_specific6;
		u8 vendor_specific7;
		u8 vendor_specific8;
		u8 vendor_specific9;
		u8 vendor_specific10;
		u8 vendor_specific11;
		u8 vendor_specific12;
		u8 vendor_specific13;
		u8 vendor_specific14;
		u8 vendor_specific15;
	} DESCRIPTOR_ENTRY;

	u8 descriptor_entry[26];

};

/**
 * struct ata_extended_smart_self_test_log - The following structure depicts
 *    the ATA-8 version of the SMART self test log page descriptor entry.
 *
 *
 */
union ata_smart_descriptor_entry {
	struct SMART_DESCRIPTOR_ENTRY {
		u8 lba_field;
		u8 status_byte;
		u8 time_stamp_low;
		u8 time_stamp_high;
		u8 checkpoint_byte;
		u8 failing_lba_low;
		u8 failing_lba_mid;
		u8 failing_lba_high;
		u8 failing_lba_low_ext;

		u8 vendor_specific1;
		u8 vendor_specific2;
		u8 vendor_specific3;
		u8 vendor_specific4;
		u8 vendor_specific5;
		u8 vendor_specific6;
		u8 vendor_specific7;
		u8 vendor_specific8;
		u8 vendor_specific9;
		u8 vendor_specific10;
		u8 vendor_specific11;
		u8 vendor_specific12;
		u8 vendor_specific13;
		u8 vendor_specific14;
		u8 vendor_specific15;
	} SMART_DESCRIPTOR_ENTRY;

	u8 smart_descriptor_entry[24];

};

/**
 * struct ata_extended_smart_self_test_log - The following structure depicts
 *    the ATA-8 version of the Extended SMART self test log page.
 *
 *
 */
struct ata_extended_smart_self_test_log {
	u8 self_test_log_data_structure_revision_number;        /* byte 0 */
	u8 reserved0;                                           /* byte 1 */
	u8 self_test_descriptor_index[2];                       /* byte 2-3 */

	union ata_descriptor_entry descriptor_entrys[19];           /* bytes 4-497 */

	u8 vendor_specific[2];                                  /* byte 498-499 */
	u8 reserved1[11];                                       /* byte 500-510 */
	u8 data_structure_checksum;                             /* byte 511 */

};

/**
 * struct ata_extended_smart_self_test_log - The following structure depicts
 *    the ATA-8 version of the SMART self test log page.
 *
 *
 */
struct ata_smart_self_test_log {
	u8 self_test_log_data_structure_revision_number[2];     /* bytes 0-1 */

	union ata_smart_descriptor_entry descriptor_entrys[21];     /* bytes 2-505 */

	u8 vendor_specific[2];                                  /* byte 506-507 */
	u8 self_test_index;                                     /* byte 508 */
	u8 reserved1[2];                                        /* byte 509-510 */
	u8 data_structure_checksum;                             /* byte 511 */

};

#endif /* _ATA_H_ */
+1 −2
Original line number Diff line number Diff line
@@ -62,8 +62,7 @@
 *
 *
 */

#include "intel_sata.h"
#include <linux/kernel.h>
#include "intel_scsi.h"

/**
+0 −224

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −1
Original line number Diff line number Diff line
@@ -67,7 +67,6 @@
#include <scsi/sas.h>
#include <scsi/libsas.h>
#include "sci_status.h"
#include "intel_sata.h"
#include "intel_sas.h"

struct scic_sds_phy;
+9 −14

File changed.

Preview size limit exceeded, changes collapsed.

Loading