Changeset 673 for trunk/libffado/src/libieee1394
- Timestamp:
- 11/01/07 09:04:02 (16 years ago)
- Files:
-
- trunk/libffado/src/libieee1394/configrom.cpp (modified) (6 diffs)
- trunk/libffado/src/libieee1394/configrom.h (modified) (1 diff)
- trunk/libffado/src/libieee1394/ieee1394service.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/libieee1394/configrom.cpp
r644 r673 228 228 struct config_csr_info* csr_info = (struct config_csr_info*) private_data; 229 229 230 if ( !csr_info->service->read( csr_info->nodeId, 230 int nb_retries = 5; 231 232 while ( !csr_info->service->read( csr_info->nodeId, 231 233 addr, 232 234 (size_t)length/4, 233 ( quadlet_t* )buffer) ) 234 { 235 //debugOutput( DEBUG_LEVEL_VERBOSE, "ConfigRom: Read failed\n"); 236 return -1; 237 } 238 239 return 0; 235 ( quadlet_t* )buffer) && nb_retries-- ) 236 {// failed, retry 237 } 238 239 if (nb_retries) return 0; // success 240 else return -1; // failure 240 241 } 241 242 … … 442 443 ConfigRom::updatedNodeId() 443 444 { 444 struct csr1212_csr* csr = 0; 445 debugOutput( DEBUG_LEVEL_VERBOSE, 446 "Checking for updated node id for device with GUID 0x%016llX...\n", 447 getGuid()); 448 449 struct csr1212_csr* csr = NULL; 445 450 for ( fb_nodeid_t nodeId = 0; 446 451 nodeId < m_1394Service->getNodeCount(); … … 450 455 csr_info.service = m_1394Service; 451 456 csr_info.nodeId = 0xffc0 | nodeId; 457 debugOutput( DEBUG_LEVEL_VERBOSE, "Looking at node %d...\n", nodeId); 452 458 453 459 csr = csr1212_create_csr( &configrom_csr1212_ops, … … 456 462 457 463 if (!csr || csr1212_parse_csr( csr ) != CSR1212_SUCCESS) { 464 debugWarning( "Failed to get/parse CSR\n"); 458 465 if (csr) { 459 466 csr1212_destroy_csr(csr); 467 csr = NULL; 460 468 } 461 469 continue; 462 470 } 463 464 471 465 472 octlet_t guid = … … 467 474 | CSR1212_BE32_TO_CPU(csr->bus_info_data[4]); 468 475 476 debugOutput( DEBUG_LEVEL_VERBOSE, 477 " Node has GUID 0x%016llX\n", 478 guid); 479 469 480 if ( guid == getGuid() ) { 481 debugOutput( DEBUG_LEVEL_VERBOSE, "GUID matches ours\n"); 470 482 if ( nodeId != getNodeId() ) { 471 483 debugOutput( DEBUG_LEVEL_VERBOSE, 472 "Device with GUID 0x%0 8x%08xchanged node id "484 "Device with GUID 0x%016llX changed node id " 473 485 "from %d to %d\n", 474 ( unsigned int ) ( getGuid() >> 32 ), 475 ( unsigned int ) ( getGuid() & 0xffffffff ), 486 getGuid(), 476 487 getNodeId(), 477 488 nodeId ); 478 489 m_nodeId = nodeId; 490 } else { 491 debugOutput( DEBUG_LEVEL_VERBOSE, 492 "Device with GUID 0x%016llX kept node id %d\n", 493 getGuid(), 494 getNodeId()); 479 495 } 480 496 if (csr) { 481 497 csr1212_destroy_csr(csr); 498 csr = NULL; 482 499 } 483 500 return true; … … 503 520 printf( "Config ROM\n" ); 504 521 printf( "\tCurrent Node Id:\t%d\n", getNodeId() ); 505 printf( "\tGUID:\t\t\t0x%08x%08x\n", 506 ( unsigned int )( getGuid() >> 32 ), 507 ( unsigned int ) ( getGuid() & 0xffffffff ) ); 522 printf( "\tGUID:\t\t\t0x%016llX\n", getGuid()); 508 523 printf( "\tVendor Name:\t\t%s\n", getVendorName().c_str() ); 509 524 printf( "\tModel Name:\t\t%s\n", getModelName().c_str() ); trunk/libffado/src/libieee1394/configrom.h
r644 r673 105 105 Ieee1394Service& ieee1394Service ); 106 106 107 void setVerboseLevel(int level) { 108 setDebugLevel(level); 109 Element::setVerboseLevel(level); 110 } 111 107 112 protected: 108 113 void processUnitDirectory( struct csr1212_csr* csr, trunk/libffado/src/libieee1394/ieee1394service.cpp
r560 r673 361 361 { 362 362 m_generation = generation; 363 quadlet_t buf=0; 364 365 // do a simple read on ourself in order to update the internal structures 366 // this avoids failures after a bus reset 367 read_quadlet( getLocalNodeId() & 0xFFC0, 368 CSR_REGISTER_BASE | CSR_CYCLE_TIME, 369 &buf ); 363 370 364 371 for ( reset_handler_vec_t::iterator it = m_busResetHandlers.begin();