)]}'
{
  "log": [
    {
      "commit": "8a8c47364eef8595e05b5bf53352aa6f16784356",
      "tree": "6e033f3c8698111e0ad662907978409fc418cb2e",
      "parents": [
        "d713dfa708e14352cfb71342cf985d08fe14be95"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 09 21:40:33 2012 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 17 22:27:37 2012 +0200"
      },
      "message": "firewire: ohci: omit spinlock IRQ flags where possible\n\nbus_reset_work() is only called from workqueue thread context.\n\nohci_set_config_rom() and ohci_allocate_iso_context() perform GFP_KERNEL\nmemory allocations, therefore they must be called with interrupts\nenabled.\n\nHence these functions may disable and enable local IRQs without having\nto track IRQ state.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d713dfa708e14352cfb71342cf985d08fe14be95",
      "tree": "f7b6ccaefb8931ea743288cbacdaa5c58e4571f1",
      "parents": [
        "0b6c4857f7684f6d3f59e0506f62953575346978"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 09 21:39:53 2012 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 17 22:27:37 2012 +0200"
      },
      "message": "firewire: ohci: correct signedness of a local variable\n\nbus_reset_work\u0027s reg is a bitfield.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fe2af11c220c7bb3a67f7aec0594811e5c59e019",
      "tree": "426d3d99ed35f7693db833d9dc2ef2be323b6a07",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Apr 03 10:07:01 2012 +0800"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 09 14:23:37 2012 +0200"
      },
      "message": "firewire: use module_pci_driver\n\nThis patch converts the drivers in drivers/firewire/* to use module_pci_driver()\nmacro which makes the code smaller and a bit simpler.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "34699403e9916060af8ae23f5e4705a6c078e79d",
      "tree": "e149ca6354171caf61132d80508ad878b00878c9",
      "parents": [
        "7fc86a7908a4e9eb2da4b6498f86193d113842d3",
        "d1bbd20972936b9b178fda3eb1ec417cb27fdc01"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:31:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:31:15 2012 -0700"
      },
      "message": "Merge tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394\n\nPull IEEE 1394 (FireWire) subsystem updates post v3.3 from Stefan Richter:\n\n - Some SBP-2 initiator fixes, side product from ongoing work on a target.\n\n - Reintroduction of an isochronous I/O feature of the older ieee1394 driver\n   stack (flush buffer completions); it was evidently rarely used but not\n   actually unused.  Matching libraw1394 code is already available.\n\n - Be sure to prefix all kernel log messages with device name or card name,\n   and other logging related cleanups.\n\n - Misc other small cleanups, among them a small API change that affects\n   sound/firewire/ too. Clemens Ladisch is aware of it.\n\n* tag \u0027firewire-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (26 commits)\n  firewire: allow explicit flushing of iso packet completions\n  firewire: prevent dropping of completed iso packet header data\n  firewire: ohci: factor out iso completion flushing code\n  firewire: ohci: simplify iso header pointer arithmetic\n  firewire: ohci: optimize control bit checks\n  firewire: ohci: remove unused excess_bytes field\n  firewire: ohci: copy_iso_headers(): make comment match the code\n  firewire: cdev: fix IR multichannel event documentation\n  firewire: ohci: fix too-early completion of IR multichannel buffers\n  firewire: ohci: move runtime debug facility out of #ifdef\n  firewire: tone down some diagnostic log messages\n  firewire: sbp2: replace a GFP_ATOMIC allocation\n  firewire: sbp2: Fix SCSI sense data mangling\n  firewire: sbp2: Ignore SBP-2 targets on the local node\n  firewire: sbp2: Take into account Unit_Unique_ID\n  firewire: nosy: Use the macro DMA_BIT_MASK().\n  firewire: core: convert AR-req handler lock from _irqsave to _bh\n  firewire: core: fix race at address_handler unregistration\n  firewire: core: remove obsolete comment\n  firewire: core: prefix log messages with card name\n  ...\n"
    },
    {
      "commit": "d1bbd20972936b9b178fda3eb1ec417cb27fdc01",
      "tree": "5d2e29adbc6f0e8ad0dd07b7624e2ad07181303e",
      "parents": [
        "18d627113b830cda80792e96b28341bcd41cf40c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:06:39 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:39 2012 +0100"
      },
      "message": "firewire: allow explicit flushing of iso packet completions\n\nExtend the kernel and userspace APIs to allow reporting all currently\ncompleted isochronous packets, even if the next interrupt packet has not\nyet been reached.  This is required to determine the status of the\npackets at the end of a paused or stopped stream, and useful for more\nprecise synchronization of audio streams.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18d627113b830cda80792e96b28341bcd41cf40c",
      "tree": "44281ec110668e9f7a583303b28ba2ca47012a20",
      "parents": [
        "910e76c607546ead218de8b11c32597d6b8fe7e4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:05:29 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:39 2012 +0100"
      },
      "message": "firewire: prevent dropping of completed iso packet header data\n\nThe buffer for the header data of completed iso packets has a fixed\nsize, so it is possible to configure a stream with a big interval\nbetween interrupt packets or with big headers so that this buffer would\noverflow.  Previously, ohci.c would drop any data that would not fit,\nbut this could make unsuspecting applications believe that fewer than\nthe actual number of packets have completed.\n\nInstead of dropping data, add calls to flush_iso_completion() so that\nthere are as many events as needed to report all of the data.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "910e76c607546ead218de8b11c32597d6b8fe7e4",
      "tree": "8a858f98ae79a998aeeef09d7b2a142d05d201b6",
      "parents": [
        "73864012f386ca5a193f3231c9b1936e23709a94"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:04:43 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:39 2012 +0100"
      },
      "message": "firewire: ohci: factor out iso completion flushing code\n\nIn preparation for the following patches that add more flushing, move\nthe code for flushing accumulated header data into a common function.\nThe timestamp of the last completed packed is passed through the context\nstructure instead of a function parameter to allow accessing this value\nlater outside of the handle_i?_packet functions.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "73864012f386ca5a193f3231c9b1936e23709a94",
      "tree": "0278de90e03579c0bac789173b97faaf13112d2e",
      "parents": [
        "90fcc8987390bffd79c6fd16aa59cc6ef549efcb"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:04:05 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:38 2012 +0100"
      },
      "message": "firewire: ohci: simplify iso header pointer arithmetic\n\nWhen storing the header data of completed iso packets, we effectively\ntreat the buffers as arrays of quadlets.  Actually declaring the\npointers as u32* avoids repetitive pointer arithmetic, removes the\nunhelpfully named \"i\" variables, and thus makes the code clearer.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "90fcc8987390bffd79c6fd16aa59cc6ef549efcb",
      "tree": "06a8ea8088e6fe0128f00637e03abe275261e59e",
      "parents": [
        "b9b5bbfda61c1d202dd943dddca8cdf617863fb9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:03:26 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:38 2012 +0100"
      },
      "message": "firewire: ohci: optimize control bit checks\n\nDoing the endian conversion on the constant instead of the memory\nfield allows the compiler to do the conversion at compile time.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b9b5bbfda61c1d202dd943dddca8cdf617863fb9",
      "tree": "7cb0d071f63e38fadebb59a4ed6b7923d1abd1a6",
      "parents": [
        "32c507f7b73d74c00caae6bbbd539f368be5d108"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:02:26 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:38 2012 +0100"
      },
      "message": "firewire: ohci: remove unused excess_bytes field\n\nCommit 6498ba04aee6 (remove unused dualbuffer IR code) overlooked\na field in struct iso_context.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "32c507f7b73d74c00caae6bbbd539f368be5d108",
      "tree": "ca6994989dd5735833dbe1b9133e2e6133b45790",
      "parents": [
        "a7611e84bd06c70c8b0cd88cd1e474c3c42fee3e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Mar 18 19:01:39 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 18 22:15:38 2012 +0100"
      },
      "message": "firewire: ohci: copy_iso_headers(): make comment match the code\n\nThe comment incorrectly talked about one little-endian quadlet, while\nthere are actually two.  Furthermore, the endianness of the remaining\nheaders depends on whatever protocol is used, so don\u0027t mention them.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0c0efbacab8d70700d13301e0ae7975783c0cb0a",
      "tree": "40d3dc3ccc449c8731239bb13505f0c2101ab000",
      "parents": [
        "cfda62baa474b194802a555d3f7f2ccfa27e28bb"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Mar 12 21:45:47 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 17 11:07:26 2012 +0100"
      },
      "message": "firewire: ohci: fix too-early completion of IR multichannel buffers\n\nhandle_ir_buffer_fill() assumed that a completed descriptor would be\nindicated by a non-zero transfer_status (as in most other descriptors).\nHowever, this field is written by the controller as soon as (the end of)\nthe first packet has been written into the buffer.  As a consequence, if\nwe happen to run into such a descriptor when the interrupt handler is\nexecuted after such a packet has completed, the descriptor would be\ntaken out of the list of active descriptors as soon as the buffer had\nbeen partially filled, so the event for the buffer being completely\nfilled would never be sent.\n\nTo fix this, handle descriptors only when they have been completely\nfilled, i.e., when res_count \u003d\u003d 0.  (This also matches the condition\nthat is reported by the controller with an interrupt.)\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.36+ \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cfda62baa474b194802a555d3f7f2ccfa27e28bb",
      "tree": "bab66039c764ffb9a568e5356edd001fbb3210dd",
      "parents": [
        "98466cc4502b3171f1bdc146db0d2106fcbc3f4f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 04 21:34:21 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 10 17:41:19 2012 +0100"
      },
      "message": "firewire: ohci: move runtime debug facility out of #ifdef\n\nCONFIG_FIREWIRE_OHCI_DEBUG could have been exposed to kernel tweakers\nif CONFIG_EXPERT was set.  But in hindsight, this stuff is far too\nuseful to omit it.  So get rid of two #else branches that are only\ngoing to bitrot otherwise.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "98466cc4502b3171f1bdc146db0d2106fcbc3f4f",
      "tree": "40dd97e187c4ce9217a71d94b51176b2e3f4e97c",
      "parents": [
        "c13ccfcf66b2e70f8d01f7fe7e1e20ba60e733e1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Mar 04 14:24:31 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Mar 10 17:41:19 2012 +0100"
      },
      "message": "firewire: tone down some diagnostic log messages\n\nThe \"skipped bus generations\" message was added together with the\nrespective fw_device retaining/ reviving code in order to see how it all\nworks out.  It did well, so don\u0027t spam the log anymore.\n\nThe \"register access failure\" situation still needs an actual handler.\nBut at this point it makes less sense to ask folks to send mails about\nit.  We now have a pretty good picture of what controllers emit this and\nwhen:\n\nTexas Instruments PCIxx21 FireWire + CardBus + flash memory card\ncontroller:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d608544\n\nO2 Micro FireWire + flash memory card controller:\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/801719\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/881688\nhttp://marc.info/?l\u003dlinux1394-devel\u0026m\u003d132309283531423\nhttp://marc.info/?l\u003dlinux1394-devel\u0026m\u003d132368567907469\nhttp://marc.info/?l\u003dlinux1394-devel\u0026m\u003d132516165727468\nhttp://marc.info/?l\u003dlinux1394-devel\u0026m\u003d133006486927699\n\nPinnacle Movieboard:\ncommit 7f7e37115a8b6724f26d0637a04e1d35e3c59717\nhttp://marc.info/?l\u003dlinux1394-devel\u0026m\u003d130714243325962\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "320cfa6ce0b3dc794fedfa4bae54c0f65077234d",
      "tree": "77fd9d96d7ea2595f6a04fe7b5d5b43f83281ab5",
      "parents": [
        "d1bb399ad03c11e792f6dea198d3b1e23061f094"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 29 12:41:15 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 30 21:33:34 2012 +0100"
      },
      "message": "firewire: ohci: disable MSI on Ricoh controllers\n\nThe PCIe device\n\n    FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd FireWire Host Controller\n    [1180:e832] (prog-if 10 [OHCI])\n\nis unable to access attached FireWire devices when MSI is enabled but\nworks if MSI is disabled.\nhttp://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg28251.html\n\nHence add the \"disable MSI\" quirks flag for this device, or in fact for\nsafety and simplicity for all current (R5U230, R5U231, R5U240) and\nfuture Ricoh PCIe 1394 controllers.\n\nReported-by: Stefan Thomas \u003ckontrapunktstefan@googlemail.com\u003e\nCc: 2.6.36+ \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d1bb399ad03c11e792f6dea198d3b1e23061f094",
      "tree": "21d127e5e77bbfd6e99c03ff8ca07650b6523378",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jan 26 22:05:58 2012 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 26 22:53:17 2012 +0100"
      },
      "message": "firewire: ohci: add reset packet quirk for SB Audigy\n\nThe Audigy\u0027s SB1394 controller is actually from Texas Instruments\nand has the same bus reset packet generation bug, so it needs the\nsame quirk entry.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.36+ \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "64d2172019dcfe46508593c561c9906de95df567",
      "tree": "27130e09d87e8aaeb532284b7fcd3ce86613ce18",
      "parents": [
        "210762268466634ddbfaddb48fdf5181ce4b5f2d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 20 21:32:46 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 15 18:37:21 2012 +0100"
      },
      "message": "firewire: ohci: use dev_printk API\n\nAll messages are uniformly prefixed by driver name and device name now.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a572e688cf5d99d2382016c7241ec37b523b0137",
      "tree": "e72d4f75ede570b3d9d4898ed8d3a09a95ad6ae4",
      "parents": [
        "32eaeae177bf77fbc224c35262add45bd5e6abb3"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Oct 15 23:12:23 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Oct 18 12:32:39 2011 +0200"
      },
      "message": "firewire: ohci: fix isochronous DMA synchronization\n\nAdd the dma_sync_single_* calls necessary to ensure proper cache\nsynchronization for isochronous data buffers on non-coherent\narchitectures.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "32eaeae177bf77fbc224c35262add45bd5e6abb3",
      "tree": "f20496f4be3f7e164bb995a88191e91fa902e9cc",
      "parents": [
        "a74477db9171e677b7a37b89e6e0ac8a15ba1f26"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Oct 15 18:14:39 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Oct 18 12:32:39 2011 +0200"
      },
      "message": "firewire: ohci: work around selfID junk due to wrong gap count\n\nIf a device\u0027s firmware initiates a bus reset by setting the IBR bit in\nPHY register 1 without resetting the gap count field to 63 (and without\nhaving sent a PHY configuration packet beforehand), the gap count of\nthis node will remain at the old value after the bus reset and thus be\ninconsistent with the gap count on all other nodes.\n\nThe bus manager is supposed to detect the inconsistent gap count values\nin the self ID packets and correct them by issuing another bus reset.\n\nHowever, if the buggy device happens to be the cycle master, and if it\nsends a cycle start packet immediately after the bus reset (which is\nlikely after a long bus reset), then the time between the end of the\nselfID phase and the start of the cycle start packet will be based on\nthe too-small gap count value, so this gap will be too short to be\ndetected as a subaction gap by the other nodes.  This means that the\ncycle start packet will be assumed to be self ID data, and will be\nstored after the actual self ID quadlets in the self ID buffer.\n\nThis garbage in the self ID buffer made firewire-core ignore all of the\nself ID data, and thus prevented the Linux bus manager from correcting\nthe problem.  Furthermore, because the bus reset handling was aborted\ncompletely, asynchronous transfers would be no longer handled correctly,\nand fw_run_transaction() would hang until the next bus reset.\n\nTo fix this, make the detection of inconsistent self IDs more\ndiscriminating:  If the invalid data in the self ID buffer looks like\na cycle start packet, we can assume that the previous data in the buffer\nis correctly received self ID information, and process it normally.\n\n(We inspect only the first quadlet of the cycle start packet, because\nthis value is different enough from any valid self ID quadlet, and many\ncontrollers do not store the cycle start packet in five quadlets because\nthey expect self ID data to have an even number of quadlets.)\n\nThis bug has been observed when a bus-powered DesktopKonnekt6 is\nswitched off with its power button.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a74477db9171e677b7a37b89e6e0ac8a15ba1f26",
      "tree": "72f6a3ba84ef8db0bcbb58c75384e2aa9ccd1c9f",
      "parents": [
        "4ec4a67aa100268b4ac5ae32b54843d975969969"
      ],
      "author": {
        "name": "Stephan Gatzka",
        "email": "stephan@gatzka.org",
        "time": "Mon Sep 26 21:44:30 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 09 17:00:18 2011 +0200"
      },
      "message": "firewire: net: Use posted writes\n\nChange memory region to ohci \"middle address space\". This effectively\nreduces the number of packets by 50%.\n\n[Stefan R.:]  This eliminates 1394 ack packets and improved throughput\nby a few percent in some tests with an S400a connection with and without\ngap count optimization.  Since firewire-net taxes the AR-req DMA unit of\na FireWire controller much more than firewire-sbp2 (which uses the\nmiddle address space with PCI posted writes too), this commit also\nchanges a related error printk into a ratelimited one as a precaution.\n\nSide note:  The IPv4-over-1394 drivers of Mac OS X 10.4, Windows XP SP3,\nand the Thesycon 1394 bus driver for Windows all use the middle address\nspace too.\n\nSigned-off-by: Stephan Gatzka \u003cstephan@gatzka.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b810e4ae111cb8b4c0ccbbe7ff4ea0a23c671e4f",
      "tree": "edc61366619baf3d63ac1fcc8f82047d5f8839d4",
      "parents": [
        "28897fb73c848eb441e54e859d0b64ad6b44d2e6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Sep 19 09:29:30 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 09 17:00:17 2011 +0200"
      },
      "message": "firewire: ohci: optimize TSB41BA3D detection\n\nTakes less source code and machine code, and less runtime with PHYs\nother than TSB41BA3D (e.g. TSB81BA3 with device ID 0x831304 which takes\none instead of six read_paged_phy_reg now).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "28897fb73c848eb441e54e859d0b64ad6b44d2e6",
      "tree": "7bcd80bc463f4d3e6a11c2c2bcf4c8ef069b2142",
      "parents": [
        "25935ebebd861182ac58ecea67718bb6a617c7cb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Sep 19 00:17:37 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 09 17:00:17 2011 +0200"
      },
      "message": "firewire: ohci: TSB41BA3D support tweaks\n\nFix:  phy_reg_mutex must be held over the write/read_phy_reg pair which\ngets PHY port status.\n\nOnly print to the log when a TSB41BA3D was found.  By far most TSB82AA2\ncards have a TSB81BA3, and firewire-ohci can keep quiet about that.\n\nShorten some strings and comments.  Change some whitespace.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "25935ebebd861182ac58ecea67718bb6a617c7cb",
      "tree": "dec9589910ff692c473fe1a1d6e9eb1d7c670ec6",
      "parents": [
        "2d7a36e23300d268599f6eae4093643d22fbb356"
      ],
      "author": {
        "name": "Stephan Gatzka",
        "email": "stephan@gatzka.org",
        "time": "Mon Sep 12 22:23:53 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Sep 16 22:30:28 2011 +0200"
      },
      "message": "firewire: ohci: Add support for TSB41BA3D phy\n\nThis patch implements a work around for the Texas Instruments PHY\nTSB41BA3D.  This phy has a bug at least in combination with the TI LLCs\nTSB82AA2B and TSB12LV26.  The selfid coming from the locally connected\nphy is not propagated into the selfid buffer of the OHCI (see\nhttp://www.ti.com/litv/pdf/sllz059 for details).  The main idea is to\nconstruct the selfid ourselves.\n\nSigned-off-by: Stephan Gatzka \u003cstephan@gatzka.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2d7a36e23300d268599f6eae4093643d22fbb356",
      "tree": "8ab2e18f979af804a4f069ac77cbbd34801c5e88",
      "parents": [
        "32ce38f40337cf4a805552e494354d961587c838"
      ],
      "author": {
        "name": "Stephan Gatzka",
        "email": "stephan@gatzka.org",
        "time": "Mon Jul 25 22:16:24 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Sep 16 22:30:28 2011 +0200"
      },
      "message": "firewire: ohci: Move code from the bus reset tasklet into a workqueue\n\nCode inside bus_reset_work may now sleep. This is a prerequisite to\nsupport a phy from Texas Instruments cleanly. The patch to support this\nphy will be submitted later.\n\nSigned-off-by: Stephan Gatzka \u003cstephan@gatzka.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f39aa30d7741f40ad964341e9243dbbd7f8ff057",
      "tree": "420519d678d74d07079efc866249491f5c724030",
      "parents": [
        "b6fd41e29dea9c6753b1843a77e50433e6123bcb"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Wed Aug 31 10:45:46 2011 +0800"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Sep 16 22:22:10 2011 +0200"
      },
      "message": "firewire: ohci: add no MSI quirk for O2Micro controller\n\nThis fixes https://bugs.launchpad.net/ubuntu/+source/linux/+bug/801719 .\n\nAn O2Micro PCI Express FireWire controller,\n\"FireWire (IEEE 1394) [0c00]: O2 Micro, Inc. Device [1217:11f7] (rev 05)\"\nwhich is a combination device together with an SDHCI controller and some\nsort of storage controller, misses SBP-2 status writes from an attached\nFireWire HDD.  This problem goes away if MSI is disabled for this\nFireWire controller.\n\nThe device reportedly does not require QUIRK_CYCLE_TIMER.\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (amended changelog)\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "6f02bfc404decf5b5046f1413ef941e1870912f7",
      "tree": "8d3ef4ebba507a3d3f2e491d25dcd51c7241a401",
      "parents": [
        "a0b3447fb1d8b32071f473c779a482277816867a",
        "a01e836087881dd9d824417190994c9b2b0f1dbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 15 08:40:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 15 08:40:49 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: fix DMA unmapping in an error path\n  firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases\n"
    },
    {
      "commit": "a01e836087881dd9d824417190994c9b2b0f1dbb",
      "tree": "dba049b83137d4cda2fdc53ed06d83897a74dc4f",
      "parents": [
        "9c1176b6a28850703ea6e3a0f0c703f6d6c61cd3"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Aug 11 20:40:42 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Aug 12 15:30:08 2011 +0200"
      },
      "message": "firewire: ohci: fix DMA unmapping in an error path\n\nIf request_irq failed, we would pass wrong arguments to\ndma_free_coherent.  https://bugzilla.redhat.com/show_bug.cgi?id\u003d728185\n\nReported-by: Mads Kiilerich\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "441c196e84b11aad3123baa9320eee7abc6b5c98",
      "tree": "ea51d689c9ac09cce10a5758f19d6adbd8a7a9d7",
      "parents": [
        "951cc93a7493a81a47e20231441bc6cf17c98a37",
        "9a00c24ae7cb08dcd46edf1327a47871e8466444"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 14:49:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 14:49:48 2011 -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: document the sysfs ABIs\n  firewire: cdev: ABI documentation enhancements\n  firewire: cdev: prevent race between first get_info ioctl and bus reset event queuing\n  firewire: cdev: return -ENOTTY for unimplemented ioctls, not -EINVAL\n  firewire: ohci: skip soft reset retries after card ejection\n  firewire: ohci: fix PHY reg access after card ejection\n  firewire: ohci: add a comment on PHY reg access serialization\n  firewire: ohci: reduce potential context_stop latency\n  firewire: ohci: remove superfluous posted write flushes\n  firewire: net: replacing deprecated __attribute__((packed)) with __packed\n"
    },
    {
      "commit": "7f7e37115a8b6724f26d0637a04e1d35e3c59717",
      "tree": "ddc1d71d7232d6fd715c66763deae5766dc1f763",
      "parents": [
        "105e53f863c04e1d9e5bb34bf753c9fdbce6a60c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 10 00:23:03 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 10 12:53:27 2011 +0200"
      },
      "message": "firewire: ohci: do not bind to Pinnacle cards, avert panic\n\nWhen firewire-ohci is bound to a Pinnacle MovieBoard, eventually a\n\"Register access failure\" is logged and an interrupt storm or a kernel\npanic happens.  https://bugzilla.kernel.org/show_bug.cgi?id\u003d36622\n\nUntil this is sorted out (if that is going to succeed at all), let\u0027s\njust prevent firewire-ohci from touching these devices.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "9f426173e54a4f0882f9516c226f3165a3bd5474",
      "tree": "a34fc50c7f562eea8726b60c41744567396aa692",
      "parents": [
        "215fa444c2a6d571f1f915cf3dc7a8b01cc51a0a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 03 17:39:26 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 09 17:12:09 2011 +0200"
      },
      "message": "firewire: ohci: skip soft reset retries after card ejection\n\nThe software reset in firewire-ohci\u0027s pci_remove does not have a great\nprospect of success if the card was already physically removed at this\npoint.  So let\u0027s skip the 500 ms that were spent in retries here.\n\nAlso, replace a defined constant by its open-coded value.  This is not a\nconstant from a specification but an arbitrarily chosen retry limit.  It\nwas only used in this single place.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "215fa444c2a6d571f1f915cf3dc7a8b01cc51a0a",
      "tree": "9279ad6fd8bf755cb059ab9d89dd061ac2147f93",
      "parents": [
        "b14c369d87d7fbf120ad21919d34a8f1290290f1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 22 21:05:08 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 09 17:12:08 2011 +0200"
      },
      "message": "firewire: ohci: fix PHY reg access after card ejection\n\nDetect and handle ejection of FireWire CardBus cards in PHY register\naccesses:\n\n  - The last attempt of firewire-core to reset the bus during shutdown\n    caused a spurious \"firewire_ohci: failed to write phy reg\" error\n    message in the log.  Skip this message as well as the prior retry\n    loop that needlessly took 100 milliseconds.\n\n  - In the unlikely case that a PHY register was read right after card\n    ejection, a bogus value was obtained and possibly acted upon.\n    Instead, fail the read attempt.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b14c369d87d7fbf120ad21919d34a8f1290290f1",
      "tree": "37947e2121f1c205ee4295c8c8c559d9f7693f87",
      "parents": [
        "9ef28ccd59a23d219c4660f55a11ac06ca91f632"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 21 15:24:26 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 09 17:12:08 2011 +0200"
      },
      "message": "firewire: ohci: add a comment on PHY reg access serialization\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9ef28ccd59a23d219c4660f55a11ac06ca91f632",
      "tree": "c65839983c1680c1cbb95c5d84c13e7386d49ce2",
      "parents": [
        "dd6254e5c0efe01ad255188898cb3dadf98cb56d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 12 14:30:57 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jul 09 17:12:07 2011 +0200"
      },
      "message": "firewire: ohci: reduce potential context_stop latency\n\nStopping an isochronous reception DMA context takes two loop iterations\nin context_stop on several controllers (JMicron, NEC, VIA).  But there\nis no extra delay necessary between these two reg_read trials; the MMIO\nreads themselves are slow enough.  Hence bring back the behavior from\nbefore commit dd6254e5c0efe01ad255188898cb3dadf98cb56d \"firewire: ohci:\nremove superfluous posted write flushes\" on these controllers by means\nof an \"if (i)\" condition.\n\nIsochronous context stop is performed in preemptible contexts (and only\nrarely), hence this change is of little impact.  (Besides, Agere and TI\ncontrollers always, or almost always, have the context stopped already\nat the first ContextControl read.)\n\nMore important is asynchronous transmit context stop, which is performed\nwhile local interrupts are disabled (on the two AT DMAs in\nbus_reset_tasklet, i.e. after a self-ID-complete event).  In my\nexperience with several controllers, tested with a usermode AT-request\ntransmitter as well as with FTP transmission over firewire-net, the AT\ncontexts were luckily already stopped at the first ContextControl read,\ni.e. never required another MMIO read let alone mdelay.  A possible\nexplanation for this is that the controllers which I tested perhaps stop\nAT DMA before they perform the self-ID reception DMA.\n\nBut we cannot be sure about that and should keep the interrupts-disabled\nbusy loop as short as possible.  Hence, query the ContextControl\nregister in 1000 udelay(10) intervals instead of 10 udelay(1000)\nintervals.  I understand from an estimation by Clemens Ladisch that\nstopping a busy DMA context should take microseconds or at worst tens of\nmicroseconds, not milliseconds.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "dd6254e5c0efe01ad255188898cb3dadf98cb56d",
      "tree": "3417d788024a41ad5f28689fc1ef5095ae2a4b7f",
      "parents": [
        "bf337b15c28ae25904a73e7e2e0de2f9c4f0e9f8"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon May 16 08:10:10 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 02 13:58:33 2011 +0200"
      },
      "message": "firewire: ohci: remove superfluous posted write flushes\n\nThe call to flush_writes() in context_stop() is superfluous because\nanother register read is done immediately afterwards.\n\nThe call to flush_writes() in ar_context_run() does not need to be done\nindividually for each AR context, so move it to ohci_enable().  This\nalso makes ohci_enable() clearer because it no longer depends on a side\neffect of ar_context_run() to flush its own register writes.\n\nFinally, the setting of a context\u0027s wake bit does not need to be flushed\nbecause neither the driver logic nor the API require the CPU to wait for\nthis action.  This removes the last MMIO reads from the packet queueing\ncode paths.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "13882a82ee1646336c3996c93b4a560a55d2a419",
      "tree": "8a144d874a0ac46273a7e2f2dd344458d7eb4bfa",
      "parents": [
        "f30e6d3e419bfb5540fa82ba7eca01d578556e6b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon May 02 09:33:56 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:53:45 2011 +0200"
      },
      "message": "firewire: optimize iso queueing by setting wake only after the last packet\n\nWhen queueing iso packets, the run time is dominated by the two\nMMIO accesses that set the DMA context\u0027s wake bit.  Because most\ndrivers submit packets in batches, we can save much time by\nremoving all but the last wakeup.\n\nThe internal kernel API is changed to require a call to\nfw_iso_context_queue_flush() after a batch of queued packets.\nThe user space API does not change, so one call to\nFW_CDEV_IOC_QUEUE_ISO must specify multiple packets to take\nadvantage of this optimization.\n\nIn my measurements, this patch reduces the time needed to queue\nfifty skip packets from userspace to one sixth on a 2.5 GHz CPU,\nor to one third at 800 MHz.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "020abf03cd659388f94cb328e1e1df0656e0d7ff",
      "tree": "40d05011708ad1b4a05928d167eb120420581aa6",
      "parents": [
        "0ff8fbc61727c926883eec381fbd3d32d1fab504",
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 20:52:07 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue May 10 22:50:41 2011 +0200"
      },
      "message": "Merge tag \u0027v2.6.39-rc7\u0027\n\nin order to pull in changes in drivers/media/dvb/firewire/ and\nsound/firewire/.\n"
    },
    {
      "commit": "2e053a27d9d5ad5e0831e002cbf8043836fb2060",
      "tree": "4e3ed1110128cbb1ba3b5baf4e45161300ad58c2",
      "parents": [
        "115881d395959b75c8c3bb94913f2ce869b8aa7a"
      ],
      "author": {
        "name": "B.J. Buchalter",
        "email": "bj@mhlabs.com",
        "time": "Mon May 02 13:33:42 2011 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon May 02 22:55:22 2011 +0200"
      },
      "message": "firewire: Fix for broken configrom updates in quick succession\n\nCurrent implementation of ohci_set_config_rom() uses a deferred\nbus reset via fw_schedule_bus_reset(). If clients add multiple\nunit descriptors to the config_rom in quick succession, the\ndeferred bus reset may not have fired before succeeding update\nrequests have come in. This can lead to an incorrect partial\nupdate of the config_rom for both addition and removal of\nconfig_rom descriptors, as the ohci_set_config_rom() routine\nwill return -EBUSY if a previous pending update has not been\ncompleted yet; the requested update just gets dropped on the floor.\n\nThis patch recognizes that the \"in-flight\" update can be modified\nuntil it has been processed by the bus-reset, and the locking\nin the bus_reset_tasklet ensures that the update is done atomically\nwith respect to modifications made by ohci_set_config_rom(). The\n-EBUSY error case is simply removed.\n\n[Stefan R:  The bug always existed at least theoretically.  But it\nbecame easy to trigger since 2.6.36 commit 02d37bed188c \"firewire: core:\nintegrate software-forced bus resets with bus management\" which\nintroduced long mandatory delays between janitorial bus resets.]\n\nSigned-off-by: Benjamin Buchalter \u003cbj@mhlabs.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (trivial style changes)\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y and newer\n"
    },
    {
      "commit": "0ff8fbc61727c926883eec381fbd3d32d1fab504",
      "tree": "37261139bea74569bf4a41bccd5d47d4b406b6a3",
      "parents": [
        "da28947e7e3602669e27d5e9ce787436ed662fa4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Apr 12 07:54:59 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:11 2011 +0200"
      },
      "message": "firewire: ohci: optimize find_branch_descriptor()\n\nWhen z\u003d\u003d2, the condition \"key \u003d\u003d 2\" is superfluous because it cannot\noccur without \"b \u003d\u003d 3\", as a descriptor with b!\u003d3 and key\u003d\u003d2 would be\nan OUTPUT_MORE_IMMEDIATE descriptor which cannot be used alone.\n\nAlso remove magic numbers and needless computations on the b field.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "da28947e7e3602669e27d5e9ce787436ed662fa4",
      "tree": "33b3cfb25fddbe12b4f19f02ce3253872eed2436",
      "parents": [
        "ecf8328e59447b83a1f79628487e0e9f8801db84"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 11 09:57:54 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:11 2011 +0200"
      },
      "message": "firewire: ohci: avoid separate DMA mapping for small AT payloads\n\nFor AT packet payloads of up to eight bytes, we have enough unused space\nin the DMA descriptors list so that we can put a copy of the payload\nthere and thus avoid having to create a separate streaming DMA mapping\nfor the payload buffer.\n\nIn a CPU-bound microbenchmark that just sends 8-byte packets, bandwidth\nwas measured to increase by 5.7 %, from 1009 KB/s to 1067 KB/s.  In\npractice, the only performance-sensitive usage of small asynchronous\npackets is the SBP-2 driver\u0027s write to the ORB_POINTER register during\nSCSI command submission.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ecf8328e59447b83a1f79628487e0e9f8801db84",
      "tree": "20ea90d6a38687a48c28ad185c612d0dece86e6f",
      "parents": [
        "115881d395959b75c8c3bb94913f2ce869b8aa7a"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 11 09:56:12 2011 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Apr 19 20:00:10 2011 +0200"
      },
      "message": "firewire: ohci: do not start DMA contexts before link is enabled\n\nOHCI 1.1 5.7.3 not only forbids enabling or starting any DMA contexts\nbefore the linkEnable bit is set, but also explicitly warns of undefined\nbehaviour if this order is violated.\n\nDon\u0027t violate it then.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d838d2c09af0820e306e3e9e31f97e873823b0b4",
      "tree": "b51cb6854bac7282c925f67b612ee22e946445c2",
      "parents": [
        "b6258fc1feabda868694ad5fdc7ca8edf3ef30ec"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Fri Mar 11 04:17:27 2011 +0300"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 14 23:30:57 2011 +0100"
      },
      "message": "firewire: ohci: Misleading kfree in ohci.c::pci_probe/remove\n\nIt seems drivers/firewire/ohci.c is making some optimistic assumptions\nabout struct fw_ohci and that member \"card\" will always remain the first\nmember of the struct.\nPlus it\u0027s probably going to confuse a lot of static code analyzers too.\n\nSo I wonder if there is a good reason not to free the ohci struct just\nlike it was allocated instead of the tricky \u0026ohci-\u003ecard way?\n\nSigned-off-by: Oleg Drokin \u003cgreen@linuxhacker.ru\u003e\n\nIt is perhaps just a rudiment from before mainline submission of the\ndriver.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b6258fc1feabda868694ad5fdc7ca8edf3ef30ec",
      "tree": "db2a06bde078d146c4ec32ab34ebe7a1779356ea",
      "parents": [
        "44b74d909dc943fd9384930a141450cb17133511"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:08:35 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 14 23:30:56 2011 +0100"
      },
      "message": "firewire: ohci: omit IntEvent.busReset check rom AT queueing\n\nSince commit 82b662dc4102 \"flush AT contexts after bus reset for OHCI 1.2\",\nthe driver takes care of any AT packets that were enqueued during a bus\nreset phase.  The check from commit 76f73ca1b291 is therefore no longer\nnecessary and the MMIO read can be avoided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "44b74d909dc943fd9384930a141450cb17133511",
      "tree": "19861b5b1213d6f0e9571f6c640095f7d74b642c",
      "parents": [
        "e81cbebdfc384f9c2ae91225f16ef994118e5e2c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Feb 23 09:27:40 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:04 2011 +0100"
      },
      "message": "firewire: ohci: prevent starting of iso contexts with empty queue\n\nIf a misguided program tried to start an isochronous context before it\nhas queued any packets, the call would appear to succeed, but the\ncontext would not actually go into the running state, and the OHCI\ncontroller would then raise an unrecoverableError interrupt because the\nfirst Z value is zero and thus invalid.  The driver logs such errors,\nbut there is no mechanism to report this back to the program.\n\nAdd an explicit check so that this error can be returned synchronously.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e81cbebdfc384f9c2ae91225f16ef994118e5e2c",
      "tree": "7bdb493f5bbb2d175966a8bd5336145c9e871ac3",
      "parents": [
        "5aaffc65a27dd9db65455c2c9ab3ede57238d2f5"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Feb 16 10:32:11 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 26 15:11:03 2011 +0100"
      },
      "message": "firewire: ohci: prevent iso completion callbacks after context stop\n\nTo prevent the iso packet callback from being called after\nfw_iso_context_stop() has returned, make sure that the\ncontext\u0027s tasklet has finished executing before that.\n\nThis fixes access-after-free bugs that have so far been\nobserved only in the upcoming snd-firewire-speakers driver,\nbut can theoretically also happen in the firedtv driver.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f117a3e3004381ccadadc5156178c283815ca393",
      "tree": "afc150347ea9a50aec8ca7b4677d0267547d183b",
      "parents": [
        "6044565af458e7fa6e748bff437ecc49dea88d79"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Jan 10 17:21:35 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 23 12:31:00 2011 +0100"
      },
      "message": "firewire: ohci: log dead DMA contexts\n\nWhen a DMA context goes into the dead state (and the controller thus\nstops working correctly), logging this error and the controller\u0027s error\ncode might be helpful for debugging.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1427130425c1239d977e8891c3a8923f53a6e352",
      "tree": "940207bbaf155d7ed36c6b8fab201dae6773ec1f",
      "parents": [
        "410cf2bd3dc6ec1ed9e1b36b25b9d7aa927ed14e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jan 13 10:12:17 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 13 15:48:29 2011 +0100"
      },
      "message": "firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO\n\nPAGE_KERNEL_RO is not available on all architectures, so its use\nin the new AR code broke compilation on sparc64.\n\nBecause the read-only mapping was just a debugging aid, just use\nPAGE_KERNEL instead.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nJames Bottomley wrote:\n\u003e On Thu, 2011-01-13 at 08:27 +0100, Clemens Ladisch wrote:\n\u003e\u003e firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO, e.g. sparc\n\u003e\u003e\n\u003e\u003e PAGE_KERNEL_RO is not available on all architectures, so its use in the\n\u003e\u003e new AR code broke compilation on sparc64.\n\u003e\u003e\n\u003e\u003e Because the R/O mapping is only used to catch drivers that try to write\n\u003e\u003e to the reception buffer and not actually required for correct operation,\n\u003e\u003e we can just use a normal PAGE_KERNEL mapping where _RO is not available.\n[...]\n\u003e\u003e +/*\n\u003e\u003e + * For archs where PAGE_KERNEL_RO is not supported;\n\u003e\u003e + * mapping the AR buffers readonly for the CPU is just a debugging aid.\n\u003e\u003e + */\n\u003e\u003e +#ifndef PAGE_KERNEL_RO\n\u003e\u003e +#define PAGE_KERNEL_RO PAGE_KERNEL\n\u003e\u003e +#endif\n\u003e\n\u003e This might cause interesting issues on sparc64 if it ever acquired a\n\u003e PAGE_KERNEL_RO.  Sparc64 has extern pgprot_t for it\u0027s PAGE_KERNEL types\n\u003e rather than #defines, so the #ifdef check wouldn\u0027t see this.\n\u003e\n\u003e I think either PAGE_PROT_RO becomes part of our arch API (so all\n\u003e architectures are forced to add it), or, if it\u0027s not part of the API,\n\u003e ohci isn\u0027t entitled to use it.  The latter seems simplest since you have\n\u003e no real use for write protection anyway.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "693a50b511818e07a131efc944cba1a504b63d3d",
      "tree": "f2791e96a50e10ec07223a9aa3b0719768221ca8",
      "parents": [
        "386a4153a2c1455e424f280d636efa3c91864466"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 01 15:17:05 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: consolidate context status flags\n\n\"firewire: ohci: restart iso DMA contexts on resume from low power mode\"\nadded the flag struct context.active and \"firewire: ohci: cache the\ncontext run bit\" added struct context.running.\n\nThese flags contain the same information; combine them.\nAlso, normalize whitespace in pci_resume().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "386a4153a2c1455e424f280d636efa3c91864466",
      "tree": "b99bc0351da1d37808d633cb8d64c1030dc37479",
      "parents": [
        "78dec56d6a56322e1b728d51f3a7def416d36b34"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Dec 24 14:42:46 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: cache the context run bit\n\nThe DMA context run control bit is entirely controlled by software, so\nit is safe to cache it.  This allows the driver to avoid doing an\nadditional MMIO read when queueing an AT packet.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "78dec56d6a56322e1b728d51f3a7def416d36b34",
      "tree": "cecebe0b2376af8a774172286d4682bc5a697bfc",
      "parents": [
        "82b662dc41027527675740de15344d1b4e34958e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 01 15:15:40 2011 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:33 2011 +0100"
      },
      "message": "firewire: ohci: flush AT contexts after bus reset - addendum\n\nAdd comments\n  - on why bus_reset_tasklet flushes AT queues,\n  - that commit 76f73ca1b291 can possibly be reverted now.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\n"
    },
    {
      "commit": "82b662dc41027527675740de15344d1b4e34958e",
      "tree": "e9e38e035e426c40b5f52f48da7928872fe61f5c",
      "parents": [
        "c16714704bb35165e5b85d927873dcc643772648"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Dec 24 14:40:15 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 03 22:34:48 2011 +0100"
      },
      "message": "firewire: ohci: flush AT contexts after bus reset for OHCI 1.2\n\nThe OHCI 1.2 (draft) specification, clause 7.2.3.3, allows and\nrecommends that, after a bus reset, the controller does not flush all\nthe packets in the AT queues.  Therefore, the driver has to do this\nitself.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "dd23736e092035b71df1117482b71fdfb5634239",
      "tree": "82e5ca95a4065f57e6c0e6504b3458d592a7c7f0",
      "parents": [
        "8662b6b029636c35e5876e184d90daf6b0072667"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: restart iso DMA contexts on resume from low power mode\n\nRestore iso channels DMA so that iso channels could continue to work\nafter resume from RAM/disk.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8662b6b029636c35e5876e184d90daf6b0072667",
      "tree": "448ac2fb1db32087cb414f9f00ca420fc6ac3d7e",
      "parents": [
        "ec766a7970126f99665992c0b0b10bd60a4d6208"
      ],
      "author": {
        "name": "Maxim Levitsky",
        "email": "maximlevitsky@gmail.com",
        "time": "Mon Nov 29 04:09:49 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: restore GUID on resume.\n\nSome lousy BIOSes, e.g. my Aspire 5720 BIOS forget to restore the GUID\nregister on resume from RAM.\n\nFix that by setting it to the last value that was read from it.\n\nSigned-off-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ec766a7970126f99665992c0b0b10bd60a4d6208",
      "tree": "dc049e0bcb3e1fb33a68efea8760391af62f6681",
      "parents": [
        "2dd5bed59356e03610bebe1a37c397788df50b9b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:25:17 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:15 2010 +0100"
      },
      "message": "firewire: ohci: use common buffer for self IDs and AR descriptors\n\nThe buffers used for the selfIDs packets and the AR request and response\ndescriptors end up using three pages because dma_alloc_coherent()\nallocates at least one page per call.  However, these data structures\nwould all fit into 4 KB, so we can save space by using a common buffer\nfor them.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2dd5bed59356e03610bebe1a37c397788df50b9b",
      "tree": "c1d069389a923d3b33ead320003e39d19ee86975",
      "parents": [
        "5b06db166c4d38638980283505259fa165d4f369"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:25:05 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: optimize iso context checks in the interrupt handler\n\nWhen the isochRx/isochTx bit is clear, we do not need to read the\ncorresponding iso interrupt event register.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5b06db166c4d38638980283505259fa165d4f369",
      "tree": "3384d55b420987325ffabf523ded740b1daac2c4",
      "parents": [
        "8327b37b18addfc6f8cf41a2f1a4490b656377b9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:47 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: make PHY packet header format consistent\n\nChange the header of PHY packets to be sent to include a pseudo\ntransaction code.  This makes the header consistent with that of\nreceived PHY packets, and allows at_context_queue_packet() and\nlog_ar_at_event() to see the packet type directly instead of having\nto deduce it from the header length or even from the header contents.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8327b37b18addfc6f8cf41a2f1a4490b656377b9",
      "tree": "ff9f3ccefccc5ab3b6bf0b5b7690af6a451230cc",
      "parents": [
        "e597e9898abe45beff4696159c7fe5c96f53e581"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:32 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: properly clear posted write errors\n\nTo remove the error information from the controller\u0027s queue and to allow\nmore posted writes, the driver has to read the failed posted write\naddress before clearing the postedWriteErr interrupt bit.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\n(Stefan R:) The spec is somewhat fuzzy about the actual requirements.\nTo err on the safe side, let\u0027s do these two read accesses.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e597e9898abe45beff4696159c7fe5c96f53e581",
      "tree": "e50555f1356e9c5ad206215df1eed4e0e33bd517",
      "parents": [
        "c088ab30ebf184afae01d919c77cebcfdce39df3"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:19 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:14 2010 +0100"
      },
      "message": "firewire: ohci: flush MMIO writes in the interrupt handler\n\nMake sure that interrupt event clear bit writes are executed before the\ninterrupt handler returns.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c088ab30ebf184afae01d919c77cebcfdce39df3",
      "tree": "7a66936c37b0c938db2eb398bdb763a648281393",
      "parents": [
        "7a39d8b82165462729d09066bddb395a19025acd"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Nov 30 08:24:01 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:13 2010 +0100"
      },
      "message": "firewire: ohci: fix AT context initialization error handling\n\nAdd proper error handling for the context_init() calls.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7a39d8b82165462729d09066bddb395a19025acd",
      "tree": "c0fea8d963b7f421e97dccacb059cfca610072de",
      "parents": [
        "5878730be4e3d0c9527d6f2f688874e38acacc98"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Fri Nov 26 08:57:31 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Dec 13 20:39:13 2010 +0100"
      },
      "message": "firewire: ohci: Asynchronous Reception rewrite\n\nMove the AR DMA descriptors out of the buffer pages, and map the buffer\npages linearly into the kernel\u0027s address space.  This allows the driver\nto ignore any page boundaries in the DMA data and thus to avoid any\ncopying around of packet payloads.\n\nThis fixes the bug where S800 packets that are so big (\u003e 4080 bytes)\nthat they can be split over three pages were not handled correctly.\n\nDue to the changed algorithm, we can now use arbitrarily many buffer\npages, which improves performance because the controller can more easily\nunload its DMA FIFO.\n\nFurthermore, using streaming DMA mappings should improve perfomance on\narchitectures where coherent DMA mappings are not cacheable.  Even on\nother architectures, the caching behaviour should be improved slightly\nbecause the CPU no longer writes to the buffer pages.\n\nv2: Detect the last filled buffer page by searching the descriptor\u0027s\n    residual count value fields in order (like in the old code), instead\n    of going backwards through the transfer status fields; it looks as\n    if some controllers do not set the latter correctly.\n\nv3: Fix an old resume bug that would now make the handler run into\n    a BUG_ON, and replace that check with more useful error handling.\n    Increase the buffer size for better performance with non-TI chips.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nMaxim Levitsky writes:\n    Works almost perfectly.  I can still see RCODE_BUSY errors\n    sometimes, not very often though.  64K here eliminates these errors\n    completely.  This is most likely due to nouveau drivers and lowest\n    perf level I use to lower card temperature.  That increases\n    latencies too much I think.  Besides that the IO is just perfect.\n\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "9993e0fe0f5f29c69e79efcb271ffc9843002985",
      "tree": "ed35a971df3613385819d58bf79817b7100c2992",
      "parents": [
        "af0cdf4947818becfe209610b209315578645ab4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 20:32:40 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with Agere FW643 rev 06, disable MSI\n\nAgere FW643 rev 06, listed as \"11c1:5901 (rev 06) (prog-if 10 [OHCI])\",\nproduced SBP-2 I/O errors since kernel 2.6.36.  Disabling MSI fixes it.\n\nSince MSI work on Agere FW643-E (same vendor and device ID, but rev 07),\nintroduce a device revision field into firewire-ohci\u0027s quirks list so\nthat different quirks can be defined for older and newer revisions.\n\nReported-by: Jonathan Isom \u003cjeisom@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "af0cdf4947818becfe209610b209315578645ab4",
      "tree": "6294d93f9eccfb857769929d1269aedd32681fc9",
      "parents": [
        "cf7d7e5a1980d1116ee152d25dac382b112b9c17"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 19:16:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with VIA VT6315, disable MSI\n\n\"VIA Technologies, Inc. VT6315 Series Firewire Controller [1106:3403]\"\ndoes not generate any interrupts if Message Signaled Interrupts were\nenabled.  This is a regression since kernel 2.6.36 in which MSI support\nwas added to firewire-ohci.  Hence blacklist MSI on all VIA controllers.\n\nReported-by: Robin Cook \u003crcook@wyrms.net\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "693fa7792e9db9f32da9436e633976fbacd04b55",
      "tree": "227078047db9c8f3497133769b1b9b1f7b681fa1",
      "parents": [
        "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:43:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: fix race when reading count in AR descriptor\n\nIf the controller is storing a split packet and therefore changing\nd-\u003eres_count to zero between the two reads by the driver, we end up with\nan end pointer that is not at a packet boundary, and therefore overflow\nthe buffer when handling the split packet.\n\nTo fix this, read the field once, atomically.  The compiler usually\nmerges the two reads anyway, but for correctness, we have to enforce it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5",
      "tree": "a9b2ba0d4382a1c0ad75182662570f61b5e03e57",
      "parents": [
        "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:42 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: avoid reallocation of AR buffers\n\nFreeing an AR buffer page just to allocate a new page immediately\nafterwards is not only a pointless effort but also dangerous because\nthe allocation can fail, which would result in an oops later.\n\nSplit ar_context_add_page() into two functions so that we can reuse\nthe old page directly.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e",
      "tree": "f8bc4a2d8d0bcaf4a1b7d4c547d7a2525459f852",
      "parents": [
        "85f7ffd5d2b320f73912b15fe8cef34bae297daf"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:20 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix race in AR split packet handling\n\nWhen handling an AR buffer that has been completely filled, we assumed\nthat its descriptor will not be read by the controller and can be\noverwritten.  However, when the last received packet happens to end at\nthe end of the buffer, the controller might not yet have moved on to the\nnext buffer and might read the branch address later.  If we overwrite\nand free the page before that, the DMA context will either go dead\nbecause of an invalid Z value, or go off into some random memory.\n\nTo fix this, ensure that the descriptor does not get overwritten by\nusing only the actual buffer instead of the entire page for reassembling\nthe split packet.  Furthermore, to avoid freeing the page too early,\nmove on to the next buffer only when some data in it guarantees that the\ncontroller has moved on.\n\nThis should eliminate the remaining firewire-net problems.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "85f7ffd5d2b320f73912b15fe8cef34bae297daf",
      "tree": "d9151979bb3834bd1254239a42247a668f059133",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:41:53 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix buffer overflow in AR split packet handling\n\nWhen the controller had to split a received asynchronous packet into two\nbuffers, the driver tries to reassemble it by copying both parts into\nthe first page.  However, if size + rest \u003e PAGE_SIZE, i.e., if the yet\nunhandled packets before the split packet, the split packet itself, and\nany received packets after the split packet are together larger than one\npage, then the memory after the first page would get overwritten.\n\nTo fix this, do not try to copy the data of all unhandled packets at\nonce, but copy the possibly needed data every time when handling\na packet.\n\nThis gets rid of most of the infamous crashes and data corruptions when\nusing firewire-net.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (cast PAGE_SIZE to size_t)\n"
    },
    {
      "commit": "aa0170fff3c26bf2b42159af2dd9cf86444c292a",
      "tree": "0a64674f2fa51883c66e96c743dd4c4e86d98a49",
      "parents": [
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "message": "firewire: ohci: fix TI TSB82AA2 regression since 2.6.35\n\nRevert commit 54672386ccf36ffa21d1de8e75624af83f9b0eeb\n\"firewire: ohci: fix up configuration of TI chips\".\nIt caused massive slow-down and data corruption with a TSB82AA2 based\nStarTech EC1394B2 ExpressCard and FireWire 800 harddisks.\n\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/657081\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.user/4013\n\nThe fact that some card EEPROMs do not program these enhancements may be\nrelated to TSB81BA3 phy chip errata, if not to bugs of TSB82AA2 itself.\nWe could re-add these configuration steps, but only conditional on a\nwhitelist of cards on which these enhancements bring a proven positive\neffect.\n\nReported-and-tested-by: Eric Shattow \u003clucent@gmail.com\u003e\nCc: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: \u003cstable@kernel.org\u003e 2.6.35\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "970f4be85ae6ecf97b711a3a2a1d5cecd3ea0534",
      "tree": "4088ff5bf8d3d020ddfe53fdb6d4252ff3457914",
      "parents": [
        "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e"
      ],
      "author": {
        "name": "Heikki Lindholm",
        "email": "holin@iki.fi",
        "time": "Mon Sep 06 22:30:45 2010 +0300"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Sep 08 21:25:55 2010 +0200"
      },
      "message": "firewire: ohci: activate cycle timer register quirk on Ricoh chips\n\nThe Ricoh FireWire controllers appear to have the non-atomic cycle\ntimer register access bug, so, activate the driver workaround by\ndefault.\n\nThe behaviour was observed on:\nRicoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] and\nRicoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832] (rev 04).\n\nSigned-off-by: Heikki Lindholm \u003cholin@iki.fi\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e",
      "tree": "1cba172819b1395237adb69e34dfa469a63dbb68",
      "parents": [
        "2222bcb76790f4f61f39ec1514946a7593b07e02"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 28 14:21:26 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Aug 29 09:17:31 2010 +0200"
      },
      "message": "firewire: ohci: work around VIA and NEC PHY packet reception bug\n\nVIA VT6306, VIA VT6308, and NEC OrangeLink controllers do not write\npacket event codes for received PHY packets (or perhaps write\nevt_no_status, hard to tell).  Work around it by overwriting the\npacket\u0027s ACK by ack_complete, so that upper layers that listen to PHY\npacket reception get to see these packets.\n\n(Also tested:  TI TSB82AA2, TI TSB43AB22/A, TI XIO2213A, Agere FW643,\nJMicron JMB381 --- these do not exhibit this bug.)\n\nClemens proposed a quirks flag for that, IOW whitelist known misbehaving\ncontrollers for this workaround.  Though to me it seems harmless enough\nto enable for all controllers.\n\nThe log_ar_at_event() debug log will continue to show the original\nstatus from the DMA unit.\n\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (VT6308)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e78483c5aeb0d7fbb0e365802145f1045e62957e",
      "tree": "cc1c4733486f562b26ab812ce38ff8026da70007",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51",
        "b20d02e37eeabf34b40c3995c2dbb0af53da3c57",
        "20802224298ce9dfd99a7e26b675fc0c8ae26cac"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 09:33:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 10:09:04 2010 +0200"
      },
      "message": "Merge firewire branches to be released post v2.6.35\n\nConflicts:\n\tdrivers/firewire/core-card.c\n\tdrivers/firewire/core-cdev.c\n\nand forgotten #include \u003clinux/time.h\u003e in drivers/firewire/ohci.c\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "872e330e38806d835bd6c311c93ab998e2fb9058",
      "tree": "92497ce79b1157761b1aebdb63b8d74f68d42c15",
      "parents": [
        "ae2a97661482c1d0f1aa41b837da95054d0e9a1b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 18:19:22 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: add isochronous multichannel reception\n\nThis adds the DMA context programming and userspace ABI for multichannel\nreception, i.e. for listening on multiple channel numbers by means of a\nsingle DMA context.\n\nThe use case is reception of more streams than there are IR DMA units\noffered by the link layer.  This is already implemented by the older\nohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on\nlinux1394-devel, this feature is occasionally used in practice.\n\nThe big drawbacks of this mode are that buffer layout and interrupt\ngeneration necessarily differ from single-channel reception:  Headers\nand trailers are not stripped from packets, packets are not aligned with\nbuffer chunks, interrupts are per buffer chunk, not per packet.\n\nThese drawbacks also cause a rather hefty code footprint to support this\nrarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of\nadded userspace ABI documentation.)\n\nThis implementation enforces that a multichannel reception context may\nonly listen to channels to which no single-channel context on the same\nlink layer is presently listening to.  OHCI-1394 would allow to overlay\nsingle-channel contexts by the multi-channel context, but this would be\na departure from the present first-come-first-served policy of IR\ncontext creation.\n\nThe implementation is heavily based on an earlier one by Jay Fenlason.\nThanks Jay.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5b06c077c592e7e1623641520787a3da7b7c6bf",
      "tree": "92669edec5be2e06ed1b971e611a7683bb33ab75",
      "parents": [
        "071595ebdc66d70219e2d1ce746016f64b2b19e7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 15:50:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: release channel in error path\n\nfirewire-ohci keeps book of which isochronous channels are occupied by\nIR DMA contexts, so that there cannot be more than one context listening\nto a certain channel.\n\nIf IR context creation failed due to an out-of-memory condition, this\nbookkeeping leaked a channel.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "071595ebdc66d70219e2d1ce746016f64b2b19e7",
      "tree": "3083b0de17a6d0633420ffda1dfa04a0b4b880b2",
      "parents": [
        "8e2b2b46ea4ca5ef790dddf78b360ed736a62d7c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 13:20:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: use memory barriers to order descriptor updates\n\nWhen we append to a DMA program, we need to ensure that the order in\nwhich initialization of the new descriptors and update of the\nbranch_address of the old tail descriptor, as seen by the PCI device,\nhappen as intended.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cc550216ae9a2993ef3973464714dc1a39ab1f86",
      "tree": "62ffde836c83fe44b7a9edc01d00bcb9ad4f4ad6",
      "parents": [
        "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 18 13:00:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY pinging\n\nThis extends the FW_CDEV_IOC_SEND_PHY_PACKET ioctl() for /dev/fw* to be\nuseful for ping time measurements.  One application for it would be gap\ncount optimization in userspace that is based on ping times rather than\nhop count.  (The latter is implemented in firewire-core itself but is\nnot applicable to beta PHYs that act as repeater.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc",
      "tree": "31ec8e4e13b76d22b7bf9f93ea620e88911fe416",
      "parents": [
        "850bb6f23b93c04ce1e4509a87fa607dc17d97c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:25:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY packet reception\n\nAdd an FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl() and\nFW_CDEV_EVENT_PHY_PACKET_RECEIVED poll()/read() event for /dev/fw*.\nThis can be used to get information from remote PHYs by remote access\nPHY packets.\n\nThis is also the 2nd half of the functionality (the receive part) to\nsupport a userspace implementation of a VersaPHY transaction layer.\n\nSafety considerations:\n\n  - PHY packets are generally broadcasts, hence some kind of elevated\n    privileges should be required of a process to be able to listen in\n    on PHY packets.  This implementation assumes that a process that is\n    allowed to open the /dev/fw* of a local node does have this\n    privilege.\n\n    There was an inconclusive discussion about introducing POSIX\n    capabilities as a means to check for user privileges for these\n    kinds of operations.\n\nOther limitations:\n\n  - PHY packet reception may be switched on by ioctl() but cannot be\n    switched off again.  It would be trivial to provide an off switch,\n    but this is not worth the code.  The client should simply close()\n    the fd then, or just ignore further events.\n\n  - For sake of simplicity of API and kernel-side implementation, no\n    filter per packet content is provided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "02d37bed188c500ee7afb0a2dc6b65a80704c58e",
      "tree": "a019891672a1505e35eb15fa2621caffecff2c80",
      "parents": [
        "8b4f70ba4967cae90d128857af1382026a24230a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:09:06 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:58:27 2010 +0200"
      },
      "message": "firewire: core: integrate software-forced bus resets with bus management\n\nBus resets which are triggered\n  - by the kernel drivers after updates of the local nodes\u0027 config ROM,\n  - by userspace software via ioctl\nshall be deferred until after \u003e\u003d2 seconds after the last bus reset.\n\nIf multiple modifications of the local nodes\u0027 config ROM happen in a row,\nonly a single bus reset should happen after them.\n\nWhen the local node\u0027s link goes from inactive to active or vice versa,\nand at the two occasions of bus resets mentioned above --- and if the\ncurrent gap count differs from 63 --- the bus reset should be preceded\nby a PHY configuration packet that reaffirms the gap count.  Otherwise a\nbus manager would have to reset the bus again right after that.\n\nThis is necessary to promote bus stability, e.g. leave grace periods for\nallocations and reallocations of isochronous channels and bandwidth,\nSBP-2 reconnections etc.; see IEEE 1394 clause 8.2.1.\n\nThis change implements all of the above by moving bus reset initiation\ninto a delayed work (except for bus resets which are triggered by the\nbus manager workqueue job and are performed there immediately).  It\ncomes with a necessary addition to the card driver methods that allows\nto get the current gap count from PHY registers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0fcff4e39323f466a47684d7c8ffa77e1be86c8a",
      "tree": "cdbe9d239ae59c18a48a34d937da3f658c61e873",
      "parents": [
        "b384cf18873da1ed100662aa7373edf5883a1c24"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:35:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: rename CSR access driver methods\n\nRather than \"read a Control and Status Registers (CSR) Architecture\nregister\" I prefer to say \"read a Control and Status Register\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a94ded57e9cc2498d401b2f5c856213a3e19fb",
      "tree": "8fd6a196ff953270c03700dd682108baf3ee369b",
      "parents": [
        "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:34:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: normalize STATE_CLEAR/SET CSR access interface\n\nPush the maintenance of STATE_CLEAR/SET.abdicate down into the card\ndriver.  This way, the read/write_csr_reg driver method works uniformly\nacross all CSR offsets.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae",
      "tree": "5fe981b7be4ffb97a506e23836d6c81a61dc8c91",
      "parents": [
        "e847cc832bab50aad939a0c30414cd986637564d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:30:21 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: replace get_features card driver hook\n\nby feature variables in the fw_card struct.  The hook appeared to be an\nunnecessary abstraction in the card driver interface.\n\nCleaner would be to pass those feature flags as arguments to\nfw_card_initialize() or fw_card_add(), but the FairnessControl register\nis in the SCLK domain and may therefore not be accessible while Link\nPower Status is off, i.e. before the card-\u003edriver-\u003eenable call from\nfw_card_add().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "65b2742ac002f554f6ca0c2eab84cc62400eafdf",
      "tree": "a13b0dc0883a5e126f2577f8061705c4c38debc0",
      "parents": [
        "c374ab424249b6ab91b1aee7460419d3f2c321df"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:26:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:40 2010 +0200"
      },
      "message": "firewire: \u0027add CSR_... support\u0027 addendum\n\nAdd a comment on which of the conflicting NODE_IDS specifications we\nimplement.  Reduce a comment on rather irrelevant register bits that can\nall be looked up in the spec (or from now on in the code history).\nDirectly include the required indirectly included bug.h.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e91b2787d0a2e4719b016e8dec0afd2d5ab6c30f",
      "tree": "e76a3665243ed9fb7275228d9a14dcb0eb5b567a",
      "parents": [
        "7e0e314f198d5048b74c8f0ef9f4c1c02e5ecfc9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "message": "firewire: allocate broadcast channel in hardware\n\nOn OHCI 1.1 controllers, let the hardware allocate the broadcast channel\nautomatically.  This removes a theoretical race condition directly after\na bus reset where it could be possible to read the channel allocation\nregister with channel 31 still being unallocated.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "4ffb7a6a066e4be4577976d1c08e237c7479770a",
      "tree": "fd4c275e8ef894d60602e1b4d1f81150e54b32f8",
      "parents": [
        "3d1f46eb60b155c705e389ecdf313f11b4b91976"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "message": "firewire: add CSR cmstr support\n\nImplement the cmstr bit, which is required for cycle master capable\nnodes and tested for by the Base 1394 Test Suite.\n\nThis bit allows the bus master to disable cycle start packets; there are\nbus master implementations that actually do this.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a1a1132bd83d0aea51d4f19be4b4a58a064a0131",
      "tree": "93352d6aa9fd8eaa0521fbeb65853cd9f485666e",
      "parents": [
        "27a2329f8235d6ce637463f5d83e98d760ef006e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "message": "firewire: add CSR PRIORITY_BUDGET support\n\nIf supported by the OHCI controller, implement the PRIORITY_BUDGET\nregister, which is required for nodes that can use asynchronous\npriority arbitration.\n\nTo allow the core to determine what features the lowlevel device\nsupports, add a new card driver callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "27a2329f8235d6ce637463f5d83e98d760ef006e",
      "tree": "dcc3b1a62d92d407f38744a93914742e9eed1816",
      "parents": [
        "a48777e03ad53777ed119a5f86dd22a6c5a378ad"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "message": "firewire: add CSR BUSY_TIMEOUT support\n\nImplement the BUSY_TIMEOUT register, which is required for nodes that\nsupport retries.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a48777e03ad53777ed119a5f86dd22a6c5a378ad",
      "tree": "651a3fb567a2b9d6ab111ff07415d87397ba8202",
      "parents": [
        "9ab5071cd4a16001e4ba790172a7da5e4172462b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "message": "firewire: add CSR BUS_TIME support\n\nImplement the BUS_TIME register, which is required for cycle master\ncapable nodes and tested for by the Base 1393 Test Suite.  Even when\nthere is not yet bus master initialization support, this register allows\nus to work together with other bus masters.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "9ab5071cd4a16001e4ba790172a7da5e4172462b",
      "tree": "bb1ba598d4f2df93b661411c833b60bb953e3390",
      "parents": [
        "8e4b50f94e8c1435a3e0ece42b7f97bc857d0145"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "message": "firewire: add CSR CYCLE_TIME write support\n\nThe specification requires that CYCLE_TIME is writable so that it can be\ninitialized, so we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "506f1a31932747f56a5029d5b3c14b1b68f41ccc",
      "tree": "04dfb94980fc95cfc2c458fc62e6b77996c8145b",
      "parents": [
        "60d32970c5a32e8c4f340a9e41993759ad658ef2"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "message": "firewire: add CSR NODE_IDS support\n\nThe NODE_IDS register, and especially its bus_id field, is quite\nuseless because 1394.1 requires that the bus_id field always stays\n0x3ff.  However, the 1394 specification requires this register on all\ntransaction capable nodes, and the Base 1394 Test Suite tests for it,\nso we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "60d32970c5a32e8c4f340a9e41993759ad658ef2",
      "tree": "a7f60c934ae250f0291622cb02540638ef7cbf6d",
      "parents": [
        "3e07ec0eee1662f89e57f84aff625065beb2b209"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "message": "firewire: add read_csr_reg driver callback\n\nTo prepare for the following additions of more OHCI-implemented CSR\nregisters, replace the get_cycle_time driver callback with a generic\nCSR register callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "153e3979201b76dbd5788f032fb683e95121e159",
      "tree": "aae0a3a5dcbc0eb815e7030176b03c84da8792b9",
      "parents": [
        "f9c70f9129f2d88645c3a26711302a7f6ba9afd0"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "message": "firewire: ohci: speed up PHY register accesses\n\nMost PHY chips, when idle, can complete a register access in the time\nneeded for two or three PCI read transactions; bigger delays occur only\nwhen data is currently being moved over the link/PHY interface.  So if\nwe busy-wait a few times when waiting for the register access to finish,\nit is likely that we can finish without having to sleep.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "262444eecce40950af19ea4d75a3dc03b3c07283",
      "tree": "87b465d2bdc2cc600807910d372e68ba668bda8a",
      "parents": [
        "148c7866c31d93f8c79366189075f5a26ad4556c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Jun 05 12:31:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: add MSI support\n\nThis patch adds support for message-signaled interrupts.\n\nAny native PCI-Express OHCI controller should support MSI, but most are\njust PCI cores behind a PCI-E/PCI bridge.  The only chips that are known\nto claim to support MSI are the Lucent/Agere/LSI FW643 and the VIA\nVT6315, none of which I have been able to test.\n\nDue to the high level of trust I have in the competence of these and any\nfuture chip makers, I thought it a good idea to add a disable-MSI quirk.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nTested Agere FW643 rev 07 [11c1:5901] and JMicron JMB381 [197b:2380].\nAdded a quirks list entry for JMB38X since it kept its count of MSI\nevents consistently at zero.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "148c7866c31d93f8c79366189075f5a26ad4556c",
      "tree": "2b82bfd64fcdf04a2fbb6bfca78e27c9c609110f",
      "parents": [
        "d8c1fa4af0f311363d9f9cf1014b11d31a99ff10"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 05 11:46:49 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: do not enable interrupts without the handler\n\nOn 26 Apr 2010, Clemens Ladisch wrote:\n\u003e In theory, none of the interrupts should occur before the link is\n\u003e enabled.  In practice, I\u0027d rather make sure to not set the master\n\u003e interrupt enable bit until we have installed the interrupt handler.\n\nand proposed to move OHCI1394_masterIntEnable out of the present\nreg_write() into a new one before the HCControl.linkEnable reg_write().\n\nWhy not defer setting /all/ of the bits until right before linkEnable?\n\nReviewed-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "925e7a6504966b838c519f009086982c68e0666f"
}
