Skip to content
Snippets Groups Projects
  1. Mar 13, 2008
    • Stefan Richter's avatar
      firewire: warn on fatal condition in topology code · a2cdebe3
      Stefan Richter authored
      
      If this ever happens to anybody, we want to have it in his log.
      
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      a2cdebe3
    • Jarod Wilson's avatar
      firewire: fw-sbp2: set single-phase retry_limit · 51f9dbef
      Jarod Wilson authored
      
      Per the SBP-2 specification, all SBP-2 target devices must have a BUSY_TIMEOUT
      register. Per the 1394-1995 specification, the retry_limt portion of the
      register should be set to 0x0 initially, and set on the target by a logged in
      initiator (i.e., a Linux host w/firewire controller(s)).
      
      Well, as it turns out, lots of devices these days have actually moved on to
      starting to implement SBP-3 compliance, which says that retry_limit should
      default to 0xf instead (yes, SBP-3 stomps directly on 1394-1995, oops).
      
      Prior to this change, the firewire driver stack didn't touch retry_limit, and
      any SBP-3 compliant device worked fine, while SBP-2 compliant ones were unable
      to retransmit when the host returned an ack_busy_X, which resulted in stalled
      out I/O, eventually causing the SCSI layer to give up and offline the device.
      
      The simple fix is for us to set retry_limit to 0xf in the register for all
      devices (which actually matches what the old ieee1394 stack did).
      
      Prior to this change, a hard disk behind an SBP-2 Prolific PL-3507 bridge chip
      would routinely encounter buffer I/O errors and wind up offlined by the SCSI
      layer. With this change, I've encountered zero I/O failures moving tens of GB
      of data around.
      
      Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      51f9dbef
    • Stefan Richter's avatar
      firewire: fw-ohci: Apple UniNorth 1st generation support · 11bf20ad
      Stefan Richter authored
      
      Mostly copied from ohci1394.c.  Necessary for some older Macs, e.g.
      PowerBook G3 Pismo and early PowerBook G4 Titanium.
      
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      11bf20ad
    • Stefan Richter's avatar
      firewire: fw-ohci: PPC PMac platform code · ea8d006b
      Stefan Richter authored
      
      Copied from ohci1394.c.  This code is necessary to prevent machine check
      exceptions when reloading or resuming the driver.
      
      Tested on a 1st generation PowerBook G4 Titanium, which also needs the
      pci_probe() hunk.
      
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      
      I was able to reproduce the system exception on resume with a 3rd-gen
      Titanium PowerBook G4 667, and this patch does let the system resume
      successfully now.
      
      Not quite clear if there was possibly an updated version coming using
      pci_enable_device() instead of the pair of pmac_call_feature() calls,
      but either way, this is a definite must-have, at least for older ppc
      macs -- my Aluminum PowerBook G4/1.67 suspends and resumes without this
      patch just fine.
      
      Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ea8d006b
    • Stefan Richter's avatar
      firewire: endianess annotations · efbf390a
      Stefan Richter authored
      
      Kills warnings from 'make C=1 CHECKFLAGS="-D__CHECK_ENDIAN__" modules':
      
      drivers/firewire/fw-transaction.c:771:10: warning: incorrect type in assignment (different base types)
      drivers/firewire/fw-transaction.c:771:10:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/firewire/fw-transaction.c:771:10:    got restricted unsigned int [usertype] <noident>
      drivers/firewire/fw-transaction.h:93:10: warning: incorrect type in assignment (different base types)
      drivers/firewire/fw-transaction.h:93:10:    expected unsigned int [unsigned] [usertype] <noident>
      drivers/firewire/fw-transaction.h:93:10:    got restricted unsigned int [usertype] <noident>
      drivers/firewire/fw-ohci.c:1490:8: warning: restricted degrades to integer
      drivers/firewire/fw-ohci.c:1490:35: warning: restricted degrades to integer
      drivers/firewire/fw-ohci.c:1516:5: warning: cast to restricted type
      
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
      efbf390a
    • Stefan Richter's avatar
      firewire: endianess fix · 25df287d
      Stefan Richter authored
      
      The generation of incoming requests was filled in in wrong byte order on
      machines with big endian CPU.
      
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarJarod Wilson <jwilson@redhat.com>
      25df287d
  2. Mar 09, 2008
  3. Mar 08, 2008
  4. Mar 07, 2008
Loading