Made use of Immed bit with 5Bh CLOSE TRACK/SESSION

This commit is contained in:
Thomas Schmitt 2007-09-18 13:03:24 +00:00
parent 0c6f315c43
commit bbdc3fe840
2 changed files with 8 additions and 1 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2007.09.18.090839" #define Cdrskin_timestamP "2007.09.18.130344"

View File

@ -433,6 +433,8 @@ void mmc_close(struct burn_drive *d, int session, int track)
*/ */
c.retry = 1; c.retry = 1;
c.opcode[1] |= 1; /* ts A70918 : Immed */
/* (ts A61030 : shifted !!session rather than or-ing plain session ) */ /* (ts A61030 : shifted !!session rather than or-ing plain session ) */
c.opcode[2] = ((session & 3) << 1) | !!track; c.opcode[2] = ((session & 3) << 1) | !!track;
c.opcode[4] = track >> 8; c.opcode[4] = track >> 8;
@ -440,6 +442,11 @@ void mmc_close(struct burn_drive *d, int session, int track)
c.page = NULL; c.page = NULL;
c.dir = NO_TRANSFER; c.dir = NO_TRANSFER;
d->issue_command(d, &c); d->issue_command(d, &c);
/* ts A70918 : Immed : wait for drive to complete command */
usleep(1000000); /* (in format() there was a race condition) */
while (!d->test_unit_ready(d))
usleep(100000);
} }
void mmc_get_event(struct burn_drive *d) void mmc_get_event(struct burn_drive *d)