71 lines
3.2 KiB
C
71 lines
3.2 KiB
C
extern int scsi_enable_cdda(cdrom_drive *,int);
|
|
extern long scsi_read_mmc(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_mmc2(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_D4_10(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_D4_12(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_D8(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_28(cdrom_drive *,void *,long,long);
|
|
extern long scsi_read_A8(cdrom_drive *,void *,long,long);
|
|
|
|
typedef struct exception {
|
|
char *model;
|
|
int atapi; /* If the ioctl doesn't work */
|
|
unsigned char density;
|
|
int (*enable)(struct cdrom_drive *,int);
|
|
long (*read)(struct cdrom_drive *,void *,long,long);
|
|
int bigendianp;
|
|
} exception;
|
|
|
|
/* specific to general */
|
|
|
|
/* list of drives that affect autosensing in ATAPI specific portions of code
|
|
(force drives to detect as ATAPI or SCSI, force ATAPI read command */
|
|
|
|
static exception atapi_list[]={
|
|
{"SAMSUNG SCR-830 REV 2.09 2.09 ", 1, 0, Dummy,scsi_read_mmc2,0},
|
|
{"Memorex CR-622", 1, 0, Dummy, NULL,0},
|
|
{"SONY CD-ROM CDU-561", 0, 0, Dummy, NULL,0},
|
|
{"Chinon CD-ROM CDS-525", 0, 0, Dummy, NULL,0},
|
|
{NULL,0,0,NULL,NULL,0}};
|
|
|
|
/* list of drives that affect MMC default settings */
|
|
|
|
static exception mmc_list[]={
|
|
{"SAMSUNG SCR-830 REV 2.09 2.09 ", 1, 0, Dummy,scsi_read_mmc2,0},
|
|
{"Memorex CR-622", 1, 0, Dummy, NULL,0},
|
|
{"SONY CD-ROM CDU-561", 0, 0, Dummy, NULL,0},
|
|
{"Chinon CD-ROM CDS-525", 0, 0, Dummy, NULL,0},
|
|
{"KENWOOD CD-ROM UCR", -1, 0, NULL,scsi_read_D8, 0},
|
|
{NULL,0,0,NULL,NULL,0}};
|
|
|
|
/* list of drives that affect SCSI default settings */
|
|
|
|
static exception scsi_list[]={
|
|
{"TOSHIBA", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
|
|
{"IBM", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
|
|
{"DEC", -1,0x82,scsi_enable_cdda,scsi_read_28, 0},
|
|
|
|
{"IMS", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"KODAK", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"RICOH", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"HP", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"PHILIPS", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"PLASMON", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"GRUNDIG CDR100IPW", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"MITSUMI CD-R ", -1, 0,scsi_enable_cdda,scsi_read_28, 1},
|
|
{"KENWOOD CD-ROM UCR", -1, 0, NULL,scsi_read_D8, 0},
|
|
|
|
{"YAMAHA", -1, 0,scsi_enable_cdda, NULL, 0},
|
|
|
|
{"PLEXTOR", -1, 0, NULL, NULL, 0},
|
|
{"SONY", -1, 0, NULL, NULL, 0},
|
|
|
|
{"NEC", -1, 0, NULL,scsi_read_D4_10,0},
|
|
|
|
/* the 7501 locks up if hit with the 10 byte version from the
|
|
autoprobe first */
|
|
{"MATSHITA CD-R CW-7501", -1, 0, NULL,scsi_read_D4_12,-1},
|
|
|
|
{NULL,0,0,NULL,NULL,0}};
|
|
|