Test macro for SL_V in mode page 05

This commit is contained in:
Thomas Schmitt 2009-11-03 18:45:08 +00:00
parent 3c2ad1be42
commit e78353b7dd
3 changed files with 18 additions and 11 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.10.30.134640" #define Cdrskin_timestamP "2009.11.03.184626"

View File

@ -2750,7 +2750,7 @@ BURN_END_DECLS
#endif #endif
/* Temporary facility for exploring Problems with Pioneer DVR-216D which /* Temporary facility for exploring problems with Pioneer DVR-216D which
does not end writing of DVD-R. does not end writing of DVD-R.
This code does not hamper normal operations but causes some extra This code does not hamper normal operations but causes some extra
messages to stderr and lots of text lines in File messages to stderr and lots of text lines in File
@ -2760,14 +2760,11 @@ BURN_END_DECLS
# define Libburn_pioneer_dvr_216d_tesT 1 # define Libburn_pioneer_dvr_216d_tesT 1
*/ */
/* Temporary facility to disable asynchronous execution of the final buffer /* Experiment for problems with Pioneer DVR-216D:
flush command SYNCHRONIZE CACHE. This is suspected to cycle endlessly In mode page 05h set LS_V to 1 and Link Size to 16.
on Pioneer DVR-216D. (This is done by growisofs and by wodim in DAO mode although MMC-5
On the other hand, synchronous execution of the command blocks a P-ATA specifies that they do not matter for DAO.)
controller for both eventually connected devices. # define Libburn_pioneer_dvr_216d_lsv_onE 1
Move the next line outside this remark and remove all blanks up to "define".
# Libburn_pioneer_dvr_sync_not_immeD 1
*/ */

View File

@ -3736,7 +3736,6 @@ int mmc_compose_mode_page_5(struct burn_drive *d,
pd[4] = 8; pd[4] = 8;
/* Link size dummy */ /* Link size dummy */
pd[5] = 0; pd[5] = 0;
} else if ((d->current_profile == 0x14 || d->current_profile == 0x11 || } else if ((d->current_profile == 0x14 || d->current_profile == 0x11 ||
d->current_profile == 0x15) d->current_profile == 0x15)
&& o->write_type == BURN_WRITE_SAO) { && o->write_type == BURN_WRITE_SAO) {
@ -3753,6 +3752,13 @@ int mmc_compose_mode_page_5(struct burn_drive *d,
/* Data Block Type = 8 */ /* Data Block Type = 8 */
pd[4] = 8; pd[4] = 8;
#ifdef Libburn_pioneer_dvr_216d_lsv_onE
pd[2] |= (1 << 5); /* LS_V = 1 */
pd[5] = 16; /* Link Size = 16 */
fprintf(stderr, "libburn_DEBUG: Libburn_pioneer_dvr_216d_lsv_onE , LS_V=1, Link Size=16\n");
#endif
} else if (d->current_profile == 0x14 || d->current_profile == 0x11 || } else if (d->current_profile == 0x14 || d->current_profile == 0x11 ||
d->current_profile == 0x15) { d->current_profile == 0x15) {
/* ts A70128 : DVD-R[W][/DL] Incremental Streaming */ /* ts A70128 : DVD-R[W][/DL] Incremental Streaming */
@ -3787,6 +3793,10 @@ int mmc_compose_mode_page_5(struct burn_drive *d,
/* Packet Size */ /* Packet Size */
pd[13] = 16; pd[13] = 16;
#ifdef Libburn_pioneer_dvr_216d_lsv_onE
fprintf(stderr, "libburn_DEBUG: Libburn_pioneer_dvr_216d_lsv_onE , LS_V= %d, Link Size= %d\n", !!(pd[2] & 32), (int) pd[5]);
#endif
} else if (d->current_profile == 0x1a || d->current_profile == 0x1b || } else if (d->current_profile == 0x1a || d->current_profile == 0x1b ||
d->current_profile == 0x2b || d->current_profile == 0x12 || d->current_profile == 0x2b || d->current_profile == 0x12 ||
d->current_profile == 0x41 || d->current_profile == 0x42 || d->current_profile == 0x41 || d->current_profile == 0x42 ||