aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-02 23:59:54 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-02 23:59:54 -0400
commitdcf87a2e357e277d3f3e3661962703b80113d2f8 (patch)
treeb3980f322c756d37c6940175114f0e5858cd12fe /drivers
parenta38d6181ff27824c79fc7df825164a212eff6a3f (diff)
parentfe77d4f283e840879f0e23b86a5d6a486823fdef (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: add Kconfig help on building both stacks firewire: fix async reception on big endian machines
Diffstat (limited to 'drivers')
-rw-r--r--drivers/firewire/Kconfig65
-rw-r--r--drivers/firewire/fw-ohci.c6
2 files changed, 46 insertions, 25 deletions
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig
index 396dade731f9..d011a76f8e7a 100644
--- a/drivers/firewire/Kconfig
+++ b/drivers/firewire/Kconfig
@@ -4,27 +4,44 @@ comment "An alternative FireWire stack is available with EXPERIMENTAL=y"
4 depends on EXPERIMENTAL=n 4 depends on EXPERIMENTAL=n
5 5
6config FIREWIRE 6config FIREWIRE
7 tristate "IEEE 1394 (FireWire) support (JUJU alternative stack, experimental)" 7 tristate "IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL"
8 depends on EXPERIMENTAL 8 depends on EXPERIMENTAL
9 select CRC_ITU_T 9 select CRC_ITU_T
10 help 10 help
11 IEEE 1394 describes a high performance serial bus, which is also 11 This is the "Juju" FireWire stack, a new alternative implementation
12 known as FireWire(tm) or i.Link(tm) and is used for connecting all
13 sorts of devices (most notably digital video cameras) to your
14 computer.
15
16 If you have FireWire hardware and want to use it, say Y here. This
17 is the core support only, you will also need to select a driver for
18 your IEEE 1394 adapter.
19
20 To compile this driver as a module, say M here: the module will be
21 called firewire-core.
22
23 This is the "JUJU" FireWire stack, an alternative implementation
24 designed for robustness and simplicity. You can build either this 12 designed for robustness and simplicity. You can build either this
25 stack, or the classic stack (the ieee1394 driver, ohci1394 etc.) 13 stack, or the classic stack (the ieee1394 driver, ohci1394 etc.)
26 or both. 14 or both.
27 15
16 To compile this driver as a module, say M here: the module will be
17 called firewire-core. It functionally replaces ieee1394, raw1394,
18 and video1394.
19
20 NOTE:
21
22 You should only build ONE of the stacks, unless you REALLY know what
23 you are doing. If you install both, you should configure them only as
24 modules rather than link them statically, and you should blacklist one
25 of the concurrent low-level drivers in /etc/modprobe.conf. Add either
26
27 blacklist firewire-ohci
28 or
29 blacklist ohci1394
30
31 there depending on which driver you DON'T want to have auto-loaded.
32 You can optionally do the same with the other IEEE 1394/ FireWire
33 drivers.
34
35 If you have an old modprobe which doesn't implement the blacklist
36 directive, use either
37
38 install firewire-ohci /bin/true
39 or
40 install ohci1394 /bin/true
41
42 and so on, depending on which modules you DON't want to have
43 auto-loaded.
44
28config FIREWIRE_OHCI 45config FIREWIRE_OHCI
29 tristate "Support for OHCI FireWire host controllers" 46 tristate "Support for OHCI FireWire host controllers"
30 depends on PCI && FIREWIRE 47 depends on PCI && FIREWIRE
@@ -34,11 +51,13 @@ config FIREWIRE_OHCI
34 is the only chipset in use, so say Y here. 51 is the only chipset in use, so say Y here.
35 52
36 To compile this driver as a module, say M here: The module will be 53 To compile this driver as a module, say M here: The module will be
37 called firewire-ohci. 54 called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394
55 stack.
56
57 NOTE:
38 58
39 If you also build ohci1394 of the classic IEEE 1394 driver stack, 59 If you also build ohci1394 of the classic stack, blacklist either
40 blacklist either ohci1394 or firewire-ohci to let hotplug load the 60 ohci1394 or firewire-ohci to let hotplug load only the desired driver.
41 desired driver.
42 61
43config FIREWIRE_SBP2 62config FIREWIRE_SBP2
44 tristate "Support for storage devices (SBP-2 protocol driver)" 63 tristate "Support for storage devices (SBP-2 protocol driver)"
@@ -50,12 +69,14 @@ config FIREWIRE_SBP2
50 like scanners. 69 like scanners.
51 70
52 To compile this driver as a module, say M here: The module will be 71 To compile this driver as a module, say M here: The module will be
53 called firewire-sbp2. 72 called firewire-sbp2. It replaces sbp2 of the classic IEEE 1394
73 stack.
54 74
55 You should also enable support for disks, CD-ROMs, etc. in the SCSI 75 You should also enable support for disks, CD-ROMs, etc. in the SCSI
56 configuration section. 76 configuration section.
57 77
58 If you also build sbp2 of the classic IEEE 1394 driver stack, 78 NOTE:
59 blacklist either sbp2 or firewire-sbp2 to let hotplug load the 79
60 desired driver. 80 If you also build sbp2 of the classic stack, blacklist either sbp2
81 or firewire-sbp2 to let hotplug load only the desired driver.
61 82
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index b72a5c1f9e69..96c8ac5b86cc 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -373,8 +373,8 @@ static void ar_context_tasklet(unsigned long data)
373 373
374 offset = offsetof(struct ar_buffer, data); 374 offset = offsetof(struct ar_buffer, data);
375 dma_unmap_single(ohci->card.device, 375 dma_unmap_single(ohci->card.device,
376 ab->descriptor.data_address - offset, 376 le32_to_cpu(ab->descriptor.data_address) - offset,
377 PAGE_SIZE, DMA_BIDIRECTIONAL); 377 PAGE_SIZE, DMA_BIDIRECTIONAL);
378 378
379 buffer = ab; 379 buffer = ab;
380 ab = ab->next; 380 ab = ab->next;
@@ -427,7 +427,7 @@ static void ar_context_run(struct ar_context *ctx)
427 size_t offset; 427 size_t offset;
428 428
429 offset = offsetof(struct ar_buffer, data); 429 offset = offsetof(struct ar_buffer, data);
430 ab_bus = ab->descriptor.data_address - offset; 430 ab_bus = le32_to_cpu(ab->descriptor.data_address) - offset;
431 431
432 reg_write(ctx->ohci, COMMAND_PTR(ctx->regs), ab_bus | 1); 432 reg_write(ctx->ohci, COMMAND_PTR(ctx->regs), ab_bus | 1);
433 reg_write(ctx->ohci, CONTROL_SET(ctx->regs), CONTEXT_RUN); 433 reg_write(ctx->ohci, CONTROL_SET(ctx->regs), CONTEXT_RUN);