aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ide/ide-cd.c18
-rw-r--r--drivers/ide/ide-cd.h7
2 files changed, 2 insertions, 23 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index cd3ea32041bb..c736f769bff3 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -2693,8 +2693,6 @@ int ide_cdrom_probe_capabilities (ide_drive_t *drive)
2693 CDROM_CONFIG_FLAGS(drive)->cd_rw = 1; 2693 CDROM_CONFIG_FLAGS(drive)->cd_rw = 1;
2694 CDROM_CONFIG_FLAGS(drive)->ram = 1; 2694 CDROM_CONFIG_FLAGS(drive)->ram = 1;
2695 } 2695 }
2696 if (cap.test_write)
2697 CDROM_CONFIG_FLAGS(drive)->test_write = 1;
2698 if (cap.dvd_ram_read || cap.dvd_r_read || cap.dvd_rom) 2696 if (cap.dvd_ram_read || cap.dvd_r_read || cap.dvd_rom)
2699 CDROM_CONFIG_FLAGS(drive)->dvd = 1; 2697 CDROM_CONFIG_FLAGS(drive)->dvd = 1;
2700 if (cap.dvd_ram_write) { 2698 if (cap.dvd_ram_write) {
@@ -2727,10 +2725,9 @@ int ide_cdrom_probe_capabilities (ide_drive_t *drive)
2727#endif /* not STANDARD_ATAPI */ 2725#endif /* not STANDARD_ATAPI */
2728 if (cap.mechtype == mechtype_individual_changer || 2726 if (cap.mechtype == mechtype_individual_changer ||
2729 cap.mechtype == mechtype_cartridge_changer) { 2727 cap.mechtype == mechtype_cartridge_changer) {
2730 if ((nslots = cdrom_number_of_slots(cdi)) > 1) { 2728 nslots = cdrom_number_of_slots(cdi);
2729 if (nslots > 1)
2731 CDROM_CONFIG_FLAGS(drive)->is_changer = 1; 2730 CDROM_CONFIG_FLAGS(drive)->is_changer = 1;
2732 CDROM_CONFIG_FLAGS(drive)->supp_disc_present = 1;
2733 }
2734 } 2731 }
2735 2732
2736 ide_cdrom_update_speed(drive, &cap); 2733 ide_cdrom_update_speed(drive, &cap);
@@ -2892,10 +2889,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
2892 Some versions of this drive like to talk BCD. */ 2889 Some versions of this drive like to talk BCD. */
2893 CDROM_CONFIG_FLAGS(drive)->toctracks_as_bcd = 1; 2890 CDROM_CONFIG_FLAGS(drive)->toctracks_as_bcd = 1;
2894 CDROM_CONFIG_FLAGS(drive)->tocaddr_as_bcd = 1; 2891 CDROM_CONFIG_FLAGS(drive)->tocaddr_as_bcd = 1;
2895 CDROM_CONFIG_FLAGS(drive)->playmsf_as_bcd = 1;
2896 CDROM_CONFIG_FLAGS(drive)->subchan_as_bcd = 1;
2897 } 2892 }
2898
2899 else if (strcmp (drive->id->model, "V006E0DS") == 0 && 2893 else if (strcmp (drive->id->model, "V006E0DS") == 0 &&
2900 drive->id->fw_rev[4] == '1' && 2894 drive->id->fw_rev[4] == '1' &&
2901 drive->id->fw_rev[6] <= '2') { 2895 drive->id->fw_rev[6] <= '2') {
@@ -2908,16 +2902,8 @@ int ide_cdrom_setup (ide_drive_t *drive)
2908 This drive was released before the 1.2 version 2902 This drive was released before the 1.2 version
2909 of the spec. */ 2903 of the spec. */
2910 CDROM_CONFIG_FLAGS(drive)->tocaddr_as_bcd = 1; 2904 CDROM_CONFIG_FLAGS(drive)->tocaddr_as_bcd = 1;
2911 CDROM_CONFIG_FLAGS(drive)->playmsf_as_bcd = 1;
2912 CDROM_CONFIG_FLAGS(drive)->subchan_as_bcd = 1;
2913 CDROM_CONFIG_FLAGS(drive)->nec260 = 1; 2905 CDROM_CONFIG_FLAGS(drive)->nec260 = 1;
2914 } 2906 }
2915 else if (strcmp(drive->id->model, "WEARNES CDD-120") == 0 &&
2916 strncmp(drive->id->fw_rev, "A1.1", 4) == 0) { /* FIXME */
2917 /* Wearnes */
2918 CDROM_CONFIG_FLAGS(drive)->playmsf_as_bcd = 1;
2919 CDROM_CONFIG_FLAGS(drive)->subchan_as_bcd = 1;
2920 }
2921 /* 2907 /*
2922 * Sanyo 3 CD changer uses a non-standard command for CD changing 2908 * Sanyo 3 CD changer uses a non-standard command for CD changing
2923 * (by default standard ATAPI support for CD changers is used). 2909 * (by default standard ATAPI support for CD changers is used).
diff --git a/drivers/ide/ide-cd.h b/drivers/ide/ide-cd.h
index e6f219772549..d224b062db52 100644
--- a/drivers/ide/ide-cd.h
+++ b/drivers/ide/ide-cd.h
@@ -59,10 +59,8 @@ struct ide_cd_config_flags {
59 __u8 no_doorlock : 1; /* Drive cannot lock the door. */ 59 __u8 no_doorlock : 1; /* Drive cannot lock the door. */
60 __u8 no_eject : 1; /* Drive cannot eject the disc. */ 60 __u8 no_eject : 1; /* Drive cannot eject the disc. */
61 __u8 nec260 : 1; /* Drive is a pre-1.2 NEC 260 drive. */ 61 __u8 nec260 : 1; /* Drive is a pre-1.2 NEC 260 drive. */
62 __u8 playmsf_as_bcd : 1; /* PLAYMSF command takes BCD args. */
63 __u8 tocaddr_as_bcd : 1; /* TOC addresses are in BCD. */ 62 __u8 tocaddr_as_bcd : 1; /* TOC addresses are in BCD. */
64 __u8 toctracks_as_bcd : 1; /* TOC track numbers are in BCD. */ 63 __u8 toctracks_as_bcd : 1; /* TOC track numbers are in BCD. */
65 __u8 subchan_as_bcd : 1; /* Subchannel info is in BCD. */
66 __u8 is_changer : 1; /* Drive is a changer. */ 64 __u8 is_changer : 1; /* Drive is a changer. */
67 __u8 cd_r : 1; /* Drive can write to CD-R media . */ 65 __u8 cd_r : 1; /* Drive can write to CD-R media . */
68 __u8 cd_rw : 1; /* Drive can write to CD-R/W media . */ 66 __u8 cd_rw : 1; /* Drive can write to CD-R/W media . */
@@ -70,19 +68,14 @@ struct ide_cd_config_flags {
70 __u8 dvd_r : 1; /* Drive can write DVD-R */ 68 __u8 dvd_r : 1; /* Drive can write DVD-R */
71 __u8 dvd_ram : 1; /* Drive can write DVD-RAM */ 69 __u8 dvd_ram : 1; /* Drive can write DVD-RAM */
72 __u8 ram : 1; /* generic WRITE (dvd-ram/mrw) */ 70 __u8 ram : 1; /* generic WRITE (dvd-ram/mrw) */
73 __u8 test_write : 1; /* Drive can fake writes */
74 __u8 supp_disc_present : 1; /* Changer can report exact contents
75 of slots. */
76 __u8 limit_nframes : 1; /* Drive does not provide data in 71 __u8 limit_nframes : 1; /* Drive does not provide data in
77 multiples of SECTOR_SIZE when more 72 multiples of SECTOR_SIZE when more
78 than one interrupt is needed. */ 73 than one interrupt is needed. */
79 __u8 seeking : 1; /* Seeking in progress */ 74 __u8 seeking : 1; /* Seeking in progress */
80 __u8 audio_play : 1; /* can do audio related commands */ 75 __u8 audio_play : 1; /* can do audio related commands */
81 __u8 close_tray : 1; /* can close the tray */ 76 __u8 close_tray : 1; /* can close the tray */
82 __u8 writing : 1; /* pseudo write in progress */
83 __u8 mo_drive : 1; /* drive is an MO device */ 77 __u8 mo_drive : 1; /* drive is an MO device */
84 __u8 no_speed_select : 1; /* SET_CD_SPEED command is unsupported. */ 78 __u8 no_speed_select : 1; /* SET_CD_SPEED command is unsupported. */
85 __u8 reserved : 1;
86 byte max_speed; /* Max speed of the drive */ 79 byte max_speed; /* Max speed of the drive */
87}; 80};
88#define CDROM_CONFIG_FLAGS(drive) (&(((struct cdrom_info *)(drive->driver_data))->config_flags)) 81#define CDROM_CONFIG_FLAGS(drive) (&(((struct cdrom_info *)(drive->driver_data))->config_flags))