22 Mar, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    firewire: core: ignore link-active bit of new nodes, fix device recognition
    firewire: sbp2: revert obsolete 'fix stall with "Unsolicited response"'
    firewire: core: increase default SPLIT_TIMEOUT value
    firewire: ohci: Misleading kfree in ohci.c::pci_probe/remove
    firewire: ohci: omit IntEvent.busReset check rom AT queueing
    firewire: ohci: prevent starting of iso contexts with empty queue
    firewire: ohci: prevent iso completion callbacks after context stop
    firewire: core: rename some variables
    firewire: nosy: should work on Power Mac G4 PCI too
    firewire: core: fix card->reset_jiffies overflow
    firewire: cdev: remove unneeded reference
    firewire: cdev: always wait for outbound transactions to complete
    firewire: cdev: remove unneeded idr_find() from complete_transaction()
    firewire: ohci: log dead DMA contexts

    Linus Torvalds
     

26 Feb, 2011

1 commit


21 Jan, 2011

1 commit


14 Dec, 2010

1 commit

  • Move the AR DMA descriptors out of the buffer pages, and map the buffer
    pages linearly into the kernel's address space. This allows the driver
    to ignore any page boundaries in the DMA data and thus to avoid any
    copying around of packet payloads.

    This fixes the bug where S800 packets that are so big (> 4080 bytes)
    that they can be split over three pages were not handled correctly.

    Due to the changed algorithm, we can now use arbitrarily many buffer
    pages, which improves performance because the controller can more easily
    unload its DMA FIFO.

    Furthermore, using streaming DMA mappings should improve perfomance on
    architectures where coherent DMA mappings are not cacheable. Even on
    other architectures, the caching behaviour should be improved slightly
    because the CPU no longer writes to the buffer pages.

    v2: Detect the last filled buffer page by searching the descriptor's
    residual count value fields in order (like in the old code), instead
    of going backwards through the transfer status fields; it looks as
    if some controllers do not set the latter correctly.

    v3: Fix an old resume bug that would now make the handler run into
    a BUG_ON, and replace that check with more useful error handling.
    Increase the buffer size for better performance with non-TI chips.

    Signed-off-by: Clemens Ladisch

    Maxim Levitsky writes:
    Works almost perfectly. I can still see RCODE_BUSY errors
    sometimes, not very often though. 64K here eliminates these errors
    completely. This is most likely due to nouveau drivers and lowest
    perf level I use to lower card temperature. That increases
    latencies too much I think. Besides that the IO is just perfect.

    Tested-by: Maxim Levitsky
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     

11 Oct, 2010

1 commit

  • The drivers
    - ohci1394 (controller driver)
    - ieee1394 (core)
    - dv1394, raw1394, video1394 (userspace ABI)
    - eth1394, sbp2 (protocol drivers)
    are replaced by
    - firewire-ohci (controller driver)
    - firewire-core (core and userspace ABI)
    - firewire-net, firewire-sbp2 (protocol drivers)
    which are more featureful, better performing, and more secure than the older
    drivers; all with a smaller and more modern code base.

    The driver firedtv in drivers/media/dvb/firewire/ contains backends to both
    ieee1394 and firewire-core. Its ieee1394 backend code can be removed in an
    independent commit; firedtv as-is builds and works fine without ieee1394.

    The driver pcilynx (an incomplete controller driver) is deleted without
    replacement since PCILynx cards are extremely rare. Owners of these cards
    use them with the stand-alone bus sniffer driver nosy instead.

    The drivers nosy and init_ohci1394_dma which do not interact with either of
    the two IEEE 1394 stacks are not affected by the ieee1394 subsystem removal.

    There are still some issues with the newer firewire subsystem compared to
    the older one:
    - The rare and quirky controllers ALi M52xx, Apple UniNorth v1, NVIDIA
    NForce2 are even less well supported by firewire-ohci than by ohci1394.
    I am looking into the M52xx issue.
    - The experimental firewire-net is reportedly less stable than its
    experimental cousin eth1394.
    - Audio playback of a certain group of audio devices (ones based on DICE
    chipset with EAP; supported by prerelease FFADO code) does not work yet.
    This issue is still under investigation.
    - There were some ieee1394 based out-of-the-mainline drivers. Of them,
    only lisight, an audio driver for iSight webcams, seems still useful.
    Work is underway to reimplement it on top of firewire-core.

    All these remainig issues are minor; they should not stand in the way of
    overall better user experience of IEEE 1394 on Linux, together with a
    reduction in support efforts and maintenance burden. The coexistence of two
    IEEE 1394 kernel driver stacks in the mainline since 2.6.22 shall end now,
    as announced earlier this year.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

27 Jul, 2010

