#8 avc_vcr.c

open
nobody
None
5
2013-01-15
2006-12-11
Denbo_33
No

avc_vcr.c line 287.

284 case AVC1394_CMD_UNIT_INFO:
285 cr->status = AVC1394_RESP_STABLE;
286 cr->operand[0] = AVC1394_OPERAND_UNIT_INFO_EXTENSION_CODE;
287 cr->operand[1] = AVC1394_SUBUNIT_TAPE_RECORDER;
288 break;

AVC1394_SUBUNIT_TAPE_RECORDER; Should be left shifted by 3 (AVC1394_SUBUNIT_TAPE_RECORDER <<3;).
else controller sees Unit as a Monitor and not a tape recorder.

Same as line 296 of
289 case AVC1394_CMD_SUBUNIT_INFO:
290 {
291 int page = ( cr->operand[0] >> 4 ) & 7;
292 if ( page == 0 )
293 {
294 cr->status = AVC1394_RESP_STABLE;
295 cr->operand[0] = (page << 4) | AVC1394_OPERAND_UNIT_INFO_EXTENSION_CODE;
296 cr->operand[1] = AVC1394_SUBUNIT_TAPE_RECORDER << 3;

Discussion