diff options
author | simokawa <simokawa@FreeBSD.org> | 2007-07-08 11:47:52 +0000 |
---|---|---|
committer | simokawa <simokawa@FreeBSD.org> | 2007-07-08 11:47:52 +0000 |
commit | 4df766d13509673472d8fac9e2b4fd393fa2a98f (patch) | |
tree | a6ced0b112aefb58826d7ef0db2aafed737a4ca8 /sys/dev/firewire | |
parent | ee9b742ebbe10157a607fd524ad10764075648d8 (diff) | |
download | FreeBSD-src-4df766d13509673472d8fac9e2b4fd393fa2a98f.zip FreeBSD-src-4df766d13509673472d8fac9e2b4fd393fa2a98f.tar.gz |
Fix a bug of retrieving configuration ROM.
- Handle directories and leaves other than unit directories and text leaves
correctly.
- Now we can retrieve CROM of iSight correctly.
Approved by: re (hrs)
Tested by: flz
MFC after: 3 days
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r-- | sys/dev/firewire/firewire.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c index 3279dba..4015d56 100644 --- a/sys/dev/firewire/firewire.c +++ b/sys/dev/firewire/firewire.c @@ -1455,9 +1455,9 @@ fw_explore_csrblock(struct fw_device *fwdev, int offset, int recur) return (0); for (i = 0; i < dir->crc_len; i ++, offset += sizeof(uint32_t)) { - if (reg[i].key == CROM_UDIR) + if ((reg[i].key & CSRTYPE_MASK) == CSRTYPE_D) recur = 1; - else if (reg[i].key == CROM_TEXTLEAF) + else if ((reg[i].key & CSRTYPE_MASK) == CSRTYPE_L) recur = 0; else continue; |