diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/firewire/Kconfig | 65 | ||||
-rw-r--r-- | drivers/firewire/fw-ohci.c | 6 |
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 | ||
6 | config FIREWIRE | 6 | config 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 | |||
28 | config FIREWIRE_OHCI | 45 | config 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 | ||
43 | config FIREWIRE_SBP2 | 62 | config 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); |