2 commits

  • This adds nosy-dump, the userspace part of nosy, the IEEE 1394 traffic
    sniffer for Texas Instruments PCILynx/ PCILynx2 based cards. Author is
    Kristian Høgsberg.

    The files added here are taken from
    git://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)
    with the following changes by Stefan Richter:
    - Parts pertaining to the kernel module removed from Makefile.
    - dist target removed from the Makefile.
    - Mentioned nosy-dump in the Kconfig help to nosy's kernel component.
    - Add copyright notice to nosy-dump.c. This is a duplicate of the
    respective notice in the kernel component nosy.c except for a time
    span of 2002 - 2006, according to Kristian's git log.

    "git shortlog decode-fcp.c list.h nosy-dump.[ch]" from nosy's git
    repository:

    Jonathan Woithe (1):
    Save logs on Ctrl-C

    Kristian Høgsberg (11):
    Pull over nosy from mercurial repo.
    Remove some fields from default view, add logging feature.
    Use infinite time out for poll(), mark more detail fields.
    Fix byte ordering macro.
    Add decoding of iso data and lock packets.
    Add flag to indicate data length field.
    Add cycle start packet decoding, add --iso and --cycle-start flags.
    Distinguish between phy-packets and 0-length iso data.
    Fix transaction and stats view.
    Add simple AV/C decoder.
    Don't break down on big payloads.

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     
  • This adds the traffic sniffer driver for Texas Instruments PCILynx/
    PCILynx2 based cards. The use cases for nosy are analysis of
    nonstandard protocols and as an aid in development of drivers,
    applications, or firmwares.

    Author of the driver is Kristian Høgsberg. Known contributers are
    Jody McIntyre and Jonathan Woithe.

    Nosy programs PCILynx chips to operate in promiscuous mode, which is a
    feature that is not found in OHCI-1394 controllers. Hence, only special
    hardware as mentioned in the Kconfig help text is suitable for nosy.

    This is only the kernelspace part of nosy. There is a userspace
    interface to it, called nosy-dump, proposed to be added into the tools/
    subdirectory of the kernel sources in a subsequent change. Kernelspace
    and userspave component of nosy communicate via a 'misc' character
    device file called /dev/nosy with a simple ioctl() and read() based
    protocol, as described by nosy-user.h.

    The files added here are taken from
    git://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)
    with the following changes by Stefan Richter:
    - Kconfig and Makefile hunks are written from scratch.
    - Commented out version printk in nosy.c.
    - Included missing , reported by Stephen Rothwell.

    "git shortlog nosy{-user.h,.c,.h}" from nosy's git repository:

    Jonathan Woithe (2):
    Nosy updates for recent kernels
    Fix uninitialised memory (needed for 2.6.31 kernel)

    Kristian Høgsberg (5):
    Pull over nosy from mercurial repo.
    Use a misc device instead.
    Add simple AV/C decoder.
    Don't break down on big payloads.
    Set parent device for misc device.

    As a low-level IEEE 1394 driver, its files are placed into
    drivers/firewire/ although nosy is not part of the firewire driver
    stack.

    I am aware of the following literature from Texas Instruments about
    PCILynx programming:
    SCPA020A - PCILynx 1394 to PCI Bus Interface TSB12LV21BPGF
    Functional Specification
    SLLA023 - Initialization and Asynchronous Programming of the
    TSB12LV21A 1394 Device

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     

30 Dec, 2009

1 commit

  • Update the Kconfig help texts of both stacks to encourage a general move
    from the older to the newer drivers. However, do not label ieee1394 as
    "Obsolete" yet, as the newer drivers have not been deployed as default
    stack in the majority of Linux distributions yet, and those who start
    doing so now may still want to install the old drivers as fallback for
    unforeseen issues.

    Since Linux 2.6.32, FireWire audio devices can be driven by the newer
    firewire driver stack too, hence remove an outdated comment about audio
    devices. Also remove comments about library versions since the 2nd
    generation of libraw1394 and libdc1394 is now in common use; details on
    library versions can be read at the wiki link from the help texts.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

21 Jun, 2009

1 commit

  • The new stack is now recommended over the old one if used for industrial
    video (IIDC/DCAM) or for storage devices (SBP-2) due to better
    performance, improved compatibility, added features, and security. It
    should also be functionally on par with and is more secure than the old
    ieee1394 stack in the use case of consumer video devices.

    IP-over-1394 support for the new stack is currently emerging, and a
    backend of the firedtv DVB driver to the new stack should be available
    soon.

    The one remaining area where the old stack is still required are audio
    devices, as the new stack is not yet able to support the FFADO FireWire
    audio framework.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

14 Jun, 2009

1 commit


20 Aug, 2008

1 commit


26 Jul, 2008

1 commit


19 Jun, 2008

1 commit


18 Apr, 2008

1 commit

  • This adds debug printks for asynchronous transmission and reception and
    for self ID reception. They can be enabled at module load time, and at
    runtime via /sys/module/firewire_ohci/parameters/debug.

    Signed-off-by: Jarod Wilson

    Also added: Logging of interrupt event codes and of cancelled AT
    packets.

    The code now depends on a Kconfig variable. This makes it easier to
    build firewire-ohci without the feature or to make it an option in the
    future. The variable is currently hidden and always on.

    This feature inflates firewire-ohci.ko by 7 kB = 27% on x86-64 and by
    4 kB = 23% on i686.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

14 Mar, 2008

1 commit


07 Oct, 2007

1 commit


29 Jun, 2007

1 commit


28 May, 2007

1 commit


11 May, 2007

1 commit


21 Mar, 2007

1 commit


10 Mar, 2007

7 commits