patch-2.1.82 linux/drivers/cdrom/sbpcd.c

Next file: linux/drivers/char/Config.in
Previous file: linux/drivers/cdrom/mcd.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.81/linux/drivers/cdrom/sbpcd.c linux/drivers/cdrom/sbpcd.c
@@ -304,6 +304,9 @@
  *       Heiko Eissfeldt <heiko@colossus.escape.de> with additional
  *       changes by Erik Andersen <andersee@debian.org>
  *
+ *  4.62 Fix a bug where playing audio left the drive in an unusable state.
+ *         Heiko Eissfeldt <heiko@colossus.escape.de>
+ *
  *
  *  TODO
  *     implement "read all subchannel data" (96 bytes per frame)
@@ -1046,7 +1049,7 @@
 		sbp_sleep(1);
 		i = 1;
 	}
-	msg(DBG_LCS,"CDi_stat_loop failed\n");
+	msg(DBG_LCS,"CDi_stat_loop failed in line %d\n", __LINE__);
 	return (-1);
 }
 /*==========================================================================*/
@@ -4295,7 +4298,7 @@
 			}
 			if (status_tries == 0)
 			{
-				msg(DBG_AUD,"read_audio: sbp_status: failed after 3 tries.\n");
+				msg(DBG_AUD,"read_audio: sbp_status: failed after 3 tries in line %d.\n", __LINE__);
 				continue;
 			}
 			msg(DBG_AUD,"read_audio: sbp_status: ok.\n");
@@ -4467,7 +4470,7 @@
 #endif OLD_BUSY
 		if (data_tries == 0)
 		{
-			msg(DBG_AUD,"read_audio: failed after 5 tries.\n");
+			msg(DBG_AUD,"read_audio: failed after 5 tries in line %d.\n", __LINE__);
 			RETURN_UP(-EIO);
 		}
 		msg(DBG_AUD,"read_audio: successful return.\n");
@@ -4651,6 +4654,7 @@
 #endif SAFE_MIXED
 		i=cc_Pause_Resume(1);
 		D_S[d].audio_state=0;
+		cc_DriveReset();
 		RETURN_UP(i);
 		
 	case CDROMSTART:  /* Spin up the drive */
@@ -4886,7 +4890,7 @@
 		}
 		if (status_tries == 0)
 		{
-			msg(DBG_INF,"sbp_status: failed after 3 tries\n");
+			msg(DBG_INF,"sbp_status: failed after 3 tries in line %d\n", __LINE__);
 			break;
 		}
 		

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov