Comments and name changes from new findings out of reading MMC-5

This commit is contained in:
Thomas Schmitt 2007-01-05 12:58:36 +00:00
parent f23deebe80
commit f6b751c4bd
3 changed files with 24 additions and 7 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2007.01.03.164716" #define Cdrskin_timestamP "2007.01.05.125715"

View File

@ -74,7 +74,7 @@ static unsigned char MMC_GET_ATIP[] = { 0x43, 2, 4, 0, 0, 0, 0, 16, 0, 0 };
static unsigned char MMC_GET_DISC_INFO[] = static unsigned char MMC_GET_DISC_INFO[] =
{ 0x51, 0, 0, 0, 0, 0, 0, 16, 0, 0 }; { 0x51, 0, 0, 0, 0, 0, 0, 16, 0, 0 };
static unsigned char MMC_READ_CD[] = { 0xBE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; static unsigned char MMC_READ_CD[] = { 0xBE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
static unsigned char MMC_ERASE[] = { 0xA1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; static unsigned char MMC_BLANK[] = { 0xA1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
static unsigned char MMC_SEND_OPC[] = { 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; static unsigned char MMC_SEND_OPC[] = { 0x54, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
static unsigned char MMC_SET_SPEED[] = static unsigned char MMC_SET_SPEED[] =
{ 0xBB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; { 0xBB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
@ -846,11 +846,11 @@ void mmc_erase(struct burn_drive *d, int fast)
struct command c; struct command c;
mmc_function_spy("mmc_erase"); mmc_function_spy("mmc_erase");
memcpy(c.opcode, MMC_ERASE, sizeof(MMC_ERASE)); memcpy(c.opcode, MMC_BLANK, sizeof(MMC_BLANK));
c.opcode[1] = 16; /* IMMED set to 1 */ c.opcode[1] = 16; /* IMMED set to 1 */
c.opcode[1] |= !!fast; c.opcode[1] |= !!fast;
c.retry = 1; c.retry = 1;
c.oplen = sizeof(MMC_ERASE); c.oplen = sizeof(MMC_BLANK);
c.page = NULL; c.page = NULL;
c.dir = NO_TRANSFER; c.dir = NO_TRANSFER;
d->issue_command(d, &c); d->issue_command(d, &c);
@ -1098,6 +1098,10 @@ void mmc_get_configuration(struct burn_drive *d)
d->current_is_supported_profile = 1; d->current_is_supported_profile = 1;
#endif #endif
/* >>> see mmc5r03c.pdf 5.2
Interpret list of profile and feature descriptors.
*/
} }
void mmc_sync_cache(struct burn_drive *d) void mmc_sync_cache(struct burn_drive *d)

View File

@ -894,8 +894,13 @@ int burn_disc_close_session_dvd_minus_rw(struct burn_write_opts *o,
struct burn_drive *d = o->drive; struct burn_drive *d = o->drive;
d->busy = BURN_DRIVE_CLOSING_SESSION; d->busy = BURN_DRIVE_CLOSING_SESSION;
if (d->current_profile == 0x13) if (d->current_profile == 0x13) {
d->close_track_session(d, 1, 0); /* CLOSE SESSION */ d->close_track_session(d, 1, 0); /* CLOSE SESSION, 010b */
/* ??? under what circumstances to use close functiom 011b
"Finalize disc" ? */
}
d->busy = BURN_DRIVE_WRITING; d->busy = BURN_DRIVE_WRITING;
return 1; return 1;
} }
@ -975,7 +980,15 @@ int burn_disc_setup_dvd_minus_rw(struct burn_write_opts *o,
/* ??? mmc5r03c.pdf 7.5.2 : /* ??? mmc5r03c.pdf 7.5.2 :
"For DVD-RW media ... If a medium is in Restricted overwrite "For DVD-RW media ... If a medium is in Restricted overwrite
mode, this mode page shall not be used." mode, this mode page shall not be used."
But growisofs composes a page 5 and sends it. But growisofs composes a page 5 and sends it.
mmc5r03c.pdf 5.3.16 , table 127 specifies that mode page 5
shall be supported with feature 0026h Restricted Overwrite.
5.3.22 describes a feature 002Ch Rigid Restrictive Overwrite
which seems to apply to DVD-RW and does not mention page 5.
5.4.14 finally states that profile 0013h includes feature
002Ch rather than 0026h.
d->send_write_parameters(d, o); d->send_write_parameters(d, o);
*/ */