17 Oct, 2010

1 commit

  • Revert commit 54672386ccf36ffa21d1de8e75624af83f9b0eeb
    "firewire: ohci: fix up configuration of TI chips".
    It caused massive slow-down and data corruption with a TSB82AA2 based
    StarTech EC1394B2 ExpressCard and FireWire 800 harddisks.

    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/657081
    http://thread.gmane.org/gmane.linux.kernel.firewire.user/4013

    The fact that some card EEPROMs do not program these enhancements may be
    related to TSB81BA3 phy chip errata, if not to bugs of TSB82AA2 itself.
    We could re-add these configuration steps, but only conditional on a
    whitelist of cards on which these enhancements bring a proven positive
    effect.

    Reported-and-tested-by: Eric Shattow
    Cc: Clemens Ladisch
    Cc: 2.6.35
    Signed-off-by: Stefan Richter

    Stefan Richter
     

10 Jun, 2010

1 commit

  • Implement the cmstr bit, which is required for cycle master capable
    nodes and tested for by the Base 1394 Test Suite.

    This bit allows the bus master to disable cycle start packets; there are
    bus master implementations that actually do this.

    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     

10 Apr, 2010

2 commits

  • On TI chips (OHCI-Lynx and later), enable link enhancements features
    that TI recommends to be used. None of these are required for proper
    operation, but they are safe and nice to have.

    In theory, these bits should have been set by default, but in practice,
    some BIOS/EEPROM writers apparently do not read the datasheet, or get
    spooked by names like "unfair".

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • The OHCI spec says that, if the programPhyEnable bit is set, the driver
    is responsible for configuring the IEEE1394a enhancements within the PHY
    and the link consistently. So do this.

    Also add a quirk to allow disabling these enhancements; this is needed
    for the TSB12LV22 where ack accelerations are buggy (erratum b).

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     

05 Jun, 2009

1 commit

  • The three header files of firewire-core, i.e.
    "drivers/firewire/fw-device.h",
    "drivers/firewire/fw-topology.h",
    "drivers/firewire/fw-transaction.h",
    are replaced by
    "drivers/firewire/core.h",
    "include/linux/firewire.h".

    The latter includes everything which a firewire high-level driver (like
    firewire-sbp2) needs besides linux/firewire-constants.h, while core.h
    contains the rest which is needed by firewire-core itself and by low-
    level drivers (card drivers) like firewire-ohci.

    High-level drivers can now also reside outside of drivers/firewire
    without having to add drivers/firewire to the header file search path in
    makefiles. At least the firedtv driver will be such a driver.

    I also considered to spread the contents of core.h over several files,
    one for each .c file where the respective implementation resides. But
    it turned out that most core .c files will end up including most of the
    core .h files. Also, the combined core.h isn't unreasonably big, and it
    will lose more of its contents to linux/firewire.h anyway soon when more
    firewire drivers are added. (IP-over-1394, firedtv, and there are plans
    for one or two more.)

    Furthermore, fw-ohci.h is renamed to ohci.h. The name of core.h and
    ohci.h is chosen with regard to name changes of the .c files in a
    follow-up change.

    Signed-off-by: Stefan Richter

    Stefan Richter