)]}'
{
  "log": [
    {
      "commit": "55ddf14b04bfe5afaab892a8fb12164b803f1dd5",
      "tree": "fd6e6f0b9508628fca8d0cadd4ece199201991b2",
      "parents": [
        "a9a0aff5b56d4c40288c000ff09c3f238b6b6fec",
        "3014420b6b5d0a6483cf5e56c10df180a33e957e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: schedule for removal\n  firewire: core: use separate timeout for each transaction\n  firewire: core: Fix tlabel exhaustion problem\n  firewire: core: make transaction label allocation more robust\n  firewire: core: clean up config ROM related defined constants\n  ieee1394: mark char device files as not seekable\n  firewire: cdev: mark char device files as not seekable\n  firewire: ohci: cleanups and fix for nonstandard build without debug facility\n  firewire: ohci: wait for PHY register accesses to complete\n  firewire: ohci: fix up configuration of TI chips\n  firewire: ohci: enable 1394a enhancements\n  firewire: ohci: do not clear PHY interrupt status inadvertently\n  firewire: ohci: add a function for reading PHY registers\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "cfc94b2c9ac603b20db54225408df6ed80188dcd",
      "tree": "6e5b21adac556242b89931c4d0929b66efb8c0b9",
      "parents": [
        "4c6a3999651741419cd3cc4303cf0c2be07d89bc",
        "e1393667be574807a13bfaf1bb471f5fd1a5287b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: wait for local CSR lock access to finish\n  firewire: ohci: prevent aliasing of locally handled register addresses\n  firewire: core: fw_iso_resource_manage: return -EBUSY when out of resources\n  firewire: core: fix retries calculation in iso manage_channel()\n  firewire: cdev: fix cut+paste mistake in disclaimer\n"
    },
    {
      "commit": "e1393667be574807a13bfaf1bb471f5fd1a5287b",
      "tree": "5f2084f1a5099062cb27e74765ec3cd8a69c3489",
      "parents": [
        "2608203daf5f87311c6e5d36e5de5efcb14aab24"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:44 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: wait for local CSR lock access to finish\n\nAdd a loop to wait for the controller to finish a locally-initiated CSR\nlock operation.  Google shows some occurrences of the \"swap not done\nyet\" message which might indicate that some OHCI controllers are not\nfast enough to do the lock/swap in the time needed for one PCI access.\n\nThis also correctly handles the case where the lock operation did not\nfinish, instead of silently returning an uninitialized value.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2608203daf5f87311c6e5d36e5de5efcb14aab24",
      "tree": "f0060813795c68ab988a998c4cced16d67139ded",
      "parents": [
        "d6372b6e7c6142e6cc2108b3b850584cd7ade106"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: prevent aliasing of locally handled register addresses\n\nWe must compute the offset from the CSR register base with the\nfull 48 address bits to prevent matching with addresses whose\nlower 32 bits happen to be equal with one of the specially\nhandled registers.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5da3dac8d99c9933f12286fd73fa18e26f768bea",
      "tree": "8db17c8e7996c92381920a0e97380a5adc8a6d7a",
      "parents": [
        "35d999b12037b5ea0152889232629c25d45b0e26"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 02 14:05:02 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: cleanups and fix for nonstandard build without debug facility\n\n1) Clean up two function names:  The ohci_ prefix is only used in names\nof fw_card_driver hooks.  There were two unnecessary exceptions.\n\n2) Replace empty macros by empty inline functions so that call parameter\ntype checking is available in #ifndef\u0027d builds.\n\n3) CONFIG_FIREWIRE_OHCI_DEBUG is currently a hidden kconfig variable,\nhence is not going to be switched off by anybody.  Still, it can be\nswitched off but then compilation will fail in ohci_enable() at the\nexpression param_debug \u0026 OHCI_PARAM_DEBUG_BUSRESETS.  Add the necessary\ndefinitions in the nonstandard case.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "35d999b12037b5ea0152889232629c25d45b0e26",
      "tree": "4c9838cd44e7f2539f986ff3acbe4c45ce12bc8e",
      "parents": [
        "54672386ccf36ffa21d1de8e75624af83f9b0eeb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:04:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: wait for PHY register accesses to complete\n\nRather than having the arbitrary msleep(2) pause, let read_phy_reg()\nloop until the link--phy access was finished.\n\nFactor write_phy_reg() out of ohci_update_phy_reg() and of\nread_paged_phy_reg() and let it loop too until the link--phy access was\nfinished.\n\nLike in the older ohci1394 driver, a timeout of 100 milliseconds is\nchosen.  Unlike the old driver, we sleep instead of busy-wait in each\nwaiting loop iteration.  Instead of a loop, the waiting could probably\nalso be implemented interrupt driven, but why bother.  It would require\nup and running interrupt handling before the link was fully configured\nand enabled.\n\nAlso modify functions a bit:  Error return and value return can be\ncombined in read_phy_reg() since the domain of values is only u8.\nLikewise in read_paged_phy_reg().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "54672386ccf36ffa21d1de8e75624af83f9b0eeb",
      "tree": "4151332eab6070ffcda77012a3afc99e15425b5b",
      "parents": [
        "925e7a6504966b838c519f009086982c68e0666f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:43:59 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: fix up configuration of TI chips\n\nOn TI chips (OHCI-Lynx and later), enable link enhancements features\nthat TI recommends to be used.  None of these are required for proper\noperation, but they are safe and nice to have.\n\nIn theory, these bits should have been set by default, but in practice,\nsome BIOS/EEPROM writers apparently do not read the datasheet, or get\nspooked by names like \"unfair\".\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "925e7a6504966b838c519f009086982c68e0666f",
      "tree": "38ead3a8ae51b973156f6238f7c6b3800d3d7d46",
      "parents": [
        "e7014dada041982ae12ba7fd1967ca0ab0243e04"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:54 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: enable 1394a enhancements\n\nThe OHCI spec says that, if the programPhyEnable bit is set, the driver\nis responsible for configuring the IEEE1394a enhancements within the PHY\nand the link consistently.  So do this.\n\nAlso add a quirk to allow disabling these enhancements; this is needed\nfor the TSB12LV22 where ack accelerations are buggy (erratum b).\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e7014dada041982ae12ba7fd1967ca0ab0243e04",
      "tree": "b82e8047c6f00cfdfd9254a9cdcb66867a673e74",
      "parents": [
        "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:40:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: do not clear PHY interrupt status inadvertently\n\nThe interrupt status bits in PHY register 5 are cleared by writing a one\nbit.  To avoid clearing them unadvertently, do not write them back when\nthey were read as set, but only when they have been explicitly requested\nto be set.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e",
      "tree": "9a1e7500b64d98845607266b8f15b7a5384aa60f",
      "parents": [
        "ca658b1e29d6be939207532e337fb640eb697f71"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: add a function for reading PHY registers\n\nMove the register reading code from ohci_update_phy_reg() into\na function which can be used separately.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "8301b91ba0b2d15c86fdf5357efe7c04eb767a6e",
      "tree": "618f6ef4d1b4a35bba74af004a0aabdde4f315e2",
      "parents": [
        "cf36df6bfb49fd265a39f676bfc9718029fef160"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Mar 17 11:07:55 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 17 23:24:42 2010 +0100"
      },
      "message": "firewire: ohci: add cycle timer quirk for the TI TSB12LV22\n\nAmong the many entries in the TSB12LV22 errata list (TI literature\nnumber SLLS312) is the following:\n\n  PCI Slave reads of the Cycle Timer register may occasionally get an\n  incorrect value.\n  Software may be able to validate value by reading the register\n  multiple times rapidly and evaluating for a reasonable difference.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (untested)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (added #define)\n"
    },
    {
      "commit": "88393161210493e317ae391696ee8ef463cb3c23",
      "tree": "6ec81a50d0e8174b415d83948b48cbabd7e54ddb",
      "parents": [
        "932fb06b0898f5883200f1da2e00075f0d70ba9c"
      ],
      "author": {
        "name": "Thomas Weber",
        "email": "swirl@gmx.li",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "message": "Fix typos in comments\n\n[Ss]ytem \u003d\u003e [Ss]ystem\nudpate \u003d\u003e update\nparamters \u003d\u003e parameters\norginal \u003d\u003e original\n\nSigned-off-by: Thomas Weber \u003cswirl@gmx.li\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6fdb2ee243404c7cbf530387bf904ad1841ebf5b",
      "tree": "f4a3cec81b7dc416b38d7b107ff60ac5c42ad463",
      "parents": [
        "4802f16d512d6e3b36177709d50c05df0ef52a6c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:59:14 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: extend initialization log message\n\nby the number of available isochronous DMA contexts and active quirks\nwhich is occasionally useful information.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4802f16d512d6e3b36177709d50c05df0ef52a6c",
      "tree": "3d46d5088d41b8e38e7601a1a37c676d54270fe2",
      "parents": [
        "3e9cc2f3b7ddabbbfc9abd043887030c669380aa"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:52 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: fix IR/IT context mask mixup\n\nThis bug was present in firewire-ohci since day one:  The number of\navailable isochronous receive DMA contexts was mixed up with that of\navailable isochronous transmit DMA contexts.\n\nThis is harmless on a few chips which offer the same number of contexts\nin both directions, but most chips nowadays implement only the standard\nminimum of 4 IR contexts, but 8 IT contexts.  If a user attempted to run\na lot of IR contexts at once, results with more than four were therefore\nunpredictable.  I suppose the controller would simply refuse to start\nDMA of any unimplemented context.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3e9cc2f3b7ddabbbfc9abd043887030c669380aa",
      "tree": "1495ea0e7fa0861be914492d7bb7b5518fb34a34",
      "parents": [
        "4a635593f447443459fb92a482b5cc6d1dd15199"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:29 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: add module parameter to activate quirk fixes\n\nThis way, we can advise users of precompiled kernel packages to test\nexisting quirk fixes on chips which have not been listed yet, without\nthem having to build a kernel from source.\n\nNote, to use this feature on a machine with more than one controller,\nsteps like these are necessary:\n# lspci | grep 1394\n# ls /sys/bus/pci/drivers/firewire_ohci/\n# echo -n \"0000:03:02.0\" \u003e /sys/bus/pci/drivers/firewire_ohci/unbind\n# echo 2 \u003e /sys/module/firewire_ohci/parameters/quirks\n# echo -n \"0000:03:02.0\" \u003e /sys/bus/pci/drivers/firewire_ohci/bind\n# echo 0 \u003e /sys/module/firewire_ohci/parameters/quirks\n\nThe parameter can also be used to switch off quirk flags that were\nhardwired into firewire-ohci\u0027s quirks table.  Simply specify a non-zero\nquirks value but without any known flags, e.g. 0x100.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a635593f447443459fb92a482b5cc6d1dd15199",
      "tree": "a3821827971de21daa1dd56f760064f8d3ead604",
      "parents": [
        "ecb1cf9c446ad7e8248160fe6797cd9bed817f24"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:01 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: use an ID table for quirks detection\n\nWe don\u0027t have a lot of quirks to take into account (especially since\ndual-buffer IR is out of the picture), but still, a table-based approach\nis more organized than a series of if () clauses.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ecb1cf9c446ad7e8248160fe6797cd9bed817f24",
      "tree": "b31a52f938f7eee08f26455c2602bb8aca94bd9e",
      "parents": [
        "6498ba04aee69540f8f586438f90d58e5b8e6936"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:57:32 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: reorder struct fw_ohci for better cache efficiency\n\nThe config_rom struct members are only accessed during relatively\ninfrequent self-ID-complete interrupts and only if the local config ROM\nwas changed, while the ar_, at_, ir_, it_ members are used very\nfrequently during I/O.  Hence move the config_rom members further down.\n\nMore importantly, make the huge self_id_buffer member the last one; this\nis only accessed in self-ID-complete interrupts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6498ba04aee69540f8f586438f90d58e5b8e6936",
      "tree": "07f085b966af88265cbf36f30464f6f3943ecd77",
      "parents": [
        "64582298b9c29535188380f488873e7d2196a2eb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:57:05 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: remove unused dualbuffer IR code\n\nThis code was no longer used since 2.6.33, \"firewire: ohci: always use\npacket-per-buffer mode for isochronous reception\" commit 090699c0.  If\nanybody needs this code in the future for special purposes, it can be\nbrought back in.  But it must not be re-enabled by default; drivers\n(kernelspace or userspace drivers) should only get this mode if they\nexplicitly request it.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "109d28152b6e9d5de64cd23e3bc08885ccb3d1ef",
      "tree": "b7b8863faa05254781acfb85cc41da3eef467c6b",
      "parents": [
        "168cf9af699e87d5a6f44b684583714ecabb8e71",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:31:04 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:33:45 2010 +0100"
      },
      "message": "Merge tag \u0027v2.6.33\u0027 for its firewire changes since last branch point\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "168cf9af699e87d5a6f44b684583714ecabb8e71",
      "tree": "2f491d28a4a129caf7c2be306aec33c437a5cb30",
      "parents": [
        "4a9bde9b8ab55a2bb51b57cad215a97bcf80bae2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 18:49:18 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:33:14 2010 +0100"
      },
      "message": "firewire: remove incomplete Bus_Time CSR support\n\nThe current implementation of Bus_Time read access was buggy since it\ndid not ensure that Bus_Time.second_count_hi and second_count_lo came\nfrom the same 128 seconds period.\n\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\n\nInstead of a fix, remove Bus_Time register support altogether.  The spec\nrequires all cycle master capable nodes to implement this (all Linux\nnodes are cycle master capable) while it also says that it \"may\" be\ninitialized by the bus manager or by the IRM standing in for a bus\nmanager.  (Neither Linux\u0027 firewire-core nor ieee1394 nodemgr implement\nthis.)\n\nSince we cannot rely on Bus_Time having been initialized by a bus\nmanager, it is better to return an error instead of a nonsensical value\non a read request to Bus_Time.\n\nAlternatively, we could fix the Bus_Time read integrity bug _and_\nimplement (a) cycle master\u0027s write support of the register as well as\n(b) bus manager\u0027s Bus_Time initialization service, i.e. preservation of\nthe Bus_Time when the cycle master node of a bus changes.  However, that\nwould be quite some code for a feature that is unreliable to begin with\nand very likely unused in practice.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a9bde9b8ab55a2bb51b57cad215a97bcf80bae2",
      "tree": "e36282d7ed7e39f499e93f413cad57897477c53f",
      "parents": [
        "1c1517efe173599ca2f1526ce7a04521cd424a9f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:24:43 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:33:13 2010 +0100"
      },
      "message": "firewire: get_cycle_timer optimization and cleanup\n\nohci:  Break out of the retry loop if too many attempts were necessary.\nThis may theoretically happen if the chip is fatally defective or if the\nget_cycle_timer ioctl was performed after a CardBus controller was\nejected.\n\nAlso micro-optimize the loop by re-using the last two register reads in\nthe next iteration, remove a questionable inline keyword, and shuffle a\ncomment around.\n\ncore:  ioctl_get_cycle_timer() is always called with interrupts on,\ntherefore local_irq_save() can be replaced by local_irq_disable().\nDisabled local IRQs imply disabled preemption, hence preempt_disable()\ncan be removed.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1c1517efe173599ca2f1526ce7a04521cd424a9f",
      "tree": "72c9cfdb9481c689ecad6573e12e766ca5038cbc",
      "parents": [
        "b677532b971276f48e82578b4d829fb4382e7b41"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 18:47:07 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Feb 19 20:51:10 2010 +0100"
      },
      "message": "firewire: ohci: enable cycle timer fix on ALi and NEC controllers\n\nDiscussed in \"read_cycle_timer backwards for sub-cycle 0000, 0001\",\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.devel/13704\n\nKnown bad controllers:\n  ALi M5271, listed by lspci as M5253 [10b9:5253]\n  NEC OrangeLink [1033:00cd] (rev 03)\n  NEC uPD72874 [1033:00f2] (rev 01)\n  VIA VT6306 [1106:3044] (rev 46)\n  VIA VT6308P, listed by lspci as rev c0\n\nReported-by: Pieter Palmers \u003cpieterp@joow.be\u003e\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b677532b971276f48e82578b4d829fb4382e7b41",
      "tree": "5f773a4d65614872c619109595c09b8f9c93bda1",
      "parents": [
        "a67483d2be12dfc5563c09e6169bec9a88f434b0"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Jan 20 09:58:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Feb 19 20:51:10 2010 +0100"
      },
      "message": "firewire: ohci: work around cycle timer bugs on VIA controllers\n\nVIA controllers sometimes return an inconsistent value when reading the\nisochronous cycle timer register.  To work around this, read the\nregister multiple times and add consistency checks.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nReported-by: Pieter Palmers \u003cpieterp@joow.be\u003e\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7f51a100bba517196ac4bdf29408d20ee1c771e8",
      "tree": "6e1af632f6a3f5ffd635a07c181125609297977a",
      "parents": [
        "110f82d7a2e0ff5a17617a9672f1ccb7e44bc0c6"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Feb 08 08:30:03 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 15:10:41 2010 +0100"
      },
      "message": "firewire: ohci: retransmit isochronous transmit packets on cycle loss\n\nIn isochronous transmit DMA descriptors, link the skip address pointer\nback to the descriptor itself.  When a cycle is lost, the controller\nwill send the packet in the next cycle, instead of terminating the\nentire DMA program.\n\nThere are two reasons for this:\n\n* This behaviour is compatible with the old IEEE1394 stack.  Old\n  applications would not expect the DMA program to stop in this case.\n\n* Since the OHCI driver does not report any uncompleted packets, the\n  context would stop silently; clients would not have any chance to\n  detect and handle this error without a watchdog timer.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nPieter Palmers notes:\n\n\"The reason I added this retry behavior to the old stack is because some\ncards now and then fail to send a packet (e.g. the o2micro card in my\ndell laptop).  I couldn\u0027t figure out why exactly this happens, my best\nguess is that the card cannot fetch the payload data on time.  This\nhappens much more frequently when sending large packets, which leads me\nto suspect that there are some contention issues with the DMA that fills\nthe transmit FIFO.\n\nIn the old stack it was a pretty critical issue as it resulted in a\nfreeze of the userspace application.\n\nThe omission of a packet doesn\u0027t necessarily have to be an issue.  E.g.\nin IEC61883 streams the DBC field can be used to detect discontinuities\nin the stream.  So as long as the other side doesn\u0027t bail when no\n[packet] is present in a cycle, there is not really a problem.\n\nI\u0027m not convinced though that retrying is the proper solution, but it is\nsimple and effective for what it had to do.  And I think there are no\nreasons not to do it this way.  Userspace can still detect this by\nchecking the cycle the descriptor was sent in.\"\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (changelog, comment)\n"
    },
    {
      "commit": "7a481436787cbc932af6c407b317ac603969a242",
      "tree": "b58660247f56926f591b06bd9b1e77280beef51e",
      "parents": [
        "281e20323ab72180137824a298ee9e21e6f9acf6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 26 21:39:07 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 27 18:24:53 2010 +0100"
      },
      "message": "firewire: ohci: fix crashes with TSB43AB23 on 64bit systems\n\nUnsurprisingly, Texas Instruments TSB43AB23 exhibits the same behaviour\nas TSB43AB22/A in dual buffer IR DMA mode:  If descriptors are located\nat physical addresses above the 31 bit address range (2 GB), the\ncontroller will overwrite random memory.  With luck, this merely\nprevents video reception.  With only a little less luck, the machine\ncrashes.\n\nWe use the same workaround here as with TSB43AB22/A:  Switch off the\ndual buffer capability flag and use packet-per-buffer IR DMA instead.\nAnother possible workaround would be to limit the coherent DMA mask to\n31 bits.\n\nIn Linux 2.6.33, this change serves effectively only as documentation\nsince dual buffer mode is not used for any controller anymore.  But\nsomebody might want to re-enable it in the future to make use of\nfeatures of dual buffer DMA that are not available in packet-per-buffer\nmode.\n\nIn Linux 2.6.32 and older, this update is vital for anyone with this\ncontroller, more than 2 GB RAM, a 64 bit kernel, and FireWire video or\naudio applications.\n\nWe have at least four reports:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13808\nhttp://marc.info/?l\u003dlinux1394-user\u0026m\u003d126154279004083\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d552142\nhttp://marc.info/?l\u003dlinux1394-user\u0026m\u003d126432246128386\n\nReported-by: Paul Johnson\nReported-by: Ronneil Camara\nReported-by: G Zornetzer\nReported-by: Mark Thompson\nCc: stable@kernel.org\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a67483d2be12dfc5563c09e6169bec9a88f434b0",
      "tree": "fc9988664bd6b969103cea2543a4416774aebf12",
      "parents": [
        "13b302d0a217580c0129b0641b0ca8b592e437b0"
      ],
      "author": {
        "name": "Németh Márton",
        "email": "nm127@freemail.hu",
        "time": "Sun Jan 10 13:14:26 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 10 17:04:19 2010 +0100"
      },
      "message": "firewire: make PCI device id constant\n\nThe id_table field of the struct pci_driver is constant in \u003clinux/pci.h\u003e\nso it is worth to make pci_table also constant.  Found with Coccinelle.\n\nSigned-off-by: Márton Németh \u003cnm127@freemail.hu\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: cocci@diku.dk\nSigned-off-by: Stefan Richter stefanr@s5r6.in-berlin.de\u003e (changelog)\n"
    },
    {
      "commit": "090699c0530ae5380a9b8511d76f656cc437bb6e",
      "tree": "395c61692df693e6562446b2d23b06793f87a0a4",
      "parents": [
        "cf0e575dcc4cab9fd955e9bec49df7e8ee30a7cf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Dec 26 01:35:14 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:17 2009 +0100"
      },
      "message": "firewire: ohci: always use packet-per-buffer mode for isochronous reception\n\nThis is a minimal change meant for the short term:  Never set the\nohci-\u003euse_dualbuffer flag to true.\n\nThere are two reasons to do so:\n\n  - Packet-per-buffer mode and dual-buffer mode do not behave the same\n    under certain circumstances, notably if several packets are covered\n    by a single fw_cdev_iso_packet descriptor.\n    http://marc.info/?l\u003dlinux1394-devel\u0026m\u003d124965653718313\n    Therefore the driver stack should not silently choose one or the\n    other mode but should leave the choice to the high-level driver\n    (regardless if kernel driver or userspace driver).  Or simply always\n    only offer packet-per-buffer mode, since a considerable number of\n    controllers, even current ones, does not offer dual-buffer support.\n\n  - Even under circumstances where packet-per-buffer mode and\n    dual-buffer mode behave exactly the same --- notably when used\n    through libraw1394, libdc1394, as well as the current two kernel\n    drivers which use isochronous reception (firewire-net and firedtv)\n    --- we are still faced with the problem that several OHCI 1.1\n    controllers have bugs in dual-buffer mode.  Although it looks like\n    we have identified most of those buggy controllers by now, we\n    cannot be quite sure about that.\n\nSo, use packet-per-buffer by default from now on.  This change should\nbe followed up by a more complete solution:  Either extend the\nin-kernel API and the userspace ABI by a choice between the two IR modes\nor remove all dual-buffer related code from firewire-ohci.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5f1141eb352ea79d849920039503e40dd623fffa",
      "tree": "1378b88a847c483933334d5c3695138bfa6c5a4d",
      "parents": [
        "880188b2433c3af51fa006207d9b13c70d2e5938",
        "8c0c0cc2d9f4c523fde04bdfe41e4380dec8ee54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:22:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:22:27 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: handle receive packets with a data length of zero\n"
    },
    {
      "commit": "8c0c0cc2d9f4c523fde04bdfe41e4380dec8ee54",
      "tree": "eeb3a432eab9e357b332366fe7719fa932e29b88",
      "parents": [
        "af0940dac37545b1e7900b19c464fb6367d3f82f"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Dec 11 14:23:58 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Dec 11 21:43:45 2009 +0100"
      },
      "message": "firewire: ohci: handle receive packets with a data length of zero\n\nQueueing to receive an ISO packet with a payload length of zero\nsilently does nothing in dualbuffer mode, and crashes the kernel in\npacket-per-buffer mode.  Return an error in dualbuffer mode, because\nthe DMA controller won\u0027t let us do what we want, and work correctly in\npacket-per-buffer mode.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bb592cf474404e51cbf3c419fb72fda83c4b7d72",
      "tree": "05823f536d5f095857a7aff732e205d249e4b7a1",
      "parents": [
        "79c9601c2e0dbbe69895d302de4d19f3a31fbd30",
        "af0940dac37545b1e7900b19c464fb6367d3f82f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:13:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:13:10 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: Use hweight32\n  firewire: cdev: reduce stack usage by ioctl_dispatch\n  firewire: ohci: 0 may be a valid DMA address\n  firewire: core: WARN on wrong usage of core transaction functions\n  firewire: core: optimize Topology Map creation\n  firewire: core: clarify generate_config_rom usage\n  firewire: optimize config ROM creation\n  firewire: cdev: normalize variable names\n  firewire: normalize style of queue_work wrappers\n  firewire: cdev: fix memory leak in an error path\n"
    },
    {
      "commit": "31769cef2e973544164aa7d0db2e2024660d5e21",
      "tree": "6f3c2ce2e742fa197ac1460012a14eaf09bf3afa",
      "parents": [
        "5ed1f321a71b8549cc2eea26c94fe7943ed01d31"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sat Nov 21 00:05:56 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 21 00:56:47 2009 +0100"
      },
      "message": "firewire: ohci: pass correct iso xmit timestamps to core\n\nHere is the final set of patches I used to get ffado to work with the\nnew firewire stack.  With these patches, I was able to start ardour\nand record from and playback to my PreSonus Inspire1394 from a\n(mostly) Fedora 12 system.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nUntil now, firewire-ohci exposed only the transmit cycle of the last\ntransmitted packet at each isochronous transmit complete event.  This\nmade it impossible for FFADO (FireWire audio drivers in userspace) to\nsynchronize audio-out streams.  The fix is to store the timestamp of\neach packet in the iso xmit event.  As a bonus, the transfer status is\nstored too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5ed1f321a71b8549cc2eea26c94fe7943ed01d31",
      "tree": "c27a802d0feed854a4842805d041bcb44d362f10",
      "parents": [
        "eaf76e0d027a917a013ad8a88a94132d0feab622"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Tue Nov 17 12:29:17 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 18 20:31:17 2009 +0100"
      },
      "message": "firewire: ohci: Make cycleMatch ISO transmission work\n\nCalling the START_ISO ioctl with a nonnegative cycle paramater has\nnever worked.  Last night I got around to figuring out why.  Most of\nthis patch is a big comment explaining why we enable an interrupt\nsource then don\u0027t actually do anything when we get one.  As the\ncomment says, we should do more, but we don\u0027t have a way to tell\nuserspace what happened. . .\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (edited comment)\n"
    },
    {
      "commit": "19593ffdb6daa6ba691d247a2400cece12687c52",
      "tree": "18c3508bbdb5f2d1b1bf51ac653ec580043a9340",
      "parents": [
        "5b189bf3633c3b73d4f08124a86f3e019953d412"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 20:40:10 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 31 11:40:51 2009 +0100"
      },
      "message": "firewire: ohci: 0 may be a valid DMA address\n\nI was told that there are obscure architectures with non-coherent DMA\nwhich may DMA-map to bus address 0.  We shall not use 0 as a magic\nnumber of uninitialized bus address variables.\n\nThe packet-\u003epayload_length \u003e 0 test cannot be used either (except in\nat_context_queue_packet) because local requests are not DMA-mapped\nregardless of payload_length.  Hence add a state flag to struct\nfw_packet.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8e85973efc87dfae8508f1a3440fd44612897458",
      "tree": "9b8f0f0d1adf5a2611b58565db4d9da0ebd1cc9c",
      "parents": [
        "e21fcf798e246202d7b60e864f1d7302ebaaf41c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Oct 08 00:41:59 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 23:10:48 2009 +0200"
      },
      "message": "firewire: optimize config ROM creation\n\nThe config ROM image of the local node was created in CPU byte order,\nthen a temporary big endian copy was created to compute the CRC, and\nfinally the card driver created its own big endian copy.\n\nWe now generate it in big endian byte order in the first place to avoid\none byte order conversion and the temporary on-stack copy of the ROM\nimage (1000 bytes stack usage in process context).  Furthermore, two\n1000 bytes memset()s are replaced by one 1000 bytes - ROM length sized\nmemset.\n\nThe trivial fw_memcpy_{from,to}_be32() helpers are now superfluous and\nremoved.  The newly added __compute_block_crc() function will be folded\ninto fw_compute_block_crc() in a subsequent change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "928ec5f148e729076e9202e7c78babede628a50c",
      "tree": "2ad9c7263728d6f1ba91f69003873ed80e966328",
      "parents": [
        "64549e9357e5222a73e41aa87372b37abb047720"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Sep 06 18:49:17 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 12 14:48:40 2009 +0200"
      },
      "message": "firewire: ohci: fix Self ID Count register mask (safeguard against buffer overflow)\n\nThe selfIDSize field of Self ID Count is 9 bits wide, and we are only\ninterested in the high 8 bits.  Fix the mask accordingly.  The\npreviously too large mask didn\u0027t do damage though because the next few\nbits in the register are reserved and therefore zero with presently\nexisting hardware.\n\nAlso, check for the maximum possible self ID count of 252 (according to\nOHCI 1.1 clause 11.2 and IEEE 1394a-2000 clause 4.3.4.1, i.e. up to four\nself IDs of up to 63 nodes, even though IEEE 1394 up to edition 2008\ndefines only up to three self IDs per node).  More than 252 self IDs\nwould only happen if the self ID receive DMA unit malfunctioned, which\nwould likely be caught by other self ID buffer checks.  However, check\nit early to be sure.  More than 253 quadlets would overflow the Topology\nMap CSR.\n\nReported-By: PaX Team\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4fe0badd5882c64dc2dcd8893f9b85db63339736",
      "tree": "d84d7773171be1a0a4cfacd646e0b7e2754a8089",
      "parents": [
        "fc383796a8cc5df0a0c8633a16dd2e9528a16a63"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Aug 28 13:26:03 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 05 15:59:34 2009 +0200"
      },
      "message": "firewire: ohci: fix Ricoh R5C832, video reception\n\nIn dual-buffer DMA mode, no video frames are ever received from R5C832\nby libdc1394.  Fallback to packet-per-buffer DMA works reliably.\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.devel/13393/focus\u003d13476\n\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fc383796a8cc5df0a0c8633a16dd2e9528a16a63",
      "tree": "92a231d28de6d396246a1136099d896a37be2332",
      "parents": [
        "1821bc19d54009b6f5e6462dd79074d728080839"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Aug 28 13:25:15 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 05 15:59:34 2009 +0200"
      },
      "message": "firewire: ohci: fix Agere FW643 and multiple cameras\n\nAn Agere FW643 OHCI 1.1 card works fine for video reception from one\ncamera but fails early if receiving from two cameras.  After a short\nwhile, no IR IRQ events occur and the context control register does not\nreact anymore.  This happens regardless whether both IR DMA contexts are\ndual-buffer or one is dual-buffer and the other packet-per-buffer.\n\nThis can be worked around by disabling dual buffer DMA mode entirely.\nhttp://sourceforge.net/mailarchive/message.php?msg_name\u003d4A7C0594.2020208%40gmail.com\n(Reported by Samuel Audet.)\n\nIn another report (by Jonathan Cameron), an FW643 works OK with two\ncameras in dual buffer mode.  Whether this is due to different chip\nrevisions or different usage patterns (different video formats) is not\nyet clear.  However, as far as the current capabilities of\nfirewire-core\u0027s isochronous I/O interface are concerned, simply\nswitching off dual-buffer on non-working and working FW643s alike is not\na problem in practice.  We only need to revisit this issue if we are\ngoing to enhance the interface, e.g. so that applications can explicitly\nchoose modes.\n\nReported-by: Samuel Audet \u003csamuel.audet@gmail.com\u003e\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e71d31da062095d8b0b02a26fb5e8879e8d3d0de",
      "tree": "6d45660ec489d9d58bad51a02d8d8877b534e81b",
      "parents": [
        "77c9a5daa9c4d9b37812c9c69c7bcbb3f9399c3c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "message": "firewire: rename source files\n\nThe source files of firewire-core, firewire-ohci, firewire-sbp2, i.e.\n \"drivers/firewire/fw-*.c\"\nare renamed to\n \"drivers/firewire/core-*.c\",\n \"drivers/firewire/ohci.c\",\n \"drivers/firewire/sbp2.c\".\n\nThe old fw- prefix was redundant to the directory name.  The new core-\nprefix distinguishes the files according to which driver they belong to.\n\nThis change comes a little late, but still before further firewire\ndrivers are added as anticipated RSN.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "77c9a5daa9c4d9b37812c9c69c7bcbb3f9399c3c",
      "tree": "54ea3c48e0663ef1b9f227ffff7710f0ea03f9a1",
      "parents": [
        "e8ca97021c8eb127bb04aec4e2420e1d66be371d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "message": "firewire: reorganize header files\n\nThe three header files of firewire-core, i.e.\n \"drivers/firewire/fw-device.h\",\n \"drivers/firewire/fw-topology.h\",\n \"drivers/firewire/fw-transaction.h\",\nare replaced by\n \"drivers/firewire/core.h\",\n \"include/linux/firewire.h\".\n\nThe latter includes everything which a firewire high-level driver (like\nfirewire-sbp2) needs besides linux/firewire-constants.h, while core.h\ncontains the rest which is needed by firewire-core itself and by low-\nlevel drivers (card drivers) like firewire-ohci.\n\nHigh-level drivers can now also reside outside of drivers/firewire\nwithout having to add drivers/firewire to the header file search path in\nmakefiles.  At least the firedtv driver will be such a driver.\n\nI also considered to spread the contents of core.h over several files,\none for each .c file where the respective implementation resides.  But\nit turned out that most core .c files will end up including most of the\ncore .h files.  Also, the combined core.h isn\u0027t unreasonably big, and it\nwill lose more of its contents to linux/firewire.h anyway soon when more\nfirewire drivers are added.  (IP-over-1394, firedtv, and there are plans\nfor one or two more.)\n\nFurthermore, fw-ohci.h is renamed to ohci.h.  The name of core.h and\nohci.h is chosen with regard to name changes of the .c files in a\nfollow-up change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e8ca97021c8eb127bb04aec4e2420e1d66be371d",
      "tree": "bc9e6c3597eff48632f57903e5cd0d3456fe8d7a",
      "parents": [
        "3dcdc50079bc2c9dbc6524518976353f743f7ec8"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 04 21:09:38 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: clean up includes\n\nInclude required headers which were only indirectly included.\nRemove unused includes and an unused constant.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3dcdc50079bc2c9dbc6524518976353f743f7ec8",
      "tree": "ec620a55e21631efee6622f12338fae59b41d1ae",
      "parents": [
        "e41f8d709c31b42129a34305a99d29c38aff75c4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 04 21:08:43 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: ohci: access bus_seconds atomically\n\nIn the unlikely event that card-\u003edriver-\u003eget_bus_time() is called during\na cycle64Seconds interrupt, we could read garbage unless atomic accesses\nare used.\n\nThe switch to atomic ops requires to change the 64 seconds counter from\nunsigned to signed, but this shouldn\u0027t matter to the end result.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f8c2287c65f8f72000102fc058232669e4540bc4",
      "tree": "a82393fbdd3a2b20f8e499537b10eb9e61dae941",
      "parents": [
        "ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Thu Mar 05 19:08:40 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: implement asynchronous stream transmission\n\nAllow userspace and other firewire drivers (fw-ipv4 I\u0027m looking at\nyou!) to send Asynchronous Transmit Streams as described in 7.8.3 of\nrelease 1.1 of the 1394 Open Host Controller Interface Specification.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (tweaks)\n"
    },
    {
      "commit": "e1eff7a393d4a4e3ad1cf65fcba899146840bfd2",
      "tree": "88a040babea1853f40072ed199a78b60f4dcb387",
      "parents": [
        "d01b01787680a1156ff6a554e40baa460bb88efb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Feb 03 17:55:19 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:48 2009 +0100"
      },
      "message": "firewire: normalize a variable name\n\nStandardize on  if (err)\n                        handle_error;\n           and  if (ret \u003c 0)\n                        handle_error;\n\nDon\u0027t call a variable err if we store values in it which mean success.\nAlso, offset some return statements by a blank line since this how we do\nit in drivers/firewire.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4817ed240232e89583b0506c2d8e426739af5da3",
      "tree": "95d8220f1cae2df2490488dd35381c7d73a5be7b",
      "parents": [
        "a459b8ab9c176143fecef8ace4b70d6dbd7a8113"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 21 16:39:46 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:41 2009 +0100"
      },
      "message": "firewire: prevent creation of multiple IR DMA contexts for the same channel\n\nOHCI-1394 1.1 clause 10.4.3 says:  \"If more than one IR DMA context\nspecifies receives for packets from the same isochronous channel, the\ncontext destination for that channel\u0027s packets is undefined.\"\n\nAny userspace client and in the future also kernelspace clients can\nallocate IR DMA contexts for any channel.  We don\u0027t want them to\ninterfere with each other, hence it is preferable to return -EBUSY if\nallocation of a second context for a channel is attempted.\n\nNotes:\n  - This limitation is OHCI-1394 specific, therefore its proper place of\n    implementation is down in the low-level driver.\n\n  - Since the \u003clinux/firewire-cdev.h\u003e ABI simply maps one userspace iso\n    client context to one hardware iso context, this OHCI-1394\n    limitation alas requires userspace to implement its own multiplexing\n    of iso reception from the same channel and card to multiple clients\n    when needed.\n\n  - The limitation is independent of channel allocation at the IRM; the\n    latter is really only important for the initiation of iso \n    transmission but not of iso reception.\n\n  - We don\u0027t need to do the same for IT DMA because OHCI-1394 does not\n    have any ties between IT contexts and channels.  Only the voluntary\n    channel allocation protocol via the IRM, globally to the FireWire\n    bus, can ensure proper isochronous transmit behaviour anyway.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "53dca51175cc2f66d21aeb1e70146cca65c53dad",
      "tree": "da729da20cc4ca1cb994fa6659be7f23259f7097",
      "parents": [
        "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:47:04 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:40 2009 +0100"
      },
      "message": "firewire: remove line breaks before function names\n\ntype\n    function_name(parameters);\n\nis nice to look at but was not used consistently.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504",
      "tree": "c0efb5bbd26bc2e18a61bf44d0c53db9494a096c",
      "parents": [
        "c490a6dec6cc1b7f0eab56b9fbd565129b3dea2e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:45:45 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: standardize a variable name\n\n\"ret\" is the new \"retval\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1aa292bb1c53500e3ab570b955d03afa97a9404d",
      "tree": "738675d2cd801012b6626628223c2a20c6e5d352",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@acm.org",
        "time": "Tue Jul 22 23:23:40 2008 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:35 2009 +0100"
      },
      "message": "firewire: Include iso timestamp in headers when header_size \u003e 4\n\nPreviously, when an iso context had header_size \u003e 4, the iso header\n(len/tag/channel/tcode/sy) was passed to userspace followed by quadlets\nstripped from the payload.  This patch changes the behavior:\nheader_size \u003d 8 now passes the header quadlet followed by the timestamp\nquadlet.  When header_size \u003e 8, quadlets are stripped from the payload.\nThe header_size \u003d 4 case remains identical.\n\nSince this alters the semantics of the API, the firewire API version\nneeds to be bumped concurrently with this change.\n\nThis change also refactors the header copying code slightly to be much\neasier to read.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8b7b6afaa84708d08139daa08538ca3e56c351f1",
      "tree": "91b1d27a08f6e28c13f8163cc2dfbba4022029f0",
      "parents": [
        "b006854955254a971096c120d4ef115a7c6145fb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:10:58 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others\n\nCamcorders have a tendency to fail read requests to their config ROM and\nwrite request to their FCP command register with ack_busy_X.  This has\nbecome a problem with newer kernels and especially Panasonic camcorders,\ncausing AV/C in dvgrab and kino to fail.  Dvgrab for example frequently\nlogs \"send oops\"; kino reports loss of AV/C control.  I suspect that\nlower CPU scheduling latencies in newer kernels made this issue more\nprominent now.\n\nAccording to\nhttps://sourceforge.net/tracker/?func\u003ddetail\u0026atid\u003d114103\u0026aid\u003d2492640\u0026group_id\u003d14103\nthis can be fixed by configuring the FireWire controller for more\nhardware retries for request transmission; these retries are evidently\nmore successful than libavc1394\u0027s own retry loop (typically 3 tries on\ntop of hardware retries).\n\nPresumably the same issue has been reported at\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d449252 and\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d477279 .\n\nIn a quick test with a JVC camcorder (which didn\u0027t malfunction like the\nreported camcorders), this change decreased the number of ack_busy_X\nfrom 16 in three runs of dvgrab to 4 in three runs of the same capture\nduration.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b006854955254a971096c120d4ef115a7c6145fb",
      "tree": "91c3c3a50c8ed60464701893119d44f63b50f293",
      "parents": [
        "3d36a0df3b473fb53531484df227f2da8bc7494b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 05 20:43:23 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: change \"context_stop: still active\" log message\n\nThe present message is mostly just noise.  We only need to be notified\nif the \"active\" flag does not go off before the retry loop terminates.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1d1dc5e83f3299c108a4e44d58cc4bfef48c876a",
      "tree": "4acec6d605d2c04294afa8d5a7699430c34e8449",
      "parents": [
        "ec9a13cdbfc8cf29502096ca69b65f07184a9b2c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 00:20:38 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 12:45:34 2008 +0100"
      },
      "message": "firewire: fw-ohci: fix IOMMU resource exhaustion\n\nThere is a DMA map/ unmap imbalance whenever a block write request\npacket is sent and then dequeued with ohci_cancel_packet.  The latter\nmay happen frequently if the AR resp tasklet is executed before the AT\nreq tasklet for the same transaction.\n\nAdd the missing dma_unmap_single.  This fixes\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d475156\n\nReported-by: Emmanuel Kowalski\nTested-by: Emmanuel Kowalski\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f64819fe9f136c98d572794a35a7e377c951ef",
      "tree": "9e5c7b3c4d45c319838b75cb014cc03d8c29cd65",
      "parents": [
        "cd1f70fdb4823c97328a1f151f328eb36fafd579"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 01:41:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Oct 31 08:48:25 2008 +0100"
      },
      "message": "firewire: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7007a0765e33bf89182e069e35ec6009fa54f610",
      "tree": "fd3117ac84b5b951ae459a692e7f14c4af15dd2a",
      "parents": [
        "a55709ba9d27053471f9fca8ee76b41ecefc14cd"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 09:50:31 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: initialization failure path fixes\n\nFix leaks when pci_probe fails.  Simplify error log strings.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a55709ba9d27053471f9fca8ee76b41ecefc14cd",
      "tree": "e338976917e3926a292c67fcadc59968504d7fcc",
      "parents": [
        "77e557191701afa55ae7320d42ad6458a2ad292e"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Wed Oct 22 15:59:42 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: don\u0027t leak dma memory on module removal\n\nThe transmit and receive context dma memory was not being freed on\nmodule removal.  Neither was the config rom memory.  Fix that.\n\nThe ab-\u003enext assignment is pure paranoia.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837b41b5de356aa67abb2cadb5eef3efc7776f91",
      "tree": "b63a9898c9a2b6563d8aec75c2abbec379898613",
      "parents": [
        "211c8d4942edf2f3337820dda101da6b13c8a19a",
        "f05e21b39f7dddcebab03ff329fef5783fea58d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: state userland requirements in Kconfig help\n  firewire: avoid memleak after phy config transmit failure\n  firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n  firewire: queue the right number of data\n  firewire: warn on unfinished transactions during card removal\n  firewire: small fw_fill_request cleanup\n  firewire: fully initialize fw_transaction before marking it pending\n  firewire: fix race of bus reset with request transmission\n"
    },
    {
      "commit": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95984f62c9b0bf6d89ef4f514b1afe73623481de",
      "tree": "2c46b6e7ec4a56de8e65b194c828985af5fe4414",
      "parents": [
        "f9543d0ab6392a9a5bff0034622688dc10d9d225"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 22 18:41:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 15:41:23 2008 +0200"
      },
      "message": "firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n\nIsochronous reception in dualbuffer mode is reportedly broken with\nTI TSB43AB22A on x86-64.  Descriptor addresses above 2G have been\ndetermined as the trigger:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d435550\n\nTwo fixes are possible:\n  - pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);\n    at least when IR descriptors are allocated, or\n  - simply don\u0027t use dualbuffer.\nThis fix implements the latter workaround.\n\nBut we keep using dualbuffer on x86-32 which won\u0027t give us highmen (and\nthus physical addresses outside the 31bit range) in coherent DMA memory\nallocations.  Right now we could for example also whitelist PPC32, but\nDMA mapping implementation details are expected to change there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "bbf094cf3dbd9a969dd17cf52325e9fab8dfbe91",
      "tree": "3f77b6cb4fb5587cb10d735e96404d5d1386f64d",
      "parents": [
        "e534fe16b987780744da351acece2a4699783096"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:46:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: remove unused struct members\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "161b96e782ec995c55843101976d9c35b57aa109",
      "tree": "b84cb7fb8ec81c67b8b34087a2a1e926db9bb47b",
      "parents": [
        "5cb84067d646fa3889463129dad8b218806b4698"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 14 14:23:43 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: unify printk prefixes\n\nThe messages which can be enabled by fw-ohci\u0027s debug module parameter\nare changed from KERN_DEBUG to KERN_NOTICE level and uniformly prefixed\nwith \"firewire_ohci: \".  This further simplifies communication with\nusers when we ask them to capture debug messages.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "affc9c24ade666f9903163c12686da567dbfe06f",
      "tree": "3beff66f52c3201bd24b6dd6777c2942373c9881",
      "parents": [
        "e896ec4302f45fdaf2fc78aec0093eca5478fe28"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 05 20:50:53 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: write selfIDBufferPtr before LinkControl.rcvSelfID\n\nOHCI 1.1 clause 5.10 requires that selfIDBufferPtr is valid when a 1 is\nwritten into LinkControl.rcvSelfID.\n\nThis driver bug has so far not been known to cause harm because most\nchips obviously accept a later selfIDBufferPtr write, at least before\nHCControl.linkEnable is written.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\n"
    },
    {
      "commit": "e896ec4302f45fdaf2fc78aec0093eca5478fe28",
      "tree": "2fe7eb6553d17401477cb8ae27bd0d9bb43386fe",
      "parents": [
        "ccff962943df539c5860aa120eecc189d70a308b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 05 20:49:38 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: disable PHY packet reception into AR context\n\nWe want the rcvPhyPkt bit in LinkControl off before we start using the\nchip.  However, the spec says that the reset value of it is undefined.\nHence switch it explicitly off.\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d244576#c48 shows that for\nexample the nForce2 integrated FireWire controller seems to have it on\nby default.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "ccff962943df539c5860aa120eecc189d70a308b",
      "tree": "645f031d3b751a30e20ce65e364948fb9426f7b2",
      "parents": [
        "0bf607c5b4edd13362e4add6ca1e81f8a9fbd47c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 31 19:36:06 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: use of uninitialized data in AR handler\n\nheader_length and payload_length are filled with random data if an\nunknown tcode was read from the AR buffer (i.e. if the AR buffer\ncontained invalid data).\n\nWe still need a better strategy to recover from this, but at least\nhandle_ar_packet now doesn\u0027t return out of bound buffer addresses\nanymore.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e09770db0fa33baf8df21fbc18aa24a080330c3f",
      "tree": "553239e37806dc2435fe53dbb26a5f27e04d9a37",
      "parents": [
        "15f0d833f63da2fa49aed81480a37d5e896b5b9b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 11 02:23:29 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:36 2008 +0200"
      },
      "message": "firewire: remove unused struct member\n\nrequest_generation is internal to fw-ohci and unneeded in fw_card.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d34316a4bdcd4fef050da584401c7f4ed22482f2",
      "tree": "4b6650cc815be1364ba4d9952b18818c5b602047",
      "parents": [
        "08ddb2f4c270b5dff063f7dbcd7e9248a52e7c65"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 12 22:31:25 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more)\n\nUnlike the ohci1394 driver, fw-ohci uses the selfIDGeneration field of\nbus reset packets to determine the generation of incoming requests as\nper OHCI 1.1 clause 8.4.2.3.  This is more precise --- provided that the\ncontroller inserts the correct generation.  Texas Instruments chips\noften don\u0027t.\n\nThis prevented the transmission of response packets, which for example\nbroke AV/C transactions as used when communicating with miniDV cameras\nand any other AV/C devices.\n\nThere is apparently no way to detect and adjust incorrect generations.\nTherefore we ignore the generation of bus reset packets from TI chips\nand use the generation of the self ID buffer instead.  Alas this is\nreceived at a slightly wrong time.  In rare cases, this could cause us\nto not respond to legitimate requests or to respond to expired requests.\n(The latter is less likely because the bus reset packet AR event is\ntypically handled before the self ID complete event.)\n\nBug reported by Mladen Kuntner, who was extraordinarily patient while\ndealing with the driver maintainers.  Fix confirmed to be required and\neffective for TSB82AA2 and a TSB43AB22 or TSB43AB22A.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d243081\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "08ddb2f4c270b5dff063f7dbcd7e9248a52e7c65",
      "tree": "25e5764b72854a9ba30bf14d3296010f1977fb19",
      "parents": [
        "a007bb857e0b26f5d8b73c2ff90782d9c0972620"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 11 00:51:15 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: extend logging of bus generations and node ID\n\nExtend the logging of \"AR evt_bus_reset, link internal\" to \"AR\nevt_bus_reset, generation ${selfIDGeneration}\".  That way we can check\nwhether this generation matches the one seen in self ID complete event\nlogging.  See OHCI 1.1 clause 8.4.2.3.\n\nAlso extend logging of \"firewire_ohci: * selfIDs, generation *\" by\n\"local node ID ffc*\" in self ID logging to make the local node in AT/AR\nevent logs more obvious.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "a007bb857e0b26f5d8b73c2ff90782d9c0972620",
      "tree": "118f54e70b99dd1315cce57796f7d0a7bbb9c3df",
      "parents": [
        "76f73ca1b291a8d014ff0d2d802c817404dd9887"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 07 22:33:35 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: conditionally log busReset interrupts\n\nAdd a debug option to watch bus reset interrupt events.  Half of this\npatch is taken from Jarod Wilson\u0027s first version of the JMicron fix.\n\nBusReset interrupts are only generated if the respective module\nparameter flag was set before the controller is being initialized.\nElse we keep this event masked to reduce IRQ load in normal operation\nand to avoid potential problems with buggy chips.\n\nNote, this is unlike the other IRQ events whose logging can be enabled\nany time after chip initialization.  This and the influence on what\ninterrupts the chip generates is why I added an extra flag for it.\n\nAlso, reorder the debug parameter flags according to their perceived\nusefulness.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "76f73ca1b291a8d014ff0d2d802c817404dd9887",
      "tree": "ffd21353249da5febbe5518d9f8eed6b886b5dbf",
      "parents": [
        "75f7832e3b032c6e4a83c14b58341abd9f2d81ef"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Mon Apr 07 22:32:33 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: don\u0027t append to AT context when it\u0027s not active\n\nI finally tracked down the issues with this JMicron PCI-e card in my\npossession to a failure to comply with section 7.2.3.2 of the OHCI 1.1\nspecification (thanks to Kristian for the pointer to illustrate that it\nis indeed a flaw in this card, not the driver). The controller should\nsimply flush the packets we\u0027ve appended to its AT queue if a bus reset\noccurs before they\u0027ve been transmitted and we\u0027ll try again, but\nsomething goes wrong and the controller winds up hung.\n\nHowever, we can avoid the problem by simply checking if the\nIntEvent.busReset register had been set before we try appending to the\nAT context. When busReset is set, the AT context is completely halted\nuntil busReset is cleared, so there\u0027s no point in appending AT packets\nuntil the register is cleared. So at_context_queue_packet() now checks\nfor busReset being set, and bails with an RCODE_GENERATION packet ack,\nwhich results in us trying to append the packet again after recognizing\nthe fact there has been a bus reset, and clearing busReset.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "75f7832e3b032c6e4a83c14b58341abd9f2d81ef",
      "tree": "25ee08f7433450ed1b85362c8fe5b244567217de",
      "parents": [
        "022147242ff6e4b7ab770f00716063f48c088391"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Thu Apr 03 17:18:23 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: log regAccessFail events\n\nWhile trying to debug this piece of crap JMicron PCI-e controller in my\npossession, one thought was that perhaps I was encountering register access\nfailures. I\u0027m not, but logging them would be good, so we can see if they\nare a real problem we should be taking into account anywhere in the code.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (added list contact)\n"
    },
    {
      "commit": "022147242ff6e4b7ab770f00716063f48c088391",
      "tree": "a59646ee968d029550fcb5d99ab2a9885a0f9377",
      "parents": [
        "130d5496e2c9104dcabdaa5c19cd941770e20edc"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Fri Mar 28 10:02:50 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: make sure HCControl register LPS bit is set\n\nI\u0027ve now witnessed multiple occasions where one of my controllers (a very\npoorly working JMicron PCIe card) fails to get its registers properly set\nup in ohci_enable(), apparently due to an occasionally very slow to\ninitiate SClk. The easy fix for this problem is to add a tiny while loop\nto try again a time or three after initially enabling LPS before we\nmove on (or give up).\n\nOf course, the card still isn\u0027t fully functional yet, but this gets it at\nleast one tiny step closer...\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "130d5496e2c9104dcabdaa5c19cd941770e20edc",
      "tree": "5784c92dbe125f2e9c34edd48521c86be07e3fae",
      "parents": [
        "43286568adb3ccd4b2f1d0cb7393c355f03e4f39"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 24 20:55:28 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: missing PPC PMac feature calls in failure path\n\nBalance ohci_pmac_on and ohci_pmac_off if pci_driver.probe fails.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "43286568adb3ccd4b2f1d0cb7393c355f03e4f39",
      "tree": "17316d441def72d84e94d59df2dd83c88e6b0a16",
      "parents": [
        "ad3c0fe8b8d1656a56ce2ef05ed5ccba790b4566"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 11 21:22:26 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: untangle a mixed unsigned/signed expression\n\nand make another expression more readable.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ad3c0fe8b8d1656a56ce2ef05ed5ccba790b4566",
      "tree": "850c39f2da71be6ae9d6c3d5a08a67fbcded0c62",
      "parents": [
        "016bf3dfcf7c7fbad8f02e72b6e01d6773426f9d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Mar 20 22:04:36 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: debug interrupt events\n\nThis adds debug printks for asynchronous transmission and reception and\nfor self ID reception.  They can be enabled at module load time, and at\nruntime via /sys/module/firewire_ohci/parameters/debug.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n\nAlso added:  Logging of interrupt event codes and of cancelled AT\npackets.\n\nThe code now depends on a Kconfig variable.  This makes it easier to\nbuild firewire-ohci without the feature or to make it an option in the\nfuture.  The variable is currently hidden and always on.\n\nThis feature inflates firewire-ohci.ko by 7 kB \u003d 27% on x86-64 and by\n4 kB \u003d 23% on i686.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "016bf3dfcf7c7fbad8f02e72b6e01d6773426f9d",
      "tree": "844a04d866b5b0d5eccdb795ad7e6c9fc79f3f2c",
      "parents": [
        "c8a9a498e16b2a6c0e4e367b1a01f80fdfd7b6e2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 19 22:05:02 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: catch self_id_count \u003d\u003d 0\n\nfw_core_handle_bus_reset() incorrectly relied on the assumption that\nself_id_count \u003e 0.\n\nWe check early in fw-ohci and discard the self ID complete event if\nself_id_count \u003d\u003d 0 because a valid event always has at least one self ID\npacket in it (the one of the local node).  Hence treat self_id_count \u003d\u003d\n0 like any other kind of invalid self ID buffer.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "c8a9a498e16b2a6c0e4e367b1a01f80fdfd7b6e2",
      "tree": "f8e7fdab0bc3eefc98d6c0a09ab02337b6090371",
      "parents": [
        "2ed0f181f0d18d2f565bfbd259fe33d53769f72b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 19 21:40:32 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:33 2008 +0200"
      },
      "message": "firewire: fw-ohci: add self ID error check\n\nDiscard self ID buffer contents if\n  - the selfIDError flag is set,\n  - any of the self ID packets has bit errors.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "2ed0f181f0d18d2f565bfbd259fe33d53769f72b",
      "tree": "9a53e274cdbe5a438563ed536de83b284c014a98",
      "parents": [
        "eb5ca72effaa7f691f7df5187c5c5d1268311326"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 01 12:35:29 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:33 2008 +0200"
      },
      "message": "firewire: fw-ohci: refactor probe, remove, suspend, resume\n\nClean up shared code and variable names.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "eb5ca72effaa7f691f7df5187c5c5d1268311326",
      "tree": "e48be32b2a64ddfef8453822be7b7316c25260b4",
      "parents": [
        "080de8c2c57e3199eee837fe8b6d35a43679f8c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 01 12:34:50 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:33 2008 +0200"
      },
      "message": "firewire: fw-ohci: switch on bus power after resume on PPC PMac\n\nThe platform feature calls in the suspend method switched off cable\npower, but the calls in the resume method did not switch it back on.\n\nAdd the necessary feature call to .resume.  Also add the corresponding\ncall to .suspend to make .suspend\u0027s behavior explicitly the same on all\nPMacs.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "080de8c2c57e3199eee837fe8b6d35a43679f8c1",
      "tree": "b376f9ce74db61393ef1cb62e9663c71f0ba45b9",
      "parents": [
        "17cff9ff871bb5081cade4f99a9e9382b9f1c01c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Feb 28 20:54:43 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:33 2008 +0200"
      },
      "message": "firewire: fw-ohci: add option for remote debugging\n\nThis way firewire-ohci can be used for remote debugging like ohci1394.\nVersion with amendment from Fri, 11 Apr 2008 00:08:08 +0200.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Bernhard Kaindl \u003cbk@suse.de\u003e\n"
    },
    {
      "commit": "bd7dee6311156b7cdf884344feb34628909398ad",
      "tree": "669b5747c607266e495e6f1b1516663bdca1152a",
      "parents": [
        "a6ca4f7081095e3cdeb1a45d66fbe4856eca10d3"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 24 18:59:55 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:31 2008 +0200"
      },
      "message": "firewire: remove superfluous reference counting\n\nThe card-\u003ekref became obsolete since patch \"firewire: fix crash in\nautomatic module unloading\" added another counter of card users.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "6b84236d37ef602d1e4f52b27162c20394e83359",
      "tree": "0e383a32e66f7866fb5ac574acfa408b59e2d8cf",
      "parents": [
        "05dda977f2574c3341abef9b74c27d2b362e1e3a"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Tue Mar 25 16:47:16 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Mar 27 21:01:14 2008 +0100"
      },
      "message": "firewire: fw-ohci: plug dma memory leak in AR handler\n\nThere\u0027s an ugly little memory leak in firewire-ohci\u0027s\nar_context_tasklet(), where we\u0027re not freeing up some of the memory we\nuse for each ar_buffer, due to a moving pointer. The problem has been\nthere for a while, but didn\u0027t get noticed until after converting the AR\nroutines over to use coherent DMA and I started running into I/O stall-\nouts with the following message output repeatedly to the console:\n\nPCI-DMA: Out of IOMMU space for 53248 bytes at device 0000:04:09.0\n\nPlugging this leak is definitely necessary, but unfortunately, isn\u0027t the\nentire answer to my problem, it only increases the amount of I/O that I\ncan do before hitting the problem. Still working on tracking down the\nroot cause..\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f5101d58afc528c1d0c863fe03cd2d607766c4a1",
      "tree": "75bf5fd197dc30da063df1b92a42ca869c6dccd8",
      "parents": [
        "bde1709aaa98f5004ab1580842c422be18eb4bc3"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:27:49 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:57:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: shut up false compiler warning on PPC32\n\nShut up \"may be used uninitialised in this function\" warnings due to\nPPC32\u0027s implementation of dma_alloc_coherent().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bde1709aaa98f5004ab1580842c422be18eb4bc3",
      "tree": "9c7a3241d88574680911a48e81ce8d6ad252e559",
      "parents": [
        "6e45ef4c7aeefbf97df748866cd1b24f73b86160"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Wed Mar 12 17:43:26 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:57:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: use dma_alloc_coherent for ar_buffer\n\nCurrently, we do nothing to guarantee we have a consistent DMA buffer for\nasynchronous receive packets. Rather than doing several sync\u0027s following a\ndma_map_single() to get consistent buffers, just switch to using\ndma_alloc_coherent().\n\nResolves constant buffer failures on my own x86_64 laptop w/4GB of RAM and\nlikely to fix a number of other failures witnessed on x86_64 systems with\n4GB of RAM or more.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "11bf20ad028880a56689f086bfbabfd88b2af38b",
      "tree": "e09c2597d61ef8aa989dd2833889004c76d6a058",
      "parents": [
        "ea8d006b91ac58ec5a0862d09e0b629db399517f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 01 02:47:15 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:56:59 2008 +0100"
      },
      "message": "firewire: fw-ohci: Apple UniNorth 1st generation support\n\nMostly copied from ohci1394.c.  Necessary for some older Macs, e.g.\nPowerBook G3 Pismo and early PowerBook G4 Titanium.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ea8d006b91ac58ec5a0862d09e0b629db399517f",
      "tree": "c6f848d1ed3e7d71fd23dcee975d3449bcb7932b",
      "parents": [
        "efbf390a2d940315efff174455243e61f23c03b9"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 01 02:42:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:56:58 2008 +0100"
      },
      "message": "firewire: fw-ohci: PPC PMac platform code\n\nCopied from ohci1394.c.  This code is necessary to prevent machine check\nexceptions when reloading or resuming the driver.\n\nTested on a 1st generation PowerBook G4 Titanium, which also needs the\npci_probe() hunk.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n\nI was able to reproduce the system exception on resume with a 3rd-gen\nTitanium PowerBook G4 667, and this patch does let the system resume\nsuccessfully now.\n\nNot quite clear if there was possibly an updated version coming using\npci_enable_device() instead of the pair of pmac_call_feature() calls,\nbut either way, this is a definite must-have, at least for older ppc\nmacs -- my Aluminum PowerBook G4/1.67 suspends and resumes without this\npatch just fine.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "efbf390a2d940315efff174455243e61f23c03b9",
      "tree": "aac9bf501a8057db0a000538bb85797d2f752788",
      "parents": [
        "25df287dc7434edf8dda10ce85e43f88e834a494"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 23 12:24:57 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:56:58 2008 +0100"
      },
      "message": "firewire: endianess annotations\n\nKills warnings from \u0027make C\u003d1 CHECKFLAGS\u003d\"-D__CHECK_ENDIAN__\" modules\u0027:\n\ndrivers/firewire/fw-transaction.c:771:10: warning: incorrect type in assignment (different base types)\ndrivers/firewire/fw-transaction.c:771:10:    expected unsigned int [unsigned] [usertype] \u003cnoident\u003e\ndrivers/firewire/fw-transaction.c:771:10:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/firewire/fw-transaction.h:93:10: warning: incorrect type in assignment (different base types)\ndrivers/firewire/fw-transaction.h:93:10:    expected unsigned int [unsigned] [usertype] \u003cnoident\u003e\ndrivers/firewire/fw-transaction.h:93:10:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/firewire/fw-ohci.c:1490:8: warning: restricted degrades to integer\ndrivers/firewire/fw-ohci.c:1490:35: warning: restricted degrades to integer\ndrivers/firewire/fw-ohci.c:1516:5: warning: cast to restricted type\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "25df287dc7434edf8dda10ce85e43f88e834a494",
      "tree": "110670c11924a3e33438acb9d9f3418e32a5df82",
      "parents": [
        "cdeeeae056a429e729ae9e914fa8142ee45bee93"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 23 12:24:17 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Mar 14 00:56:58 2008 +0100"
      },
      "message": "firewire: endianess fix\n\nThe generation of incoming requests was filled in in wrong byte order on\nmachines with big endian CPU.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "fe5ca63430d640c3a922e5d7c6dd411ab6a2e077",
      "tree": "7124dc3af55c7b66da44449fdab56a93a0e10403",
      "parents": [
        "bb9f2206b60ace29e49a057fbd9be86d79d86200"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@MIT.EDU",
        "time": "Sun Jan 06 17:21:41 2008 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 30 22:22:24 2008 +0100"
      },
      "message": "firewire: fw-ohci: Dynamically allocate buffers for DMA descriptors\n\nPreviously, the fw-ohci driver used fixed-length buffers for storing\ndescriptors for isochronous receive DMA programs.  If an application\n(such as libdc1394) generated a DMA program that was too large, fw-ohci\nwould reach the limit of its fixed-sized buffer and return an error to\nuserspace.\n\nThis patch replaces the fixed-length ring-buffer with a linked-list of\npage-sized buffers.  Additional buffers can be dynamically allocated and\nappended to the list when necessary.  For a particular context, buffers\nare kept around after use and reused as necessary, so there is no\nallocation taking place after the DMA program is generated for the first\ntime.\n\nIn addition, the buffers it uses are coherent for DMA so there is no\nsyncing required before and after writes.  This syncing wasn\u0027t properly\ndone in the previous version of the code.\n\n-\n\nThis is the fourth version of my patch that replaces a fixed-length\nbuffer for DMA descriptors with a dynamically allocated linked-list of\nbuffers.\n\nAs we discovered with the last attempt, new context programs are\nsometimes queued from interrupt context, making it unacceptable to call\ntasklet_disable() from context_get_descriptors().\n\nThis version of the patch uses ohci-\u003elock for all locking needs instead\nof tasklet_disable/enable.  There is a new requirement that\ncontext_get_descriptors() be called while holding ohci-\u003elock.  It was\nalready held for the AT context, so adding the requirement for the iso\ncontext did not seem particularly onerous.  In addition, this has the\nside benefit of allowing iso queue to be safely called from concurrent\nuser-space threads, which previously was not safe.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n\n-\n\nFixes the following issues:\n  - Isochronous reception stopped prematurely if an application used a\n    larger buffer.  (Reproduced with coriander.)\n  - Isochronous reception stopped after one or a few frames on VT630x\n    in OHCI 1.0 mode.  (Fixes reception in coriander, but dvgrab still\n    doesn\u0027t work with these chips.)\n\nPatch update: struct member alignment, whitespace nits\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bb9f2206b60ace29e49a057fbd9be86d79d86200",
      "tree": "588dcd6a1b8ae1c3fecbf2d6c210c7f7d8bfc820",
      "parents": [
        "478b233eda81bfe41307512b8336fd688c6553e0"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Dec 22 22:14:52 2007 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 30 22:22:24 2008 +0100"
      },
      "message": "firewire: fw-ohci: CycleTooLong interrupt management\n\nThe firewire-ohci driver so far lacked the ability to resume cycle\nmaster duty after that condition happened, as added to ohci1394 in Linux\n2.6.18 by commit 57fdb58fa5a140bdd52cf4c4ffc30df73676f0a5.  This ports\nthis patch to fw-ohci.\n\nThe \"cycle too long\" condition has been seen in practice\n  - with IIDC cameras if a mode with packets too large for a speed is\n    chosen,\n  - sporadically when capturing DV on a VIA VT6306 card with ohci1394/\n    ieee1394/ raw1394/ dvgrab 2.\n    https://bugzilla.redhat.com/show_bug.cgi?id\u003d415841#c7\n(This does not fix Fedora bug 415841.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bcee893c6cba88badd292b636f33a8677c0dd962",
      "tree": "f315048cf38e30d016d0ea50aa06989327b2f235",
      "parents": [
        "0642b6577f1d455ed99e2da4a4d9216a866d2449"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@MIT.EDU",
        "time": "Wed Dec 19 15:26:38 2007 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 30 22:22:23 2008 +0100"
      },
      "message": "firewire: fw-ohci: Bug fixes for packet-per-buffer support\n\nThis patch corrects a number of bugs in the current OHCI 1.0\npacket-per-buffer support:\n\n1. Correctly deal with payloads that cross a page boundary.  The\nprevious version would not split the descriptor at such a boundary,\npotentially corrupting unrelated memory.\n\n2. Allow user-space to specify multiple packets per struct\nfw_cdev_iso_packet in the same way that dual-buffer allows.  This is\nsignaled by header_length being a multiple of header_size.  This\nmultiple determines the number of packets.  The payload size allocated\nper packet is determined by dividing the total payload size by the\nnumber of packets.\n\n3. Make sync support work properly for packet-per-buffer.\n\nI have tested this patch with libdc1394 by forcing my OHCI 1.1\ncontroller to use the packet-per-buffer support instead of dual-buffer.\n\nI would greatly appreciate testing by those who have a DV devices and\nother types of iso streamers to make sure I didn\u0027t cause any\nregressions.\n\nStefan, with this patch, I\u0027m hoping that libdc1394 will work with all\nyour OHCI 1.0 controllers now.\n\nThe one bit of future work that remains for packet-per-buffer support is\nthe automatic compaction of short payloads that I discussed with\nKristian.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0642b6577f1d455ed99e2da4a4d9216a866d2449",
      "tree": "35ae292471403cfe0f1a6ef9dc4c7d24b16ff340",
      "parents": [
        "4b11ea96a08a0f97a16edba55a615354c6d846b5"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@MIT.EDU",
        "time": "Wed Dec 19 03:09:18 2007 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 30 22:22:23 2008 +0100"
      },
      "message": "firewire: fw-ohci: Fix for dualbuffer three-or-more buffers\n\nThis patch fixes the problem where different OHCI 1.1 controllers behave\ndifferently when a received iso packet straddles three or more buffers\nwhen using the dual-buffer receive mode.  Two changes are made in order\nto handle this situation:\n\n1. The packet sync DMA descriptor is given a non-zero header length and\nnon-zero payload length.  This is because zero-payload descriptors are\nnot discussed in the OHCI 1.1 specs and their behavior is thus\nundefined.  Instead we use a header size just large enough for a single\nheader and a payload length of 4 bytes for this first descriptor.\n\n2. As we process received packets in the context\u0027s tasklet, read the\npacket length out of the headers.  Keep track of the running total of\nthe packet length as \"excess_bytes\", so we can ignore any descriptors\nwhere no packet starts or ends.  These descriptors may not have had\ntheir first_res_count or second_res_count fields updated by the\ncontroller so we cannot rely on those values.\n\nThe main drawback of this patch is that the excess_bytes value might get\n\"out of sync\" with the packet descriptors if something strange happens\nto the DMA program.  I\u0027m not if such a thing could ever happen, but I\nappreciate any suggestions in making it more robust.\n\nAlso, the packet-per-buffer support may need a similar fix to deal with\nissue 1, but I haven\u0027t done any work on that yet.\n\nStefan, I\u0027m hoping that with this patch, all your OHCI 1.1 controllers\nwill work properly with an unmodified version of libdc1394.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a186b4a6b22fdc96a1ed63da483d267b5d00839e",
      "tree": "3d609e60aa00a921475b94c7b133e44068d15a99",
      "parents": [
        "41f81e88e01eb959f439f8537c58078e4bfc5291"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Mon Dec 03 13:43:12 2007 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 10 21:55:19 2007 +0100"
      },
      "message": "firewire: OHCI 1.0 Isochronous Receive support\n\nThird rendition of FireWire OHCI 1.0 Isochronous Receive support, using a\nzer-copy method similar to OHCI 1.1 which puts the IR data payload directly\ninto the userspace buffer. The zero-copy implementation eliminates the\nvideo artifacts, audio popping, and buffer underrun problems seen with\nversion 1 of this patch, as well as fixing a regression in OHCI 1.1 support\nintroduced by version 2 of this patch.\n\nSuccessfully tested in OHCI 1.1 mode on the following chipsets:\n\n- NEC uPD72847 (rev 01), OHCI 1.1 (PCI)\n- Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe)\n- Ti TSB41AB2 (rev 01), OHCI 1.1 (PCI on SB Audigy)\n- Apple UniNorth 2 (rev 81), OHCI 1.1 (PowerBook G4 onboard)\n\nSuccessfully tested in OHCI 1.0 mode on the following chipsets:\n\n- Agere FW323 (rev 06), OHCI 1.0 (Mac Mini onboard)\n- Agere FW323 (rev 06), OHCI 1.0 (PCI)\n- Via VT6306 (rev 46), OHCI 1.0 (PCI)\n- NEC OrangeLink (rev 01), OHCI 1.0 (PCI)\n- NEC uPD72847 (rev 01), OHCI 1.1 (PCI)\n- Ti XIO2200(A) (rev 01), OHCI 1.1 (PCIe)\n\nThe bulk of testing was done in an x86_64 system, but was also successfully\nsanity-tested on other systems, including a PPC(32) PowerBook G4 and an i686\nEPIA M10k. Crude benchmarking (watching top during capture) puts the cpu\nutilization during capture on the EPIA\u0027s 1GHz Via C3 processor around 13%,\nwhich is down from 30% with the v1 code.\n\nSome implementation details:\n\nTo maintain the same userspace API as dual-buffer mode, we set up two\ndescriptors for every incoming packet. The first is an INPUT_MORE descriptor,\npointing to a buffer large enough to hold just the packet\u0027s iso headers,\nimmediately followed by an INPUT_LAST descriptor, pointing to a chunk of the\nuserspace buffer big enough for the packet\u0027s data payload. With this setup,\neach incoming packet fills in these two descriptors in a manner that very\nclosely emulates dual-buffer receive, to the point where the bulk of the\nhandle_ir_* code is now identical between the two (and probably primed for\nsome restructuring to share code between them).\n\nThe only caveat I have at the moment is that neither of my OHCI 1.0 Via\nVT6307-based FireWire controllers work particularly well with this code\nfor reasons I have yet to figure out.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0bd243c4d93583cd8e1786c0bd6982f6f9f94ab6",
      "tree": "4302c298abed38b0ff866a66390a7f434a612db0",
      "parents": [
        "5307cc1aa53850f017c8053db034cf950b670ac9"
      ],
      "author": {
        "name": "Kristian Høgsberg",
        "email": "krh@redhat.com",
        "time": "Tue Jun 05 19:27:05 2007 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 31 19:02:19 2007 +0100"
      },
      "message": "firewire: Fix pci resume to not pass in a __be32 config rom.\n\nThe ohci_enable() function shared between pci_probe and pci_resume\ntakes a host endian config rom, but ohci-\u003econfig_rom is __be32.  This\nsets up the config rom in the wrong endian on little endian machine,\nspecifically, BusOptions will be initialized to a 0 max receive size.\n\nThis patch changes the way we reuse the config rom so that we avoid\nthis problem.\n\nSigned-off-by: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4b6d51ec62d9c57432430528d6293605794a9f1b",
      "tree": "5612302d7f53db9caa7297f1041e1d7785e62f2f",
      "parents": [
        "c74e92c209cf30ae6003e042e7c017eb6c370b64"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 21 11:20:07 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Oct 22 19:48:56 2007 +0200"
      },
      "message": "firewire: fw-ohci: shut up a superfluous compiler warning\n\nNew warning since commit ab88ca488b8af66c3defa165874e81e695319a19,\n\"firewire: fw-ohci: missing dma_unmap_single\":\ndrivers/firewire/fw-ohci.c: In function \u0027at_context_transmit\u0027:\ndrivers/firewire/fw-ohci.c:609: warning: \u0027payload_bus\u0027 may be used\n uninitialized in this function\n\nAccess to payload_bus is conditional on packet-\u003epayload_length \u003e 0,\nand that won\u0027t change while in at_context_queue_packet.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c74e92c209cf30ae6003e042e7c017eb6c370b64",
      "tree": "8448c05baad9d41d42f792441eceb5d2ac2a04b7",
      "parents": [
        "55b70a0300b873c0ec7ea6e33752af56f41250ce"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 21 10:43:11 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Oct 22 19:48:55 2007 +0200"
      },
      "message": "firewire: fw-ohci: log a note about unsupported features\n\nbecause there seems to be more time needed to implement this.\nAlso, change related error return values to more appropriate ones.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "02ff8f8ee151e880414b99a11f67cae0cecd4977",
      "tree": "bafdb5af973e0010fb46ea21a2c4f4550a5d8a4d",
      "parents": [
        "ab88ca488b8af66c3defa165874e81e695319a19"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 30 00:11:40 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 17 00:00:08 2007 +0200"
      },
      "message": "firewire: fw-ohci: check for misconfigured bus (phyID \u003d\u003d 63)\n\nCheck NodeID.nodeNumber as per OHCI 1.1 clause 7.2.3.2.  See also IEEE\n1394a table 5B-1.\n\nAlso, demote the \"node ID not valid\" message from error to notification\nas it is not an error condition.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ab88ca488b8af66c3defa165874e81e695319a19",
      "tree": "0f798dacb2c16317a15b043697ae2e74384ff319",
      "parents": [
        "e524f616f59722bc7f93eb1fd79d3bbdcdf4f894"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Aug 29 19:40:28 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 17 00:00:07 2007 +0200"
      },
      "message": "firewire: fw-ohci: missing dma_unmap_single\n\nat_context_queue_packet() didn\u0027t clean up in an early exit path.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\n"
    },
    {
      "commit": "e524f616f59722bc7f93eb1fd79d3bbdcdf4f894",
      "tree": "172b6ad47b63b282083726722e695a3b09c769a9",
      "parents": [
        "a7fb60db711fce56e372f0bb8a733c0ad1743525"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 20 21:58:30 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 17 00:00:06 2007 +0200"
      },
      "message": "firewire: fw-ohci: log posted write errors\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a7fb60db711fce56e372f0bb8a733c0ad1743525",
      "tree": "ef310098a8e064e05bea8526c0f194ac4fc798bc",
      "parents": [
        "c26f02340e89c55390c9044ea65d9aef610b38f5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 20 21:41:22 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 17 00:00:06 2007 +0200"
      },
      "message": "firewire: fw-ohci: reorder includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c26f02340e89c55390c9044ea65d9aef610b38f5",
      "tree": "13b299e18b0000ce6bbbc0ba83706b638b82ad9a",
      "parents": [
        "ee71c2f9ee85117e41ef87357ed8f75d29369b98"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 20 21:40:30 2007 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 17 00:00:05 2007 +0200"
      },
      "message": "firewire: fw-ohci: fix includes\n\nAdd used includes, remove unused includes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    }
  ],
  "next": "ee71c2f9ee85117e41ef87357ed8f75d29369b98"
}
