Commit 0aafd44a authored by Jens Axboe's avatar Jens Axboe Committed by Anton Blanchard

[PATCH] ide-cd: capability flag for MO drives

From: Pascal Schmidt <der.eremit@email.de>

Add capability flag for MO drives. Since ATAPI MOs are now recognized
by the ide-cd driver, it is useful to have a capability flag to be able
to tell MO drives from other drives (needed for later write support).
parent deadcf58
...@@ -2805,7 +2805,7 @@ static struct cdrom_device_ops ide_cdrom_dops = { ...@@ -2805,7 +2805,7 @@ static struct cdrom_device_ops ide_cdrom_dops = {
CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO | CDC_RESET | CDC_MEDIA_CHANGED | CDC_PLAY_AUDIO | CDC_RESET |
CDC_IOCTLS | CDC_DRIVE_STATUS | CDC_CD_R | CDC_IOCTLS | CDC_DRIVE_STATUS | CDC_CD_R |
CDC_CD_RW | CDC_DVD | CDC_DVD_R| CDC_DVD_RAM | CDC_CD_RW | CDC_DVD | CDC_DVD_R| CDC_DVD_RAM |
CDC_GENERIC_PACKET, CDC_GENERIC_PACKET | CDC_MO_DRIVE,
.generic_packet = ide_cdrom_packet, .generic_packet = ide_cdrom_packet,
}; };
...@@ -2838,6 +2838,8 @@ static int ide_cdrom_register (ide_drive_t *drive, int nslots) ...@@ -2838,6 +2838,8 @@ static int ide_cdrom_register (ide_drive_t *drive, int nslots)
devinfo->mask |= CDC_PLAY_AUDIO; devinfo->mask |= CDC_PLAY_AUDIO;
if (!CDROM_CONFIG_FLAGS(drive)->close_tray) if (!CDROM_CONFIG_FLAGS(drive)->close_tray)
devinfo->mask |= CDC_CLOSE_TRAY; devinfo->mask |= CDC_CLOSE_TRAY;
if (!CDROM_CONFIG_FLAGS(drive)->mo_drive)
devinfo->mask |= CDC_MO_DRIVE;
return register_cdrom(devinfo); return register_cdrom(devinfo);
} }
...@@ -2884,6 +2886,7 @@ int ide_cdrom_probe_capabilities (ide_drive_t *drive) ...@@ -2884,6 +2886,7 @@ int ide_cdrom_probe_capabilities (ide_drive_t *drive)
int nslots = 1; int nslots = 1;
if (drive->media == ide_optical) { if (drive->media == ide_optical) {
CDROM_CONFIG_FLAGS(drive)->mo_drive = 1;
printk("%s: ATAPI magneto-optical drive\n", drive->name); printk("%s: ATAPI magneto-optical drive\n", drive->name);
return nslots; return nslots;
} }
......
...@@ -85,7 +85,8 @@ struct ide_cd_config_flags { ...@@ -85,7 +85,8 @@ struct ide_cd_config_flags {
__u8 audio_play : 1; /* can do audio related commands */ __u8 audio_play : 1; /* can do audio related commands */
__u8 close_tray : 1; /* can close the tray */ __u8 close_tray : 1; /* can close the tray */
__u8 writing : 1; /* pseudo write in progress */ __u8 writing : 1; /* pseudo write in progress */
__u8 reserved : 3; __u8 mo_drive : 1; /* drive is an MO device */
__u8 reserved : 2;
byte max_speed; /* Max speed of the drive */ byte max_speed; /* Max speed of the drive */
}; };
#define CDROM_CONFIG_FLAGS(drive) (&(((struct cdrom_info *)(drive->driver_data))->config_flags)) #define CDROM_CONFIG_FLAGS(drive) (&(((struct cdrom_info *)(drive->driver_data))->config_flags))
......
...@@ -387,6 +387,7 @@ struct cdrom_generic_command ...@@ -387,6 +387,7 @@ struct cdrom_generic_command
#define CDC_DVD 0x8000 /* drive is a DVD */ #define CDC_DVD 0x8000 /* drive is a DVD */
#define CDC_DVD_R 0x10000 /* drive can write DVD-R */ #define CDC_DVD_R 0x10000 /* drive can write DVD-R */
#define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */ #define CDC_DVD_RAM 0x20000 /* drive can write DVD-RAM */
#define CDC_MO_DRIVE 0x40000 /* drive is an MO device */
/* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */ /* drive status possibilities returned by CDROM_DRIVE_STATUS ioctl */
#define CDS_NO_INFO 0 /* if not implemented */ #define CDS_NO_INFO 0 /* if not implemented */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment