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 ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts 2007-04-30 00:00:30 +02:00
config_roms.h ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts 2007-04-30 00:00:30 +02:00
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
csr.c ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
csr.h
dma.c ieee1394: dump mmapped iso buffers in core files 2008-07-14 13:06:02 +02:00
dma.h ieee1394: move some comments from declaration to definition 2007-04-30 00:00:28 +02:00
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 ieee1394: eth1394: handle tlabel exhaustion 2007-05-27 23:20:59 +02:00
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: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
ieee1394_hotplug.h
ieee1394_transactions.c ieee1394: remove unused code 2008-01-30 22:22:20 +01:00
ieee1394_transactions.h ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
ieee1394_types.h ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394-ioctl.h ieee1394: cycle timer read extension for raw1394 2007-02-17 14:39:33 +01:00
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 ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
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 ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
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