Lines Matching +full:trim +full:- +full:data +full:- +full:valid

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause OR GPL-2.0
9 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
22 * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
28 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
49 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
70 * @brief This method simply initializes the data members in the device
74 * initialize the data members.
92 device->state = SATI_DEVICE_STATE_OPERATIONAL; in sati_device_construct()
93 device->capabilities = 0; in sati_device_construct()
94 device->descriptor_sense_enable = SCSI_MODE_PAGE_CONTROL_D_SENSE_DISABLE; in sati_device_construct()
99 device->capabilities |= SATI_DEVICE_CAP_NCQ_REQUESTED_ENABLE; in sati_device_construct()
101 device->ncq_depth = max_ncq_depth; in sati_device_construct()
105 device->capabilities |= SATI_DEVICE_CAP_IGNORE_FUA; in sati_device_construct()
128 if (identify->capabilities1 & ATA_IDENTIFY_CAPABILITIES1_NORMAL_DMA_ENABLE) in sati_device_update_capabilities()
131 if (identify->command_set_supported1 in sati_device_update_capabilities()
137 if (identify->command_set_supported0 in sati_device_update_capabilities()
143 if (identify->command_set_enabled0 in sati_device_update_capabilities()
150 if (identify->serial_ata_capabilities in sati_device_update_capabilities()
153 if (device->capabilities & SATI_DEVICE_CAP_NCQ_REQUESTED_ENABLE) in sati_device_update_capabilities()
158 device->ncq_depth = MIN( in sati_device_update_capabilities()
159 device->ncq_depth, in sati_device_update_capabilities()
160 (U8) (identify->queue_depth in sati_device_update_capabilities()
167 if (device->capabilities & SATI_DEVICE_CAP_IGNORE_FUA) in sati_device_update_capabilities()
170 if (identify->general_config_bits & ATA_IDENTIFY_REMOVABLE_MEDIA_ENABLE) in sati_device_update_capabilities()
173 if(identify->command_set_supported2 & ATA_IDENTIFY_WRITE_UNCORRECTABLE_SUPPORT ) in sati_device_update_capabilities()
178 if(identify->physical_logical_sector_info & in sati_device_update_capabilities()
184 if(identify->command_set_supported_extention & in sati_device_update_capabilities()
190 if (identify->nominal_media_rotation_rate == 1) in sati_device_update_capabilities()
196 // See if Word 106 is valid and reports a logical sector size in sati_device_update_capabilities()
197 if ((identify->physical_logical_sector_info & 0x5000) == 0x5000) in sati_device_update_capabilities()
199 device->logical_block_size = (identify->words_per_logical_sector[3] << 24) | in sati_device_update_capabilities()
200 (identify->words_per_logical_sector[2] << 16) | in sati_device_update_capabilities()
201 (identify->words_per_logical_sector[1] << 8) | in sati_device_update_capabilities()
202 (identify->words_per_logical_sector[0]); in sati_device_update_capabilities()
206 device->logical_block_size = 512; in sati_device_update_capabilities()
209 // Determine DSM TRIM capabilities in sati_device_update_capabilities()
210 // Defend against SSDs which report TRIM support, but set in sati_device_update_capabilities()
211 // max_lba_range_entry_blocks to zero, by disabling TRIM for in sati_device_update_capabilities()
214 (identify->data_set_management & ATA_IDENTIFY_COMMAND_SET_DSM_TRIM_SUPPORTED) in sati_device_update_capabilities()
215 && (identify->max_lba_range_entry_blocks > 0) in sati_device_update_capabilities()
219 device->max_lba_range_entry_blocks = identify->max_lba_range_entry_blocks; in sati_device_update_capabilities()
222 if (identify->additional_supported in sati_device_update_capabilities()
228 if (identify->additional_supported in sati_device_update_capabilities()
234 if (identify->capabilities1 in sati_device_update_capabilities()
240 device->min_blocks_per_microcode_command = identify->min_num_blocks_per_microcode; in sati_device_update_capabilities()
241 device->max_blocks_per_microcode_command = identify->max_num_blocks_per_microcode; in sati_device_update_capabilities()
243 device->capabilities = capabilities; in sati_device_update_capabilities()