diff --git a/src/opensuperclone/clone_gui.c b/src/opensuperclone/clone_gui.c index 7896d90..e504288 100644 --- a/src/opensuperclone/clone_gui.c +++ b/src/opensuperclone/clone_gui.c @@ -3005,6 +3005,7 @@ void display_identify_data_ccc(void) GtkWidget *identify_rebuild_assist_checkbox = GTK_WIDGET(gtk_builder_get_object(builder, "identify_rebuild_assist_checkbox")); GtkWidget *identify_ncq_checkbox = GTK_WIDGET(gtk_builder_get_object(builder, "identify_ncq_checkbox")); GtkWidget *identify_sct_error_recovery_checkbox = GTK_WIDGET(gtk_builder_get_object(builder, "identify_sct_error_recovery_checkbox")); + GtkWidget *identify_trim_supported_checkbox = GTK_WIDGET(gtk_builder_get_object(builder, "identify_trim_supported_checkbox")); GtkWidget *identify_mdma_label = GTK_WIDGET(gtk_builder_get_object(builder, "identify_mdma_label")); GtkWidget *identify_mdma_supported_label = GTK_WIDGET(gtk_builder_get_object(builder, "identify_mdma_supported_label")); @@ -3049,6 +3050,7 @@ void display_identify_data_ccc(void) gtk_button_set_label(GTK_BUTTON(identify_rebuild_assist_checkbox), _("Rebuild Assist Supported")); gtk_button_set_label(GTK_BUTTON(identify_ncq_checkbox), _("NCQ Supported")); gtk_button_set_label(GTK_BUTTON(identify_sct_error_recovery_checkbox), _("SCT Error Recovery Supported")); + gtk_button_set_label(GTK_BUTTON(identify_trim_supported_checkbox), _("TRIM Supported")); gtk_label_set_text(GTK_LABEL(identify_mdma_label), _("Multiword DMA Support")); gtk_label_set_text(GTK_LABEL(identify_mdma_supported_label), _("Supported")); @@ -3088,6 +3090,7 @@ void display_identify_data_ccc(void) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_rebuild_assist_checkbox), identify_device_data_ccc.rebuild_assist_supported); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_ncq_checkbox), identify_device_data_ccc.ncq_supported); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_sct_error_recovery_checkbox), identify_device_data_ccc.sct_error_recovery_control); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_trim_supported_checkbox), identify_device_data_ccc.trim_supported); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_mdma_supported_0_checkbox), identify_device_data_ccc.mdma_mode_0_supported); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(identify_mdma_supported_1_checkbox), identify_device_data_ccc.mdma_mode_1_supported); diff --git a/src/opensuperclone/clone_gui_common.h b/src/opensuperclone/clone_gui_common.h index d7e4a5d..32ff530 100644 --- a/src/opensuperclone/clone_gui_common.h +++ b/src/opensuperclone/clone_gui_common.h @@ -130,6 +130,7 @@ struct bool rebuild_assist_supported; bool ncq_supported; bool sct_error_recovery_control; + bool trim_supported; bool mdma_mode_0_supported; bool mdma_mode_1_supported; bool mdma_mode_2_supported; diff --git a/src/opensuperclone/opensuperclone.c b/src/opensuperclone/opensuperclone.c index 915f648..1764037 100644 --- a/src/opensuperclone/opensuperclone.c +++ b/src/opensuperclone/opensuperclone.c @@ -13721,6 +13721,7 @@ int process_source_ccc(void) identify_flags_ccc.rebuild_assist_supported = get_flag_data_from_identify_ccc(78, 11, 11); identify_flags_ccc.ncq_supported = get_flag_data_from_identify_ccc(76, 8, 8); identify_flags_ccc.sct_error_recovery_control = get_flag_data_from_identify_ccc(206, 3, 3); + identify_flags_ccc.trim_supported = get_flag_data_from_identify_ccc(169, 0, 0); identify_flags_ccc.multiword_dma_mode0_supported = get_flag_data_from_identify_ccc(63, 0, 0); identify_flags_ccc.multiword_dma_mode1_supported = get_flag_data_from_identify_ccc(63, 1, 1); identify_flags_ccc.multiword_dma_mode2_supported = get_flag_data_from_identify_ccc(63, 2, 2); @@ -13749,6 +13750,7 @@ int process_source_ccc(void) identify_device_data_ccc.rebuild_assist_supported = identify_flags_ccc.rebuild_assist_supported; identify_device_data_ccc.ncq_supported = identify_flags_ccc.ncq_supported; identify_device_data_ccc.sct_error_recovery_control = identify_flags_ccc.sct_error_recovery_control; + identify_device_data_ccc.trim_supported = identify_flags_ccc.trim_supported; identify_device_data_ccc.mdma_mode_0_supported = identify_flags_ccc.multiword_dma_mode0_supported; identify_device_data_ccc.mdma_mode_1_supported = identify_flags_ccc.multiword_dma_mode1_supported; identify_device_data_ccc.mdma_mode_2_supported = identify_flags_ccc.multiword_dma_mode2_supported; diff --git a/src/opensuperclone/opensuperclone.glade b/src/opensuperclone/opensuperclone.glade index 2be44ec..aee142b 100644 --- a/src/opensuperclone/opensuperclone.glade +++ b/src/opensuperclone/opensuperclone.glade @@ -6308,6 +6308,21 @@ no data 3 + + + trim supported + True + False + True + False + True + + + False + True + 4 + + True diff --git a/src/opensuperclone/opensuperclone.h b/src/opensuperclone/opensuperclone.h index 0b7d20f..c5546d7 100644 --- a/src/opensuperclone/opensuperclone.h +++ b/src/opensuperclone/opensuperclone.h @@ -315,6 +315,7 @@ struct bool smart_enabled; // word 85 bit 0 bool hpa_supported; // word 82 bit 10 bool dco_supported; // word 83 bit 11 + bool trim_supported; // word 169 bit 0 bool multiword_dma_mode0_supported; // word 63 bit 0 bool multiword_dma_mode1_supported; // word 63 bit 1 bool multiword_dma_mode2_supported; // word 63 bit 2