1. 22 8月, 2011 4 次提交
  2. 21 8月, 2011 1 次提交
  3. 20 8月, 2011 1 次提交
  4. 19 8月, 2011 6 次提交
  5. 18 8月, 2011 2 次提交
  6. 17 8月, 2011 1 次提交
  7. 16 8月, 2011 6 次提交
  8. 15 8月, 2011 1 次提交
  9. 14 8月, 2011 17 次提交
  10. 13 8月, 2011 1 次提交
    • S
      firewire: core: handle ack_busy when fetching the Config ROM · aaff1203
      Stefan Richter 提交于
      Some older Panasonic made camcorders (Panasonic AG-EZ30 and NV-DX110,
      Grundig Scenos DLC 2000) reject requests with ack_busy_X if a request is
      sent immediately after they sent a response to a prior transaction.
      This causes firewire-core to fail probing of the camcorder with "giving
      up on config rom for node id ...".  Consequently, programs like kino or
      dvgrab are unaware of the presence of a camcorder.
      
      Such transaction failures happen also with the ieee1394 driver stack
      (of the 2.4...2.6 kernel series until 2.6.36 inclusive) but with a lower
      likelihood, such that kino or dvgrab are generally able to use these
      camcorders via the older driver stack.  The cause for firewire-ohci's or
      firewire-core's worse behavior is not yet known.  Gap count optimization
      in firewire-core is not the cause.  Perhaps the slightly higher latency
      of transaction completion in the older stack plays a role.  (ieee1394:
      AR-resp DMA context tasklet -> packet completion ktread -> user process;
      firewire-core: tasklet -> user process.)
      
      This change introduces retries and delays after ack_busy_X into
      firewire-core's Config ROM reader, such that at least firewire-core's
      probing and /dev/fw* creation are successful.  This still leaves the
      problem that userland processes are facing transaction failures.
      gscanbus's built-in retry routines deal with them successfully, but
      neither kino's nor dvgrab's do ever succeed.
      
      But at least DV capture with "dvgrab -noavc -card 0" works now.  Live
      video preview in kino works too, but not actual capture.
      
      One way to prevent Configuration ROM reading failures in application
      programs is to modify libraw1394 to synthesize read responses by means
      of firewire-core's Configuration ROM cache.  This would only leave
      CMP and FCP transaction failures as a potential problem source for
      applications.
      Reported-and-tested-by: NThomas Seilund <tps@netmaster.dk>
      Reported-and-tested-by: NRené Fritz <rene@colorcube.de>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      aaff1203