linux/drivers/ieee1394
Stefan Richter 0bed181968 ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets
It is already known that buggy firmwares exist which report a bogus
link_spd in their config ROM bus info block.  We now got the first
report of a bogus max_rom too (Freecom FireWire Hard Drive 1TB,
http://bugzilla.kernel.org/show_bug.cgi?id=12206).

I suspect other OSs only use quadlet reads to fetch the config ROM,
otherwise the firmware authors would have noticed their mistake.
Hence limit ieee1394's config ROM fetching routine to quadlets as the
safe minimum regardless of what the bus info block says.

This will potentially slow the bus reset handling by nodemgr somewhat
down.  But most existing devices support only quadlet reads anyway,
hence there will often be no actual difference to before this change.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2009-01-04 23:50:34 +01:00
..
config_roms.c
config_roms.h
csr.c ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
csr.h
csr1212.c ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets 2009-01-04 23:50:34 +01:00
csr1212.h ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets 2009-01-04 23:50:34 +01:00
dma.c ieee1394: dump mmapped iso buffers in core files 2008-07-14 13:06:02 +02:00
dma.h
dv1394-private.h
dv1394.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-11-06 15:55:34 -08:00
dv1394.h
eth1394.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
eth1394.h
highlevel.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
highlevel.h ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
hosts.c ieee1394: struct device - replace bus_id with dev_name(), dev_set_name() 2008-10-31 08:48:25 +01:00
hosts.h ieee1394: fix list corruption (reported at module removal) 2008-11-29 17:07:56 +01:00
ieee1394_core.c ieee1394: limit early node speed to host interface speed 2008-04-18 17:55:31 +02:00
ieee1394_core.h
ieee1394_hotplug.h
ieee1394_transactions.c ieee1394: remove unused code 2008-01-30 22:22:20 +01:00
ieee1394_transactions.h
ieee1394_types.h
ieee1394-ioctl.h
ieee1394.h ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
init_ohci1394_dma.c x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
iso.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
iso.h ieee1394: rawiso: requeue packet for transmission after skipped cycle 2008-04-25 18:15:45 +02:00
Kconfig ieee1394: Kconfig menu touch-up 2008-06-19 00:12:36 +02:00
Makefile x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
nodemgr.c ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets 2009-01-04 23:50:34 +01:00
nodemgr.h ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
ohci1394.c ieee1394: ohci1394: flush MMIO writes before delay in initialization 2009-01-04 23:50:33 +01:00
ohci1394.h
pcilynx.c ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
pcilynx.h
raw1394-private.h ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe 2008-10-15 22:21:08 +02:00
raw1394.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
raw1394.h
sbp2.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
sbp2.h ieee1394: sbp2: enforce s/g segment size limit 2008-10-15 22:21:07 +02:00
video1394.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-10-16 15:02:24 -07:00
video1394.h