MKE CD-ROM: Fix disc change detection, move model selection to CD-ROM type, and properly implement support for the up to 4 drives supported by the controller.
This commit is contained in:
@@ -94,14 +94,19 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
CDROM_BUS_DISABLED = 0,
|
||||
CDROM_BUS_ATAPI = 5,
|
||||
CDROM_BUS_SCSI = 6,
|
||||
CDROM_BUS_MITSUMI = 7,
|
||||
CDROM_BUS_MKE = 8,
|
||||
CDROM_BUS_USB = 9
|
||||
CDROM_BUS_DISABLED = 0,
|
||||
CDROM_BUS_PHILIPS = 1,
|
||||
CDROM_BUS_SONY = 2,
|
||||
CDROM_BUS_HITACHI = 3,
|
||||
CDROM_BUS_MKE = 4,
|
||||
CDROM_BUS_MITSUMI = 5,
|
||||
CDROM_BUS_LPT = 6,
|
||||
CDROM_BUS_ATAPI = 8,
|
||||
CDROM_BUS_SCSI = 9,
|
||||
CDROM_BUS_USB = 10
|
||||
};
|
||||
|
||||
#define BUS_TYPE_MKE CDROM_BUS_MKE
|
||||
#define BUS_TYPE_IDE CDROM_BUS_ATAPI
|
||||
#define BUS_TYPE_SCSI CDROM_BUS_SCSI
|
||||
#define BUS_TYPE_BOTH -2
|
||||
@@ -221,6 +226,10 @@ static const struct cdrom_drive_types_s {
|
||||
{ "TOSHIBA", "CD-ROM XM-3301TA", "0272", "toshiba_3301ta", BUS_TYPE_SCSI, 2, 2, 96, 0, 0, { -1, -1, -1, -1 } }, /* Tray. */
|
||||
{ "TOSHIBA", "CD-ROM XM-5701TA", "3136", "toshiba_5701a", BUS_TYPE_SCSI, 2, 12, 96, 0, 0, { -1, -1, -1, -1 } }, /* Tray. */
|
||||
{ "TOSHIBA", "DVD-ROM SD-M1401", "1008", "toshiba_m1401", BUS_TYPE_SCSI, 2, 40, 96, 0, 1, { -1, -1, -1, -1 } }, /* Tray. */
|
||||
{ "MATSHITA", "CR-562", "0.75", "cr562", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
|
||||
{ "MATSHITA", "CR-562", "0.80", "cr562_080", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
|
||||
{ "MATSHITA", "CR-563", "0.75", "cr563", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
|
||||
{ "MATSHITA", "CR-563", "0.80", "cr563_080", BUS_TYPE_MKE , 0, 2, 0, 0, 0, { -1, -1, -1, -1 } },
|
||||
{ "", "", "", "", BUS_TYPE_NONE, 0, -1, 0, 0, 0, { -1, -1, -1, -1 } }
|
||||
};
|
||||
|
||||
@@ -288,7 +297,7 @@ typedef struct cdrom {
|
||||
union {
|
||||
uint8_t res;
|
||||
uint8_t res0; /* Reserved for other ID's. */
|
||||
uint8_t res1;
|
||||
uint8_t mke_channel;
|
||||
uint8_t ide_channel;
|
||||
uint8_t scsi_device_id;
|
||||
};
|
||||
@@ -394,6 +403,7 @@ extern int cdrom_get_inquiry_len(const int type);
|
||||
extern int cdrom_has_dma(const int type);
|
||||
extern int cdrom_get_transfer_max(const int type, const int mode);
|
||||
extern int cdrom_get_type_count(void);
|
||||
extern void cdrom_generate_name_mke(const int type, char *name);
|
||||
extern void cdrom_get_identify_model(const int type, char *name, const int id);
|
||||
extern void cdrom_get_name(const int type, char *name);
|
||||
extern char *cdrom_get_internal_name(const int type);
|
||||
|
||||
@@ -67,14 +67,15 @@ enum {
|
||||
};
|
||||
#else
|
||||
enum {
|
||||
HDD_BUS_DISABLED = 0,
|
||||
HDD_BUS_MFM = 1,
|
||||
HDD_BUS_XTA = 2,
|
||||
HDD_BUS_ESDI = 3,
|
||||
HDD_BUS_IDE = 4,
|
||||
HDD_BUS_ATAPI = 5,
|
||||
HDD_BUS_SCSI = 6,
|
||||
HDD_BUS_USB = 7
|
||||
HDD_BUS_DISABLED = 0,
|
||||
HDD_BUS_MFM = 1,
|
||||
HDD_BUS_XTA = 2,
|
||||
HDD_BUS_ESDI = 3,
|
||||
HDD_BUS_LPT = 6,
|
||||
HDD_BUS_IDE = 7,
|
||||
HDD_BUS_ATAPI = 8,
|
||||
HDD_BUS_SCSI = 9,
|
||||
HDD_BUS_USB = 10
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -84,10 +84,11 @@ static const mo_drive_type_t mo_drive_types[KNOWN_MO_DRIVE_TYPES] = {
|
||||
};
|
||||
|
||||
enum {
|
||||
MO_BUS_DISABLED = 0,
|
||||
MO_BUS_ATAPI = 5,
|
||||
MO_BUS_SCSI = 6,
|
||||
MO_BUS_USB = 7
|
||||
MO_BUS_DISABLED = 0,
|
||||
MO_BUS_LPT = 6,
|
||||
MO_BUS_ATAPI = 8,
|
||||
MO_BUS_SCSI = 9,
|
||||
MO_BUS_USB = 10
|
||||
};
|
||||
|
||||
typedef struct mo_drive_t {
|
||||
|
||||
@@ -63,10 +63,12 @@ static const rdisk_drive_type_t rdisk_drive_types[KNOWN_RDISK_DRIVE_TYPES] = {
|
||||
};
|
||||
|
||||
enum {
|
||||
RDISK_BUS_DISABLED = 0,
|
||||
RDISK_BUS_ATAPI = 5,
|
||||
RDISK_BUS_SCSI = 6,
|
||||
RDISK_BUS_USB = 7
|
||||
RDISK_BUS_DISABLED = 0,
|
||||
RDISK_BUS_LPT = 6,
|
||||
RDISK_BUS_IDE = 7,
|
||||
RDISK_BUS_ATAPI = 8,
|
||||
RDISK_BUS_SCSI = 9,
|
||||
RDISK_BUS_USB = 10
|
||||
};
|
||||
|
||||
typedef struct rdisk_drive_t {
|
||||
|
||||
Reference in New Issue
Block a user