Skip to content

Commit

Permalink
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/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
  • Loading branch information
Linus Torvalds committed Jul 3, 2007
2 parents a38d618 + fe77d4f commit dcf87a2
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 25 deletions.
65 changes: 43 additions & 22 deletions drivers/firewire/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,44 @@ comment "An alternative FireWire stack is available with EXPERIMENTAL=y"
depends on EXPERIMENTAL=n

config FIREWIRE
tristate "IEEE 1394 (FireWire) support (JUJU alternative stack, experimental)"
tristate "IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL"
depends on EXPERIMENTAL
select CRC_ITU_T
help
IEEE 1394 describes a high performance serial bus, which is also
known as FireWire(tm) or i.Link(tm) and is used for connecting all
sorts of devices (most notably digital video cameras) to your
computer.

If you have FireWire hardware and want to use it, say Y here. This
is the core support only, you will also need to select a driver for
your IEEE 1394 adapter.

To compile this driver as a module, say M here: the module will be
called firewire-core.

This is the "JUJU" FireWire stack, an alternative implementation
This is the "Juju" FireWire stack, a new alternative implementation
designed for robustness and simplicity. You can build either this
stack, or the classic stack (the ieee1394 driver, ohci1394 etc.)
or both.

To compile this driver as a module, say M here: the module will be
called firewire-core. It functionally replaces ieee1394, raw1394,
and video1394.

NOTE:

You should only build ONE of the stacks, unless you REALLY know what
you are doing. If you install both, you should configure them only as
modules rather than link them statically, and you should blacklist one
of the concurrent low-level drivers in /etc/modprobe.conf. Add either

blacklist firewire-ohci
or
blacklist ohci1394

there depending on which driver you DON'T want to have auto-loaded.
You can optionally do the same with the other IEEE 1394/ FireWire
drivers.
If you have an old modprobe which doesn't implement the blacklist
directive, use either

install firewire-ohci /bin/true
or
install ohci1394 /bin/true

and so on, depending on which modules you DON't want to have
auto-loaded.
config FIREWIRE_OHCI
tristate "Support for OHCI FireWire host controllers"
depends on PCI && FIREWIRE
Expand All @@ -34,11 +51,13 @@ config FIREWIRE_OHCI
is the only chipset in use, so say Y here.
To compile this driver as a module, say M here: The module will be
called firewire-ohci.
called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394
stack.
NOTE:
If you also build ohci1394 of the classic IEEE 1394 driver stack,
blacklist either ohci1394 or firewire-ohci to let hotplug load the
desired driver.
If you also build ohci1394 of the classic stack, blacklist either
ohci1394 or firewire-ohci to let hotplug load only the desired driver.
config FIREWIRE_SBP2
tristate "Support for storage devices (SBP-2 protocol driver)"
Expand All @@ -50,12 +69,14 @@ config FIREWIRE_SBP2
like scanners.
To compile this driver as a module, say M here: The module will be
called firewire-sbp2.
called firewire-sbp2. It replaces sbp2 of the classic IEEE 1394
stack.
You should also enable support for disks, CD-ROMs, etc. in the SCSI
configuration section.
If you also build sbp2 of the classic IEEE 1394 driver stack,
blacklist either sbp2 or firewire-sbp2 to let hotplug load the
desired driver.
NOTE:
If you also build sbp2 of the classic stack, blacklist either sbp2
or firewire-sbp2 to let hotplug load only the desired driver.
6 changes: 3 additions & 3 deletions drivers/firewire/fw-ohci.c
Original file line number Diff line number Diff line change
Expand Up @@ -373,8 +373,8 @@ static void ar_context_tasklet(unsigned long data)

offset = offsetof(struct ar_buffer, data);
dma_unmap_single(ohci->card.device,
ab->descriptor.data_address - offset,
PAGE_SIZE, DMA_BIDIRECTIONAL);
le32_to_cpu(ab->descriptor.data_address) - offset,
PAGE_SIZE, DMA_BIDIRECTIONAL);

buffer = ab;
ab = ab->next;
Expand Down Expand Up @@ -427,7 +427,7 @@ static void ar_context_run(struct ar_context *ctx)
size_t offset;

offset = offsetof(struct ar_buffer, data);
ab_bus = ab->descriptor.data_address - offset;
ab_bus = le32_to_cpu(ab->descriptor.data_address) - offset;

reg_write(ctx->ohci, COMMAND_PTR(ctx->regs), ab_bus | 1);
reg_write(ctx->ohci, CONTROL_SET(ctx->regs), CONTEXT_RUN);
Expand Down

0 comments on commit dcf87a2

Please sign in to comment.