Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cbd814e authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide-cd: fix SAMSUNG CD-ROM SCR-3231 quirk



cdi->mask is cleared by ide_cdrom_register() which is called after the quirk.

Fix it by adding new ->no_speed_select flag to struct ide_cd_config_flags
and using it in ide_cdrom_register() to set CDC_SELECT_SPEED flag.

Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent a1c6d28c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2909,6 +2909,9 @@ static int ide_cdrom_register (ide_drive_t *drive, int nslots)
	if (!CDROM_CONFIG_FLAGS(drive)->ram)
		devinfo->mask |= CDC_RAM;

	if (CDROM_CONFIG_FLAGS(drive)->no_speed_select)
		devinfo->mask |= CDC_SELECT_SPEED;

	devinfo->disk = info->disk;
	return register_cdrom(devinfo);
}
@@ -3161,7 +3164,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
		CDROM_CONFIG_FLAGS(drive)->limit_nframes = 1;
	/* the 3231 model does not support the SET_CD_SPEED command */
	else if (!strcmp(drive->id->model, "SAMSUNG CD-ROM SCR-3231"))
		cdi->mask |= CDC_SELECT_SPEED;
		CDROM_CONFIG_FLAGS(drive)->no_speed_select = 1;

#if ! STANDARD_ATAPI
	/* by default Sanyo 3 CD changer support is turned off and
+2 −1
Original line number Diff line number Diff line
@@ -91,7 +91,8 @@ struct ide_cd_config_flags {
	__u8 close_tray		: 1; /* can close the tray */
	__u8 writing		: 1; /* pseudo write in progress */
	__u8 mo_drive		: 1; /* drive is an MO device */
	__u8 reserved		: 2;
	__u8 no_speed_select	: 1; /* SET_CD_SPEED command is unsupported. */
	__u8 reserved		: 1;
	byte max_speed;		     /* Max speed of the drive */
};
#define CDROM_CONFIG_FLAGS(drive) (&(((struct cdrom_info *)(drive->driver_data))->config_flags))