diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-02 23:59:54 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-02 23:59:54 -0400 |
| commit | dcf87a2e357e277d3f3e3661962703b80113d2f8 (patch) | |
| tree | b3980f322c756d37c6940175114f0e5858cd12fe | |
| parent | a38d6181ff27824c79fc7df825164a212eff6a3f (diff) | |
| parent | fe77d4f283e840879f0e23b86a5d6a486823fdef (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
| -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); |
