IEEE 1394 updates for Linux 2.6.18.2-34_opensuse (v391 2007-04-06) drivers/Makefile | 1 drivers/firewire/Kconfig | 60 drivers/firewire/Makefile | 10 drivers/firewire/fw-card.c | 542 + drivers/firewire/fw-device-cdev.c | 974 +++ drivers/firewire/fw-device-cdev.h | 260 drivers/firewire/fw-device.c | 659 ++ drivers/firewire/fw-device.h | 141 drivers/firewire/fw-iso.c | 163 drivers/firewire/fw-ohci.c | 1890 ++++++ drivers/firewire/fw-ohci.h | 153 drivers/firewire/fw-sbp2.c | 1163 +++ drivers/firewire/fw-topology.c | 519 + drivers/firewire/fw-topology.h | 94 drivers/firewire/fw-transaction.c | 889 ++ drivers/firewire/fw-transaction.h | 507 + drivers/ieee1394/.gitignore | 1 drivers/ieee1394/Kconfig | 84 drivers/ieee1394/Makefile | 9 drivers/ieee1394/config_roms.c | 93 drivers/ieee1394/config_roms.h | 20 drivers/ieee1394/csr.c | 31 drivers/ieee1394/csr.h | 107 drivers/ieee1394/csr1212.c | 881 +- drivers/ieee1394/csr1212.h | 475 - drivers/ieee1394/dma.c | 31 drivers/ieee1394/dma.h | 104 drivers/ieee1394/dv1394-private.h | 6 drivers/ieee1394/dv1394.c | 116 drivers/ieee1394/eth1394.c | 159 drivers/ieee1394/eth1394.h | 1 drivers/ieee1394/highlevel.c | 89 drivers/ieee1394/highlevel.h | 215 drivers/ieee1394/hosts.c | 64 drivers/ieee1394/hosts.h | 66 drivers/ieee1394/ieee1394-ioctl.h | 11 drivers/ieee1394/ieee1394.h | 314 - drivers/ieee1394/ieee1394_core.c | 548 + drivers/ieee1394/ieee1394_core.h | 127 drivers/ieee1394/ieee1394_hotplug.h | 30 drivers/ieee1394/ieee1394_transactions.c | 144 drivers/ieee1394/ieee1394_transactions.h | 59 drivers/ieee1394/ieee1394_types.h | 68 drivers/ieee1394/iso.c | 88 drivers/ieee1394/iso.h | 104 drivers/ieee1394/nodemgr.c | 605 - drivers/ieee1394/nodemgr.h | 57 drivers/ieee1394/ohci1394.c | 477 - drivers/ieee1394/ohci1394.h | 18 drivers/ieee1394/oui.db | 7048 ----------------------- drivers/ieee1394/oui2c.sh | 22 drivers/ieee1394/pcilynx.c | 1 drivers/ieee1394/raw1394-private.h | 13 drivers/ieee1394/raw1394.c | 232 drivers/ieee1394/raw1394.h | 10 drivers/ieee1394/sbp2.c | 2485 +++----- drivers/ieee1394/sbp2.h | 332 - drivers/ieee1394/video1394.c | 107 include/linux/pci_ids.h | 1 lib/swiotlb.c | 2 60 files changed, 11716 insertions(+), 11764 deletions(-) ======================================================================== Date: Tue, 27 Mar 2007 01:36:50 +0200 (CEST) From: Stefan Richter Subject: ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts Until now, ieee1394 put an IP-over-1394 capability entry into each new host's config ROM. As soon as the controller was initialized --- i.e. right after modprobe ohci1394 --- this entry triggered a hotplug event which typically caused auto-loading of eth1394. This irritated or annoyed many users and distributors. Of course they could blacklist eth1394, but then ieee1394 wrongly advertized IP-over- 1394 capability to the FireWire bus. Therefore - remove the offending kernel config option IEEE1394_CONFIG_ROM_IP1394, - let eth1394 add the ROM entry by itself, i.e. only after eth1394 was loaded. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=7793 . To emulate the behaviour of older kernels, simply add the following to to /etc/modprobe.conf: install ohci1394 /sbin/modprobe eth1394; \ /sbin/modprobe --ignore-install ohci1394 Note, autoloading of eth1394 when an _external_ IP-over-1394 capable device is discovered is _not_ affected by this patch. Signed-off-by: Stefan Richter --- drivers/ieee1394/Kconfig | 29 +++--------- drivers/ieee1394/config_roms.c | 76 ++++++--------------------------- drivers/ieee1394/config_roms.h | 7 ++- drivers/ieee1394/eth1394.c | 7 ++- drivers/ieee1394/hosts.c | 3 - 5 files changed, 36 insertions(+), 86 deletions(-) ======================================================================== Date: Thu, 22 Mar 2007 00:40:06 +0100 (CET) From: Stefan Richter Subject: ieee1394: change deprecation status of dv1394 Nobody ported ffmpeg from dv1394 to rawiso yet, and there is no justification to remove dv1394 right now. Nevertheless, a strong deprecation of this ABI makes a lot of sense, especially as Kristian H's drivers shape up to be an attractive alternative to the existing ones. But we don't have a schedule at the moment. Signed-off-by: Stefan Richter [[ patch version without Documentation/ hunks ]] --- drivers/ieee1394/Kconfig | 6 +++--- drivers/ieee1394/dv1394.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) ======================================================================== Date: Sun, 18 Mar 2007 12:23:11 +0100 (CET) From: Stefan Richter Subject: ieee1394: eth1394: reduce excessive function inlining Shrinks eth1394.ko by about 5%. Many of these functions have only one caller and are therefore auto- inlined anyway. Signed-off-by: Stefan Richter --- drivers/ieee1394/eth1394.c | 74 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 38 deletions(-) ======================================================================== Date: Sun, 18 Mar 2007 00:55:15 +0100 (CET) From: Stefan Richter Subject: ieee1394: unroll a weird macro This is a coding style touch-up for ieee1394's handle_incoming_packet(). A preprocessor macro contained hardwired variable names and, even worse, the 'break' keyword. This macro is now unrolled and removed. Also, all 'break's which had the effect of a return are replaced by return. And a FIXME comment is brought up to date. Signed-off-by: Stefan Richter --- drivers/ieee1394/ieee1394_core.c | 91 +++++++++++++------------------ 1 file changed, 41 insertions(+), 50 deletions(-) ======================================================================== Date: Sun, 18 Mar 2007 00:53:48 +0100 (CET) From: Stefan Richter Subject: ieee1394: remove usage of skb_queue as packet queue This considerably reduces the memory requirements for a packet and eliminates ieee1394's dependency on CONFIG_NET. TODO: - Double-check if there are any drivers whose packet complete routine really needs process context. If there are none, get rid of khpsbpkt and execute the complete routine in the low-level driver's bottom half's context. - Check whether the complete packet really has to be zeroed when allocated. - Allocate small frequently used packets (e.g. quadlet read requests and 4...8 bytes write requests) from a kmem_cache. Append separately allocated data sections only if necessary. Signed-off-by: Stefan Richter --- drivers/ieee1394/Kconfig | 1 drivers/ieee1394/hosts.c | 12 - drivers/ieee1394/hosts.h | 4 drivers/ieee1394/Kconfig | 1 drivers/ieee1394/hosts.c | 12 - drivers/ieee1394/hosts.h | 4 drivers/ieee1394/ieee1394_core.c | 296 ++++++++++++++++--------------- drivers/ieee1394/ieee1394_core.h | 27 -- 5 files changed, 165 insertions(+), 175 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:29:20 +0100 (CET) From: Stefan Richter Subject: [PATCH 5/5] ieee1394: csr1212: log if devices have CRC errors in their ROM This will point out firmware bugs. I tested with 11 SBP-2 devices and one OS X PC and got these errors from two old CD-RWs only. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:28:36 +0100 (CET) From: Stefan Richter Subject: [PATCH 4/5] ieee1394: csr1212: more sensible names for jump targets Code beneath two labels called "fail" is actually also reached in case of success. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:27:46 +0100 (CET) From: Stefan Richter Subject: [PATCH 3/5] ieee1394: csr1212: warn on unreachable code We want bugs to show themselves. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:27:18 +0100 (CET) From: Stefan Richter Subject: [PATCH 2/5] ieee1394: shrink csr1212_new_string_descriptor_leaf Make unnecessarily generic code specific and thus simpler. Shrink a lookup table from 128 to 16 bytes. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 123 +++++++++++++------------------------ 1 file changed, 46 insertions(+), 77 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:26:38 +0100 (CET) From: Stefan Richter Subject: [PATCH 1/5] ieee1394: csr1212: coding style Whitespace, line breaks, braces... Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 215 ++++++++++++++++++++----------------- drivers/ieee1394/csr1212.h | 31 ++--- 2 files changed, 133 insertions(+), 113 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:51:24 +0100 (CET) From: Stefan Richter Subject: ieee1394: replace vmalloc by kmalloc in csr1212 The biggest chunk ever allocated by CSR1212_MALLOC is 1024 Bytes + sizeof(struct csr1212_csr_rom_cache) big. Most of the time much smaller data structures are allocated. Therefore vmalloc is a waste. The one exception is csr1212_append_new_cache() which is called to append a chunk of CSR1212_EXTENDED_ROM_SIZE + sizeof(struct csr1212_csr_rom_cache) if the currently allocated ROM cache is too small. CSR1212_EXTENDED_ROM_SIZE is generously defined as 256 kBytes. In SVN commit 1220, Steve Kinneberg lowered this to 2 kBytes in the config_rom_2.4 branch. This same commit also switched CSR1212_MALLOC from kmalloc to vmalloc in the SVN trunk branch: > r1220 | kberg | 2004-05-31 01:51:44 +0200 (Mon, 31 May 2004) | 13 lines > > CSR1212 Extended ROM bug fixes: > trunk line changes: > - Use vmalloc instead of kmalloc > - Change delayed_reset_bus() to operate in a work_queue instead of a > timer interrupt. > - Fix hpsb_allocate_and_register_addrspace() to not allocate space > on top of already allocated space. > - Fix problems in csr1212.c filling ConfigROM images when extend > ROMs are present. > config-rom-2.4 changes: > - Changed extended rom allocation from 256K to 8K. (It was actually 2 kB, not 8 kB.) > - Fix hpsb_allocate_and_register_addrspace() to not allocate space > on top of already allocated space. > - Fix problems in csr1212.c filling ConfigROM images when extend > ROMs are present. I am now setting CSR1212_EXTENDED_ROM_SIZE to 2 kB minus the overhead of struct csr1212_csr_rom_cache. Note, this code path is not used by the in-kernel drivers though. raw1394 could trigger it, but the respective libraw1394 functions don't exist yet. Furthermore, userspace programs can replace the entire local ROM via raw1394. If kmalloc does not fulfill their needs --- well, tough luck. I decree that nobody needs such huge extended ROMs. (Extended ROMs are defined by IEEE 1212 clause 7.7.18. The spec does not impose practically relevant restrictions on the size of extended ROM chunks.) Another potentially demanding use of CSR1212_MALLOC is if external FireWire devices come with Extended ROM entries. If they are too big for kmalloc (or have been too big for vmalloc) we just fail to read their ROM. This is quite unlikely though, to my knowledge. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 4 +++- drivers/ieee1394/csr1212.h | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) ======================================================================== Date: Wed, 14 Mar 2007 00:20:53 +0100 (CET) From: Stefan Richter Subject: ieee1394: de-inline some functions This small reorganization of public csr1212 functions saves one exported symbol and a few bytes in the driver modules. Signed-off-by: Stefan Richter --- Update: Make csr1212_read_keyval() static. drivers/ieee1394/csr1212.c | 28 ++++++++++++++++++++++++---- drivers/ieee1394/csr1212.h | 28 +++++----------------------- drivers/ieee1394/ieee1394_core.c | 9 ++++----- 3 files changed, 33 insertions(+), 32 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:50:13 +0100 (CET) From: Stefan Richter Subject: ieee1394: stricter error checks in csr1212 return -EINVAL becomes BUG_ON in checks of function call parameters. Signed-off-by: Stefan Richter --- drivers/ieee1394/config_roms.c | 14 +++--- drivers/ieee1394/csr1212.c | 67 +++++++++++---------------------- drivers/ieee1394/csr1212.h | 4 - 3 files changed, 34 insertions(+), 51 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:49:34 +0100 (CET) From: Stefan Richter Subject: ieee1394: csr1212: rename some types Use u8, u32 etc. instead of u_int8_t, csr1212_quad_t etc. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 93 +++++++++++++++++-------------------- drivers/ieee1394/csr1212.h | 62 +++++++++++------------- 2 files changed, 74 insertions(+), 81 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:49:05 +0100 (CET) From: Stefan Richter Subject: ieee1394: drop csr1212's support for external compilation csr1212 was written to be compiled either as part of the ieee1394 kernel driver or of an anticipated IEEE 1212 userspace library. We now drop support for the latter. The costs in terms of code footprint and depth of abstraction are not countered by any actual benefit. Also remove some obsolete #includes. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 159 ++++++++++------------- drivers/ieee1394/csr1212.h | 88 +----------- drivers/ieee1394/ieee1394_transactions.c | 1 drivers/ieee1394/nodemgr.c | 2 4 files changed, 83 insertions(+), 167 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:47:34 +0100 (CET) From: Stefan Richter Subject: ieee1394: remove unused csr1212 code Delete unused code. Make some extern functions static. Remove superfluous inline keywords. Move private definitions from csr1212.h to csr1212.c. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 309 ++++++++++--------------------------- drivers/ieee1394/csr1212.h | 262 +------------------------------ 2 files changed, 95 insertions(+), 476 deletions(-) ======================================================================== Date: Sat, 17 Mar 2007 10:28:27 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: tweak lookup tables Reverse the #if(n)def logic around a lookup table. Add comments to another lookup table. Save a few bytes text by using char for the tables. Remove the inline keyword of a function which is called only once. Signed-off-by: Stefan Richter --- Update: The sign of char depends on compiler, architecture, or compiler switches. Declare signed char or unsigned char explicitly if used for numerals. drivers/ieee1394/ohci1394.c | 37 +++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:46:07 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: adjust whitespace This partially adjusts to coding style. Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 85 +++++++++++++++++------------------- 1 file changed, 42 insertions(+), 43 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:45:22 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: serialize reset requests and irq handler ohci1394 has basically no protection against concurrent access to registers. The following changes are done here: - Use the ohci->event_lock and mmiowb to serialize the trigger for software-enforced bus resets against a large portion of the IRQ handler. - To accomplish this, cover much more regions of ohci_irq_handler by event_lock. - Set and get host->in_bus_reset with ohci->event_lock taken, i.e. atomically. - Use spin_lock instead of spin_lock_irqsave in ohci_irq_handler. Note, the way how ohci->event_lock was used before had no effect at all as it was only taken by the top half of the IRQ handler. Such things do not inspire trust in ohci1394. Todo: - Audit *all* of ohci1394's register accesses for the need of serialization by spinlocks + mmiowb. - Look into unifying ohci1394's internal locking to a single lock per host. - Audit the selfID complete event handling, including what happens higher up in ieee1394 core, for the possibility to move workload into tasklets or workqueue jobs. Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 58 +++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 27 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:44:21 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: optimize devctl RECV_SET_CHANNEL_MASK Combine 64 MMIO writes to 4 MMIO writes. It is only used by an ioctl through raw1394 though, i.e. not in a hot path. Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) ======================================================================== Date: Sun, 11 Mar 2007 22:43:36 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: remove useless casts and dereferences Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 48 ++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 24 deletions(-) ======================================================================== Date: Mon, 5 Mar 2007 03:44:52 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: add reg_flush, remove bogus barriers Add a utility function to flush MMIO writes. Remove some mb()s which didn't do anything. (There are still a few wmb()s in ohci1394 which look suspicious.) Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 45 +++++++++--------------------------- drivers/ieee1394/ohci1394.h | 14 ++++++----- 2 files changed, 20 insertions(+), 39 deletions(-) ======================================================================== Date: Mon, 5 Mar 2007 03:07:38 +0100 (CET) From: Stefan Richter Subject: ieee1394: small header cleanup Signed-off-by: Stefan Richter --- --- drivers/ieee1394/config_roms.h | 3 +-- drivers/ieee1394/eth1394.h | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) ======================================================================== Date: Mon, 5 Mar 2007 03:06:23 +0100 (CET) From: Stefan Richter Subject: ieee1394: move some comments from declaration to definition Signed-off-by: Stefan Richter --- drivers/ieee1394/config_roms.c | 7 + drivers/ieee1394/config_roms.h | 10 -- drivers/ieee1394/dma.c | 24 ++++++ drivers/ieee1394/dma.h | 22 +---- drivers/ieee1394/highlevel.c | 89 ++++++++++++++++++++++- drivers/ieee1394/highlevel.h | 46 ----------- drivers/ieee1394/hosts.c | 8 ++ drivers/ieee1394/hosts.h | 6 - drivers/ieee1394/ieee1394_core.c | 77 +++++++++++++++++-- drivers/ieee1394/ieee1394_core.h | 73 +----------------- drivers/ieee1394/ieee1394_transactions.c | 29 +++++++ drivers/ieee1394/ieee1394_transactions.h | 20 ----- drivers/ieee1394/iso.c | 84 +++++++++++++++++++++ drivers/ieee1394/iso.h | 35 --------- drivers/ieee1394/nodemgr.c | 32 ++++++-- drivers/ieee1394/nodemgr.h | 20 ----- drivers/ieee1394/ohci1394.c | 1 drivers/ieee1394/ohci1394.h | 4 - 18 files changed, 348 insertions(+), 239 deletions(-) ======================================================================== Date: Mon, 5 Mar 2007 03:05:32 +0100 (CET) From: Stefan Richter Subject: ieee1394: remove declarations of nonexisting functions Signed-off-by: Stefan Richter --- drivers/ieee1394/highlevel.h | 9 --------- drivers/ieee1394/nodemgr.c | 2 +- drivers/ieee1394/nodemgr.h | 4 ---- 3 files changed, 1 insertion(+), 14 deletions(-) ======================================================================== From: Tobias Klauser Date: Sat, 17 Feb 2007 19:11:19 +0000 (+0100) Subject: Storage class should be before const qualifier X-Git-Url: http://git2.kernel.org/git/?p=linux%2Fkernel%2Fgit%2Fbunk%2Ftrivial.git;a=commitdiff_plain;h=c5a69d57eb48e36f84c0737b5b24ec277d7dbfba Storage class should be before const qualifier The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser Signed-off-by: Adrian Bunk ### Stefan Richter: omitted all but the ieee1394 parts ### --- --- drivers/ieee1394/ohci1394.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: Tim Schmielau Date: Wed, 14 Feb 2007 08:33:14 +0000 (-0800) Subject: [PATCH] remove many unneeded #includes of sched.h X-Git-Url: http://git2.kernel.org/git/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=cd354f1ae75e6466a7e31b727faede57a1f89ca5 [PATCH] remove many unneeded #includes of sched.h After Al Viro (finally) succeeded in removing the sched.h #include in module.h recently, it makes sense again to remove other superfluous sched.h includes. There are quite a lot of files which include it but don't actually need anything defined in there. Presumably these includes were once needed for macros that used to live in sched.h, but moved to other header files in the course of cleaning it up. To ease the pain, this time I did not fiddle with any header files and only removed #includes from .c-files, which tend to cause less trouble. Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha, arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig, allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all configs in arch/arm/configs on arm. I also checked that no new warnings were introduced by the patch (actually, some warnings are removed that were emitted by unnecessarily included header files). Signed-off-by: Tim Schmielau Acked-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ### Stefan Richter: omitted all but the ieee1394 parts ### --- --- drivers/ieee1394/eth1394.c | 1 - drivers/ieee1394/iso.c | 1 - drivers/ieee1394/ohci1394.c | 1 - 3 files changed, 3 deletions(-) ======================================================================== Date: Thu, 4 Jan 2007 17:48:09 +0100 From: Jean Delvare Subject: [PATCH] i2c: Declare more i2c_adapter parent devices Declare the parent device of i2c_adapter devices each time we can easily do so. It makes the i2c_adapter appear at the right place in the device tree, rather than as a platform device. The remaining i2c bus drivers (one dozen) will need to be fixed one by one, most likely by turning them info platform drivers. Signed-off-by: Jean Delvare ### Stefan Richter: omitted all but the ieee1394 parts ### --- # drivers/ieee1394/pcilynx.c | 1 + # 1 file changed, 1 insertion(+) # ======================================================================== Date: Sat, 10 Feb 2007 23:57:57 +0100 (CET) From: Stefan Richter Subject: ieee1394: eth1394: clean up host removal ether1394_add_host() guarantees that hi->dev != NULL if hi != NULL. Signed-off-by: Stefan Richter --- --- drivers/ieee1394/eth1394.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) ======================================================================== Date: Sat, 10 Feb 2007 23:56:38 +0100 (CET) From: Stefan Richter Subject: ieee1394: eth1394: unregister address space in failure case Warn if hpsb_allocate_and_register_addrspace() failed. Unregister the address space if something else failed. Signed-off-by: Stefan Richter --- --- drivers/ieee1394/eth1394.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) ======================================================================== Date: Sat, 10 Feb 2007 22:07:38 +0100 (CET) From: Stefan Richter Subject: ieee1394: deserialize nodemgr between several hosts We can let multiple knodemgrd threads run concurrently since there is other lock protection in place for data shared across hosts, in particular the rwsems which are used to protect driver core data. Signed-off-by: Stefan Richter --- drivers/ieee1394/nodemgr.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) ======================================================================== Date: Sat, 10 Feb 2007 22:06:18 +0100 (CET) From: Stefan Richter Subject: ieee1394: fix another deadlock in nodemgr A "modprobe ohci1394; sleep 1.5; modprobe -r ohci1394" could get stuck in uninterruptible state, especially if an external node was connected. http://bugzilla.kernel.org/show_bug.cgi?id=7792 Signed-off-by: Stefan Richter --- drivers/ieee1394/nodemgr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ======================================================================== Date: Tue, 6 Feb 2007 02:34:45 +0100 (CET) From: Stefan Richter Subject: ieee1394: fix host device registering when nodemgr disabled Since my commit 8252bbb1363b7fe963a3eb6f8a36da619a6f5a65 in 2.6.20-rc1, host devices have a dummy driver attached. Alas the driver was not registered before use if ieee1394 was loaded with disable_nodemgr=1. http://bugzilla.kernel.org/show_bug.cgi?id=7942 Signed-off-by: Stefan Richter --- drivers/ieee1394/nodemgr.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) ======================================================================== Date: Sat, 03 Feb 2007 03:09:09 -0500 From: David Moore Subject: RE: raw1394 recv minimal example ? From: David Moore Subject: ieee1394: video1394: DMA fix This together with the phys_to_virt fix in lib/swiotlb.c::swiotlb_sync_sg fixes video1394 DMA on machines with DMA bounce buffers, especially Intel x86-64 machines with > 3GB RAM. Signed-off-by: Stefan Richter Signed-off-by: David Moore Tested-by: Nicolas Turro --- drivers/ieee1394/video1394.c | 8 ++++++++ 1 file changed, 8 insertions(+) Update: description, whitespace ======================================================================== Subject: [PATCH] Missing critical phys_to_virt in lib/swiotlb.c From: David Moore Date: Sun, 04 Feb 2007 13:39:40 -0500 From: David Moore Adds missing call to phys_to_virt() in the lib/swiotlb.c:swiotlb_sync_sg() function. Without this change, a kernel panic will always occur whenever a SWIOTLB bounce buffer from a scatter-gather list gets synced. Signed-off-by: David Moore --- This change was originally part of a larger patch by Jan Beulich, which was more extensive and doesn't look destined to make it into 2.6.20: http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc6/2.6.20-rc6-mm3/broken-out/ia64-swiotlb-bug-fixes.patch However, considering the severity of this one-liner bug, I would like to request that this simplified patch make it into 2.6.20, despite how close we are to the final cut. It fixes real crashes: http://lists.opensuse.org/opensuse-bugs/2006-12/msg02943.html http://qa.mandriva.com/show_bug.cgi?id=28224 http://www.pchdtv.com/forum/viewtopic.php?t=2063&sid=a959a14a4c2db0eebaab7b0df56103ce --- lib/swiotlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== Date: Sun, 4 Feb 2007 20:57:38 +0100 (CET) From: Stefan Richter Subject: ieee1394: sbp2: move some memory allocations into non-atomic context When the command ORB pool is created, the ORB list won't be accessed concurrently. Therefore we don't have to take the spinlock there. Signed-off-by: Stefan Richter --- drivers/ieee1394/sbp2.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) ======================================================================== Date: Sun, 4 Feb 2007 20:54:57 +0100 (CET) From: Stefan Richter Subject: ieee1394: sbp2: optimize DMA direction of s/g tables Unlike the name suggests, "cmd->scatter_gather_element" holds only the s/g table, not the actual s/g elements. Since the table is only read but never written by the device, DMA_BIDIRECTIONAL can be replaced by DMA_TO_DEVICE which may be cheaper on some architectures. Signed-off-by: Stefan Richter --- drivers/ieee1394/sbp2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ======================================================================== Date: Sun, 4 Feb 2007 20:25:43 +0100 (CET) From: Stefan Richter Subject: ieee1394: sbp2: enforce 32bit DMA mapping In order to use OHCI-1394 physical DMA, all s/g elements, s/g tables, ORBs, and response buffers have to reside within the first 4 GB of the FireWire controller's physical address space. Set the correct mask for DMA mappings. Signed-off-by: Stefan Richter --- drivers/ieee1394/sbp2.c | 5 +++++ 1 file changed, 5 insertions(+) ======================================================================== Date: Sun, 4 Feb 2007 13:04:32 +0100 (CET) From: Stefan Richter Subject: ieee1394: sbp2: remove unnecessary alignments of struct members The members "dma_addr_t command_orb_dma" and "dma_addr_t sge_dma" of sbp2.h::sbp2_command_info do not have to be aligned themselves --- only the memory which they point to has to be. The member "struct sbp2_command_orb command_orb" has to be aligned on 4 bytes boundary which is guaranteed because it contains u32 members. The member "struct sbp2_unrestricted_page_table scatter_gather_element", i.e. the SBP-2 s/g table, has to be aligned on 8 bytes boundary according to the SBP-2 spec. This is not a requirement for FireWire controllers but could be expected by SBP-2 targets. I see no need to align the members command_orb and scatter_gather_element on CPU cacheline boundaries. It could have performance benefits, but on the other hand sbp2 has a somewhat wasteful allocation scheme which should be optimized first before further tweaks like cacheline alignments. (E.g. don't always allocate SG_ALL s/g table elements.) Note, before as well as after the patch, the code relies on the assumption that memory alignment in the virtual address space is preserved in the physical address space after DMA mapping. Signed-off-by: Stefan Richter --- drivers/ieee1394/sbp2.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) ======================================================================== Date: Sat, 3 Feb 2007 16:48:51 +0100 (CET) From: Stefan Richter Subject: ieee1394: raw1394: prevent unloading of low-level driver Unloading the low-level driver module of a FireWire host can lead to all sorts of trouble if a raw1394 userspace client is using the host. Just disallow it by incrementing the LLD's module reference count on a RAW1394_REQ_SET_CARD write operation. Decrement it when the file is closed. This feature wouldn't be relevant if "modprobe -r video1394" or "modprobe -r dv1394" didn't automatically unload ohci1394 too. http://bugzilla.kernel.org/show_bug.cgi?id=7701 Signed-off-by: Stefan Richter --- drivers/ieee1394/raw1394.c | 48 ++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 19 deletions(-) ======================================================================== Date: Sat, 3 Feb 2007 17:44:39 +0100 (CET) From: Stefan Richter Subject: ieee1394: cycle timer read extension for raw1394 From: Pieter Palmers This implements the simultaneous read of the isochronous cycle timer and the system clock (in usecs). This allows to express the exact receive time of an ISO packet as a system time with microsecond accuracy. http://bugzilla.kernel.org/show_bug.cgi?id=7773 The counterpart patch for libraw1394 can be found at http://thread.gmane.org/gmane.linux.kernel.firewire.devel/8934 Patch update (Stefan R.): Disable preemption and local interrupts. Prevent integer overflow. Add paranoid error checks and kerneldoc to hpsb_read_cycle_timer. Move it to other ieee1394_core high-level API functions. Change comments. Adjust whitespace. Rename struct _raw1394_cycle_timer. Signed-off-by: Stefan Richter Acked-by: Pieter Palmers Acked-by: Dan Dennedy --- drivers/ieee1394/ieee1394-ioctl.h | 2 + drivers/ieee1394/ieee1394_core.c | 43 ++++++++++++++++++++++++++++++ drivers/ieee1394/ieee1394_core.h | 3 ++ drivers/ieee1394/raw1394.c | 20 +++++++++++++ drivers/ieee1394/raw1394.h | 10 ++++++ 5 files changed, 78 insertions(+) ======================================================================== Date: Sat, 27 Jan 2007 13:54:23 +0100 (CET) From: Stefan Richter Subject: ieee1394: dv1394: tidy up card removal small coding style touch-up and terser coding Signed-off-by: Stefan Richter --- drivers/ieee1394/dv1394.c | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) ======================================================================== Date: Sat, 27 Jan 2007 13:52:52 +0100 (CET) From: Stefan Richter Subject: ieee1394: dv1394: fix CardBus card ejection Fix NULL pointer dereference on hot ejection of a FireWire card while dv1394 was loaded. http://bugzilla.kernel.org/show_bug.cgi?id=7121 I did not test card ejection with open /dev/dv1394 files yet. Signed-off-by: Stefan Richter --- drivers/ieee1394/dv1394.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) ======================================================================== Date: Thu, 25 Jan 2007 22:35:47 +0100 (CET) From: Stefan Richter Subject: ieee1394: sbp2: lower block queue alignment requirement The old setting is copy & waste from usb-storage and doesn't apply to sbp2. There is only 4-byte alignment required for everything, except for S/G table elements which have to be 8-byte aligned according to the SBP-2 spec. (They happen to be ____cacheline_aligned in our implementation. Whether that's good is another question.) We now simply don't tune block queue alignment at all. The default alignment would surely never become anything else than a multiple of 4, else tons of calls to blk_queue_dma_alignment would have to be added everywhere in drivers/... Signed-off-by: Stefan Richter --- drivers/ieee1394/sbp2.c | 2 -- 1 file changed, 2 deletions(-) ======================================================================== Date: Sat, 13 Jan 2007 16:53:58 -0800 From: Arjan van de Ven Subject: ieee1394: mark struct file_operations const Many struct file_operations in the kernel can be "const". Marking them const moves these to the .rodata section, which avoids false sharing with potential dirty data. In addition it'll catch accidental writes at compile time to these shared resources. Signed-off-by: Arjan van de Ven patch reduced to drivers/ieee1394 part Signed-off-by: Stefan Richter --- drivers/ieee1394/dv1394.c | 2 +- drivers/ieee1394/raw1394.c | 2 +- drivers/ieee1394/video1394.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) ======================================================================== Date: Sun, 7 Jan 2007 21:51:48 +0100 (CET) From: Stefan Richter Subject: ieee1394: save one word in struct hpsb_host hpsb_host.config_roms is a bitfield of which only one bit is currently used. hpsb_host.update_config_rom is only a Boolean. Neither one is accessed in hot code paths or with alignment requirements. Signed-off-by: Stefan Richter --- drivers/ieee1394/hosts.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ======================================================================== Date: Sun, 7 Jan 2007 21:49:27 +0100 (CET) From: Stefan Richter Subject: ieee1394: restore config ROM when resuming After PM suspend + resume, the local configuration ROM was not restored. This prevented remote nodes from recognizing the resuming machine. Signed-off-by: Stefan Richter --- drivers/ieee1394/hosts.c | 13 ++++++++----- drivers/ieee1394/hosts.h | 3 ++- drivers/ieee1394/ieee1394_core.c | 1 + drivers/ieee1394/ohci1394.c | 4 +--- 4 files changed, 12 insertions(+), 9 deletions(-) ======================================================================== Date: Sat, 6 Jan 2007 15:07:05 +0100 (CET) From: Stefan Richter Subject: ieee1394: ohci1394: drop pcmcia-cs compatibility code #ifdef PCMCIA is only true if compiled inside pcmcia-cs, isn't it? Signed-off-by: Stefan Richter --- drivers/ieee1394/ohci1394.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) ======================================================================== Date: Wed, 3 Jan 2007 19:32:13 +0100 (CET) From: Stefan Richter Subject: ieee1394: nodemgr: check info_length in ROM header earlier The whole ROM area which is covered by the crc_length field of the ROM header was fetched before the info_length field was checked for correct general ROM format. This might be wasteful or even dangerous with nodes with minimal ROM, nonstandard ROM, or corrupt ROM. Perform this check at the earliest opportunity. Signed-off-by: Stefan Richter --- drivers/ieee1394/csr1212.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ======================================================================== Date: Tue, 2 Jan 2007 22:56:53 +0100 From: Adrian Bunk Subject: the scheduled IEEE1394_OUI_DB removal This patch contains the scheduled IEEE1394_OUI_DB removal. Signed-off-by: Adrian Bunk Update: Also remove drivers/ieee1394/.gitignore. Remove now unused struct members in drivers/ieee1394/nodemgr.h. Signed-off-by: Stefan Richter [[ patch version without feature-removal-schedule.txt hunk ]] --- drivers/ieee1394/.gitignore | 1 drivers/ieee1394/Kconfig | 14 drivers/ieee1394/Makefile | 10 drivers/ieee1394/nodemgr.c | 32 drivers/ieee1394/nodemgr.h | 3 drivers/ieee1394/oui.db | 7048 ------------------------------------ drivers/ieee1394/oui2c.sh | 22 7 files changed, 7130 deletions(-) ======================================================================== Date: Tue, 2 Jan 2007 22:56:57 +0100 From: Adrian Bunk Subject: the scheduled IEEE1394_EXPORT_FULL_API removal This patch contains the scheduled IEEE1394_EXPORT_FULL_API removal. Signed-off-by: Adrian Bunk Update: Pull proper portion of feature-removal-schedule.txt. Signed-off-by: Stefan Richter [[ patch version without feature-removal-schedule.txt hunk ]] --- drivers/ieee1394/Kconfig | 7 ------- drivers/ieee1394/ieee1394_core.c | 22 ---------------------- 2 files changed, 29 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Fix start on cycle 0 for IT, implement start on cycle for IR. Date: Wed, 28 Mar 2007 14:26:10 -0400 Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-ohci.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Fix the range check for the queue_iso payload pointer. Date: Wed, 28 Mar 2007 20:46:23 +0200 (CEST) Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter (renamed a variable) --- drivers/firewire/fw-device-cdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Increase the number of config rom retries and the retry delay. Date: Tue, 27 Mar 2007 01:43:43 -0400 Some devices have a really long power-on cycle, and we fail to successfully probe these if they're plugged in and then turned on. There's really no down-side to bumping the number of retries and the retry delay, and most devices will get picked up within the first couple of retries anyway. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Don't set card->irm_node before we have a new valid topology. Date: Tue, 27 Mar 2007 09:42:39 -0500 In case the topology build fails, we want to retain the old topology info until another reset finishes and results in a valid new tree. If we clear card->irm_node to NULL and the topology build fails, we end up dereferencing a NULL pointer in a few places. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-topology.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Generalize resource tracking for cdev implementation. Date: Tue, 27 Mar 2007 01:43:41 -0400 Generalize the way we keep track of the various resources and assign a unique handle to each resource. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 231 ++++++++++++++---------------- drivers/firewire/fw-device-cdev.h | 7 2 files changed, 119 insertions(+), 119 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Add ioctls to add and remove config rom descriptors. Date: Wed, 28 Mar 2007 21:26:42 +0200 (CEST) Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter (fixed whitespace) --- drivers/firewire/fw-card.c | 2 drivers/firewire/fw-device-cdev.c | 94 ++++++++++++++++++++++++++++++ drivers/firewire/fw-device-cdev.h | 23 ++++++- 3 files changed, 114 insertions(+), 5 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Streamline userspace interface structs. Date: Tue, 27 Mar 2007 01:43:39 -0400 Make event struct layout common part include the closure and add a union for all event types; provide a mechanism for setting the bus reset event closure. Shuffle struct fw_cdev_queue_iso fields around to be 64-bit safe. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 14 ++++++++------ drivers/firewire/fw-device-cdev.h | 28 +++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 11 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] firewire: Remember to set the driver_data pointer when queueing a packet. Date: Mon, 26 Mar 2007 19:18:19 -0400 Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- --- drivers/firewire/fw-ohci.c | 1 + 1 file changed, 1 insertion(+) ======================================================================== Date: Fri, 23 Mar 2007 10:24:02 -0600 From: Marc Butler Subject: [PATCH] firewire: Add phy register defines. Signed-off-by: Marc Butler Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter (added whitespace) --- drivers/firewire/fw-card.c | 14 ++++++++++---- drivers/firewire/fw-transaction.h | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) ======================================================================== Date: Tue, 20 Mar 2007 19:44:26 +0100 (CET) From: Stefan Richter Subject: firewire: ROM cache is CPU-endian Puts a stray endian annotation down. Signed-off-by: Stefan Richter --- drivers/firewire/fw-device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== Date: Tue, 20 Mar 2007 19:42:15 +0100 (CET) From: Stefan Richter Subject: firewire: fix compiler warnings on 64bit Signed-off-by: Stefan Richter Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 7 ++++--- drivers/firewire/fw-device.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) ======================================================================== Date: Mon, 19 Mar 2007 11:37:16 -0400 From: Stefan Richter Subject: firewire: add includes for sem and rw_sem as a precaution. Signed-off-by: Stefan Richter --- --- drivers/firewire/fw-device.c | 2 ++ 1 file changed, 2 insertions(+) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: firewire: Grab dev->sem when doing the update callback. Date: Mon, 19 Mar 2007 11:37:16 -0400 This serializes the update callback with the probe and remove callback from the driver core and prevents remove from being called while update is running for the same device. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ======================================================================== Date: Sun, 18 Mar 2007 01:39:28 +0100 (CET) From: Stefan Richter Subject: firewire: rename CONFIG_FW to CONFIG_FIREWIRE to avoid confusion with CONFIG_FW_LOADER. Signed-off-by: Stefan Richter Acked-by: Kristian Høgsberg --- drivers/Makefile | 2 +- drivers/firewire/Kconfig | 10 +++++----- drivers/firewire/Makefile | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 6/6] firewire: Add ref-counting for sbp2_device and hold a ref while we have work scheduled. Date: Wed, 14 Mar 2007 17:34:58 -0400 Signed-off-by: Kristian Høgsberg ### pre 2.6.20 backport Signed-off-by: Stefan Richter --- drivers/firewire/fw-sbp2.c | 42 ++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 12 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 5/6] firewire: Free pending transactions on cdev release. Date: Wed, 14 Mar 2007 17:34:57 -0400 Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 4/6] firewire: Zero out sd->scsi_host if we fail to register with the SCSI stack. Date: Wed, 14 Mar 2007 17:34:56 -0400 Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-sbp2.c | 2 ++ 1 file changed, 2 insertions(+) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 3/6] firewire: Implement deallocation of address ranges. Date: Wed, 14 Mar 2007 17:34:55 -0400 Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 28 ++++++++++++++++++++++++++++ drivers/firewire/fw-device-cdev.h | 17 +++++++++++------ 2 files changed, 39 insertions(+), 6 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 2/6] firewire: Move sync and tag parameters to start_iso ioctl. Date: Wed, 14 Mar 2007 17:34:54 -0400 Setting these at create_context time or start_iso time doesn't matter much, but raw1394 sets them at start_iso time so that will be easier to emulate this way. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 20 ++++++++++---------- drivers/firewire/fw-device-cdev.h | 4 ++-- drivers/firewire/fw-iso.c | 12 ++++-------- drivers/firewire/fw-ohci.c | 9 ++++----- drivers/firewire/fw-transaction.h | 13 ++++++------- 5 files changed, 26 insertions(+), 32 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 1/6] firewire: Fix dualbuffer iso receive mode and drop buffer fill mode. Date: Wed, 14 Mar 2007 17:34:53 -0400 The dualbuffer DMA setup did not account for the iso trailer word and thus didn't work correctly. With this fixed we can drop the dual buffer fallback mode. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- drivers/firewire/fw-device-cdev.c | 28 +++-- drivers/firewire/fw-ohci.c | 160 ++++++++---------------------- 2 files changed, 66 insertions(+), 122 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 21/21] Implement CSR cycle time and bus time registers. Date: Wed, 7 Mar 2007 12:12:56 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 26 +++++++++++- drivers/firewire/fw-transaction.c | 61 +++++++++++++++++++++++++++++- drivers/firewire/fw-transaction.h | 2 3 files changed, 86 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 20/21] Implement topology map and fix a couple of loopback bugs. Date: Wed, 7 Mar 2007 12:12:55 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-card.c | 2 - drivers/firewire/fw-ohci.c | 11 +++++- drivers/firewire/fw-topology.c | 28 ++++++++++++---- drivers/firewire/fw-topology.h | 3 + drivers/firewire/fw-transaction.c | 52 +++++++++++++++++++++++++++--- drivers/firewire/fw-transaction.h | 5 +- 6 files changed, 85 insertions(+), 16 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 19/21] Export juju specific rcodes to user space. Date: Wed, 7 Mar 2007 12:12:54 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.h | 6 ++++++ 1 file changed, 6 insertions(+) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 18/21] Add generation field to send_request ioctl struct. Date: Wed, 7 Mar 2007 12:12:53 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 2 +- drivers/firewire/fw-device-cdev.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 17/21] Add card index field to get_info cdev ioctl struct. Date: Wed, 7 Mar 2007 12:12:52 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 2 ++ drivers/firewire/fw-device-cdev.h | 3 +++ 2 files changed, 5 insertions(+) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 16/21] Fix order of arguments for iso context creation. Date: Wed, 7 Mar 2007 12:12:51 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 15/21] Track pending transactions and cancel them on cdev release. Date: Wed, 7 Mar 2007 12:12:50 -0500 Without this, pending transactions will dereference freed memory if they complete after the device file has been closed. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 14/21] Move async transmit to use the general context code. Date: Wed, 7 Mar 2007 12:12:49 -0500 The old async transmit context handling was starting and stopping DMA for every packet transmission. This could cause silently failing packet transmission, if the DMA was reprogrammed too close to being stopped. The general context code keeps DMA running at all times and fixes this problem. It's also a nice cleanup. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 362 ++++++++++++------------------ drivers/firewire/fw-transaction.h | 3 2 files changed, 150 insertions(+), 215 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 13/21] Use only a wait queue and terminate poll and read on device removal. Date: Wed, 7 Mar 2007 12:12:48 -0500 Drop the event list semaphore and only use the wait queue and the list to synchronize queue access. Break out of a poll or read whenever the device is disconnected. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 80 +++++++++++++++++++----------- drivers/firewire/fw-device.c | 1 drivers/firewire/fw-device.h | 7 ++ 3 files changed, 59 insertions(+), 29 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 12/21] Don't time out command orbs, leave that to the scsi stack. Date: Wed, 7 Mar 2007 12:12:47 -0500 The mod_timer based timing out of orb was a little to agressive and would time out legit, but long-lived scsi cmds. Besides, the scsi stack keeps track of this already. Since we're only timing out management orbs, go back to wait_for_completion_timeout. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 11/21] Add rom_index attribute for unit sysfs directories. Date: Wed, 7 Mar 2007 12:12:46 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 10/21] Quiet down fw-sbp2 logging a bit, remove stale FIXME. Date: Wed, 7 Mar 2007 12:12:45 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 9/21] Switch cdev code over to use register_chrdev and keep a list of devices. Date: Wed, 7 Mar 2007 12:12:44 -0500 The old mechanism kept a struct cdev for each fw device, but fops->release would reference this struct after the device got freed in some cases. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 5 ++ drivers/firewire/fw-device.c | 56 +++++++++++++++++++----------- drivers/firewire/fw-device.h | 5 ++ drivers/firewire/fw-transaction.c | 7 +++ 4 files changed, 51 insertions(+), 22 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 8/21] Generalize get_config_rom to get_info. Date: Wed, 7 Mar 2007 12:12:43 -0500 Repurpose the get_config_rom ioctl to a general get_info ioctl. This ioctl is now used for version negotiation, and optionally returns the config rom, and the current bus info. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 65 ++++++++++++++++++++++-------- drivers/firewire/fw-device-cdev.h | 31 ++++++++++++-- 2 files changed, 75 insertions(+), 21 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 7/21] Implement ioctl to initiate bus reset. Date: Wed, 7 Mar 2007 12:12:42 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 15 +++++++++++++++ drivers/firewire/fw-device-cdev.h | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 6/21] Add a bus reset event type for fw-device-cdev. Date: Wed, 7 Mar 2007 12:12:41 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 56 ++++++++++++++++++++++++++++++ drivers/firewire/fw-device-cdev.h | 17 +++++++-- drivers/firewire/fw-device.c | 2 + drivers/firewire/fw-device.h | 3 + 4 files changed, 75 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 5/21] Only use INIT_DELAYED_WORK for first initialization. Date: Wed, 7 Mar 2007 12:12:40 -0500 Use PREPARE_DELAYED_WORK to just change the function pointer. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 4/21] Iterate through units in a keventd callback for update callbacks. Date: Wed, 7 Mar 2007 12:12:39 -0500 We can't take the klist lock for the child device list in interrupt context. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 3/21] Clear all interrupt bits before shutting down. Date: Wed, 7 Mar 2007 12:12:38 -0500 Some flaky controllers doesn't honor the masterIntEnable bits and can generate bus reset events even if that bit is cleared. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 2/21] Drop the unused fw_card device. Date: Wed, 7 Mar 2007 12:12:37 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-card.c | 40 +++++++++--------------------- drivers/firewire/fw-transaction.h | 3 -- 2 files changed, 13 insertions(+), 30 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 1/21] Let an fw_descriptor specify a leading immediate key/value pair. Date: Wed, 7 Mar 2007 12:12:36 -0500 This lets us break out "Juju" as the model name in the config rom. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-card.c | 7 +++++- drivers/firewire/fw-transaction.c | 34 ++++++++++++++++++++++-------- drivers/firewire/fw-transaction.h | 1 3 files changed, 32 insertions(+), 10 deletions(-) ======================================================================== Date: Mon, 05 Mar 2007 18:19:51 -0800 From: Thomas Gleixner Subject: Scheduled removal of SA_xxx interrupt flags fixups 3 The obsolete SA_xxx interrupt flags have been used despite the scheduled removal. Fixup the remaining users in -mm. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Cc: Stefan Richter Signed-off-by: Andrew Morton --- drivers/firewire/fw-ohci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== Date: Sun, 4 Mar 2007 14:45:18 +0100 (CET) From: Stefan Richter Subject: firewire: adjust whitespace Remove space before tab and trailing whitespace. Unify indentation of goto target labels. Signed-off-by: Stefan Richter --- drivers/firewire/fw-device.c | 6 ++-- drivers/firewire/fw-iso.c | 2 - drivers/firewire/fw-ohci.c | 46 ++++++++++++++++------------------- 3 files changed, 26 insertions(+), 28 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Implement sync and tag matching for isochronous receive. Date: Fri, 16 Feb 2007 17:34:51 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 10 ++++++++- drivers/firewire/fw-device-cdev.h | 8 +++++++ drivers/firewire/fw-iso.c | 8 +++++-- drivers/firewire/fw-ohci.c | 32 ++++++++++++++++++++++++++++-- drivers/firewire/fw-transaction.h | 13 ++++++++++-- 5 files changed, 64 insertions(+), 7 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Configure channel and speed at context creation time. Date: Fri, 16 Feb 2007 17:34:50 -0500 We need the channel number as we queue up iso packets for transmission so we can fill out the header correctly. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 11 +++++++++-- drivers/firewire/fw-device-cdev.h | 5 ++--- drivers/firewire/fw-iso.c | 11 +++++------ drivers/firewire/fw-ohci.c | 4 ++-- drivers/firewire/fw-transaction.h | 6 +++--- 5 files changed, 21 insertions(+), 16 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Store OHCI version and make sure we have at least 1.1 before doing dualbuffer. Date: Fri, 16 Feb 2007 17:34:49 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Get zeroed out pages for mapping to user space. Date: Fri, 16 Feb 2007 17:34:48 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-iso.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Don't touch DMA descriptors after appending. Date: Fri, 16 Feb 2007 17:34:47 -0500 When a DMA descriptor is appended to the context we sync it for DMA and the device might potentially read it immediately. So, we can't set the IRQ bits in the descriptor after appending. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Use a buffer fill descriptor for receive when header size is 0. Date: Fri, 16 Feb 2007 17:34:46 -0500 When the DMA is setup to not strip any headers, we need to use the buffer fill descriptor instead of the dual buffer, since the dual buffer descriptor must strip a non-zero number of header quadlets. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-iso.c | 2 drivers/firewire/fw-ohci.c | 107 +++++++++++++++++++++++++----- drivers/firewire/fw-transaction.h | 3 3 files changed, 95 insertions(+), 17 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Set correct buffer lengths for dualbuffer DMA descriptor. Date: Fri, 16 Feb 2007 17:34:45 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Acummulate received iso headers and send them back to user space. Date: Fri, 16 Feb 2007 17:34:44 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 25 ++++++++++----- drivers/firewire/fw-device-cdev.h | 2 + drivers/firewire/fw-ohci.c | 49 ++++++++++++++++++++---------- drivers/firewire/fw-transaction.h | 5 ++- 4 files changed, 57 insertions(+), 24 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Log OHCI chipset version in PCI probe. Date: Fri, 16 Feb 2007 17:34:43 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Implement functionality to stop isochronous DMA contexts. Date: Fri, 16 Feb 2007 17:34:42 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 7 ++++ drivers/firewire/fw-device-cdev.h | 1 drivers/firewire/fw-iso.c | 7 ++++ drivers/firewire/fw-ohci.c | 44 ++++++++++++++++++++++-------- drivers/firewire/fw-transaction.h | 5 +++ 5 files changed, 53 insertions(+), 11 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Rename 'send_iso' to 'start_iso'. Date: Fri, 16 Feb 2007 17:34:41 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 12 ++++++------ drivers/firewire/fw-device-cdev.h | 4 ++-- drivers/firewire/fw-iso.c | 8 ++++---- drivers/firewire/fw-ohci.c | 4 ++-- drivers/firewire/fw-transaction.h | 8 ++------ 5 files changed, 16 insertions(+), 20 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Implement basic isochronous receive functionality. Date: Fri, 16 Feb 2007 17:34:40 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 23 +++- drivers/firewire/fw-device-cdev.h | 5 drivers/firewire/fw-iso.c | 7 - drivers/firewire/fw-ohci.c | 168 ++++++++++++++++++++++++++---- drivers/firewire/fw-ohci.h | 1 drivers/firewire/fw-transaction.h | 7 - 6 files changed, 181 insertions(+), 30 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Generalize the iso transmit descriptor buffer logic. Date: Fri, 16 Feb 2007 17:34:39 -0500 The descriptor circular buffer logic used for iso transmission is useful for async transmit too, so pull the sharable logic out in a few standalone functions. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 360 ++++++++++++++++++++++--------------- 1 file changed, 218 insertions(+), 142 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Split the iso buffer out from fw_iso_context and avoid vmalloc. Date: Fri, 16 Feb 2007 17:34:38 -0500 This patch splits out the iso buffer so we can initialize it at mmap time with the size provided in the mmap call. Furthermore, allocate the backing pages using alloc_page to avoid setting up kernel side virtual memory mappings for the pages. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device-cdev.c | 65 +++++++++++----- drivers/firewire/fw-device-cdev.h | 2 drivers/firewire/fw-iso.c | 120 ++++++++++++++++-------------- drivers/firewire/fw-ohci.c | 12 ++- drivers/firewire/fw-transaction.h | 38 +++++++-- 5 files changed, 152 insertions(+), 85 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Use correct payload pointer when demarshalling incoming requests. Date: Fri, 16 Feb 2007 17:34:37 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-transaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Read the *Clear versions of the iso interrupt register. Date: Fri, 16 Feb 2007 17:34:36 -0500 The *Clear registers returns the masked value when read which is what we want. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH] Fix another typo from the bitfield conversion. Date: Fri, 16 Feb 2007 17:34:35 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 11/11] Use dma_mapping_error() for checking for DMA mapping errors. Date: Tue, 6 Feb 2007 14:49:40 -0500 Pointed out by Pete Zaitcev. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-iso.c | 21 +++++++++++++++------ drivers/firewire/fw-ohci.c | 23 +++++++++++++++-------- drivers/firewire/fw-sbp2.c | 28 +++++++++++++++++----------- 3 files changed, 47 insertions(+), 25 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 10/11] Credit the old sbp2.c driver for being a good starting point. Date: Tue, 6 Feb 2007 14:49:39 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 9/11] Use atomic_t's for serial numbers. Date: Tue, 6 Feb 2007 14:49:38 -0500 Signed-off-by: Kristian Høgsberg Use atomic_inc_return. Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 4 ++-- drivers/firewire/fw-device.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 8/11] Spell out fw as firewire in sysfs. Date: Tue, 6 Feb 2007 14:49:37 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 7/11] Complete SCSI commands with DID_BUS_BUSY when a bus reset happens. Date: Tue, 6 Feb 2007 14:49:36 -0500 This lets the SCSI stack retry the command when a SCSI command is interrupted by a FireWire bus reset. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 6/11] Schedule topology work before calling driver update functions. Date: Tue, 6 Feb 2007 14:49:35 -0500 This prevents superfluous bus traffic as fw-sbp2 logs in only to get kicked off the device by another bus reset as the driver core does bus management. Scheduling it this way lets the driver core finish bus management before higher level drivers get the update callback. Signed-off-by: Kristian Høgsberg #### non-canonical pre-2.6.20 backport: Stefan R --- drivers/firewire/fw-topology.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 5/11] Introduce a retry mechanism for reconnects and logins. Date: Tue, 6 Feb 2007 14:49:34 -0500 Sometimes we reconnect too soon, sometimes too late. Adding a retry mechanism make the reconnect step much more robust. Signed-off-by: Kristian Høgsberg #### non-canonical pre-2.6.20 backport: Stefan R --- drivers/firewire/fw-sbp2.c | 172 ++++++++++++++++++++++--------------- 1 file changed, 104 insertions(+), 68 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 4/11] fw-sbp2: Do ORB timeout right. Date: Tue, 6 Feb 2007 14:49:33 -0500 When a management ORB times out, either because the fw_transaction times out or when we don't get the status write, we need to properly cancel the entire operation. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-sbp2.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 3/11] Implement proper transaction cancelation. Date: Tue, 6 Feb 2007 14:49:32 -0500 Drivers such as fw-sbp2 had no way to properly cancel in-progress transactions, which could leave a pending transaction or an unset packet in the low-level queues after kfree'ing the containing structure. fw_cancel_transaction() lets drivers cancel a submitted transaction. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-card.c | 7 +++ drivers/firewire/fw-ohci.c | 33 ++++++++++++++++++ drivers/firewire/fw-sbp2.c | 3 + drivers/firewire/fw-transaction.c | 54 ++++++++++++++++++++++++++---- drivers/firewire/fw-transaction.h | 5 ++ 5 files changed, 95 insertions(+), 7 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 2/11] Reduce some redundant register definitions. Date: Tue, 6 Feb 2007 14:49:31 -0500 Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 50 ++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 28 deletions(-) ======================================================================== From: =?utf-8?q?Kristian_H=C3=B8gsberg?= Subject: [PATCH 1/11] Rework async receive DMA. Date: Tue, 6 Feb 2007 14:49:30 -0500 The old DMA program for receiving async packets stops DMA while processing received packets and only expects one packet per interrupt. Stopping DMA can silently drop packets and we need to handle multiple received packets per interrupt. This new version keeps DMA running at all times and just append new pages as buffers fill up, and supports multiple packets per interrupt. Signed-off-by: Kristian Høgsberg --- drivers/firewire/fw-ohci.c | 210 ++++++++++++++++++------------ drivers/firewire/fw-transaction.c | 3 2 files changed, 131 insertions(+), 82 deletions(-) ======================================================================== Date: Sat, 27 Jan 2007 10:34:55 +0100 (CET) From: Stefan Richter Subject: firewire: use atomic type for fw_device.state Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 2 +- drivers/firewire/fw-device.c | 6 +++--- drivers/firewire/fw-device.h | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:49 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 10/10] Make sure we wait for DMA to stop before we reprogram it. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-ohci.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:45 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 9/10] Implement compliant bus management. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-card.c | 127 +++++++++++++++++++++++++----- drivers/firewire/fw-device.c | 2 drivers/firewire/fw-topology.c | 7 - drivers/firewire/fw-transaction.h | 6 - 4 files changed, 117 insertions(+), 25 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:38 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 8/10] Fix bit shift typo. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-transaction.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:34 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 7/10] Sanitize send error codes. Drop the negative errnos and use RCODEs for all error codes in the complete transaction callback. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-ohci.c | 20 ++++++++++---------- drivers/firewire/fw-transaction.c | 12 ++++++------ drivers/firewire/fw-transaction.h | 2 ++ 3 files changed, 18 insertions(+), 16 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:26 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 6/10] Handle access to CSR resources on local node. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-ohci.c | 130 ++++++++++++++++++++++++++---- drivers/firewire/fw-transaction.c | 14 ++- drivers/firewire/fw-transaction.h | 31 +++++++ 3 files changed, 154 insertions(+), 21 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:18 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 5/10] Add lock transaction opcodes to fw-device-cdev.h. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-device-cdev.h | 8 ++++++++ 1 file changed, 8 insertions(+) ======================================================================== Date: Fri, 26 Jan 2007 00:38:13 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 4/10] Clean up response handling. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-transaction.c | 54 +++++++++++++++--------------- 1 file changed, 27 insertions(+), 27 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:38:04 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 3/10] Loop requests to the host controller back into the stack. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-device.c | 5 ----- drivers/firewire/fw-ohci.c | 33 +++++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 13 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:37:57 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 2/10] Use struct fw_packet for incoming packets too in controller interface. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-ohci.c | 65 +++++++++++++------ drivers/firewire/fw-transaction.c | 99 ++++++++++++++---------------- drivers/firewire/fw-transaction.h | 13 +-- 3 files changed, 94 insertions(+), 83 deletions(-) ======================================================================== Date: Sat, 27 Jan 2007 16:59:15 +0100 (CET) From: Stefan Richter Subject: firewire: fix compilation with gcc 3.4 drivers/firewire/fw-topology.c: In function `report_found_node': drivers/firewire/fw-topology.c:345: error: `typeof' applied to a bit-field drivers/firewire/fw-topology.c:345: error: `typeof' applied to a bit-field Signed-off-by: Stefan Richter --- gcc 4.1.1 (Gentoo 4.1.1-r3) is fine with this. gcc 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk) doesn't like it. --- drivers/firewire/fw-topology.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ======================================================================== Date: Fri, 26 Jan 2007 00:37:50 -0500 From: Kristian =?utf-8?B?SMO4Z3NiZXJn?= Subject: [PATCH 1/10] Implement gap count optimization. Signed-off-by: Kristian Hoegsberg --- drivers/firewire/fw-card.c | 43 ++++++++++++---- drivers/firewire/fw-topology.c | 76 ++++++++++++++++++++++++++---- drivers/firewire/fw-topology.h | 15 ++++- drivers/firewire/fw-transaction.c | 8 ++- drivers/firewire/fw-transaction.h | 6 +- 5 files changed, 119 insertions(+), 29 deletions(-) ======================================================================== Date: Tue, 23 Jan 2007 21:20:08 +0100 (CET) From: Stefan Richter Subject: firewire: fw-sbp2: set command set related device flags Copied from sbp2: - enable spin-up by START STOP UNIT for all devices - enable INQUIRY (36) workaround on demand - prefer READ/ WRITE (10) over (6) for all devices - prefer MODE SENSE (10) for MMC devices Signed-off-by: Stefan Richter --- drivers/firewire/fw-sbp2.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) ======================================================================== Date: Mon, 22 Jan 2007 19:17:37 +0100 From: Adrian Bunk Subject: [-mm patch] drivers/firewire/: cleanups This patch contains the following cleanups: - "extern inline" -> "static inline" - fw-topology.c: make struct fw_node_create static Signed-off-by: Adrian Bunk Signed-off-by: Stefan Richter --- drivers/firewire/fw-ohci.c | 8 ++++---- drivers/firewire/fw-topology.c | 2 +- drivers/firewire/fw-topology.h | 6 +++--- drivers/firewire/fw-transaction.c | 2 +- drivers/firewire/fw-transaction.h | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:50:57 +0100 (CET) From: Stefan Richter Subject: firewire: fw-ohci: remove unnecessary macro Cleans up after patch "Add PCI class ID for firewire OHCI controllers". Signed-off-by: Stefan Richter --- drivers/firewire/fw-ohci.c | 3 --- 1 file changed, 3 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:50:11 +0100 (CET) From: Stefan Richter Subject: firewire: fw-sbp2: remove unused macro Signed-off-by: Stefan Richter --- --- drivers/firewire/fw-sbp2.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:49:38 +0100 (CET) From: Stefan Richter Subject: firewire: fw-sbp2: remove bogus "emulated" host flag There is no emulation going on here too. Signed-off-by: Stefan Richter --- --- drivers/firewire/fw-sbp2.c | 1 - 1 file changed, 1 deletion(-) ======================================================================== Date: Sun, 21 Jan 2007 20:48:51 +0100 (CET) From: Stefan Richter Subject: firewire: consistent usage of node_id Definitions as per IEEE 1212 and IEEE 1394: Node ID: Concatenation of bus ID and local ID. 16 bits long. Bus ID: Identifies a particular bus within a group of buses interconnected by bus bridges. Local ID: Identifies a particular node on a bus. PHY ID: Local ID of IEEE 1394 nodes. 6 bits long. Never ever use a variable called node_id for anything else than a node ID. Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 2 +- drivers/firewire/fw-device-cdev.c | 2 +- drivers/firewire/fw-device.c | 4 ++-- drivers/firewire/fw-ohci.c | 21 ++++++++++++--------- drivers/firewire/fw-sbp2.c | 8 ++++---- drivers/firewire/fw-topology.c | 2 +- drivers/firewire/fw-transaction.c | 6 +++--- 7 files changed, 24 insertions(+), 21 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:46:45 +0100 (CET) From: Stefan Richter Subject: firewire: fix failure path in ohci_enable_phys_dma "goto out" happens with the lock taken. Signed-off-by: Stefan Richter --- --- drivers/firewire/fw-ohci.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:45:32 +0100 (CET) From: Stefan Richter Subject: firewire: comma after last enum item or initializer Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 2 +- drivers/firewire/fw-device-cdev.c | 2 +- drivers/firewire/fw-device.c | 8 ++++---- drivers/firewire/fw-device.h | 2 +- drivers/firewire/fw-ohci.c | 2 +- drivers/firewire/fw-sbp2.c | 2 +- drivers/firewire/fw-topology.h | 2 +- drivers/firewire/fw-transaction.c | 12 ++++++------ 8 files changed, 16 insertions(+), 16 deletions(-) ======================================================================== Date: Sun, 21 Jan 2007 20:44:09 +0100 (CET) From: Stefan Richter Subject: firewire: whitespace adjustments Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 41 ++---- drivers/firewire/fw-device-cdev.h | 18 +-- drivers/firewire/fw-device.c | 4 drivers/firewire/fw-device.h | 6 - drivers/firewire/fw-iso.c | 4 drivers/firewire/fw-ohci.c | 5 drivers/firewire/fw-ohci.h | 44 +++---- drivers/firewire/fw-topology.c | 1 drivers/firewire/fw-topology.h | 8 - drivers/firewire/fw-transaction.c | 8 - drivers/firewire/fw-transaction.h | 178 +++++++++++++++--------------- 11 files changed, 146 insertions(+), 171 deletions(-) ======================================================================== Date: Sun, 14 Jan 2007 15:29:07 +0100 (CET) From: Stefan Richter Subject: firewire: mark some structs const Instances of struct file_operations and struct fw_card_driver can be qualified as "const". Ditto with struct fw_descriptor.data, struct fw_device_id, and predefined instances of struct fw_address_region, at least in the current implementation. Data qualified as const is placed into the .rodata section which won't be mixed with dirty data. Signed-off-by: Stefan Richter --- drivers/firewire/fw-card.c | 2 +- drivers/firewire/fw-device-cdev.c | 2 +- drivers/firewire/fw-device.c | 2 +- drivers/firewire/fw-device.h | 4 ++-- drivers/firewire/fw-ohci.c | 2 +- drivers/firewire/fw-sbp2.c | 2 +- drivers/firewire/fw-transaction.c | 14 +++++++------- drivers/firewire/fw-transaction.h | 18 +++++++++--------- 8 files changed, 23 insertions(+), 23 deletions(-) ======================================================================== Date: Sun, 7 Jan 2007 22:33:59 +0100 (CET) From: Stefan Richter Subject: firewire: additional help in Kconfig Signed-off-by: Stefan Richter --- Update: Additional help for fw-ohci and fw-sbp2 drivers/firewire/Kconfig | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) ======================================================================== Date: Sun, 31 Dec 2006 17:20:20 +0100 (CET) From: Stefan Richter Subject: firewire: put old and new stack into same Kconfig submenu Screenshot from "make menuconfig": ... ?????????????????????? IEEE 1394 (FireWire) support ??????????????????????? ? Arrow keys navigate the menu. selects submenus --->. ? ... ? ??????????????????????????????????????????????????????????????????????? ? ? ? IEEE 1394 (FireWire) support (JUJU alternative stack, experim? ? ? ? Support for OHCI firewire host controllers ? ? ? ? Support for storage devices (SBP-2 protocol driver) ? ? ? ? IEEE 1394 (FireWire) support ? ? ? ? --- Subsystem Options ? ? ? ? [ ] Excessive debugging output ? ? ... ?