patch-2.4.0-test8 linux/drivers/scsi/sr_ioctl.c
Next file: linux/drivers/scsi/st.c
Previous file: linux/drivers/scsi/sr.c
Back to the patch index
Back to the overall index
- Lines: 51
- Date:
Tue Sep 5 13:46:15 2000
- Orig file:
v2.4.0-test7/linux/drivers/scsi/sr_ioctl.c
- Orig date:
Sat Feb 26 22:31:48 2000
diff -u --recursive --new-file v2.4.0-test7/linux/drivers/scsi/sr_ioctl.c linux/drivers/scsi/sr_ioctl.c
@@ -284,6 +284,8 @@
int result, target = MINOR(cdi->dev);
unsigned char buffer[32];
+ memset(sr_cmd, 0, sizeof(sr_cmd));
+
switch (cmd) {
case CDROMREADTOCHDR:
{
@@ -292,10 +294,7 @@
sr_cmd[0] = GPCMD_READ_TOC_PMA_ATIP;
sr_cmd[1] = ((scsi_CDs[target].device->lun) << 5);
sr_cmd[2] = sr_cmd[3] = sr_cmd[4] = sr_cmd[5] = 0;
- sr_cmd[6] = 0;
- sr_cmd[7] = 0; /* MSB of length (12) */
sr_cmd[8] = 12; /* LSB of length */
- sr_cmd[9] = 0;
result = sr_do_ioctl(target, sr_cmd, buffer, 12, 1, SCSI_DATA_READ);
@@ -314,9 +313,7 @@
(tocentry->cdte_format == CDROM_MSF ? 0x02 : 0);
sr_cmd[2] = sr_cmd[3] = sr_cmd[4] = sr_cmd[5] = 0;
sr_cmd[6] = tocentry->cdte_track;
- sr_cmd[7] = 0; /* MSB of length (12) */
sr_cmd[8] = 12; /* LSB of length */
- sr_cmd[9] = 0;
result = sr_do_ioctl(target, sr_cmd, buffer, 12, 0, SCSI_DATA_READ);
@@ -333,6 +330,20 @@
break;
}
+
+ case CDROMPLAYTRKIND: {
+ struct cdrom_ti* ti = (struct cdrom_ti*)arg;
+
+ sr_cmd[0] = GPCMD_PLAYAUDIO_TI;
+ sr_cmd[1] = scsi_CDs[target].device->lun << 5;
+ sr_cmd[4] = ti->cdti_trk0;
+ sr_cmd[5] = ti->cdti_ind0;
+ sr_cmd[7] = ti->cdti_trk1;
+ sr_cmd[8] = ti->cdti_ind1;
+
+ result = sr_do_ioctl(target, sr_cmd, NULL, 255, 0, SCSI_DATA_NONE);
+ break;
+ }
default:
return -EINVAL;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)