void init_hp_ult_4(struct lu_phy_attr *lu) { init_ult_inquiry(lu); ssc_pm.name = pm_name_lto4; ssc_pm.lu = lu; personality_module_register(&ssc_pm); /* Drive capabilities need to be defined before mode pages */ ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_control_extension(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_device_configuration_extention(lu); add_mode_medium_partition(lu); add_mode_power_condition(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_mode_ult_encr_mode_pages(lu); /* Extra for LTO-4 */ add_mode_vendor_25h_mode_pages(lu); add_mode_encryption_mode_attribute(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); ssc_pm.native_drive_density = &density_lto4; ssc_pm.update_encryption_mode = update_ult_encryption_mode, ssc_pm.encryption_capabilities = encr_capabilities_ult, ssc_pm.kad_validation = hp_lto_kad_validation, ssc_pm.clear_WORM = clear_ult_WORM, ssc_pm.set_WORM = set_ult_WORM, /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; register_ops(lu, SECURITY_PROTOCOL_IN, ssc_spin); register_ops(lu, SECURITY_PROTOCOL_OUT, ssc_spout); add_density_support(&lu->den_list, &density_lto2, 0); add_density_support(&lu->den_list, &density_lto3, 1); add_density_support(&lu->den_list, &density_lto4, 1); add_drive_media_list(lu, LOAD_RO, "LTO2"); add_drive_media_list(lu, LOAD_RO, "LTO2 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3"); add_drive_media_list(lu, LOAD_RO, "LTO3 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3 WORM"); add_drive_media_list(lu, LOAD_RW, "LTO4"); add_drive_media_list(lu, LOAD_RO, "LTO4 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO4 WORM"); }
static void init_9840_mode_pages(struct lu_phy_attr *lu) { add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_information_exception(lu); }
/* Table 6-29 Supported Mode pages * Sony SDX-900V v2.1 SCSI Reference Guide */ static void init_ait_mode_pages(struct lu_phy_attr *lu) { add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_medium_partition(lu); add_mode_information_exception(lu); add_mode_ait_device_configuration(lu); }
void init_hp_ult_3(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_lto3; ssc_pm.lu = lu; ssc_pm.native_drive_density = &density_lto3; ssc_pm.clear_WORM = clear_ult_WORM; ssc_pm.set_WORM = set_ult_WORM; ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = TRUE; ssc_pm.drive_supports_SPR = TRUE; ssc_pm.drive_supports_SP = FALSE; ssc_pm.drive_ANSI_VERSION = 5; personality_module_register(&ssc_pm); init_ult_inquiry(lu); /* Based on 9th edition of IBM SCSI Reference */ add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_device_configuration_extention(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_mode_behavior_configuration(lu); add_mode_vendor_25h_mode_pages(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; add_density_support(&lu->den_list, &density_lto1, 0); add_density_support(&lu->den_list, &density_lto2, 1); add_density_support(&lu->den_list, &density_lto3, 1); add_drive_media_list(lu, LOAD_RO, "LTO1"); add_drive_media_list(lu, LOAD_RO, "LTO1 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO2"); add_drive_media_list(lu, LOAD_RO, "LTO2 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3"); add_drive_media_list(lu, LOAD_RO, "LTO3 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3 WORM"); }
static void init_03592_mode_pages(struct lu_phy_attr *lu) { add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_medium_partition(lu); add_mode_power_condition(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); }
void init_sdlt600_ssc(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_sdlt600; ssc_pm.lu = lu; ssc_pm.native_drive_density = &density_sdlt600; ssc_pm.clear_WORM = clear_dlt_WORM; ssc_pm.set_WORM = set_dlt_WORM; ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = TRUE; ssc_pm.drive_supports_SPR = TRUE; ssc_pm.drive_supports_SP = FALSE; ssc_pm.drive_ANSI_VERSION = 5; personality_module_register(&ssc_pm); init_sdlt_inquiry(lu); add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_control_extension(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_device_configuration_extention(lu); add_mode_medium_partition(lu); add_mode_power_condition(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; add_density_support(&lu->den_list, &density_sdlt220, 0); add_density_support(&lu->den_list, &density_sdlt320, 1); add_density_support(&lu->den_list, &density_sdlt600, 1); add_drive_media_list(lu, LOAD_RO, "SDLT 220"); add_drive_media_list(lu, LOAD_RW, "SDLT 320"); add_drive_media_list(lu, LOAD_RO, "SDLT 320 Clean"); add_drive_media_list(lu, LOAD_RW, "SDLT 600"); add_drive_media_list(lu, LOAD_RO, "SDLT 600 Clean"); add_drive_media_list(lu, LOAD_RW, "SDLT 600 WORM"); }
void init_dlt8000_ssc(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_dlt8000; ssc_pm.lu = lu; ssc_pm.native_drive_density = &density_dlt4; ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = FALSE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = FALSE; ssc_pm.drive_supports_SPR = FALSE; ssc_pm.drive_supports_SP = FALSE; ssc_pm.drive_ANSI_VERSION = 2; personality_module_register(&ssc_pm); init_dlt_inquiry(lu); add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_medium_partition(lu); add_mode_information_exception(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; /* Don't support PERSISTENT RESERVATION */ register_ops(lu, PERSISTENT_RESERVE_IN, spc_illegal_op, NULL, NULL); register_ops(lu, PERSISTENT_RESERVE_OUT, spc_illegal_op, NULL, NULL); add_density_support(&lu->den_list, &density_dlt2, 0); add_density_support(&lu->den_list, &density_dlt3, 1); add_density_support(&lu->den_list, &density_dlt4, 1); add_drive_media_list(lu, LOAD_RO, "DLT3"); add_drive_media_list(lu, LOAD_RW, "DLT4"); add_drive_media_list(lu, LOAD_RO, "DLT4 Clean"); }
void init_ult3580_td1(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_lto1; ssc_pm.lu = lu; ssc_pm.native_drive_density = &density_lto1; /* Drive capabilities need to be defined before mode pages */ ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = FALSE; ssc_pm.drive_supports_SPR = TRUE; ssc_pm.drive_supports_SP = FALSE; ssc_pm.drive_ANSI_VERSION = 5; ssc_personality_module_register(&ssc_pm); init_ult_inquiry(lu); /* IBM Ultrium SCSI Reference (5edition - Oct 2001) * lists these mode pages */ add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_information_exception(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; add_density_support(&lu->den_list, &density_lto1, 1); add_drive_media_list(lu, LOAD_RW, "LTO1"); add_drive_media_list(lu, LOAD_RO, "LTO1 Clean"); }
void init_hp_ult_2(struct lu_phy_attr *lu) { init_ult_inquiry(lu); ssc_pm.name = pm_name_lto2; ssc_pm.lu = lu; personality_module_register(&ssc_pm); ssc_pm.native_drive_density = &density_lto2; /* Drive capabilities need to be defined before mode pages */ ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; /* Based on 9th edition of IBM SCSI Reference */ add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_mode_behavior_configuration(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; add_density_support(&lu->den_list, &density_lto1, 1); add_density_support(&lu->den_list, &density_lto2, 1); add_drive_media_list(lu, LOAD_RW, "LTO1"); add_drive_media_list(lu, LOAD_RO, "LTO1 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO2"); add_drive_media_list(lu, LOAD_RO, "LTO2 Clean"); }
void init_hp_ult_6(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_lto6; ssc_pm.lu = lu; ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = TRUE; ssc_pm.drive_supports_SPR = TRUE; ssc_pm.drive_supports_SP = TRUE; ssc_pm.drive_ANSI_VERSION = 5; ssc_pm.native_drive_density = &density_lto6; ssc_pm.update_encryption_mode = update_ult_encryption_mode; ssc_pm.encryption_capabilities = encr_capabilities_ult; ssc_pm.kad_validation = hp_lto_kad_validation; ssc_pm.clear_WORM = clear_ult_WORM; ssc_pm.set_WORM = set_ult_WORM; personality_module_register(&ssc_pm); init_ult_inquiry(lu); add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_control_extension(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_device_configuration_extention(lu); add_mode_medium_partition(lu); add_mode_power_condition(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_mode_ult_encr_mode_pages(lu); /* Extra for LTO-5 */ add_mode_vendor_25h_mode_pages(lu); add_mode_encryption_mode_attribute(lu); /* Supports non-zero programable early warning */ update_prog_early_warning(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; register_ops(lu, SECURITY_PROTOCOL_IN, ssc_spin, NULL, NULL); register_ops(lu, SECURITY_PROTOCOL_OUT, ssc_spout, NULL, NULL); add_density_support(&lu->den_list, &density_lto4, 0); add_density_support(&lu->den_list, &density_lto5, 1); add_density_support(&lu->den_list, &density_lto6, 1); add_drive_media_list(lu, LOAD_RO, "LTO4"); add_drive_media_list(lu, LOAD_RO, "LTO4 Clean"); add_drive_media_list(lu, LOAD_RO, "LTO4 WORM"); add_drive_media_list(lu, LOAD_RW, "LTO5"); add_drive_media_list(lu, LOAD_RO, "LTO5 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO5 WORM"); add_drive_media_list(lu, LOAD_RW, "LTO5 ENCR"); add_drive_media_list(lu, LOAD_RW, "LTO6"); add_drive_media_list(lu, LOAD_RO, "LTO6 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO6 WORM"); add_drive_media_list(lu, LOAD_RW, "LTO6 ENCR"); }
void init_ult3580_td4(struct lu_phy_attr *lu) { ssc_pm.name = pm_name_lto4; ssc_pm.lu = lu; ssc_pm.native_drive_density = &density_lto4; ssc_pm.update_encryption_mode = update_ult_encryption_mode; ssc_pm.encryption_capabilities = encr_capabilities_ult; ssc_pm.kad_validation = td4_kad_validation; ssc_pm.clear_WORM = clear_ult_WORM; ssc_pm.set_WORM = set_ult_WORM; ssc_pm.drive_supports_append_only_mode = FALSE; ssc_pm.drive_supports_early_warning = TRUE; ssc_pm.drive_supports_prog_early_warning = FALSE; ssc_pm.drive_supports_WORM = TRUE; ssc_pm.drive_supports_SPR = TRUE; ssc_pm.drive_supports_SP = TRUE; ssc_pm.drive_ANSI_VERSION = 5; ssc_personality_module_register(&ssc_pm); init_ult_inquiry(lu); add_mode_page_rw_err_recovery(lu); add_mode_disconnect_reconnect(lu); add_mode_control(lu); add_mode_control_extension(lu); add_mode_data_compression(lu); add_mode_device_configuration(lu); add_mode_device_configuration_extention(lu); add_mode_medium_partition(lu); add_mode_power_condition(lu); add_mode_information_exception(lu); add_mode_medium_configuration(lu); add_mode_ult_encr_mode_pages(lu); /* Extra for LTO-4 */ add_mode_vendor_25h_mode_pages(lu); add_mode_encryption_mode_attribute(lu); add_log_write_err_counter(lu); add_log_read_err_counter(lu); add_log_sequential_access(lu); add_log_temperature_page(lu); add_log_tape_alert(lu); add_log_tape_usage(lu); add_log_tape_capacity(lu); add_log_data_compression(lu); /* Capacity units in MBytes */ ((struct priv_lu_ssc *)lu->lu_private)->capacity_unit = 1L << 20; add_density_support(&lu->den_list, &density_lto2, 0); add_density_support(&lu->den_list, &density_lto3, 1); add_density_support(&lu->den_list, &density_lto4, 1); add_drive_media_list(lu, LOAD_RO, "LTO2"); add_drive_media_list(lu, LOAD_RO, "LTO2 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3"); add_drive_media_list(lu, LOAD_RO, "LTO3 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO3 WORM"); add_drive_media_list(lu, LOAD_RW, "LTO4"); add_drive_media_list(lu, LOAD_RO, "LTO4 Clean"); add_drive_media_list(lu, LOAD_RW, "LTO4 WORM"); }