• Stefan Richter's avatar
    sbp2: variable status FIFO address (fix login timeout) · 35bdddb8
    Stefan Richter authored
    Let the ieee1394 core select a suitable 1394 address range for sbp2's
    status FIFO instead of using a fixed range. Since the core only selects
    addresses which are guaranteed to be out of the "physical range" as per
    OHCI 1.1, this patch also fixes an old bug:
    
    OHCI controllers which implement a writeable PhysicalUpperBound register
    included sbp2's status FIFO in the physical range. That way sbp2 was
    never notified of a succesful login and always failed after timeout.
    Affected OHCI host adapters include ALi and Fujitsu controllers.
    
    As another side effect of this patch, the status FIFO is no longer
    located in a range for which OHCI chips perform "posted writes". Each
    status write now requires a response subaction. But since large data
    transfers involve only few status writes, there is no measurable
    decrease of I/O throughput. What's more, the status FIFO is now safe
    from potential host bus errors. Nevertheless, posted writes could be
    re-enabled by extensions to the ARM features of the 1394 stack.
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    Signed-off-by: default avatarJody McIntyre <scjody@modernduck.com>
    (cherry picked from b2d38cccad4ef80d6b672b8f89aae5fe2907b113 commit)
    35bdddb8
sbp2.h 12.7 KB